@contextium/cli 1.0.0 → 1.0.1
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/dist/commands/setup-claude.d.ts.map +1 -1
- package/dist/commands/setup-claude.js +18 -13
- package/dist/commands/setup-claude.js.map +1 -1
- package/dist/lib/claude-permissions.d.ts +1 -0
- package/dist/lib/claude-permissions.d.ts.map +1 -1
- package/dist/lib/claude-permissions.js +24 -0
- package/dist/lib/claude-permissions.js.map +1 -1
- package/hooks/ium-statusline.js +59 -0
- package/package.json +3 -3
- package/skills/ium/update.md +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-claude.d.ts","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"setup-claude.d.ts","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,eAAO,MAAM,kBAAkB,SAqJ3B,CAAA"}
|
|
@@ -4,7 +4,7 @@ import path from 'path';
|
|
|
4
4
|
import os from 'os';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
import { chalk, ora } from '../lib/output.js';
|
|
7
|
-
import { installUpdateHook } from '../lib/claude-permissions.js';
|
|
7
|
+
import { installUpdateHook, installStatuslineHook } from '../lib/claude-permissions.js';
|
|
8
8
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
9
|
export const setupClaudeCommand = new Command('setup-claude')
|
|
10
10
|
.description('Configure permissions for Claude Code CLI (Anthropic\'s AI coding assistant)')
|
|
@@ -51,19 +51,13 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
|
|
|
51
51
|
if (!settings.permissions.allow) {
|
|
52
52
|
settings.permissions.allow = [];
|
|
53
53
|
}
|
|
54
|
-
//
|
|
54
|
+
// Add permission if not already present
|
|
55
55
|
const permission = 'Bash contextium *';
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
console.log(chalk.dim(`Permission: ${permission}`));
|
|
61
|
-
return;
|
|
56
|
+
const permissionAlreadySet = settings.permissions.allow.includes(permission);
|
|
57
|
+
if (!permissionAlreadySet) {
|
|
58
|
+
settings.permissions.allow.push(permission);
|
|
59
|
+
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
62
60
|
}
|
|
63
|
-
// Add permission
|
|
64
|
-
settings.permissions.allow.push(permission);
|
|
65
|
-
// Write settings back
|
|
66
|
-
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
67
61
|
spinner.succeed('Claude Code permissions configured!');
|
|
68
62
|
// Install /ium: slash commands to ~/.claude/commands/ium/
|
|
69
63
|
const commandsDestDir = path.join(os.homedir(), '.claude', 'commands', 'ium');
|
|
@@ -82,6 +76,7 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
|
|
|
82
76
|
// Non-fatal — skills dir may not exist in older installs
|
|
83
77
|
}
|
|
84
78
|
let hookInstalled = false;
|
|
79
|
+
let statuslineInstalled = false;
|
|
85
80
|
if (isGlobal) {
|
|
86
81
|
try {
|
|
87
82
|
await installUpdateHook();
|
|
@@ -90,6 +85,13 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
|
|
|
90
85
|
catch {
|
|
91
86
|
// Non-fatal — hook install failure shouldn't block setup
|
|
92
87
|
}
|
|
88
|
+
try {
|
|
89
|
+
await installStatuslineHook();
|
|
90
|
+
statuslineInstalled = true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Non-fatal
|
|
94
|
+
}
|
|
93
95
|
}
|
|
94
96
|
console.log();
|
|
95
97
|
console.log(chalk.green('✓') + ' Contextium CLI commands will no longer require permission prompts');
|
|
@@ -99,7 +101,10 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
|
|
|
99
101
|
console.log(chalk.green('✓') + ' /ium: slash commands installed to ~/.claude/commands/ium/');
|
|
100
102
|
}
|
|
101
103
|
if (hookInstalled) {
|
|
102
|
-
console.log(chalk.green('✓') + ' Update check hook installed
|
|
104
|
+
console.log(chalk.green('✓') + ' Update check hook installed');
|
|
105
|
+
}
|
|
106
|
+
if (statuslineInstalled) {
|
|
107
|
+
console.log(chalk.green('✓') + ' Status line installed — updates will appear in purple as ⬆ /ium:update');
|
|
103
108
|
}
|
|
104
109
|
console.log();
|
|
105
110
|
if (isGlobal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,aAAa,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,5 @@ export declare function getSettingsPath(scope: 'global' | 'project'): string;
|
|
|
2
2
|
export declare function isClaudePermissionConfigured(scope?: 'global' | 'project'): Promise<boolean>;
|
|
3
3
|
export declare function addClaudePermission(scope: 'global' | 'project'): Promise<void>;
|
|
4
4
|
export declare function installUpdateHook(): Promise<void>;
|
|
5
|
+
export declare function installStatuslineHook(): Promise<void>;
|
|
5
6
|
//# sourceMappingURL=claude-permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-permissions.d.ts","sourceRoot":"","sources":["../../src/lib/claude-permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-permissions.d.ts","sourceRoot":"","sources":["../../src/lib/claude-permissions.ts"],"names":[],"mappings":"AAWA,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAInE;AAED,wBAAsB,4BAA4B,CAAC,KAAK,GAAE,QAAQ,GAAG,SAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ3G;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkCvD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB3D"}
|
|
@@ -4,6 +4,7 @@ import os from 'os';
|
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
const PERMISSION = 'Bash contextium *';
|
|
6
6
|
const HOOK_FILENAME = 'ium-check-update.js';
|
|
7
|
+
const STATUSLINE_FILENAME = 'ium-statusline.js';
|
|
7
8
|
// hooks/ is two levels up from dist/lib/ (compiled output location)
|
|
8
9
|
const HOOKS_SRC_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..', 'hooks');
|
|
9
10
|
export function getSettingsPath(scope) {
|
|
@@ -73,4 +74,27 @@ export async function installUpdateHook() {
|
|
|
73
74
|
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
74
75
|
}
|
|
75
76
|
}
|
|
77
|
+
export async function installStatuslineHook() {
|
|
78
|
+
const hooksDestDir = path.join(os.homedir(), '.claude', 'hooks');
|
|
79
|
+
const statuslineDestPath = path.join(hooksDestDir, STATUSLINE_FILENAME);
|
|
80
|
+
// Copy statusline hook file
|
|
81
|
+
await fs.mkdir(hooksDestDir, { recursive: true });
|
|
82
|
+
await fs.copyFile(path.join(HOOKS_SRC_DIR, STATUSLINE_FILENAME), statuslineDestPath);
|
|
83
|
+
// Set statusLine in global settings.json only if not already configured
|
|
84
|
+
const settingsPath = getSettingsPath('global');
|
|
85
|
+
await fs.mkdir(path.dirname(settingsPath), { recursive: true });
|
|
86
|
+
let settings = {};
|
|
87
|
+
try {
|
|
88
|
+
const content = await fs.readFile(settingsPath, 'utf-8');
|
|
89
|
+
settings = JSON.parse(content);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (error.code !== 'ENOENT')
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
if (!settings.statusLine) {
|
|
96
|
+
settings.statusLine = { type: 'command', command: `node "${statuslineDestPath}"` };
|
|
97
|
+
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
76
100
|
//# sourceMappingURL=claude-permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-permissions.js","sourceRoot":"","sources":["../../src/lib/claude-permissions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-permissions.js","sourceRoot":"","sources":["../../src/lib/claude-permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Contextium statusline for Claude Code
|
|
3
|
+
// Shows: model | directory | context usage | update notification
|
|
4
|
+
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
const os = require('os');
|
|
8
|
+
|
|
9
|
+
const homeDir = os.homedir();
|
|
10
|
+
const claudeDir = process.env.CLAUDE_CONFIG_DIR || path.join(homeDir, '.claude');
|
|
11
|
+
const cacheFile = path.join(claudeDir, 'cache', 'ium-update-check.json');
|
|
12
|
+
|
|
13
|
+
let input = '';
|
|
14
|
+
const stdinTimeout = setTimeout(() => process.exit(0), 3000);
|
|
15
|
+
process.stdin.setEncoding('utf8');
|
|
16
|
+
process.stdin.on('data', chunk => (input += chunk));
|
|
17
|
+
process.stdin.on('end', () => {
|
|
18
|
+
clearTimeout(stdinTimeout);
|
|
19
|
+
try {
|
|
20
|
+
const data = JSON.parse(input);
|
|
21
|
+
const model = data.model?.display_name || 'Claude';
|
|
22
|
+
const dir = data.workspace?.current_dir || process.cwd();
|
|
23
|
+
const dirname = path.basename(dir);
|
|
24
|
+
const remaining = data.context_window?.remaining_percentage;
|
|
25
|
+
|
|
26
|
+
// Context usage
|
|
27
|
+
let ctx = '';
|
|
28
|
+
if (remaining != null) {
|
|
29
|
+
const AUTO_COMPACT_BUFFER_PCT = 16.5;
|
|
30
|
+
const usableRemaining = Math.max(
|
|
31
|
+
0,
|
|
32
|
+
((remaining - AUTO_COMPACT_BUFFER_PCT) / (100 - AUTO_COMPACT_BUFFER_PCT)) * 100
|
|
33
|
+
);
|
|
34
|
+
const used = Math.max(0, Math.min(100, Math.round(100 - usableRemaining)));
|
|
35
|
+
const filled = Math.floor(used / 10);
|
|
36
|
+
const bar = '█'.repeat(filled) + '░'.repeat(10 - filled);
|
|
37
|
+
const color =
|
|
38
|
+
used >= 90 ? '\x1b[31m' : used >= 75 ? '\x1b[33m' : '\x1b[32m';
|
|
39
|
+
ctx = ` │ ${color}${bar} ${used}%\x1b[0m`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Contextium update notification
|
|
43
|
+
let iumUpdate = '';
|
|
44
|
+
try {
|
|
45
|
+
if (fs.existsSync(cacheFile)) {
|
|
46
|
+
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
|
|
47
|
+
if (cache.cli?.update_available || cache.mcp?.update_available) {
|
|
48
|
+
iumUpdate = '\x1b[35m⬆ /ium:update\x1b[0m │ ';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
} catch (e) {}
|
|
52
|
+
|
|
53
|
+
process.stdout.write(
|
|
54
|
+
`${iumUpdate}\x1b[2m${model}\x1b[0m │ \x1b[2m${dirname}\x1b[0m${ctx}`
|
|
55
|
+
);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
// Silent fail
|
|
58
|
+
}
|
|
59
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contextium/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Command-line tool for managing Contextium documentation, agents, skills, and workflows — pipe context to AI coding assistants",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contextium",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
21
|
-
"url": "https://github.com/tomjutla/contextium.git",
|
|
21
|
+
"url": "git+https://github.com/tomjutla/contextium.git",
|
|
22
22
|
"directory": "apps/cli"
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://contextium.io/docs/cli",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"main": "./dist/index.js",
|
|
29
29
|
"type": "module",
|
|
30
30
|
"bin": {
|
|
31
|
-
"contextium": "
|
|
31
|
+
"contextium": "dist/index.js"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
package/skills/ium/update.md
CHANGED
|
@@ -70,6 +70,16 @@ rm -f "$HOME/.claude/cache/ium-update-check.json"
|
|
|
70
70
|
```
|
|
71
71
|
</step>
|
|
72
72
|
|
|
73
|
+
<step name="run_setup">
|
|
74
|
+
Re-run setup to install any new hooks or statusline from the updated CLI:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
contextium setup-claude
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This is silent/idempotent — it updates hooks and statusline without changing existing permissions.
|
|
81
|
+
</step>
|
|
82
|
+
|
|
73
83
|
<step name="display_result">
|
|
74
84
|
Show completion summary:
|
|
75
85
|
|