musubix2 0.5.10 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"generator":"musubix2","version":"0.5.10","timestamp":"2026-07-09T10:42:36.515Z"}
1
+ {"generator":"musubix2","version":"0.5.11","timestamp":"2026-07-09T10:51:51.652Z"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0",
3
- "generatedAt": "2026-07-09T10:42:36.544Z",
3
+ "generatedAt": "2026-07-09T10:51:51.684Z",
4
4
  "entries": [
5
5
  {
6
6
  "platform": "copilot",
package/dist/cli.js CHANGED
@@ -14649,60 +14649,77 @@ function synthesisTools() {
14649
14649
  })
14650
14650
  ];
14651
14651
  }
14652
+ async function buildSpecFromParams(params) {
14653
+ const text = params["text"] ?? params["requirement"] ?? params["spec"] ?? "";
14654
+ let pattern = params["pattern"];
14655
+ if (!pattern) {
14656
+ try {
14657
+ const { createEARSValidator: createEARSValidator2 } = await Promise.resolve().then(() => (init_dist(), dist_exports));
14658
+ pattern = createEARSValidator2().analyze(text).pattern;
14659
+ } catch {
14660
+ pattern = "ubiquitous";
14661
+ }
14662
+ }
14663
+ return {
14664
+ id: params["id"] ?? "REQ-XXX-001",
14665
+ title: params["name"] ?? params["title"] ?? "requirement",
14666
+ text,
14667
+ pattern,
14668
+ trigger: params["trigger"],
14669
+ condition: params["condition"],
14670
+ action: params["action"] ?? text
14671
+ };
14672
+ }
14652
14673
  function formalVerifyTools() {
14653
14674
  return [
14654
- tool("verify.ears-to-smt", "Convert EARS requirements to SMT-LIB2 format", "formal-verify", [param("requirement", "string", "EARS requirement text")], async (params) => {
14675
+ tool("verify.ears-to-smt", "Convert an EARS requirement to SMT-LIB2", "formal-verify", [
14676
+ param("text", "string", "EARS requirement text"),
14677
+ param("action", "string", "Requirement action clause", false)
14678
+ ], async (params) => {
14655
14679
  try {
14656
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14657
- const smt = fv.earsToSmt?.(params["requirement"]);
14658
- return ok(smt ?? { smtlib2: "", requirement: params["requirement"] });
14680
+ const { createEarsToSmtConverter: createEarsToSmtConverter2 } = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14681
+ return ok(createEarsToSmtConverter2().convert(await buildSpecFromParams(params)));
14659
14682
  } catch {
14660
- return ok({ smtlib2: "", requirement: params["requirement"] });
14683
+ return fail("Formal-verify package not available");
14661
14684
  }
14662
14685
  }),
14663
- tool("verify.z3.solve", "Solve an SMT formula using Z3", "formal-verify", [
14664
- param("formula", "string", "SMT-LIB2 formula"),
14665
- param("timeout", "number", "Timeout in milliseconds", false, 5e3)
14666
- ], async (params) => {
14686
+ tool("verify.z3.solve", "Solve an SMT-LIB2 script with the Z3 adapter", "formal-verify", [param("formula", "string", "SMT-LIB2 script")], async (params) => {
14667
14687
  try {
14668
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14669
- const result = fv.z3Solve?.(params["formula"], params["timeout"] ?? 5e3);
14670
- return ok(result ?? { satisfiable: false, model: null });
14671
- } catch {
14672
- return ok({ satisfiable: false, model: null });
14688
+ const { createZ3Adapter: createZ3Adapter2 } = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14689
+ return ok(await createZ3Adapter2().solve(params["formula"] ?? ""));
14690
+ } catch (err) {
14691
+ return fail(`Z3 solve failed: ${err instanceof Error ? err.message : String(err)}`);
14673
14692
  }
14674
14693
  }),
14675
- tool("verify.lean.convert", "Convert a specification to a Lean 4 theorem", "formal-verify", [
14676
- param("spec", "string", "Specification to convert"),
14694
+ tool("verify.lean.convert", "Convert a requirement specification to a Lean 4 theorem", "formal-verify", [
14695
+ param("text", "string", "Requirement text"),
14696
+ param("action", "string", "Requirement action clause", false),
14677
14697
  param("name", "string", "Theorem name", false, "spec_theorem")
14678
14698
  ], async (params) => {
14679
14699
  try {
14680
- const lean = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14681
- const result = lean.convertToLean?.(params["spec"], params["name"] ?? "spec_theorem");
14682
- return ok(result ?? { lean4: "", name: params["name"] ?? "spec_theorem" });
14700
+ const { createEarsToLeanConverter: createEarsToLeanConverter2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14701
+ return ok(createEarsToLeanConverter2().convert(await buildSpecFromParams(params)));
14683
14702
  } catch {
14684
- return ok({ lean4: "", name: params["name"] ?? "spec_theorem" });
14703
+ return fail("Lean package not available");
14685
14704
  }
14686
14705
  }),
14687
- tool("verify.lean.run", "Run a Lean 4 proof", "formal-verify", [param("proof", "string", "Lean 4 proof code")], async (params) => {
14706
+ tool("verify.lean.run", "Run a Lean 4 proof (requires a Lean toolchain; reports availability otherwise)", "formal-verify", [param("proof", "string", "Lean 4 proof code")], async (params) => {
14688
14707
  try {
14689
- const lean = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14690
- const result = lean.runProof?.(params["proof"]);
14691
- return ok(result ?? { verified: false, output: "" });
14692
- } catch {
14693
- return ok({ verified: false, output: "" });
14708
+ const { createLeanProofRunner: createLeanProofRunner2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14709
+ return ok(await createLeanProofRunner2().runProof(params["proof"] ?? ""));
14710
+ } catch (err) {
14711
+ return fail(`Lean proof run failed: ${err instanceof Error ? err.message : String(err)}`);
14694
14712
  }
14695
14713
  }),
14696
- tool("verify.hybrid", "Run hybrid verification combining Z3 and Lean", "formal-verify", [
14697
- param("spec", "string", "Specification to verify"),
14698
- param("strategy", "string", "Verification strategy: z3-first | lean-first | parallel", false, "z3-first")
14714
+ tool("verify.hybrid", "Run hybrid (Z3 + Lean) verification on a requirement specification", "formal-verify", [
14715
+ param("text", "string", "Requirement text"),
14716
+ param("action", "string", "Requirement action clause", false)
14699
14717
  ], async (params) => {
14700
14718
  try {
14701
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14702
- const result = fv.hybridVerify?.(params["spec"], params["strategy"] ?? "z3-first");
14703
- return ok(result ?? { verified: false, strategy: params["strategy"] ?? "z3-first" });
14704
- } catch {
14705
- return ok({ verified: false, strategy: params["strategy"] ?? "z3-first" });
14719
+ const { createHybridVerifier: createHybridVerifier2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14720
+ return ok(await createHybridVerifier2().verify(await buildSpecFromParams(params)));
14721
+ } catch (err) {
14722
+ return fail(`Hybrid verification failed: ${err instanceof Error ? err.message : String(err)}`);
14706
14723
  }
14707
14724
  })
14708
14725
  ];
@@ -14834,44 +14851,56 @@ function decisionsTools() {
14834
14851
  })
14835
14852
  ];
14836
14853
  }
14854
+ async function getSkillManager() {
14855
+ if (!_skillManager) {
14856
+ const { createSkillManager: createSkillManager2 } = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14857
+ _skillManager = createSkillManager2();
14858
+ }
14859
+ return _skillManager;
14860
+ }
14837
14861
  function skillsTools() {
14838
14862
  return [
14839
- tool("skills.list", "List all registered skills", "skills", [], async () => {
14863
+ tool("skills.list", "List skills registered in the current server session", "skills", [], async () => {
14840
14864
  try {
14841
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14842
- const skills = sm.listSkills?.();
14843
- return ok(skills ?? []);
14865
+ const mgr = await getSkillManager();
14866
+ return ok(mgr.getAvailableSkills().map((s) => ({ id: s.id, name: s.metadata.name, status: s.status })));
14844
14867
  } catch {
14845
- return ok([]);
14868
+ return fail("Skill-manager package not available");
14846
14869
  }
14847
14870
  }),
14848
- tool("skills.register", "Register a new skill", "skills", [
14871
+ tool("skills.register", "Register a skill (echo-executor) for this server session", "skills", [
14849
14872
  param("name", "string", "Skill name"),
14850
- param("description", "string", "Skill description"),
14851
- param("handler", "string", "Handler module path")
14873
+ param("description", "string", "Skill description", false, ""),
14874
+ param("triggers", "array", "Trigger keywords", false)
14852
14875
  ], async (params) => {
14853
14876
  try {
14854
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14855
- const result = sm.registerSkill?.({
14856
- name: params["name"],
14857
- description: params["description"],
14858
- handler: params["handler"]
14859
- });
14860
- return ok(result ?? { name: params["name"], registered: true });
14877
+ const mgr = await getSkillManager();
14878
+ const name = params["name"] ?? "skill";
14879
+ const skill = mgr.loadFromMetadata({
14880
+ name,
14881
+ version: "1.0.0",
14882
+ description: params["description"] ?? "",
14883
+ triggers: params["triggers"] ?? []
14884
+ }, async (input) => ({ skill: name, output: input }));
14885
+ return ok({ id: skill.id, name, registered: true });
14861
14886
  } catch {
14862
- return ok({ name: params["name"], registered: true });
14887
+ return fail("Skill-manager package not available");
14863
14888
  }
14864
14889
  }),
14865
- tool("skills.execute", "Execute a registered skill by name", "skills", [
14890
+ tool("skills.execute", "Execute a session skill by name (must be registered in this session first)", "skills", [
14866
14891
  param("name", "string", "Skill name to execute"),
14867
14892
  param("input", "object", "Skill input parameters", false, {})
14868
14893
  ], async (params) => {
14869
14894
  try {
14870
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14871
- const result = sm.executeSkill?.(params["name"], params["input"]);
14872
- return ok(result ?? { executed: false, name: params["name"] });
14895
+ const mgr = await getSkillManager();
14896
+ const name = params["name"] ?? "";
14897
+ const match = mgr.getAvailableSkills().find((s) => s.metadata.name === name);
14898
+ if (!match)
14899
+ return fail(`Skill not registered in this session: ${name}`);
14900
+ const output = await match.execute(params["input"] ?? {});
14901
+ return ok({ executed: true, name, output });
14873
14902
  } catch {
14874
- return ok({ executed: false, name: params["name"] });
14903
+ return fail("Skill-manager package not available");
14875
14904
  }
14876
14905
  })
14877
14906
  ];
@@ -14899,9 +14928,11 @@ function registerDefaultTools(server) {
14899
14928
  server.registerBatch(category.tools);
14900
14929
  }
14901
14930
  }
14931
+ var _skillManager;
14902
14932
  var init_catalog = __esm({
14903
14933
  "../mcp-server/dist/catalog.js"() {
14904
14934
  "use strict";
14935
+ _skillManager = null;
14905
14936
  }
14906
14937
  });
14907
14938
 
package/dist/index.js CHANGED
@@ -14649,60 +14649,77 @@ function synthesisTools() {
14649
14649
  })
14650
14650
  ];
14651
14651
  }
14652
+ async function buildSpecFromParams(params) {
14653
+ const text = params["text"] ?? params["requirement"] ?? params["spec"] ?? "";
14654
+ let pattern = params["pattern"];
14655
+ if (!pattern) {
14656
+ try {
14657
+ const { createEARSValidator: createEARSValidator2 } = await Promise.resolve().then(() => (init_dist(), dist_exports));
14658
+ pattern = createEARSValidator2().analyze(text).pattern;
14659
+ } catch {
14660
+ pattern = "ubiquitous";
14661
+ }
14662
+ }
14663
+ return {
14664
+ id: params["id"] ?? "REQ-XXX-001",
14665
+ title: params["name"] ?? params["title"] ?? "requirement",
14666
+ text,
14667
+ pattern,
14668
+ trigger: params["trigger"],
14669
+ condition: params["condition"],
14670
+ action: params["action"] ?? text
14671
+ };
14672
+ }
14652
14673
  function formalVerifyTools() {
14653
14674
  return [
14654
- tool("verify.ears-to-smt", "Convert EARS requirements to SMT-LIB2 format", "formal-verify", [param("requirement", "string", "EARS requirement text")], async (params) => {
14675
+ tool("verify.ears-to-smt", "Convert an EARS requirement to SMT-LIB2", "formal-verify", [
14676
+ param("text", "string", "EARS requirement text"),
14677
+ param("action", "string", "Requirement action clause", false)
14678
+ ], async (params) => {
14655
14679
  try {
14656
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14657
- const smt = fv.earsToSmt?.(params["requirement"]);
14658
- return ok(smt ?? { smtlib2: "", requirement: params["requirement"] });
14680
+ const { createEarsToSmtConverter: createEarsToSmtConverter2 } = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14681
+ return ok(createEarsToSmtConverter2().convert(await buildSpecFromParams(params)));
14659
14682
  } catch {
14660
- return ok({ smtlib2: "", requirement: params["requirement"] });
14683
+ return fail("Formal-verify package not available");
14661
14684
  }
14662
14685
  }),
14663
- tool("verify.z3.solve", "Solve an SMT formula using Z3", "formal-verify", [
14664
- param("formula", "string", "SMT-LIB2 formula"),
14665
- param("timeout", "number", "Timeout in milliseconds", false, 5e3)
14666
- ], async (params) => {
14686
+ tool("verify.z3.solve", "Solve an SMT-LIB2 script with the Z3 adapter", "formal-verify", [param("formula", "string", "SMT-LIB2 script")], async (params) => {
14667
14687
  try {
14668
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14669
- const result = fv.z3Solve?.(params["formula"], params["timeout"] ?? 5e3);
14670
- return ok(result ?? { satisfiable: false, model: null });
14671
- } catch {
14672
- return ok({ satisfiable: false, model: null });
14688
+ const { createZ3Adapter: createZ3Adapter2 } = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14689
+ return ok(await createZ3Adapter2().solve(params["formula"] ?? ""));
14690
+ } catch (err) {
14691
+ return fail(`Z3 solve failed: ${err instanceof Error ? err.message : String(err)}`);
14673
14692
  }
14674
14693
  }),
14675
- tool("verify.lean.convert", "Convert a specification to a Lean 4 theorem", "formal-verify", [
14676
- param("spec", "string", "Specification to convert"),
14694
+ tool("verify.lean.convert", "Convert a requirement specification to a Lean 4 theorem", "formal-verify", [
14695
+ param("text", "string", "Requirement text"),
14696
+ param("action", "string", "Requirement action clause", false),
14677
14697
  param("name", "string", "Theorem name", false, "spec_theorem")
14678
14698
  ], async (params) => {
14679
14699
  try {
14680
- const lean = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14681
- const result = lean.convertToLean?.(params["spec"], params["name"] ?? "spec_theorem");
14682
- return ok(result ?? { lean4: "", name: params["name"] ?? "spec_theorem" });
14700
+ const { createEarsToLeanConverter: createEarsToLeanConverter2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14701
+ return ok(createEarsToLeanConverter2().convert(await buildSpecFromParams(params)));
14683
14702
  } catch {
14684
- return ok({ lean4: "", name: params["name"] ?? "spec_theorem" });
14703
+ return fail("Lean package not available");
14685
14704
  }
14686
14705
  }),
14687
- tool("verify.lean.run", "Run a Lean 4 proof", "formal-verify", [param("proof", "string", "Lean 4 proof code")], async (params) => {
14706
+ tool("verify.lean.run", "Run a Lean 4 proof (requires a Lean toolchain; reports availability otherwise)", "formal-verify", [param("proof", "string", "Lean 4 proof code")], async (params) => {
14688
14707
  try {
14689
- const lean = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14690
- const result = lean.runProof?.(params["proof"]);
14691
- return ok(result ?? { verified: false, output: "" });
14692
- } catch {
14693
- return ok({ verified: false, output: "" });
14708
+ const { createLeanProofRunner: createLeanProofRunner2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14709
+ return ok(await createLeanProofRunner2().runProof(params["proof"] ?? ""));
14710
+ } catch (err) {
14711
+ return fail(`Lean proof run failed: ${err instanceof Error ? err.message : String(err)}`);
14694
14712
  }
14695
14713
  }),
14696
- tool("verify.hybrid", "Run hybrid verification combining Z3 and Lean", "formal-verify", [
14697
- param("spec", "string", "Specification to verify"),
14698
- param("strategy", "string", "Verification strategy: z3-first | lean-first | parallel", false, "z3-first")
14714
+ tool("verify.hybrid", "Run hybrid (Z3 + Lean) verification on a requirement specification", "formal-verify", [
14715
+ param("text", "string", "Requirement text"),
14716
+ param("action", "string", "Requirement action clause", false)
14699
14717
  ], async (params) => {
14700
14718
  try {
14701
- const fv = await Promise.resolve().then(() => (init_dist16(), dist_exports16));
14702
- const result = fv.hybridVerify?.(params["spec"], params["strategy"] ?? "z3-first");
14703
- return ok(result ?? { verified: false, strategy: params["strategy"] ?? "z3-first" });
14704
- } catch {
14705
- return ok({ verified: false, strategy: params["strategy"] ?? "z3-first" });
14719
+ const { createHybridVerifier: createHybridVerifier2 } = await Promise.resolve().then(() => (init_dist17(), dist_exports17));
14720
+ return ok(await createHybridVerifier2().verify(await buildSpecFromParams(params)));
14721
+ } catch (err) {
14722
+ return fail(`Hybrid verification failed: ${err instanceof Error ? err.message : String(err)}`);
14706
14723
  }
14707
14724
  })
14708
14725
  ];
@@ -14834,44 +14851,56 @@ function decisionsTools() {
14834
14851
  })
14835
14852
  ];
14836
14853
  }
14854
+ async function getSkillManager() {
14855
+ if (!_skillManager) {
14856
+ const { createSkillManager: createSkillManager2 } = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14857
+ _skillManager = createSkillManager2();
14858
+ }
14859
+ return _skillManager;
14860
+ }
14837
14861
  function skillsTools() {
14838
14862
  return [
14839
- tool("skills.list", "List all registered skills", "skills", [], async () => {
14863
+ tool("skills.list", "List skills registered in the current server session", "skills", [], async () => {
14840
14864
  try {
14841
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14842
- const skills = sm.listSkills?.();
14843
- return ok(skills ?? []);
14865
+ const mgr = await getSkillManager();
14866
+ return ok(mgr.getAvailableSkills().map((s) => ({ id: s.id, name: s.metadata.name, status: s.status })));
14844
14867
  } catch {
14845
- return ok([]);
14868
+ return fail("Skill-manager package not available");
14846
14869
  }
14847
14870
  }),
14848
- tool("skills.register", "Register a new skill", "skills", [
14871
+ tool("skills.register", "Register a skill (echo-executor) for this server session", "skills", [
14849
14872
  param("name", "string", "Skill name"),
14850
- param("description", "string", "Skill description"),
14851
- param("handler", "string", "Handler module path")
14873
+ param("description", "string", "Skill description", false, ""),
14874
+ param("triggers", "array", "Trigger keywords", false)
14852
14875
  ], async (params) => {
14853
14876
  try {
14854
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14855
- const result = sm.registerSkill?.({
14856
- name: params["name"],
14857
- description: params["description"],
14858
- handler: params["handler"]
14859
- });
14860
- return ok(result ?? { name: params["name"], registered: true });
14877
+ const mgr = await getSkillManager();
14878
+ const name = params["name"] ?? "skill";
14879
+ const skill = mgr.loadFromMetadata({
14880
+ name,
14881
+ version: "1.0.0",
14882
+ description: params["description"] ?? "",
14883
+ triggers: params["triggers"] ?? []
14884
+ }, async (input) => ({ skill: name, output: input }));
14885
+ return ok({ id: skill.id, name, registered: true });
14861
14886
  } catch {
14862
- return ok({ name: params["name"], registered: true });
14887
+ return fail("Skill-manager package not available");
14863
14888
  }
14864
14889
  }),
14865
- tool("skills.execute", "Execute a registered skill by name", "skills", [
14890
+ tool("skills.execute", "Execute a session skill by name (must be registered in this session first)", "skills", [
14866
14891
  param("name", "string", "Skill name to execute"),
14867
14892
  param("input", "object", "Skill input parameters", false, {})
14868
14893
  ], async (params) => {
14869
14894
  try {
14870
- const sm = await Promise.resolve().then(() => (init_dist7(), dist_exports7));
14871
- const result = sm.executeSkill?.(params["name"], params["input"]);
14872
- return ok(result ?? { executed: false, name: params["name"] });
14895
+ const mgr = await getSkillManager();
14896
+ const name = params["name"] ?? "";
14897
+ const match = mgr.getAvailableSkills().find((s) => s.metadata.name === name);
14898
+ if (!match)
14899
+ return fail(`Skill not registered in this session: ${name}`);
14900
+ const output = await match.execute(params["input"] ?? {});
14901
+ return ok({ executed: true, name, output });
14873
14902
  } catch {
14874
- return ok({ executed: false, name: params["name"] });
14903
+ return fail("Skill-manager package not available");
14875
14904
  }
14876
14905
  })
14877
14906
  ];
@@ -14899,9 +14928,11 @@ function registerDefaultTools(server) {
14899
14928
  server.registerBatch(category.tools);
14900
14929
  }
14901
14930
  }
14931
+ var _skillManager;
14902
14932
  var init_catalog = __esm({
14903
14933
  "../mcp-server/dist/catalog.js"() {
14904
14934
  "use strict";
14935
+ _skillManager = null;
14905
14936
  }
14906
14937
  });
14907
14938
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musubix2",
3
- "version": "0.5.10",
3
+ "version": "0.5.11",
4
4
  "description": "MUSUBIX2 — Specification Driven Development System",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",