qiongli 1.9.2 → 1.11.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 +34 -28
- package/lib/args.mjs +1 -1
- package/lib/cli.mjs +9 -2
- package/package.json +1 -1
- package/payload/qiongli-workflow/SKILL.md +12 -4
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/guidance_runtime.py +179 -4
- package/python-runtime/qiongli/bridges/mcp_config_wizard.py +230 -11
- package/python-runtime/qiongli/bridges/mcp_tool_handlers.py +67 -5
- package/python-runtime/qiongli/bridges/orchestrator.py +190 -4
- package/python-runtime/qiongli/bridges/project_inference.py +76 -0
- package/python-runtime/qiongli/bridges/project_manifest.py +290 -0
- package/python-runtime/qiongli/bridges/subject_runtime.py +89 -0
- package/python-runtime/qiongli/cli.py +189 -15
- package/python-runtime/qiongli/install_discovery.py +22 -14
- package/python-runtime/qiongli/self_update.py +240 -0
- package/python-runtime/qiongli/setup_wizard.py +83 -10
- package/python-runtime/qiongli/universal_installer.py +20 -1
- package/python-runtime/skills/registry.yaml +73 -73
package/README.md
CHANGED
|
@@ -8,37 +8,34 @@
|
|
|
8
8
|
npm install -g qiongli
|
|
9
9
|
qiongli setup
|
|
10
10
|
qiongli install --target all
|
|
11
|
-
qiongli
|
|
12
|
-
qiongli
|
|
13
|
-
qiongli
|
|
14
|
-
qiongli install --subject finance --target all
|
|
15
|
-
qiongli install --subject political-economy --target all
|
|
16
|
-
qiongli install --subject geoeconomics --target all
|
|
17
|
-
qiongli install --subject economics-accounting --target all
|
|
18
|
-
qiongli install --subject economics --coverage focused --target all
|
|
11
|
+
qiongli project init --project-dir .
|
|
12
|
+
qiongli project set-subject finance --project-dir .
|
|
13
|
+
qiongli project status --project-dir .
|
|
19
14
|
```
|
|
20
15
|
|
|
21
16
|
`qiongli setup` uses the bundled Python bridge and requires Python 3.12+ with `PyYAML`.
|
|
22
|
-
Use explicit `qiongli install ...` commands when you only need Node-based asset installation.
|
|
17
|
+
Use explicit `qiongli install ...` commands when you only need Node-based asset installation. For normal CLI/local plugin use, install once and keep per-project subject behavior in `.qiongli/guidance_manifest.yaml`.
|
|
23
18
|
|
|
24
19
|
Update an existing global install with:
|
|
25
20
|
|
|
26
21
|
```bash
|
|
27
|
-
|
|
28
|
-
qiongli
|
|
22
|
+
qiongli self-update --dry-run
|
|
23
|
+
qiongli self-update --yes
|
|
29
24
|
```
|
|
30
25
|
|
|
26
|
+
`qiongli self-update` delegates to `npm install -g qiongli@latest`, then refreshes the full local plugin/MCP surface with `qiongli install --target all --surface plugin --profile full --overwrite`. Use `--channel next` for the prerelease dist-tag. Marketplace plugins remain managed by the client plugin manager.
|
|
27
|
+
|
|
31
28
|
Or run without a global install:
|
|
32
29
|
|
|
33
30
|
```bash
|
|
34
|
-
npx qiongli@latest install --
|
|
35
|
-
npx qiongli@latest
|
|
31
|
+
npx qiongli@latest install --target all
|
|
32
|
+
npx qiongli@latest project status --project-dir .
|
|
36
33
|
```
|
|
37
34
|
|
|
38
35
|
For prerelease testing:
|
|
39
36
|
|
|
40
37
|
```bash
|
|
41
|
-
npx qiongli@next
|
|
38
|
+
npx qiongli@next install --target all
|
|
42
39
|
```
|
|
43
40
|
|
|
44
41
|
Remove CLI-installed workflow assets before switching install channels:
|
|
@@ -53,27 +50,36 @@ qiongli uninstall --target codex
|
|
|
53
50
|
|
|
54
51
|
The npm package contains pre-materialized `core`, `economics`, `accounting`, `business`, `finance`, `political-economy`, `geoeconomics`, and `economics-accounting` `qiongli-workflow` subject payloads in both `complete` and `focused` coverage. It does not depend on PyPI for skill installation and does not run `postinstall`.
|
|
55
52
|
|
|
56
|
-
`qiongli setup` is the interactive guided path for choosing install or upgrade, runtime surface, subject, coverage, `--mode copy|link`, install scope, CLI directory, `--overwrite` / `--no-overwrite`, optional upgrade source, literature provider
|
|
53
|
+
`qiongli setup` is the interactive guided path for choosing install or upgrade, runtime surface, subject, coverage, `--mode copy|link`, install scope, CLI directory, `--overwrite` / `--no-overwrite`, optional upgrade source, literature provider setup, and doctor verification. Provider setup defaults to one local browser page with key-access guidance for OpenAlex, Semantic Scholar, Crossref, PubMed, and arXiv; use `--provider-mode prompt` for terminal-only entry or `--provider-mode skip` to bypass it. Each prompt includes a short `Tip:` comment. It delegates to the bundled Python bridge, so it requires Python 3.12+ with `PyYAML`. If you only need Node-based asset installation, use explicit `qiongli install ...` commands.
|
|
57
54
|
|
|
58
55
|
## Global-first update model
|
|
59
56
|
|
|
60
57
|
The npm package and the installed workflow assets are separate surfaces:
|
|
61
58
|
|
|
62
59
|
- `npm install -g qiongli@latest` updates the npm CLI and bundled payload in npm's global package location.
|
|
63
|
-
- `qiongli
|
|
64
|
-
- `qiongli install --
|
|
65
|
-
- `qiongli
|
|
66
|
-
- `qiongli
|
|
67
|
-
- `
|
|
68
|
-
- `qiongli install --subject political-economy --target all` installs the full framework plus political economy specialization.
|
|
69
|
-
- `qiongli install --subject geoeconomics --target all` installs the full framework plus geoeconomics specialization.
|
|
70
|
-
- `qiongli install --subject economics --coverage focused --target all` installs the slimmer economics-focused package.
|
|
71
|
-
- `qiongli install --subject economics-accounting --target all` installs the official economics/accounting composite.
|
|
72
|
-
- `qiongli upgrade --subject accounting --target all` is the same install flow with overwrite enabled, and is the normal command after updating the npm package.
|
|
60
|
+
- `qiongli self-update --yes` performs that npm package update and then refreshes installed full local plugin/MCP surfaces from the new bundled payload.
|
|
61
|
+
- `qiongli install --target all` installs the stable full local runtime used across projects.
|
|
62
|
+
- `qiongli project init --project-dir .` creates `.qiongli/guidance_manifest.yaml` for a project.
|
|
63
|
+
- `qiongli project set-subject finance --project-dir .` changes ordinary project subject behavior without reinstalling a package.
|
|
64
|
+
- Missing `.qiongli/guidance_manifest.yaml` means implicit `active_subject: auto`: Qiongli uses core guidance, infers temporary subject or method lenses from the task, and writes auditable proposals before changing project-local state.
|
|
73
65
|
- `qiongli remove --target all` removes CLI-installed global workflow assets and generated discovery links while preserving marketplace plugins and unmanaged user files.
|
|
74
66
|
- Project directories are not required for normal install or upgrade. Use project paths only for commands that inspect or clean a specific project, such as `qiongli doctor --cwd .` or `qiongli clean --project-dir .`.
|
|
75
67
|
|
|
76
|
-
|
|
68
|
+
Advanced compatibility, Desktop ZIP, focused package, release payload, and install-surface testing examples:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
qiongli install --subject economics --target all
|
|
72
|
+
qiongli install --subject accounting --target all
|
|
73
|
+
qiongli install --subject business --target all
|
|
74
|
+
qiongli install --subject finance --target all
|
|
75
|
+
qiongli install --subject political-economy --target all
|
|
76
|
+
qiongli install --subject geoeconomics --target all
|
|
77
|
+
qiongli install --subject economics --coverage focused --target all
|
|
78
|
+
qiongli install --subject economics-accounting --target all
|
|
79
|
+
qiongli upgrade --subject accounting --target all
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`--subject` defaults to `core`, and `--coverage` defaults to `complete`, but subject install flags are advanced compatibility controls. `--subject economics`, `--subject business`, `--subject finance`, `--subject political-economy`, and `--subject geoeconomics` mean complete specialized installs, not reduced packages. `--subject accounting` means `accounting/complete`, full framework plus accounting specialization. Use `--coverage focused` only when you deliberately want the slim selected subject package and the Desktop/Web ZIP shape. Current official subjects are `core`, `economics`, `accounting`, `business`, `finance`, `political-economy`, `geoeconomics`, and the named composite `economics-accounting`; composites are not arbitrary comma-separated stacking. Public Desktop ZIP subjects are `core`, `economics`, `business`, `finance`, `political-economy`, `geoeconomics`, and `economics-accounting`, with no standalone accounting Desktop ZIP in this phase. Subject packages are specialized installs, not reduced-quality cuts. Ordinary project subject behavior changes with `qiongli project set-subject`; installed subject or coverage changes are only intentional specialized package refreshes. `qiongli check --json` reports the bundled payload subject/coverage and installed target subject/coverage.
|
|
77
83
|
|
|
78
84
|
Global assets are written under client home directories such as:
|
|
79
85
|
|
|
@@ -114,7 +120,7 @@ The full CLI MCP server exposes literature tools plus orchestrator tools:
|
|
|
114
120
|
|
|
115
121
|
`qiongli_task_run` defaults to preview mode and launches local Codex or Claude processes only when the MCP caller explicitly sends JSON boolean `run_agents: true`. It accepts `guidance_mode` (`off`, `read`, `propose`, or `apply`) for the project-local `.qiongli/` guidance layer. Preview mode echoes the selected task-run arguments and bootstrap status, but does not create formal `RESEARCH/[topic]/...` artifacts or `.qiongli/` files.
|
|
116
122
|
|
|
117
|
-
When agents are launched, the first non-`off` task run initializes `.qiongli/local_guidance.md` and `.qiongli/trace/` if needed. Formal task outputs still belong under `RESEARCH/[topic]/...`. Project-local guidance traces are written separately under `.qiongli/trace/` so missing formal outputs remain auditable without modifying bundled skills or workflow payloads.
|
|
123
|
+
When agents are launched, project subject context comes from `.qiongli/guidance_manifest.yaml`; if it is missing, the effective subject is `active_subject: auto`. The first non-`off` task run initializes `.qiongli/local_guidance.md` and `.qiongli/trace/` if needed. Formal task outputs still belong under `RESEARCH/[topic]/...`. Project-local guidance traces are written separately under `.qiongli/trace/` so missing formal outputs remain auditable without modifying bundled skills or workflow payloads.
|
|
118
124
|
|
|
119
125
|
Use `stdio` when the desktop client can launch a local command. Use HTTP only for clients that require an endpoint:
|
|
120
126
|
|
|
@@ -122,7 +128,7 @@ Use `stdio` when the desktop client can launch a local command. Use HTTP only fo
|
|
|
122
128
|
qiongli mcp serve --transport http --host 127.0.0.1 --port 8765
|
|
123
129
|
```
|
|
124
130
|
|
|
125
|
-
Provider keys can be configured with `qiongli mcp configure ...`, `qiongli provider setup`, or the MCP tool `qiongli_configure_provider`. Status and tool output are redacted; raw key values are not printed.
|
|
131
|
+
Provider keys can be configured with `qiongli mcp configure ...`, `qiongli provider setup`, or the MCP tool `qiongli_configure_provider`. The setup page includes links and short steps for getting each supported key, and marks arXiv as available without an API key. Status and tool output are redacted; raw key values are not printed.
|
|
126
132
|
|
|
127
133
|
Runtime `--custom-dir` customization is not supported by npm in this phase. Use the source checkout when you need local custom overlays, profiles, or skills:
|
|
128
134
|
|
package/lib/args.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const TARGETS = new Set(['codex', 'claude', 'antigravity', 'hermes', 'all']);
|
|
2
2
|
const MODES = new Set(['copy', 'link']);
|
|
3
3
|
const BRIDGE_COMMANDS = new Set(['doctor', 'guidance', 'task-run', 'team-run', 'parallel', 'chain', 'role', 'single', 'code-build', 'task-plan']);
|
|
4
|
-
const PYTHON_CLI_COMMANDS = new Set(['setup', 'mcp']);
|
|
4
|
+
const PYTHON_CLI_COMMANDS = new Set(['setup', 'mcp', 'self-update', 'update']);
|
|
5
5
|
|
|
6
6
|
export function parseArgv(argv) {
|
|
7
7
|
const [rawCommand = 'help', ...restArgs] = argv;
|
package/lib/cli.mjs
CHANGED
|
@@ -8,11 +8,13 @@ import {
|
|
|
8
8
|
} from './python-runtime.mjs';
|
|
9
9
|
|
|
10
10
|
const BRIDGE_COMMANDS = new Set(['doctor', 'guidance', 'task-run', 'team-run', 'parallel', 'chain', 'role', 'single', 'code-build', 'task-plan']);
|
|
11
|
-
const PYTHON_CLI_COMMANDS = new Set(['setup', 'mcp']);
|
|
11
|
+
const PYTHON_CLI_COMMANDS = new Set(['setup', 'mcp', 'self-update', 'update']);
|
|
12
|
+
const SELF_UPDATE_COMMANDS = new Set(['self-update', 'update']);
|
|
12
13
|
|
|
13
14
|
export async function main(argv, {
|
|
14
15
|
stdout = process.stdout,
|
|
15
16
|
stderr = process.stderr,
|
|
17
|
+
env = process.env,
|
|
16
18
|
runBridgeCommand = defaultRunBridgeCommand,
|
|
17
19
|
runPythonCliCommand = defaultRunPythonCliCommand,
|
|
18
20
|
} = {}) {
|
|
@@ -115,7 +117,10 @@ export async function main(argv, {
|
|
|
115
117
|
}
|
|
116
118
|
|
|
117
119
|
if (PYTHON_CLI_COMMANDS.has(parsed.command)) {
|
|
118
|
-
|
|
120
|
+
const childEnv = SELF_UPDATE_COMMANDS.has(parsed.command)
|
|
121
|
+
? { ...env, QIONGLI_INSTALL_CHANNEL: 'npm' }
|
|
122
|
+
: env;
|
|
123
|
+
return runPythonCliCommand({ packageRoot: root, args: [parsed.command, ...parsed.rest], env: childEnv });
|
|
119
124
|
}
|
|
120
125
|
|
|
121
126
|
if (BRIDGE_COMMANDS.has(parsed.command)) {
|
|
@@ -162,6 +167,8 @@ Usage:
|
|
|
162
167
|
qiongli check [--json]
|
|
163
168
|
qiongli clean --project-dir . [--globals]
|
|
164
169
|
qiongli runtime doctor
|
|
170
|
+
qiongli self-update [--channel stable|next] [--yes]
|
|
171
|
+
qiongli update [--dry-run]
|
|
165
172
|
qiongli setup [--dry-run] [--project-dir .] [--no-doctor]
|
|
166
173
|
qiongli mcp serve --transport stdio
|
|
167
174
|
qiongli mcp doctor --json
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qiongli
|
|
3
|
-
description: "Qiongli version: v1.
|
|
3
|
+
description: "Qiongli version: v1.11.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.11.0`
|
|
13
13
|
|
|
14
14
|
## Quick Start
|
|
15
15
|
|
|
@@ -20,7 +20,7 @@ Installed Qiongli workflow version: `v1.9.2`
|
|
|
20
20
|
5. Apply quality gates before submission tasks (`H1`, `H2`).
|
|
21
21
|
6. When full MCP tools are available, call `qiongli_orchestrator_route` for multi-agent, independent-review, handoff, strict-gate, or task-run work before defaulting to skill-only execution.
|
|
22
22
|
7. For orchestrator `task-run`, declare controller ownership when relevant with `--execution-mode`, `--controller`, `--primary`, `--reviewer`, `--verifier`, and `--solo-role-gates`.
|
|
23
|
-
8.
|
|
23
|
+
8. Check project-local guidance before drafting or reviewing: `.qiongli/guidance_manifest.yaml`, `.qiongli/local_guidance.md`, and `.qiongli/guidance.d/*.md`. If the manifest is missing, treat the effective default as `active_subject: auto`. Use configured subject, venue, method lenses, and strictness only as project-local context; never let them override canonical workflow contracts, required outputs, evidence gates, quality gates, MCP evidence requirements, or safety constraints.
|
|
24
24
|
|
|
25
25
|
## Cross-Platform Trigger Contract
|
|
26
26
|
|
|
@@ -59,7 +59,15 @@ The ambiguity response should inspect available artifacts first, then ask one bl
|
|
|
59
59
|
|
|
60
60
|
### Project-Local Guidance
|
|
61
61
|
|
|
62
|
-
Before skill-only execution, check the current project root for
|
|
62
|
+
Before skill-only execution, check the current project root for:
|
|
63
|
+
|
|
64
|
+
- `.qiongli/guidance_manifest.yaml`
|
|
65
|
+
- `.qiongli/local_guidance.md`
|
|
66
|
+
- `.qiongli/guidance.d/*.md`
|
|
67
|
+
|
|
68
|
+
If `.qiongli/guidance_manifest.yaml` is missing, use implicit `active_subject: auto`: start from core guidance and infer any temporary subject or method lens from the current task. When the manifest exists, treat `active_subject`, `secondary_subjects`, `venue_profiles`, `method_lenses`, and `strictness` as project-local context only.
|
|
69
|
+
|
|
70
|
+
Load concise project rules when present, cite the loaded paths in the working notes, and apply them only where they do not conflict with Qiongli contracts. Project-local guidance must never override canonical workflow contracts, required outputs, evidence gates, quality gates, MCP evidence requirements, safety constraints, or the task packet. If local guidance conflicts with any required output or gate, follow the canonical requirement and record the conflict.
|
|
63
71
|
|
|
64
72
|
## Workflow Entry Points
|
|
65
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
v1.
|
|
1
|
+
v1.11.0
|