refactor(mcp): extract order services into independent project

Remove Kingdee sync, business CLI/MCP tools, and internal order-query routing
now owned by the separate kingdee-orders-mcp project. Keep Wiki retrieval,
file assets and ingest available in code while its deployed service is off.
Retain legacy response fields with business access disabled, and document
migration ownership and rollback without exposing credentials or data.

Validation: 174 Wiki tests pass. Independent order service verified with
36 template parity checks, authenticated HTTP queries, and a real sync.
This commit is contained in:
Codex
2026-10-31 07:41:18 +00:00
parent 6c451c3eb6
commit 2396bd2d3e
25 changed files with 47 additions and 5793 deletions
+4 -12
View File
@@ -131,18 +131,10 @@ class McpQueryTests(unittest.TestCase):
self.assertIn("public only", prompt)
self.assertIn("normal wiki-query log entry is allowed", prompt)
self.assertIn("wiki-ingest, wiki-update, wiki-rebuild", prompt)
self.assertIn("obsidian-wiki business schema --json", prompt)
self.assertIn("obsidian-wiki business template", prompt)
self.assertIn("obsidian-wiki business sql", prompt)
self.assertIn("read-only business facts", prompt)
self.assertIn("hybrid business + wiki questions", prompt)
self.assertIn("two read-only tracks", prompt)
self.assertIn("parallel subagents when the host supports them", prompt)
self.assertIn("run those tracks sequentially", prompt)
self.assertIn("customer, product, salesperson, project, delivery, anomaly, ranking, or quality", prompt)
self.assertNotIn("spawn read-only subagents", prompt)
self.assertNotIn("obsidian-wiki business", prompt)
self.assertIn("independent kingdee-orders MCP", prompt)
self.assertIn("Do not read legacy order databases", prompt)
self.assertIn("Do not run arbitrary shell commands", prompt)
self.assertIn("If Visibility is public only, do not use business facts", prompt)
self.assertNotIn("shell commands, file writes", prompt)
self.assertNotIn("rm -rf", prompt)
@@ -200,7 +192,7 @@ class McpQueryTests(unittest.TestCase):
self.assertEqual(result["answer_markdown"], result["answer"])
self.assertEqual(result["citations"], ["Mini FAKRA", "BJD"])
self.assertTrue(result["used_business_facts"])
self.assertFalse(result["used_business_facts"])
self.assertTrue(result["used_wiki"])
self.assertEqual(result["data_freshness"], ["2026-06-02"])
self.assertEqual(result["confidence"], "high")