create-academic-research 0.1.3 → 0.1.4
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 +2 -2
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.js +28 -3
- package/dist/src/project.js +2 -2
- package/package.json +1 -1
- package/template/package.json +1 -1
package/README.md
CHANGED
|
@@ -166,8 +166,8 @@ Releases are tag-driven. Update `package.json` and `package-lock.json`, commit
|
|
|
166
166
|
the change, create `vX.Y.Z`, and push the tag:
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
|
-
git tag -a v0.1.
|
|
170
|
-
git push origin main v0.1.
|
|
169
|
+
git tag -a v0.1.4 -m "v0.1.4"
|
|
170
|
+
git push origin main v0.1.4
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
Once the GitHub repository is public, the release workflow validates the tag
|
package/dist/src/cli.d.ts
CHANGED
package/dist/src/cli.js
CHANGED
|
@@ -16,8 +16,8 @@ const MCP_FLAGS = flagSchema(["help"], ["root", "agent"]);
|
|
|
16
16
|
export async function main(argv = process.argv.slice(2), mode = "create") {
|
|
17
17
|
try {
|
|
18
18
|
if (mode === "create")
|
|
19
|
-
return createMain(argv);
|
|
20
|
-
return lifecycleMain(argv);
|
|
19
|
+
return await createMain(argv);
|
|
20
|
+
return await lifecycleMain(argv);
|
|
21
21
|
}
|
|
22
22
|
catch (error) {
|
|
23
23
|
console.error(error instanceof Error ? error.message : String(error));
|
|
@@ -61,7 +61,7 @@ async function createMain(argv) {
|
|
|
61
61
|
: undefined;
|
|
62
62
|
const installMcpToolsLock = flagBool(parsed.flags, "install-mcp-tools") ? true : undefined;
|
|
63
63
|
const answers = interactive
|
|
64
|
-
? await
|
|
64
|
+
? await askInteractiveCreateOptions(defaults, {
|
|
65
65
|
installSkills: installSkillsLock,
|
|
66
66
|
installMcpTools: installMcpToolsLock
|
|
67
67
|
})
|
|
@@ -83,6 +83,10 @@ async function createMain(argv) {
|
|
|
83
83
|
console.log("Next: cd into the project and run `npx academic-research doctor`.");
|
|
84
84
|
return 0;
|
|
85
85
|
}
|
|
86
|
+
async function askInteractiveCreateOptions(defaults, locks) {
|
|
87
|
+
console.log(formatInteractiveCreateGuide());
|
|
88
|
+
return askCreateOptions(defaults, locks);
|
|
89
|
+
}
|
|
86
90
|
async function lifecycleMain(argv) {
|
|
87
91
|
const command = argv[0] ?? "help";
|
|
88
92
|
if (command === "--help" || command === "-h") {
|
|
@@ -388,6 +392,27 @@ function mcpInstallMode(installCommand, runtimeCommand) {
|
|
|
388
392
|
return installCommand;
|
|
389
393
|
return runtimeCommand ? "runtime-only" : "manual";
|
|
390
394
|
}
|
|
395
|
+
export function formatInteractiveCreateGuide() {
|
|
396
|
+
const presetLines = Object.entries(AGENT_STACK.presets).map(([name, preset]) => ` ${name.padEnd(10)} ${preset.description}`);
|
|
397
|
+
return [
|
|
398
|
+
"Setup choices:",
|
|
399
|
+
"",
|
|
400
|
+
"Capability presets:",
|
|
401
|
+
...presetLines,
|
|
402
|
+
"",
|
|
403
|
+
"Agent target:",
|
|
404
|
+
" universal Default. Installs one shared project-local .agents/skills copy.",
|
|
405
|
+
" codex Codex-specific project-local skill install.",
|
|
406
|
+
" auto Lets the upstream skills CLI detect agents; may install to multiple agent loaders.",
|
|
407
|
+
"",
|
|
408
|
+
"Skill and MCP behavior:",
|
|
409
|
+
" Skills are copied into the project, not installed globally.",
|
|
410
|
+
" MCP records are written into configs/capabilities.yaml and docs/agent/generated/.",
|
|
411
|
+
" MCP installers are optional and run only finite installer commands.",
|
|
412
|
+
" runtime-only MCP servers are configured for the MCP client but have no install step.",
|
|
413
|
+
""
|
|
414
|
+
].join("\n");
|
|
415
|
+
}
|
|
391
416
|
function printCreateHelp() {
|
|
392
417
|
console.log([
|
|
393
418
|
"Usage: create-academic-research <project-name> [options]",
|
package/dist/src/project.js
CHANGED
|
@@ -92,7 +92,7 @@ export async function createProject(options) {
|
|
|
92
92
|
const preset = options.preset ?? "default";
|
|
93
93
|
const agent = options.agent ?? DEFAULT_AGENT;
|
|
94
94
|
if (!AGENT_STACK.presets[preset]) {
|
|
95
|
-
throw new Error(`unknown capability preset: ${preset}`);
|
|
95
|
+
throw new Error(`unknown capability preset: ${preset}. Expected one of: ${Object.keys(AGENT_STACK.presets).join(", ")}`);
|
|
96
96
|
}
|
|
97
97
|
await mkdir(dirname(target), { recursive: true });
|
|
98
98
|
await copyDirectory(templateRoot, target);
|
|
@@ -205,7 +205,7 @@ async function writeGeneratedPackageJson(root, { slug }) {
|
|
|
205
205
|
const path = join(root, "package.json");
|
|
206
206
|
const data = await readJson(path);
|
|
207
207
|
const existingSpec = data.devDependencies?.["create-academic-research"];
|
|
208
|
-
const packageSpec = process.env.CREATE_ACADEMIC_RESEARCH_PACKAGE_SPEC ?? existingSpec ?? "
|
|
208
|
+
const packageSpec = process.env.CREATE_ACADEMIC_RESEARCH_PACKAGE_SPEC ?? existingSpec ?? "0.1.4";
|
|
209
209
|
data.name = slug;
|
|
210
210
|
data.devDependencies = {
|
|
211
211
|
...(data.devDependencies ?? {}),
|
package/package.json
CHANGED