@contextium/cli 1.0.0 → 1.0.2
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/new-project.md +98 -7
- 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.2",
|
|
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",
|
|
@@ -3,24 +3,115 @@ name: ium:new-project
|
|
|
3
3
|
description: Set up a new Contextium project — authenticate, pick a workspace, create libraries, agents, skills, and a workflow
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Bash
|
|
6
|
+
- mcp__contextium__list_workspaces
|
|
7
|
+
- mcp__contextium__create_context_library
|
|
8
|
+
- mcp__contextium__create_agent
|
|
9
|
+
- mcp__contextium__create_skill
|
|
10
|
+
- mcp__contextium__create_workflow
|
|
11
|
+
- mcp__contextium__list_context_libraries
|
|
12
|
+
- mcp__contextium__list_agents
|
|
13
|
+
- mcp__contextium__list_skills
|
|
14
|
+
- mcp__contextium__list_workflows
|
|
15
|
+
- AskUserQuestion
|
|
6
16
|
---
|
|
7
17
|
|
|
8
18
|
<objective>
|
|
9
|
-
|
|
19
|
+
Set up a new Contextium project — workspace selection, context libraries, agents, skills, and a workflow.
|
|
10
20
|
</objective>
|
|
11
21
|
|
|
12
|
-
<
|
|
13
|
-
Run the
|
|
22
|
+
<mode-detection>
|
|
23
|
+
Run this once at the start, silently, to determine which mode to use for the entire session:
|
|
14
24
|
|
|
15
25
|
```bash
|
|
16
|
-
contextium
|
|
26
|
+
command -v contextium &>/dev/null && echo "cli" || echo "no-cli"
|
|
17
27
|
```
|
|
18
28
|
|
|
19
|
-
If
|
|
29
|
+
- If `cli`: use CLI commands throughout. Do not attempt MCP tools.
|
|
30
|
+
- If `no-cli`: check if mcp__contextium__list_workspaces is available. If yes, use MCP tools throughout.
|
|
31
|
+
- If neither: tell the user "Contextium doesn't appear to be installed. Install the CLI with `npm install -g @contextium/cli` or connect the MCP server, then re-run this."
|
|
32
|
+
|
|
33
|
+
Do not mention the mode to the user. Pick one path and stick with it.
|
|
34
|
+
</mode-detection>
|
|
35
|
+
|
|
36
|
+
<process>
|
|
20
37
|
|
|
38
|
+
<step name="check_auth">
|
|
39
|
+
**CLI only.** Run silently:
|
|
21
40
|
```bash
|
|
22
|
-
contextium
|
|
41
|
+
contextium whoami 2>/dev/null | grep -E "Token:|Name:" || echo "unauthenticated"
|
|
23
42
|
```
|
|
43
|
+
If token is expired or unauthenticated, tell the user: "Your Contextium session has expired — run `contextium login` in your terminal, then come back and re-run this." Stop here.
|
|
44
|
+
|
|
45
|
+
MCP users are already authenticated via the server connection — skip this step.
|
|
46
|
+
</step>
|
|
47
|
+
|
|
48
|
+
<step name="select_workspace">
|
|
49
|
+
**CLI:** run `contextium workspace list 2>/dev/null` silently, parse workspace names.
|
|
50
|
+
**MCP:** call mcp__contextium__list_workspaces silently.
|
|
51
|
+
|
|
52
|
+
Ask: "Which workspace is this project for?"
|
|
53
|
+
|
|
54
|
+
Present names only — no IDs, no raw output.
|
|
55
|
+
</step>
|
|
56
|
+
|
|
57
|
+
<step name="project_structure">
|
|
58
|
+
Ask: "What context libraries do you need? (e.g. Product Docs, Internal Guides, Meeting Notes)"
|
|
59
|
+
|
|
60
|
+
**CLI:** `contextium library create "<name>" --workspace <slug>` for each.
|
|
61
|
+
**MCP:** mcp__contextium__create_context_library for each.
|
|
62
|
+
|
|
63
|
+
Show `✓ Created "Library Name"` per library.
|
|
64
|
+
</step>
|
|
65
|
+
|
|
66
|
+
<step name="agents">
|
|
67
|
+
Ask: "Do you want to create any agents? Give them names and a one-line purpose, or say skip."
|
|
68
|
+
|
|
69
|
+
**CLI:** `contextium agent create "<name>" --workspace <slug>` for each.
|
|
70
|
+
**MCP:** mcp__contextium__create_agent for each.
|
|
71
|
+
|
|
72
|
+
Show `✓ Created agent "Name"` per agent.
|
|
73
|
+
</step>
|
|
74
|
+
|
|
75
|
+
<step name="skills">
|
|
76
|
+
Ask: "Any skills to add? Skills are reusable knowledge blocks (e.g. brand guidelines, refund policy). Name them or say skip."
|
|
77
|
+
|
|
78
|
+
**CLI:** `contextium skill create "<name>" --workspace <slug>` for each.
|
|
79
|
+
**MCP:** mcp__contextium__create_skill for each.
|
|
80
|
+
|
|
81
|
+
Show `✓ Created skill "Name"` per skill.
|
|
82
|
+
</step>
|
|
83
|
+
|
|
84
|
+
<step name="workflow">
|
|
85
|
+
Ask: "What should the workflow be called? This bundles your libraries, agents, and skills for quick loading."
|
|
86
|
+
|
|
87
|
+
**CLI:** `contextium workflow create "<name>" --workspace <slug>`.
|
|
88
|
+
**MCP:** mcp__contextium__create_workflow.
|
|
89
|
+
|
|
90
|
+
Show `✓ Created workflow "Name"`.
|
|
91
|
+
</step>
|
|
92
|
+
|
|
93
|
+
<step name="summary">
|
|
94
|
+
Show a clean summary:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
✓ Contextium project ready
|
|
98
|
+
|
|
99
|
+
Workspace: <name>
|
|
100
|
+
Libraries: <list>
|
|
101
|
+
Agents: <list or none>
|
|
102
|
+
Skills: <list or none>
|
|
103
|
+
Workflow: <name>
|
|
104
|
+
|
|
105
|
+
Load it anytime with /ium:workflow.
|
|
106
|
+
```
|
|
107
|
+
</step>
|
|
24
108
|
|
|
25
|
-
Do not interrupt or wrap the wizard output — let it run fully interactively.
|
|
26
109
|
</process>
|
|
110
|
+
|
|
111
|
+
<rules>
|
|
112
|
+
- Never say "the wizard", "Contextium would like to know", or "the next step is"
|
|
113
|
+
- Never show raw bash output, API responses, or IDs to the user
|
|
114
|
+
- Run all checks silently — only surface errors or the final summary
|
|
115
|
+
- Ask questions directly, one step at a time
|
|
116
|
+
- If a CLI command fails, show the error message only — not the full command
|
|
117
|
+
</rules>
|
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
|
|