qiongli 1.6.0 → 1.7.0
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.
- package/README.md +8 -2
- package/lib/cli.mjs +2 -0
- package/lib/installer.mjs +39 -11
- package/package.json +1 -1
- package/payload/qiongli-workflow/SKILL.md +2 -2
- package/payload/qiongli-workflow/VERSION +1 -1
- package/payload/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/accounting/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/accounting/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/accounting/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/accounting/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/accounting/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/accounting/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/business/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/business/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/business/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/business/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/business/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/business/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/core/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/core/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/core/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/core/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/core/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/core/focused/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/economics/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/economics/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/economics/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/economics/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/economics/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/economics/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/economics-accounting/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/economics-accounting/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/economics-accounting/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/economics-accounting/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/economics-accounting/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/economics-accounting/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/finance/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/finance/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/finance/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/finance/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/finance/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/finance/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/geoeconomics/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/geoeconomics/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/geoeconomics/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/geoeconomics/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/geoeconomics/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/geoeconomics/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/payload/subjects/political-economy/complete/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/political-economy/complete/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/political-economy/complete/qiongli-workflow/skills/registry.yaml +73 -73
- package/payload/subjects/political-economy/focused/qiongli-workflow/SKILL.md +5 -5
- package/payload/subjects/political-economy/focused/qiongli-workflow/VERSION +1 -1
- package/payload/subjects/political-economy/focused/qiongli-workflow/skills/registry.yaml +37 -37
- package/python-runtime/qiongli/__init__.py +1 -1
- package/python-runtime/qiongli/bridges/literature_mcp_tools.py +234 -0
- package/python-runtime/qiongli/bridges/mcp_cli.py +23 -7
- package/python-runtime/qiongli/bridges/mcp_client_config.py +465 -0
- package/python-runtime/qiongli/bridges/mcp_tool_handlers.py +11 -0
- package/python-runtime/qiongli/bridges/provider_config.py +9 -7
- package/python-runtime/qiongli/bridges/providers/arxiv_client.py +146 -0
- package/python-runtime/qiongli/bridges/providers/crossref_client.py +133 -0
- package/python-runtime/qiongli/bridges/providers/literature_query.py +23 -1
- package/python-runtime/qiongli/bridges/providers/openalex_client.py +116 -0
- package/python-runtime/qiongli/bridges/providers/pubmed_client.py +125 -0
- package/python-runtime/qiongli/cli.py +14 -1
- package/python-runtime/qiongli/setup_wizard.py +1 -1
- package/python-runtime/qiongli/subject_materializer.py +3 -3
- package/python-runtime/qiongli/universal_installer.py +67 -3
- package/python-runtime/scripts/build_plugin_artifacts.py +3 -3
- package/python-runtime/scripts/release_automation.sh +6 -0
- package/python-runtime/scripts/release_ready.sh +10 -0
- package/python-runtime/scripts/update_stable_download_sections.py +181 -0
- package/python-runtime/skills/registry.yaml +73 -73
package/README.md
CHANGED
|
@@ -88,7 +88,9 @@ Advanced bridge commands such as `setup`, `doctor`, `task-run`, and `team-run` u
|
|
|
88
88
|
|
|
89
89
|
## MCP server
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
`qiongli mcp serve --transport stdio` is the unified full CLI MCP server. It exposes literature provider tools plus orchestrator and task-run tools from one server. The zero-dependency Node literature-provider MCP bundled by plugins remains a marketplace/MCPB fallback for environments that cannot run the full CLI.
|
|
92
|
+
|
|
93
|
+
The Python CLI path (`qiongli install --profile full --target codex`) performs managed Codex MCP registration for the unified server. The npm asset installer stays conservative: explicit npm installs can report MCP guidance with `qiongli install --parts globals,mcp --dry-run`, but they do not rewrite client MCP config.
|
|
92
94
|
|
|
93
95
|
The npm launcher also delegates MCP commands to the bundled Python bridge:
|
|
94
96
|
|
|
@@ -100,9 +102,13 @@ qiongli mcp config example --target claude-code --json
|
|
|
100
102
|
qiongli mcp config example --target hermes --json
|
|
101
103
|
```
|
|
102
104
|
|
|
103
|
-
The full CLI MCP server exposes
|
|
105
|
+
The full CLI MCP server exposes literature tools plus orchestrator tools:
|
|
104
106
|
|
|
107
|
+
- `qiongli_literature_status`
|
|
108
|
+
- `qiongli_literature_search`
|
|
109
|
+
- `qiongli_literature_export_evidence`
|
|
105
110
|
- `qiongli_orchestrator_doctor`
|
|
111
|
+
- `qiongli_orchestrator_route`
|
|
106
112
|
- `qiongli_task_plan`
|
|
107
113
|
- `qiongli_task_run`
|
|
108
114
|
|
package/lib/cli.mjs
CHANGED
|
@@ -41,6 +41,7 @@ export async function main(argv, {
|
|
|
41
41
|
dryRun: parsed.options.dryRun,
|
|
42
42
|
subject: parsed.options.subject,
|
|
43
43
|
coverage: parsed.options.coverage,
|
|
44
|
+
parts: parsed.options.parts,
|
|
44
45
|
});
|
|
45
46
|
} catch (error) {
|
|
46
47
|
stderr.write(`[qiongli] ${error.message}\n`);
|
|
@@ -177,6 +178,7 @@ Options:
|
|
|
177
178
|
--subject core|economics|accounting|business|finance|economics-accounting
|
|
178
179
|
--coverage complete|focused
|
|
179
180
|
--mode copy|link
|
|
181
|
+
--parts globals,project,cli,mcp
|
|
180
182
|
--overwrite
|
|
181
183
|
--dry-run
|
|
182
184
|
--no-doctor
|
package/lib/installer.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
|
|
5
5
|
const TARGETS = ['codex', 'claude', 'antigravity', 'hermes'];
|
|
6
|
-
const PARTS = ['globals', 'project', 'cli'];
|
|
6
|
+
const PARTS = ['globals', 'project', 'cli', 'mcp'];
|
|
7
7
|
const LEGACY_SKILL_NAME = 'research-paper-workflow';
|
|
8
8
|
|
|
9
9
|
export function resolveTargetPaths({ env = process.env } = {}) {
|
|
@@ -65,6 +65,7 @@ export function installSkills({
|
|
|
65
65
|
dryRun = false,
|
|
66
66
|
subject = 'core',
|
|
67
67
|
coverage = 'complete',
|
|
68
|
+
parts = '',
|
|
68
69
|
env = process.env,
|
|
69
70
|
platform = process.platform,
|
|
70
71
|
} = {}) {
|
|
@@ -80,22 +81,31 @@ export function installSkills({
|
|
|
80
81
|
const sourceCoverage = readSkillCoverage(workflowSrc) || coverage;
|
|
81
82
|
const actions = [];
|
|
82
83
|
const legacyResidues = [];
|
|
84
|
+
const selectedParts = normalizeParts(parts);
|
|
85
|
+
const installGlobals = !selectedParts || selectedParts.includes('globals');
|
|
86
|
+
const installMcp = selectedParts?.includes('mcp') || false;
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
if (installGlobals) {
|
|
89
|
+
for (const item of selectedTargets) {
|
|
90
|
+
const dest = targetPaths[item];
|
|
91
|
+
const legacyPath = path.join(path.dirname(dest), LEGACY_SKILL_NAME);
|
|
92
|
+
if (fs.existsSync(legacyPath)) {
|
|
93
|
+
const status = removeLegacySkillPath(legacyPath, LEGACY_SKILL_NAME, dryRun);
|
|
94
|
+
legacyResidues.push({ target: item, legacyName: LEGACY_SKILL_NAME, path: legacyPath, status });
|
|
95
|
+
}
|
|
91
96
|
|
|
92
|
-
|
|
97
|
+
actions.push(copySkill({ src: workflowSrc, dest, mode, overwrite, dryRun, sourceVersion, sourceSubject, sourceCoverage }));
|
|
93
98
|
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
if (item === 'claude' && actions.at(-1).status !== 'skip') {
|
|
100
|
+
actions.push(...installWorkflowDiscovery({ target: item, skillDest: dest, dryRun, platform }));
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
|
|
105
|
+
if (installMcp) {
|
|
106
|
+
actions.push(mcpGuidanceAction({ dryRun }));
|
|
107
|
+
}
|
|
108
|
+
|
|
99
109
|
return { sourceVersion, sourceSubject, sourceCoverage, actions, legacyResidues, targetPaths };
|
|
100
110
|
}
|
|
101
111
|
|
|
@@ -196,6 +206,15 @@ export function removeAssets({
|
|
|
196
206
|
actions.push({ label: 'CLI', status: 'skip', path: '<npm package>', detail: 'remove with npm uninstall -g qiongli' });
|
|
197
207
|
}
|
|
198
208
|
|
|
209
|
+
if (selectedParts.includes('mcp')) {
|
|
210
|
+
actions.push({
|
|
211
|
+
label: 'MCP',
|
|
212
|
+
status: 'manual',
|
|
213
|
+
path: '<client config>',
|
|
214
|
+
detail: 'Use qiongli remove --parts mcp through the Python CLI to remove managed MCP config',
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
199
218
|
return { actions };
|
|
200
219
|
}
|
|
201
220
|
|
|
@@ -378,6 +397,15 @@ function installWorkflowDiscovery({ target, skillDest, dryRun, platform }) {
|
|
|
378
397
|
return actions;
|
|
379
398
|
}
|
|
380
399
|
|
|
400
|
+
function mcpGuidanceAction({ dryRun }) {
|
|
401
|
+
return {
|
|
402
|
+
label: 'MCP',
|
|
403
|
+
status: dryRun ? 'dry-run' : 'manual',
|
|
404
|
+
path: '<client config>',
|
|
405
|
+
detail: 'Use qiongli mcp serve --transport stdio as the unified full MCP server',
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
|
|
381
409
|
function removeWorkflowDiscovery({ target, skillDest, dryRun }) {
|
|
382
410
|
if (target !== 'claude') {
|
|
383
411
|
return [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qiongli
|
|
3
|
-
description: Qiongli version: v1.
|
|
3
|
+
description: Qiongli version: v1.7.0. Cross-platform academic research workflow for Codex, Claude / Claude Code, and CLI. Use for academic research lifecycle work: paper planning, literature review, paper reading, gap finding, study design, manuscript writing, statistics, analysis code, reproducibility, proofread, rebuttal, submission, presentation, and stage-aware grill / critique. Route natural academic requests even when the user does not explicitly invoke $qiongli or a slash command.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Qiongli Academic Workflow
|
|
@@ -9,7 +9,7 @@ Run a model-agnostic paper workflow using shared Task IDs and artifact contracts
|
|
|
9
9
|
|
|
10
10
|
This is a **self-contained skill package**. All assets needed for execution — workflows, skill specifications, output templates, standards, and agent roles — are bundled in subdirectories of this package. No external repo access is needed.
|
|
11
11
|
|
|
12
|
-
Installed Qiongli workflow version: `v1.
|
|
12
|
+
Installed Qiongli workflow version: `v1.7.0`
|
|
13
13
|
|
|
14
14
|
## Quick Start
|
|
15
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
v1.
|
|
1
|
+
v1.7.0
|