@contextium/cli 1.6.4 → 1.6.6

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.
Files changed (38) hide show
  1. package/dist/commands/setup-claude.d.ts.map +1 -1
  2. package/dist/commands/setup-claude.js +6 -36
  3. package/dist/commands/setup-claude.js.map +1 -1
  4. package/dist/commands/setup-codex.d.ts +14 -0
  5. package/dist/commands/setup-codex.d.ts.map +1 -0
  6. package/dist/commands/setup-codex.js +160 -0
  7. package/dist/commands/setup-codex.js.map +1 -0
  8. package/dist/commands/setup-connect.d.ts +11 -0
  9. package/dist/commands/setup-connect.d.ts.map +1 -0
  10. package/dist/commands/setup-connect.js +52 -0
  11. package/dist/commands/setup-connect.js.map +1 -0
  12. package/dist/commands/setup-copilot.d.ts +14 -0
  13. package/dist/commands/setup-copilot.d.ts.map +1 -0
  14. package/dist/commands/setup-copilot.js +123 -0
  15. package/dist/commands/setup-copilot.js.map +1 -0
  16. package/dist/commands/setup-cursor.d.ts +15 -0
  17. package/dist/commands/setup-cursor.d.ts.map +1 -0
  18. package/dist/commands/setup-cursor.js +109 -0
  19. package/dist/commands/setup-cursor.js.map +1 -0
  20. package/dist/commands/workflows.js +2 -2
  21. package/dist/commands/workflows.js.map +1 -1
  22. package/dist/index.js +9 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/lib/claude-permissions.d.ts +1 -0
  25. package/dist/lib/claude-permissions.d.ts.map +1 -1
  26. package/dist/lib/claude-permissions.js +16 -4
  27. package/dist/lib/claude-permissions.js.map +1 -1
  28. package/dist/lib/client-config.d.ts +26 -0
  29. package/dist/lib/client-config.d.ts.map +1 -0
  30. package/dist/lib/client-config.js +55 -0
  31. package/dist/lib/client-config.js.map +1 -0
  32. package/dist/lib/instructions.d.ts +49 -0
  33. package/dist/lib/instructions.d.ts.map +1 -0
  34. package/dist/lib/instructions.js +138 -0
  35. package/dist/lib/instructions.js.map +1 -0
  36. package/package.json +1 -1
  37. package/skills/ium/new-project.md +287 -3
  38. package/skills/ium/workflow.md +9 -11
@@ -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;AAwBnC,eAAO,MAAM,kBAAkB,SA8J3B,CAAA"}
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;AAwBnC,eAAO,MAAM,kBAAkB,SAyH3B,CAAA"}
@@ -5,7 +5,7 @@ import os from 'os';
5
5
  import { fileURLToPath } from 'url';
6
6
  import { createRequire } from 'module';
7
7
  import { chalk, ora } from '../lib/output.js';
8
- import { installUpdateHook, installStatuslineHook } from '../lib/claude-permissions.js';
8
+ import { installUpdateHook, installStatuslineHook, addClaudePermission, PERMISSIONS } from '../lib/claude-permissions.js';
9
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
10
  const require = createRequire(import.meta.url);
11
11
  async function getLatestNpmVersion(pkg) {
@@ -39,39 +39,9 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
39
39
  ? 'Configuring global Claude Code settings...'
40
40
  : 'Configuring project Claude Code settings...').start();
