@contextium/cli 1.0.4 → 1.0.5
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
|
-
{"version":3,"file":"new-file.d.ts","sourceRoot":"","sources":["../../src/commands/new-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"new-file.d.ts","sourceRoot":"","sources":["../../src/commands/new-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,cAAc,SA+FvB,CAAA"}
|
|
@@ -8,8 +8,9 @@ export const newFileCommand = new Command('new')
|
|
|
8
8
|
.argument('<library>', 'Context library/project name or slug')
|
|
9
9
|
.requiredOption('-t, --title <title>', 'File title')
|
|
10
10
|
.requiredOption('-p, --path <path>', 'File path (e.g. "guide.md")')
|
|
11
|
-
.option('-c, --content <text>', 'File content')
|
|
11
|
+
.option('-c, --content <text>', 'File content (avoid for long or multi-line content — use --stdin or -f instead)')
|
|
12
12
|
.option('-f, --from-file <filepath>', 'Read content from a local file')
|
|
13
|
+
.option('--stdin', 'Read content from stdin (pipe content in)')
|
|
13
14
|
.option('-w, --workspace <slug>', 'Workspace name or slug')
|
|
14
15
|
.option('--folder <id>', 'Folder ID to place file in')
|
|
15
16
|
.action(async (libraryName, options) => {
|
|
@@ -43,13 +44,23 @@ export const newFileCommand = new Command('new')
|
|
|
43
44
|
spinner.fail(`Context library '${libraryName}' not found`);
|
|
44
45
|
process.exit(1);
|
|
45
46
|
}
|
|
46
|
-
// Read content
|
|
47
|
+
// Read content — stdin takes priority, then -f, then -c
|
|
47
48
|
let content = options.content || '';
|
|
48
49
|
if (options.fromFile) {
|
|
49
50
|
content = await fs.readFile(options.fromFile, 'utf-8');
|
|
50
51
|
}
|
|
51
|
-
if (
|
|
52
|
-
spinner.
|
|
52
|
+
if (options.stdin) {
|
|
53
|
+
spinner.stop();
|
|
54
|
+
content = await new Promise((resolve, reject) => {
|
|
55
|
+
const chunks = [];
|
|
56
|
+
process.stdin.on('data', (chunk) => chunks.push(chunk));
|
|
57
|
+
process.stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')));
|
|
58
|
+
process.stdin.on('error', reject);
|
|
59
|
+
});
|
|
60
|
+
spinner.start();
|
|
61
|
+
}
|
|
62
|
+
if (!content || content.trim() === '') {
|
|
63
|
+
spinner.fail('File content is required. Use --stdin (pipe content in), -f <filepath>, or -c <text>.');
|
|
53
64
|
process.exit(1);
|
|
54
65
|
}
|
|
55
66
|
const data = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-file.js","sourceRoot":"","sources":["../../src/commands/new-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,aAAa,CAAA;AAE5B,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KAC7C,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC7D,cAAc,CAAC,qBAAqB,EAAE,YAAY,CAAC;KACnD,cAAc,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;KAClE,MAAM,CAAC,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"new-file.js","sourceRoot":"","sources":["../../src/commands/new-file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/ium/new.md
CHANGED
|
@@ -6,24 +6,26 @@ allowed-tools:
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<objective>
|
|
9
|
-
Create a new file in a Contextium context library. Always
|
|
9
|
+
Create a new file in a Contextium context library. Always pipe content via stdin using a single-quoted heredoc — never use -c to inline content as special characters will be mangled by the shell.
|
|
10
10
|
</objective>
|
|
11
11
|
|
|
12
12
|
<process>
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
If the user has not specified a library, list available libraries first:
|
|
15
14
|
```bash
|
|
16
|
-
contextium
|
|
15
|
+
contextium libraries -w <workspace>
|
|
17
16
|
```
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
Then create the file by piping content through stdin using a single-quoted heredoc (the `'EOF'` quotes prevent all shell interpolation):
|
|
19
|
+
|
|
20
20
|
```bash
|
|
21
|
-
contextium
|
|
21
|
+
cat << 'EOF' | contextium new <library-name> -t "<title>" -p "<path.md>" --stdin -w <workspace>
|
|
22
|
+
<full file content here>
|
|
23
|
+
EOF
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
Rules:
|
|
25
|
-
- ALWAYS
|
|
26
|
-
- The
|
|
27
|
-
-
|
|
27
|
+
- ALWAYS use the heredoc+stdin pattern — never use -c to pass content inline
|
|
28
|
+
- The single quotes around EOF (`<< 'EOF'`) are mandatory — they prevent shell interpolation of $variables, backticks, and special characters
|
|
29
|
+
- Write the complete, fully-formed content inside the heredoc — not a placeholder
|
|
28
30
|
- If no workspace is set in .contextiumrc, ask the user which workspace to use
|
|
29
31
|
</process>
|