@ctxkit/cli 0.2.0 → 0.8.0

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":"daemon.d.ts","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,aAAa,SACc,CAAC;AAyFzC,eAAO,MAAM,gBAAgB,SAazB,CAAC"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,aAAa,SACc,CAAC;AAyFzC,eAAO,MAAM,gBAAgB,SAwEzB,CAAC"}
@@ -88,20 +88,74 @@ daemonCommand
88
88
  console.log('Daemon is not running.');
89
89
  }
90
90
  });
91
- // Dashboard shortcut
91
+ // Dashboard command — starts daemon if needed, serves UI, opens browser
92
92
  export const dashboardCommand = new Command('dashboard')
93
93
  .description('Open the inspection dashboard in a browser')
94
- .option('--port <port>', 'Dashboard port', '3742')
95
- .action((options) => {
96
- const url = `http://localhost:${options.port}`;
97
- console.log(`Opening dashboard at ${url}`);
94
+ .option('--port <port>', 'Dashboard port', '4117')
95
+ .option('--no-open', 'Do not auto-open browser')
96
+ .action(async (options) => {
97
+ const port = options.port;
98
+ const url = `http://localhost:${port}`;
99
+ // Check if daemon is already running
100
+ let daemonRunning = false;
98
101
  try {
99
- // Open browser (macOS / Linux / Windows)
100
- const cmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
101
- execSync(`${cmd} ${url}`, { stdio: 'ignore' });
102
+ const res = await fetch(`${url}/api/v1/health`);
103
+ if (res.ok)
104
+ daemonRunning = true;
102
105
  }
103
106
  catch {
104
- console.log(`Please open ${url} in your browser.`);
107
+ // Not running
108
+ }
109
+ // Start daemon if not running
110
+ if (!daemonRunning) {
111
+ console.log('Starting daemon...');
112
+ if (existsSync(PID_FILE)) {
113
+ const pid = readFileSync(PID_FILE, 'utf-8').trim();
114
+ try {
115
+ process.kill(parseInt(pid, 10), 0);
116
+ }
117
+ catch {
118
+ unlinkSync(PID_FILE);
119
+ }
120
+ }
121
+ const ctxlDir = join(homedir(), '.ctxl');
122
+ mkdirSync(ctxlDir, { recursive: true });
123
+ const logFile = join(ctxlDir, 'daemon.log');
124
+ const out = openSync(logFile, 'a');
125
+ const err = openSync(logFile, 'a');
126
+ const require = createRequire(import.meta.url);
127
+ const daemonEntry = require.resolve('@ctxkit/daemon');
128
+ const child = spawn('node', [daemonEntry], {
129
+ detached: true,
130
+ stdio: ['ignore', out, err],
131
+ env: {
132
+ ...process.env,
133
+ CTXL_PORT: port,
134
+ },
135
+ });
136
+ if (child.pid) {
137
+ writeFileSync(PID_FILE, String(child.pid));
138
+ child.unref();
139
+ // Wait briefly for daemon to start
140
+ await new Promise((resolve) => setTimeout(resolve, 1000));
141
+ console.log(`Daemon started (PID ${child.pid})`);
142
+ }
143
+ else {
144
+ console.error('Failed to start daemon');
145
+ process.exit(1);
146
+ }
147
+ }
148
+ console.log(`Dashboard available at ${url}`);
149
+ console.log('Press Ctrl+C to stop');
150
+ // Open browser unless --no-open
151
+ if (options.open !== false) {
152
+ try {
153
+ const cmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
154
+ execSync(`${cmd} ${url}`, { stdio: 'ignore' });
155
+ }
156
+ catch {
157
+ console.log(`Please open ${url} in your browser.`);
158
+ }
105
159
  }
106
160
  });
107
161
  //# sourceMappingURL=daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/hooks-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,YAAY,SACY,CAAC"}
1
+ {"version":3,"file":"hooks-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/hooks-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,YAAY,SACY,CAAC"}
@@ -1,41 +1,68 @@
1
1
  import { Command } from 'commander';
2
- import { writeFileSync, existsSync, mkdirSync, chmodSync } from 'node:fs';
2
+ import { writeFileSync, readFileSync, existsSync, mkdirSync, chmodSync, renameSync, unlinkSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { execSync } from 'node:child_process';
5
+ import { formatTrailers } from '@ctxkit/core';
6
+ const CTXKIT_VERSION = '0.2.0';
7
+ const CTXKIT_HOOK_MARKER = '# Installed by: ctxkit hooks init';
8
+ const MAX_MESSAGE_SIZE = 72 * 1024; // 72KB GitHub soft limit
5
9
  export const hooksCommand = new Command('hooks')
6
10
  .description('Git hook management');
7
- hooksCommand
8
- .command('init')
9
- .description('Install git hooks for context validation')
10
- .option('--force', 'Overwrite existing hooks')
11
- .action(async (options) => {
11
+ /**
12
+ * Detect git repository root. Returns null if not a git repo.
13
+ */
14
+ function getRepoRoot() {
12
15
  try {
13
- let repoRoot;
14
- try {
15
- repoRoot = execSync('git rev-parse --show-toplevel', {
16
- encoding: 'utf-8',
17
- timeout: 3000,
18
- stdio: ['pipe', 'pipe', 'pipe'],
19
- }).trim();
20
- }
21
- catch {
22
- console.error('Error: Not a git repository');
23
- process.exit(1);
24
- return;
25
- }
26
- const hooksDir = join(repoRoot, '.git', 'hooks');
27
- if (!existsSync(hooksDir)) {
28
- mkdirSync(hooksDir, { recursive: true });
29
- }
30
- const hooks = [
31
- {
32
- name: 'pre-commit',
33
- content: `#!/bin/sh
16
+ return execSync('git rev-parse --show-toplevel', {
17
+ encoding: 'utf-8',
18
+ timeout: 3000,
19
+ stdio: ['pipe', 'pipe', 'pipe'],
20
+ }).trim();
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ /**
27
+ * Get the prepare-commit-msg hook script content.
28
+ */
29
+ function getPrepareCommitMsgScript() {
30
+ return `#!/bin/sh
31
+ # ctxkit prepare-commit-msg hook — injects context trailers into commit messages
32
+ ${CTXKIT_HOOK_MARKER}
33
+ # Version: ${CTXKIT_VERSION}
34
+
35
+ # Check if ctxkit is available
36
+ if ! command -v ctxkit >/dev/null 2>&1; then
37
+ exit 0
38
+ fi
39
+
40
+ # $2 contains the commit source: message, template, merge, squash, or commit (amend)
41
+ # Skip injection for non-interactive commits (rebase, squash, amend)
42
+ case "$2" in
43
+ merge|squash|commit)
44
+ exit 0
45
+ ;;
46
+ esac
47
+
48
+ # Inject trailers — must complete within 500ms total
49
+ # On any failure, exit 0 (never block commits)
50
+ ctxkit hooks inject-trailers "$1" 2>/dev/null || true
51
+
52
+ exit 0
53
+ `;
54
+ }
55
+ /**
56
+ * Get the pre-commit hook script content.
57
+ */
58
+ function getPreCommitScript() {
59
+ return `#!/bin/sh
34
60
  # ctxkit pre-commit hook — validates .ctx files before committing
35
- # Installed by: ctxkit hooks init
61
+ ${CTXKIT_HOOK_MARKER}
62
+ # Version: ${CTXKIT_VERSION}
36
63
 
37
64
  # Check if ctxkit is available
38
- if ! command -v ctxkit &> /dev/null; then
65
+ if ! command -v ctxkit >/dev/null 2>&1; then
39
66
  echo "[ctxkit] Warning: ctxkit not found, skipping .ctx validation"
40
67
  exit 0
41
68
  fi
@@ -52,16 +79,19 @@ if [ -n "$STAGED_CTX" ]; then
52
79
  fi
53
80
  echo "[ctxkit] All .ctx files valid."
54
81
  fi
55
- `,
56
- },
57
- {
58
- name: 'post-commit',
59
- content: `#!/bin/sh
82
+ `;
83
+ }
84
+ /**
85
+ * Get the post-commit hook script content.
86
+ */
87
+ function getPostCommitScript() {
88
+ return `#!/bin/sh
60
89
  # ctxkit post-commit hook — updates .ctxl index after commit
61
- # Installed by: ctxkit hooks init
90
+ ${CTXKIT_HOOK_MARKER}
91
+ # Version: ${CTXKIT_VERSION}
62
92
 
63
93
  # Check if ctxkit is available
64
- if ! command -v ctxkit &> /dev/null; then
94
+ if ! command -v ctxkit >/dev/null 2>&1; then
65
95
  exit 0
66
96
  fi
67
97
 
@@ -72,22 +102,358 @@ if [ -n "$CHANGED_CTX" ]; then
72
102
  echo "[ctxkit] Updating .ctxl index..."
73
103
  ctxkit index generate --json > /dev/null 2>&1 || true
74
104
  fi
75
- `,
76
- },
105
+ `;
106
+ }
107
+ /**
108
+ * Check if a hook file was installed by ctxkit.
109
+ */
110
+ function isCtxkitHook(hookPath) {
111
+ if (!existsSync(hookPath))
112
+ return false;
113
+ const content = readFileSync(hookPath, 'utf-8');
114
+ return content.includes(CTXKIT_HOOK_MARKER);
115
+ }
116
+ /**
117
+ * Get installed hook version from hook file content.
118
+ */
119
+ function getHookVersion(hookPath) {
120
+ if (!existsSync(hookPath))
121
+ return null;
122
+ const content = readFileSync(hookPath, 'utf-8');
123
+ const match = content.match(/# Version: (.+)/);
124
+ return match ? match[1] : null;
125
+ }
126
+ // ============================================================
127
+ // ctxkit hooks init
128
+ // ============================================================
129
+ hooksCommand
130
+ .command('init')
131
+ .description('Install git hooks for context validation and trailer injection')
132
+ .option('--force', 'Overwrite existing hooks')
133
+ .option('--context-trailers', 'Install prepare-commit-msg hook (default: true)', true)
134
+ .action(async (options) => {
135
+ try {
136
+ const repoRoot = getRepoRoot();
137
+ if (!repoRoot) {
138
+ console.error('Error: Not a git repository');
139
+ process.exit(1);
140
+ return;
141
+ }
142
+ const hooksDir = join(repoRoot, '.git', 'hooks');
143
+ if (!existsSync(hooksDir)) {
144
+ mkdirSync(hooksDir, { recursive: true });
145
+ }
146
+ const hooks = [
147
+ { name: 'pre-commit', content: getPreCommitScript() },
148
+ { name: 'post-commit', content: getPostCommitScript() },
77
149
  ];
150
+ if (options.contextTrailers !== false) {
151
+ hooks.push({ name: 'prepare-commit-msg', content: getPrepareCommitMsgScript() });
152
+ }
78
153
  const installed = [];
154
+ const chained = [];
155
+ const updated = [];
79
156
  for (const hook of hooks) {
80
157
  const hookPath = join(hooksDir, hook.name);
81
- if (existsSync(hookPath) && !options.force) {
82
- console.error(`Hook already exists: ${hook.name}. Use --force to overwrite.`);
83
- process.exit(1);
84
- return;
158
+ const originalPath = `${hookPath}.ctxkit-original`;
159
+ if (existsSync(hookPath)) {
160
+ if (isCtxkitHook(hookPath)) {
161
+ // Already a ctxkit hook — update it
162
+ writeFileSync(hookPath, hook.content, 'utf-8');
163
+ chmodSync(hookPath, 0o755);
164
+ updated.push(hook.name);
165
+ continue;
166
+ }
167
+ if (!options.force) {
168
+ // Chain with existing hook
169
+ renameSync(hookPath, originalPath);
170
+ const chainedContent = `#!/bin/sh
171
+ # ctxkit chained hook — runs original hook first, then ctxkit hook
172
+ ${CTXKIT_HOOK_MARKER}
173
+ # Version: ${CTXKIT_VERSION}
174
+
175
+ # Run original hook first
176
+ if [ -x "${originalPath}" ]; then
177
+ "${originalPath}" "$@"
178
+ ORIGINAL_EXIT=$?
179
+ if [ $ORIGINAL_EXIT -ne 0 ]; then
180
+ exit $ORIGINAL_EXIT
181
+ fi
182
+ fi
183
+
184
+ # Then run ctxkit logic
185
+ ${hook.content.split('\n').filter((l) => !l.startsWith('#!/bin/sh')).join('\n')}
186
+ `;
187
+ writeFileSync(hookPath, chainedContent, 'utf-8');
188
+ chmodSync(hookPath, 0o755);
189
+ chained.push(hook.name);
190
+ continue;
191
+ }
85
192
  }
86
193
  writeFileSync(hookPath, hook.content, 'utf-8');
87
194
  chmodSync(hookPath, 0o755);
88
195
  installed.push(hook.name);
89
196
  }
90
- console.log(`Installed hooks: ${installed.join(', ')}`);
197
+ console.log('Installed git hooks:');
198
+ for (const name of installed) {
199
+ const desc = hookDescription(name);
200
+ console.log(` \u2713 ${name} (${desc})`);
201
+ }
202
+ for (const name of chained) {
203
+ console.log(` \u2713 ${name} (chained with existing hook)`);
204
+ }
205
+ for (const name of updated) {
206
+ console.log(` \u2713 ${name} (updated)`);
207
+ }
208
+ }
209
+ catch (error) {
210
+ const message = error instanceof Error ? error.message : String(error);
211
+ console.error(`Error: ${message}`);
212
+ process.exit(1);
213
+ }
214
+ });
215
+ function hookDescription(name) {
216
+ switch (name) {
217
+ case 'pre-commit': return 'validate .ctx files';
218
+ case 'post-commit': return 'regenerate .ctxl index';
219
+ case 'prepare-commit-msg': return 'inject context trailers';
220
+ default: return name;
221
+ }
222
+ }
223
+ // ============================================================
224
+ // ctxkit hooks inject-trailers <msg-file>
225
+ // ============================================================
226
+ hooksCommand
227
+ .command('inject-trailers <msg-file>')
228
+ .description('Inject context trailers into a commit message file (internal, called by hook)')
229
+ .action(async (msgFile) => {
230
+ try {
231
+ const repoRoot = getRepoRoot();
232
+ if (!repoRoot)
233
+ return;
234
+ // Check for staged .ctx files
235
+ let stagedCtxFiles = [];
236
+ try {
237
+ const staged = execSync('git diff --cached --name-only', {
238
+ cwd: repoRoot,
239
+ encoding: 'utf-8',
240
+ timeout: 5000,
241
+ stdio: ['pipe', 'pipe', 'pipe'],
242
+ });
243
+ stagedCtxFiles = staged
244
+ .split('\n')
245
+ .filter((f) => f.trim().endsWith('.ctx'))
246
+ .map((f) => f.trim());
247
+ }
248
+ catch {
249
+ // Ignore errors
250
+ }
251
+ // Query daemon for active session (200ms timeout)
252
+ let sessionId;
253
+ let entryCount;
254
+ const daemonUrl = process.env['CTXKIT_API'] || 'http://localhost:4117';
255
+ try {
256
+ const controller = new AbortController();
257
+ const timeout = setTimeout(() => controller.abort(), 200);
258
+ const res = await fetch(`${daemonUrl}/api/v1/sessions?status=active&limit=1`, {
259
+ signal: controller.signal,
260
+ });
261
+ clearTimeout(timeout);
262
+ if (res.ok) {
263
+ const data = await res.json();
264
+ if (data.sessions.length > 0) {
265
+ sessionId = data.sessions[0].id;
266
+ }
267
+ }
268
+ }
269
+ catch {
270
+ // Daemon unreachable — use local-only data
271
+ }
272
+ // No-op if no active session and no .ctx files staged
273
+ if (!sessionId && stagedCtxFiles.length === 0) {
274
+ return;
275
+ }
276
+ const trailerBlock = formatTrailers({
277
+ sessionId,
278
+ files: stagedCtxFiles.length > 0 ? stagedCtxFiles : undefined,
279
+ entries: entryCount,
280
+ timestamp: new Date().toISOString(),
281
+ });
282
+ if (!trailerBlock)
283
+ return;
284
+ // Read current message
285
+ const currentMessage = readFileSync(msgFile, 'utf-8');
286
+ // Check message length limit — truncate files list if needed
287
+ const newMessage = `${currentMessage.trimEnd()}\n\n${trailerBlock}\n`;
288
+ if (newMessage.length > MAX_MESSAGE_SIZE && stagedCtxFiles.length > 1) {
289
+ const truncatedTrailers = formatTrailers({
290
+ sessionId,
291
+ files: [`${stagedCtxFiles[0]} (truncated, see session ${sessionId || 'N/A'})`],
292
+ entries: entryCount,
293
+ timestamp: new Date().toISOString(),
294
+ });
295
+ writeFileSync(msgFile, `${currentMessage.trimEnd()}\n\n${truncatedTrailers}\n`, 'utf-8');
296
+ }
297
+ else {
298
+ writeFileSync(msgFile, newMessage, 'utf-8');
299
+ }
300
+ }
301
+ catch {
302
+ // Never block commits — silently exit
303
+ }
304
+ });
305
+ // ============================================================
306
+ // ctxkit hooks status
307
+ // ============================================================
308
+ hooksCommand
309
+ .command('status')
310
+ .description('Check git hook installation status')
311
+ .option('--json', 'Output as JSON')
312
+ .action(async (options) => {
313
+ try {
314
+ const repoRoot = getRepoRoot();
315
+ if (!repoRoot) {
316
+ console.error('Error: Not a git repository');
317
+ process.exit(1);
318
+ return;
319
+ }
320
+ const hooksDir = join(repoRoot, '.git', 'hooks');
321
+ const hookNames = ['pre-commit', 'post-commit', 'prepare-commit-msg'];
322
+ const status = {};
323
+ for (const name of hookNames) {
324
+ const hookPath = join(hooksDir, name);
325
+ const originalPath = `${hookPath}.ctxkit-original`;
326
+ if (!existsSync(hookPath)) {
327
+ status[name.replace(/-/g, '_')] = { status: 'not_installed' };
328
+ continue;
329
+ }
330
+ if (!isCtxkitHook(hookPath)) {
331
+ status[name.replace(/-/g, '_')] = { status: 'not_installed' };
332
+ continue;
333
+ }
334
+ const version = getHookVersion(hookPath);
335
+ const isChained = existsSync(originalPath);
336
+ if (isChained) {
337
+ status[name.replace(/-/g, '_')] = {
338
+ status: 'chained',
339
+ version: version || undefined,
340
+ chained: true,
341
+ };
342
+ }
343
+ else if (version && version !== CTXKIT_VERSION) {
344
+ status[name.replace(/-/g, '_')] = {
345
+ status: 'outdated',
346
+ version: version || undefined,
347
+ };
348
+ }
349
+ else {
350
+ status[name.replace(/-/g, '_')] = {
351
+ status: 'installed',
352
+ version: version || undefined,
353
+ };
354
+ }
355
+ }
356
+ // Check for other hooks
357
+ const otherHooks = [];
358
+ try {
359
+ const allHooks = execSync(`ls "${hooksDir}"`, {
360
+ encoding: 'utf-8',
361
+ timeout: 3000,
362
+ stdio: ['pipe', 'pipe', 'pipe'],
363
+ }).split('\n').filter((f) => f.trim() && !f.includes('.sample') && !f.includes('.ctxkit-original'));
364
+ for (const f of allHooks) {
365
+ const name = f.trim();
366
+ if (!hookNames.includes(name) && name.length > 0) {
367
+ otherHooks.push(name);
368
+ }
369
+ }
370
+ }
371
+ catch {
372
+ // Ignore
373
+ }
374
+ if (options.json) {
375
+ console.log(JSON.stringify({ ...status, other_hooks: otherHooks }, null, 2));
376
+ }
377
+ else {
378
+ console.log('Git hooks status:');
379
+ for (const name of hookNames) {
380
+ const key = name.replace(/-/g, '_');
381
+ const s = status[key];
382
+ const versionStr = s.version ? ` (v${s.version})` : '';
383
+ const pad = ' '.repeat(Math.max(0, 22 - name.length));
384
+ console.log(` ${name}:${pad}${s.status}${versionStr}`);
385
+ }
386
+ if (otherHooks.length > 0) {
387
+ console.log(` other hooks: ${otherHooks.join(', ')}`);
388
+ }
389
+ else {
390
+ console.log(' other hooks: none detected');
391
+ }
392
+ }
393
+ }
394
+ catch (error) {
395
+ const message = error instanceof Error ? error.message : String(error);
396
+ console.error(`Error: ${message}`);
397
+ process.exit(1);
398
+ }
399
+ });
400
+ // ============================================================
401
+ // ctxkit hooks remove
402
+ // ============================================================
403
+ hooksCommand
404
+ .command('remove')
405
+ .description('Remove ctxkit git hooks')
406
+ .option('--all', 'Remove all ctxkit hooks')
407
+ .option('--context-trailers', 'Remove only the prepare-commit-msg hook')
408
+ .action(async (options) => {
409
+ try {
410
+ const repoRoot = getRepoRoot();
411
+ if (!repoRoot) {
412
+ console.error('Error: Not a git repository');
413
+ process.exit(1);
414
+ return;
415
+ }
416
+ const hooksDir = join(repoRoot, '.git', 'hooks');
417
+ const toRemove = [];
418
+ if (options.contextTrailers) {
419
+ toRemove.push('prepare-commit-msg');
420
+ }
421
+ else if (options.all) {
422
+ toRemove.push('pre-commit', 'post-commit', 'prepare-commit-msg');
423
+ }
424
+ else {
425
+ console.error('Error: Specify --all or --context-trailers');
426
+ process.exit(1);
427
+ return;
428
+ }
429
+ const removed = [];
430
+ for (const name of toRemove) {
431
+ const hookPath = join(hooksDir, name);
432
+ const originalPath = `${hookPath}.ctxkit-original`;
433
+ if (!existsSync(hookPath))
434
+ continue;
435
+ if (!isCtxkitHook(hookPath))
436
+ continue;
437
+ // Restore original hook if chained
438
+ if (existsSync(originalPath)) {
439
+ unlinkSync(hookPath);
440
+ renameSync(originalPath, hookPath);
441
+ removed.push(`${name} (restored original hook)`);
442
+ }
443
+ else {
444
+ unlinkSync(hookPath);
445
+ removed.push(name);
446
+ }
447
+ }
448
+ if (removed.length === 0) {
449
+ console.log('No ctxkit hooks to remove.');
450
+ }
451
+ else {
452
+ console.log('Removed git hooks:');
453
+ for (const name of removed) {
454
+ console.log(` \u2713 ${name}`);
455
+ }
456
+ }
91
457
  }
92
458
  catch (error) {
93
459
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-cmd.js","sourceRoot":"","sources":["../../src/commands/hooks-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEtC,YAAY;KACT,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,+BAA+B,EAAE;gBACnD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAA6C;YACtD;gBACE,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBlB;aACQ;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBlB;aACQ;SACF,CAAC;QAEF,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"hooks-cmd.js","sourceRoot":"","sources":["../../src/commands/hooks-cmd.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ctxkit/cli",
3
- "version": "0.2.0",
3
+ "version": "0.8.0",
4
4
  "description": "CLI tool for ctxl context management (ctxkit)",
5
5
  "type": "module",
6
6
  "license": "MIT",