41
41
  try {
42
- // Ensure directory exists
43
- const settingsDir = path.dirname(settingsPath);
44
- await fs.mkdir(settingsDir, { recursive: true });
45
- // Read existing settings or create default
46
- let settings = {
47
- permissions: {
48
- allow: []
49
- }
50
- };
51
- try {
52
- const content = await fs.readFile(settingsPath, 'utf-8');
53
- settings = JSON.parse(content);
54
- }
55
- catch (error) {
56
- if (error.code !== 'ENOENT') {
57
- throw error;
58
- }
59
- // File doesn't exist, use default
60
- }
61
- // Ensure permissions structure exists
62
- if (!settings.permissions) {
63
- settings.permissions = { allow: [] };
64
- }
65
- if (!settings.permissions.allow) {
66
- settings.permissions.allow = [];
67
- }
68
- // Add permission if not already present
69
- const permission = 'Bash contextium *';
70
- const permissionAlreadySet = settings.permissions.allow.includes(permission);
71
- if (!permissionAlreadySet) {
72
- settings.permissions.allow.push(permission);
73
- await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
74
- }
42
+ // Add the Contextium allow rules (CLI via Bash + every MCP tool) so
43
+ // Claude Code never prompts for Contextium actions.
44
+ await addClaudePermission(isGlobal ? 'global' : 'project');
75
45
  spinner.succeed('Claude Code permissions configured!');
76
46
  // Install /ium: slash commands to ~/.claude/commands/ium/
77
47
  const commandsDestDir = path.join(os.homedir(), '.claude', 'commands', 'ium');
@@ -110,7 +80,7 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
110
80
  console.log();
111
81
  console.log(chalk.green('✓') + ' Contextium CLI commands will no longer require permission prompts');
112
82
  console.log(chalk.dim(`Settings file: ${settingsPath}`));
113
- console.log(chalk.dim(`Added permission: ${permission}`));
83
+ console.log(chalk.dim(`Added permissions: ${PERMISSIONS.join(', ')}`));
114
84
  if (skillsInstalled) {
115
85
  console.log(chalk.green('✓') + ' /ium: slash commands installed to ~/.claude/commands/ium/');
116
86
  }
@@ -153,7 +123,7 @@ ${chalk.dim('If you use other IDEs (VSCode, Cursor, etc.) without Claude Code, s
153
123
  console.log();
154
124
  console.log(chalk.white(' {'));
155
125
  console.log(chalk.white(' "permissions": {'));
156
- console.log(chalk.white(' "allow": ["Bash contextium *"]'));
126
+ console.log(chalk.white(` "allow": ${JSON.stringify(PERMISSIONS)}`));
157
127
  console.log(chalk.white(' }'));
158
128
  console.log(chalk.white(' }'));
159
129
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../../src/commands/setup-claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Configure OpenAI Codex CLI for Contextium with parity to the Claude Code setup:
4
+ * MCP server, product-behaviour instructions, and the /ium: prompts.
5
+ *
6
+ * Codex reads:
7
+ * - ~/.codex/config.toml — `[mcp_servers.*]` tables register MCP servers
8
+ * - AGENTS.md — project instructions (repo root, or ~/.codex/AGENTS.md global)
9
+ * - ~/.codex/prompts/*.md — custom prompts, invoked as /name
10
+ *
11
+ * Codex approvals are global (no per-server allowlist), so --no-prompt is opt-in.
12
+ */
13
+ export declare const setupCodexCommand: Command;
14
+ //# sourceMappingURL=setup-codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-codex.d.ts","sourceRoot":"","sources":["../../src/commands/setup-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2EnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,SA+E1B,CAAA"}
@@ -0,0 +1,160 @@
1
+ import { Command } from 'commander';
2
+ import fs from 'fs/promises';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { fileURLToPath } from 'url';
6
+ import { chalk, ora } from '../lib/output.js';
7
+ import { contextiumServerKey, contextiumMcpEntry } from '../lib/client-config.js';
8
+ import { writeInstructionsBlock, installCommands } from '../lib/instructions.js';
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ // skills/ium lives at the package root, two levels up from dist/commands/
11
+ const COMMANDS_SRC_DIR = path.join(__dirname, '..', '..', 'skills', 'ium');
12
+ const TOML_START = '# contextium:start (managed by `contextium setup-codex` — edits inside are overwritten)';
13
+ const TOML_END = '# contextium:end';
14
+ /**
15
+ * Render the `[mcp_servers.<key>]` TOML table for Codex from the shared MCP
16
+ * entry definition, so local/remote/profile behaviour matches every other
17
+ * operator setup.
18
+ */
19
+ function renderCodexServerToml(serverKey, entry) {
20
+ const lines = [`[mcp_servers.${serverKey}]`];
21
+ if (entry.url) {
22
+ lines.push(`url = ${JSON.stringify(entry.url)}`);
23
+ }
24
+ else {
25
+ lines.push(`command = ${JSON.stringify(entry.command)}`);
26
+ lines.push(`args = [${entry.args.map((a) => JSON.stringify(a)).join(', ')}]`);
27
+ if (entry.env) {
28
+ const env = Object.entries(entry.env)
29
+ .map(([k, v]) => `${JSON.stringify(k)} = ${JSON.stringify(v)}`)
30
+ .join(', ');
31
+ lines.push(`env = { ${env} }`);
32
+ }
33
+ }
34
+ return lines.join('\n');
35
+ }
36
+ /** Upsert the managed Contextium server block into config.toml, preserving the rest. */
37
+ async function upsertCodexServer(configPath, tableToml) {
38
+ const block = `${TOML_START}\n${tableToml}\n${TOML_END}`;
39
+ let content = '';
40
+ try {
41
+ content = await fs.readFile(configPath, 'utf-8');
42
+ }
43
+ catch (error) {
44
+ if (error.code !== 'ENOENT')
45
+ throw error;
46
+ }
47
+ const start = content.indexOf(TOML_START);
48
+ const end = content.indexOf(TOML_END);
49
+ if (start !== -1 && end !== -1) {
50
+ content = content.slice(0, start) + block + content.slice(end + TOML_END.length);
51
+ }
52
+ else {
53
+ const sep = content.length && !content.endsWith('\n') ? '\n\n' : content.length ? '\n' : '';
54
+ content = content + sep + block + '\n';
55
+ }
56
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
57
+ await fs.writeFile(configPath, content, 'utf-8');
58
+ }
59
+ /** Prepend a root-level `approval_policy = "never"` if not already present. */
60
+ async function setCodexNoPrompt(configPath) {
61
+ let content = '';
62
+ try {
63
+ content = await fs.readFile(configPath, 'utf-8');
64
+ }
65
+ catch (error) {
66
+ if (error.code !== 'ENOENT')
67
+ throw error;
68
+ }
69
+ if (/^\s*approval_policy\s*=/m.test(content))
70
+ return false; // respect existing setting
71
+ // Root keys must precede any table — prepending at the very top is valid TOML.
72
+ content = `approval_policy = "never"\n` + content;
73
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
74
+ await fs.writeFile(configPath, content, 'utf-8');
75
+ return true;
76
+ }
77
+ /**
78
+ * Configure OpenAI Codex CLI for Contextium with parity to the Claude Code setup:
79
+ * MCP server, product-behaviour instructions, and the /ium: prompts.
80
+ *
81
+ * Codex reads:
82
+ * - ~/.codex/config.toml — `[mcp_servers.*]` tables register MCP servers
83
+ * - AGENTS.md — project instructions (repo root, or ~/.codex/AGENTS.md global)
84
+ * - ~/.codex/prompts/*.md — custom prompts, invoked as /name
85
+ *
86
+ * Codex approvals are global (no per-server allowlist), so --no-prompt is opt-in.
87
+ */
88
+ export const setupCodexCommand = new Command('setup-codex')
89
+ .description('Configure OpenAI Codex for Contextium — MCP, instructions, and /ium: prompts')
90
+ .addHelpText('after', `
91
+ ${chalk.dim('Registers the server in ~/.codex/config.toml, writes AGENTS.md instructions,')}
92
+ ${chalk.dim('and installs /ium: prompts to ~/.codex/prompts/. Use --project to write')}
93
+ ${chalk.dim('AGENTS.md to the current repo, --remote for the hosted server, or')}
94
+ ${chalk.dim('--no-prompt to set Codex approval_policy = "never" globally.')}
95
+ `)
96
+ .option('--project', 'Write AGENTS.md to the current directory instead of ~/.codex')
97
+ .option('--remote', 'Use the hosted remote MCP server instead of local npx')
98
+ .option('--no-prompt', 'Also set global approval_policy = "never" (skips all Codex approvals)')
99
+ .option('--profile <name>', 'Contextium profile to use', 'default')
100
+ .action(async (options) => {
101
+ const codexDir = path.join(os.homedir(), '.codex');
102
+ const configPath = path.join(codexDir, 'config.toml');
103
+ const promptsDir = path.join(codexDir, 'prompts');
104
+ const agentsPath = options.project
105
+ ? path.join(process.cwd(), 'AGENTS.md')
106
+ : path.join(codexDir, 'AGENTS.md');
107
+ const serverKey = contextiumServerKey(options.profile);
108
+ const spinner = ora('Configuring Codex for Contextium...').start();
109
+ try {
110
+ // 1. Register the MCP server (merge into config.toml)
111
+ const entry = contextiumMcpEntry({ remote: !!options.remote, profile: options.profile });
112
+ await upsertCodexServer(configPath, renderCodexServerToml(serverKey, entry));
113
+ // 2. Write the product-behaviour instructions to AGENTS.md
114
+ await writeInstructionsBlock(agentsPath);
115
+ // 3. Install the /ium: prompts
116
+ const commandCount = await installCommands(COMMANDS_SRC_DIR, promptsDir);
117
+ // 4. Optionally disable approval prompts globally
118
+ let noPromptSet = false;
119
+ // commander negates --no-prompt into options.prompt === false
120
+ if (options.prompt === false) {
121
+ noPromptSet = await setCodexNoPrompt(configPath);
122
+ }
123
+ spinner.succeed('Codex configured for Contextium!');
124
+ console.log();
125
+ console.log(chalk.green('✓') + ` MCP server registered: ${chalk.cyan(serverKey)}`);
126
+ console.log(chalk.green('✓') + ' Instructions written (Task Awareness + Workflow Engineering)');
127
+ if (commandCount > 0) {
128
+ console.log(chalk.green('✓') + ` /ium: prompts installed: ${chalk.cyan(String(commandCount))} files`);
129
+ }
130
+ if (options.prompt === false) {
131
+ console.log((noPromptSet ? chalk.green('✓') + ' approval_policy set to "never"' : chalk.yellow('⚠') + ' approval_policy already set — left unchanged'));
132
+ }
133
+ console.log(chalk.dim(` Server config: ${configPath}`));
134
+ console.log(chalk.dim(` Instructions: ${agentsPath}`));
135
+ if (commandCount > 0) {
136
+ console.log(chalk.dim(` Prompts dir: ${promptsDir}`));
137
+ }
138
+ console.log();
139
+ console.log(chalk.bold('Next steps in Codex:'));
140
+ console.log(chalk.white(' • Restart Codex (or start a new session) to pick up the new server'));
141
+ if (options.prompt !== false) {
142
+ console.log(chalk.white(' • Codex approves tool calls per-session; approve Contextium when prompted,'));
143
+ console.log(chalk.white(' or re-run with --no-prompt to skip approvals globally'));
144
+ }
145
+ if (!options.remote) {
146
+ console.log(chalk.dim(' • Local server runs via npx; run `contextium login` first if you haven\'t'));
147
+ }
148
+ console.log();
149
+ console.log(chalk.green('✓ Done!') + chalk.dim(' Codex can now use Contextium.'));
150
+ }
151
+ catch (error) {
152
+ spinner.fail(`Failed to configure Codex: ${error.message}`);
153
+ console.log();
154
+ console.log(chalk.yellow('Manual setup:'));
155
+ console.log(chalk.dim(`Add to ${configPath}:`));
156
+ console.log(chalk.white(' ' + renderCodexServerToml(serverKey, contextiumMcpEntry({ remote: !!options.remote, profile: options.profile })).replace(/\n/g, '\n ')));
157
+ process.exit(1);
158
+ }
159
+ });
160
+ //# sourceMappingURL=setup-codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-codex.js","sourceRoot":"","sources":["../../src/commands/setup-codex.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,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAEhF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AAE1E,MAAM,UAAU,GAAG,yFAAyF,CAAA;AAC5G,MAAM,QAAQ,GAAG,kBAAkB,CAAA;AAEnC;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,KAAU;IAC1D,MAAM,KAAK,GAAG,CAAC,gBAAgB,SAAS,GAAG,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxD,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrF,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,SAAiB;IACpE,MAAM,KAAK,GAAG,GAAG,UAAU,KAAK,SAAS,KAAK,QAAQ,EAAE,CAAA;IACxD,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAA;IAC1C,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClF,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3F,OAAO,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAA;IACxC,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAClD,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAChD,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAA;IAC1C,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA,CAAC,2BAA2B;IACtF,+EAA+E;IAC/E,OAAO,GAAG,6BAA6B,GAAG,OAAO,CAAA;IACjD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACxD,WAAW,CAAC,8EAA8E,CAAC;KAC3F,WAAW,CAAC,OAAO,EAAE;EACtB,KAAK,CAAC,GAAG,CAAC,8EAA8E,CAAC;EACzF,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC;EACpF,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC;EAC9E,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC;CAC1E,CAAC;KACC,MAAM,CAAC,WAAW,EAAE,8DAA8D,CAAC;KACnF,MAAM,CAAC,UAAU,EAAE,uDAAuD,CAAC;KAC3E,MAAM,CAAC,aAAa,EAAE,uEAAuE,CAAC;KAC9F,MAAM,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO;QAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtD,MAAM,OAAO,GAAG,GAAG,CAAC,qCAAqC,CAAC,CAAC,KAAK,EAAE,CAAA;IAElE,IAAI,CAAC;QACH,sDAAsD;QACtD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QACxF,MAAM,iBAAiB,CAAC,UAAU,EAAE,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;QAE5E,2DAA2D;QAC3D,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAExC,+BAA+B;QAC/B,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;QAExE,kDAAkD;QAClD,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,8DAA8D;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,WAAW,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAA;QAEnD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,+DAA+D,CAAC,CAAA;QAC/F,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;QACvG,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CACT,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,+CAA+C,CAAC,CAC3I,CAAA;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC,CAAA;QACxD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC,CAAA;QAChG,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC,CAAA;YACxG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAA;QACvF,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;IACnF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACpK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Guided connect for hosted assistants that support remote MCP connectors but
4
+ * have NO file-based config we can write (ChatGPT, DeepSeek, and similar web
5
+ * clients). We can't install anything for them, so we print:
6
+ * 1. step-by-step instructions to add the remote Contextium MCP connector, and
7
+ * 2. the same product-behaviour instructions every other operator gets, ready
8
+ * to paste into the assistant's custom-instructions / system prompt.
9
+ */
10
+ export declare const setupConnectCommand: Command;
11
+ //# sourceMappingURL=setup-connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-connect.d.ts","sourceRoot":"","sources":["../../src/commands/setup-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,SAyC5B,CAAA"}
@@ -0,0 +1,52 @@
1
+ import { Command } from 'commander';
2
+ import { chalk } from '../lib/output.js';
3
+ import { CONTEXTIUM_INSTRUCTIONS } from '../lib/instructions.js';
4
+ const REMOTE_MCP_URL = 'https://mcp.contextium.io/sse';
5
+ /**
6
+ * Guided connect for hosted assistants that support remote MCP connectors but
7
+ * have NO file-based config we can write (ChatGPT, DeepSeek, and similar web
8
+ * clients). We can't install anything for them, so we print:
9
+ * 1. step-by-step instructions to add the remote Contextium MCP connector, and
10
+ * 2. the same product-behaviour instructions every other operator gets, ready
11
+ * to paste into the assistant's custom-instructions / system prompt.
12
+ */
13
+ export const setupConnectCommand = new Command('setup-connect')
14
+ .aliases(['setup-chatgpt', 'setup-deepseek'])
15
+ .description('Guided connect for ChatGPT, DeepSeek & other hosted assistants (no file setup)')
16
+ .addHelpText('after', `
17
+ ${chalk.dim('These assistants have no config file to write, so this prints the remote MCP')}
18
+ ${chalk.dim('connector URL plus the Contextium instructions to paste into their custom')}
19
+ ${chalk.dim('instructions. Use --instructions-only to print just the pasteable block.')}
20
+ `)
21
+ .option('--instructions-only', 'Print only the pasteable instructions block (no connector steps)')
22
+ .action((options) => {
23
+ if (options.instructionsOnly) {
24
+ console.log(CONTEXTIUM_INSTRUCTIONS);
25
+ return;
26
+ }
27
+ console.log();
28
+ console.log(chalk.bold('Connect a hosted assistant to Contextium'));
29
+ console.log(chalk.dim('ChatGPT, DeepSeek, and similar web clients can\'t be configured from a file.'));
30
+ console.log(chalk.dim('Two manual steps, both done inside the assistant:'));
31
+ console.log();
32
+ console.log(chalk.bold('1. Add the Contextium MCP connector'));
33
+ console.log(chalk.white(' Remote MCP endpoint:'));
34
+ console.log(' ' + chalk.cyan(REMOTE_MCP_URL));
35
+ console.log();
36
+ console.log(chalk.white(' • ChatGPT: Settings → Connectors → Add → custom MCP server, paste the URL above'));
37
+ console.log(chalk.white(' • DeepSeek: Tools / MCP settings → Add server → paste the URL above'));
38
+ console.log(chalk.dim(' (Requires a plan/tier that supports custom MCP connectors. Authenticate'));
39
+ console.log(chalk.dim(' with your Contextium account when prompted.)'));
40
+ console.log();
41
+ console.log(chalk.bold('2. Paste the Contextium instructions'));
42
+ console.log(chalk.dim(' Add the block below to the assistant\'s custom instructions / system prompt'));
43
+ console.log(chalk.dim(' so it follows the same Task Awareness + Workflow Engineering protocol as'));
44
+ console.log(chalk.dim(' every other operator. (Pipe just this block with --instructions-only.)'));
45
+ console.log();
46
+ console.log(chalk.dim(' ──────────────────────────────────────────────────────────'));
47
+ console.log(CONTEXTIUM_INSTRUCTIONS);
48
+ console.log(chalk.dim(' ──────────────────────────────────────────────────────────'));
49
+ console.log();
50
+ console.log(chalk.green('✓ Done!') + chalk.dim(' Once both steps are complete, the assistant can use Contextium.'));
51
+ });
52
+ //# sourceMappingURL=setup-connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-connect.js","sourceRoot":"","sources":["../../src/commands/setup-connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Configure GitHub Copilot (VS Code) for Contextium with parity to the Claude
4
+ * Code setup: MCP server, product-behaviour instructions, and the /ium: prompts.
5
+ *
6
+ * Copilot reads (project-scoped — there is no global Copilot instructions file):
7
+ * - .vscode/mcp.json — `servers` key registers MCP servers
8
+ * - .github/copilot-instructions.md — repo-wide custom instructions
9
+ * - .github/prompts/*.prompt.md — reusable prompt files, run as /name
10
+ *
11
+ * Copilot tool approval is a VS Code setting, so --auto-approve is opt-in.
12
+ */
13
+ export declare const setupCopilotCommand: Command;
14
+ //# sourceMappingURL=setup-copilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-copilot.d.ts","sourceRoot":"","sources":["../../src/commands/setup-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmCnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,SAoF5B,CAAA"}
@@ -0,0 +1,123 @@
1
+ import { Command } from 'commander';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { chalk, ora } from '../lib/output.js';
5
+ import { readJsonConfig, writeJsonConfig, contextiumServerKey } from '../lib/client-config.js';
6
+ import { writeInstructionsBlock, installCommands } from '../lib/instructions.js';
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ // skills/ium lives at the package root, two levels up from dist/commands/
9
+ const COMMANDS_SRC_DIR = path.join(__dirname, '..', '..', 'skills', 'ium');
10
+ /**
11
+ * Build the VS Code / Copilot MCP server entry. VS Code's mcp.json uses the
12
+ * `servers` key (not `mcpServers`) and a `type` discriminator: `stdio` for the
13
+ * local npx package, `sse` for the hosted remote endpoint.
14
+ */
15
+ function copilotServerEntry(opts) {
16
+ if (opts.remote) {
17
+ return { type: 'sse', url: 'https://mcp.contextium.io/sse' };
18
+ }
19
+ const entry = {
20
+ type: 'stdio',
21
+ command: 'npx',
22
+ args: [
23
+ '-y',
24
+ '@contextium/mcp-server@latest',
25
+ ...(opts.profile !== 'default' ? ['--profile', opts.profile] : []),
26
+ ],
27
+ };
28
+ if (opts.profile !== 'default') {
29
+ entry.env = { CONTEXTIUM_PROFILE: opts.profile };
30
+ }
31
+ return entry;
32
+ }
33
+ /**
34
+ * Configure GitHub Copilot (VS Code) for Contextium with parity to the Claude
35
+ * Code setup: MCP server, product-behaviour instructions, and the /ium: prompts.
36
+ *
37
+ * Copilot reads (project-scoped — there is no global Copilot instructions file):
38
+ * - .vscode/mcp.json — `servers` key registers MCP servers
39
+ * - .github/copilot-instructions.md — repo-wide custom instructions
40
+ * - .github/prompts/*.prompt.md — reusable prompt files, run as /name
41
+ *
42
+ * Copilot tool approval is a VS Code setting, so --auto-approve is opt-in.
43
+ */
44
+ export const setupCopilotCommand = new Command('setup-copilot')
45
+ .description('Configure GitHub Copilot for Contextium — MCP, instructions, and /ium: prompts')
46
+ .addHelpText('after', `
47
+ ${chalk.dim('Writes .vscode/mcp.json (server), .github/copilot-instructions.md (instructions),')}
48
+ ${chalk.dim('and .github/prompts/*.prompt.md (/ium: prompts) in the current repo.')}
49
+ ${chalk.dim('Use --remote for the hosted server, or --auto-approve to also set')}
50
+ ${chalk.dim('chat.tools.autoApprove in .vscode/settings.json.')}
51
+ `)
52
+ .option('--remote', 'Use the hosted remote MCP server (SSE) instead of local npx')
53
+ .option('--auto-approve', 'Also set chat.tools.autoApprove=true in .vscode/settings.json')
54
+ .option('--profile <name>', 'Contextium profile to use', 'default')
55
+ .action(async (options) => {
56
+ const cwd = process.cwd();
57
+ const mcpPath = path.join(cwd, '.vscode', 'mcp.json');
58
+ const settingsPath = path.join(cwd, '.vscode', 'settings.json');
59
+ const instructionsPath = path.join(cwd, '.github', 'copilot-instructions.md');
60
+ const promptsDir = path.join(cwd, '.github', 'prompts');
61
+ const serverKey = contextiumServerKey(options.profile);
62
+ const spinner = ora('Configuring Copilot for Contextium...').start();
63
+ try {
64
+ // 1. Register the MCP server under the `servers` key (merge, don't clobber)
65
+ const mcp = await readJsonConfig(mcpPath);
66
+ if (!mcp.servers || typeof mcp.servers !== 'object') {
67
+ mcp.servers = {};
68
+ }
69
+ mcp.servers[serverKey] = copilotServerEntry({ remote: !!options.remote, profile: options.profile });
70
+ await writeJsonConfig(mcpPath, mcp);
71
+ // 2. Write the product-behaviour instructions
72
+ await writeInstructionsBlock(instructionsPath);
73
+ // 3. Install the /ium: prompts (Copilot expects a .prompt.md suffix)
74
+ const commandCount = await installCommands(COMMANDS_SRC_DIR, promptsDir, {
75
+ rename: f => f.replace(/\.md$/, '.prompt.md'),
76
+ });
77
+ // 4. Optionally auto-approve tools via workspace settings
78
+ let autoApproveSet = false;
79
+ if (options.autoApprove) {
80
+ const settings = await readJsonConfig(settingsPath);
81
+ settings['chat.tools.autoApprove'] = true;
82
+ await writeJsonConfig(settingsPath, settings);
83
+ autoApproveSet = true;
84
+ }
85
+ spinner.succeed('Copilot configured for Contextium!');
86
+ console.log();
87
+ console.log(chalk.green('✓') + ` MCP server registered: ${chalk.cyan(serverKey)}`);
88
+ console.log(chalk.green('✓') + ' Instructions written (Task Awareness + Workflow Engineering)');
89
+ if (commandCount > 0) {
90
+ console.log(chalk.green('✓') + ` /ium: prompts installed: ${chalk.cyan(String(commandCount))} files`);
91
+ }
92
+ if (autoApproveSet) {
93
+ console.log(chalk.green('✓') + ' chat.tools.autoApprove enabled in .vscode/settings.json');
94
+ }
95
+ console.log(chalk.dim(` Server config: ${mcpPath}`));
96
+ console.log(chalk.dim(` Instructions: ${instructionsPath}`));
97
+ if (commandCount > 0) {
98
+ console.log(chalk.dim(` Prompts dir: ${promptsDir}`));
99
+ }
100
+ console.log();
101
+ console.log(chalk.bold('Next steps in VS Code:'));
102
+ console.log(chalk.white(' • Reload the window so Copilot picks up .vscode/mcp.json'));
103
+ console.log(chalk.white(' • Start the server from the mcp.json gutter "Start" action if prompted'));
104
+ if (!options.autoApprove) {
105
+ console.log(chalk.white(' • Approve Contextium tools when prompted, or re-run with --auto-approve'));
106
+ console.log(chalk.white(' to set chat.tools.autoApprove (skips per-tool confirmation)'));
107
+ }
108
+ if (!options.remote) {
109
+ console.log(chalk.dim(' • Local server runs via npx; run `contextium login` first if you haven\'t'));
110
+ }
111
+ console.log();
112
+ console.log(chalk.green('✓ Done!') + chalk.dim(' Copilot can now use Contextium.'));
113
+ }
114
+ catch (error) {
115
+ spinner.fail(`Failed to configure Copilot: ${error.message}`);
116
+ console.log();
117
+ console.log(chalk.yellow('Manual setup:'));
118
+ console.log(chalk.dim(`Add to ${mcpPath}:`));
119
+ console.log(chalk.white(' ' + JSON.stringify({ servers: { [serverKey]: copilotServerEntry({ remote: !!options.remote, profile: options.profile }) } })));
120
+ process.exit(1);
121
+ }
122
+ });
123
+ //# sourceMappingURL=setup-copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-copilot.js","sourceRoot":"","sources":["../../src/commands/setup-copilot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Configure Cursor for Contextium with full parity to the Claude Code setup:
4
+ * MCP server, no permission prompts, the product-behaviour instructions, and
5
+ * the /ium: commands.
6
+ *
7
+ * Cursor reads (verified against Cursor 3.6+ docs):
8
+ * - <base>/mcp.json — registers the server under `mcpServers`
9
+ * - <base>/permissions.json — `mcpAllowlist` auto-approves the tools
10
+ * - <base>/rules/contextium.mdc — always-applied project instructions
11
+ * - <base>/commands/*.md — the /ium: slash commands
12
+ * where <base> is ~/.cursor (global) or ./.cursor (project).
13
+ */
14
+ export declare const setupCursorCommand: Command;
15
+ //# sourceMappingURL=setup-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-cursor.d.ts","sourceRoot":"","sources":["../../src/commands/setup-cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,SA6F3B,CAAA"}