grokcodecli 0.1.11 → 0.1.12

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":"manager.d.ts","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAwBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,EAAE,CAAmC;gBAEjC,WAAW,GAAE,MAAM,EAAO;IAQtC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;YA6BvD,UAAU;IA6DxB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAkBhB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAI7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAoBzE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAIrC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAwBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,EAAE,CAAmC;gBAEjC,WAAW,GAAE,MAAM,EAAO;IAQtC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;YA6BvD,UAAU;IAkDxB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAkBhB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAI7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAoBzE"}
@@ -1,5 +1,6 @@
1
1
  import * as readline from 'readline';
2
2
  import chalk from 'chalk';
3
+ import { interactiveSelect } from '../utils/selector.js';
3
4
  const TOOL_RISK_LEVELS = {
4
5
  Read: 'read',
5
6
  Glob: 'read',
@@ -59,50 +60,40 @@ export class PermissionManager {
59
60
  const { tool, description, riskLevel, details } = request;
60
61
  const color = RISK_COLORS[riskLevel];
61
62
  const icon = RISK_ICONS[riskLevel];
62
- console.log(chalk.cyan('\n┌─────────────────────────────────────────────────────┐'));
63
- console.log(chalk.cyan('│') + ` ${icon} ${color(`Permission Request: ${tool}`)}`.padEnd(60) + chalk.cyan('│'));
64
- console.log(chalk.cyan('├─────────────────────────────────────────────────────┤'));
65
- console.log(chalk.cyan('│') + ` ${description}`.padEnd(52) + chalk.cyan('│'));
66
- // Show details
63
+ // Show what's being requested
64
+ console.log();
65
+ console.log(` ${icon} ${color(tool)} ${chalk.dim('-')} ${description}`);
67
66
  if (details) {
68
- console.log(chalk.cyan('├─────────────────────────────────────────────────────┤'));
69
67
  for (const [key, value] of Object.entries(details)) {
70
68
  const valueStr = typeof value === 'string'
71
- ? value.length > 45 ? value.slice(0, 42) + '...' : value
69
+ ? value.length > 50 ? value.slice(0, 47) + '...' : value
72
70
  : String(value);
73
- console.log(chalk.cyan('│') + chalk.gray(` ${key}: `) + valueStr.padEnd(42 - key.length) + chalk.cyan('│'));
71
+ console.log(chalk.dim(` ${key}: ${valueStr}`));
74
72
  }
75
73
  }
76
- console.log(chalk.cyan('└─────────────────────────────────────────────────────┘'));
77
- console.log();
78
- console.log(` ${chalk.white('[y]')} Yes, allow once`);
79
- console.log(` ${chalk.white('[a]')} Allow for this session`);
80
- console.log(` ${chalk.red('[n]')} No, deny`);
81
- console.log(` ${chalk.red('[!]')} Deny and block for session`);
82
74
  console.log();
83
- const answer = await this.question(chalk.cyan('Choice [y/a/n/!]: '));
84
- const choice = answer.toLowerCase().trim();
75
+ const options = [
76
+ { label: 'Allow once', value: 'once', description: 'permit this action' },
77
+ { label: 'Allow session', value: 'session', description: 'permit for session' },
78
+ { label: 'Deny', value: 'deny', description: 'reject this action' },
79
+ { label: 'Block', value: 'block', description: 'block tool for session' },
80
+ ];
81
+ const choice = await interactiveSelect('Permission:', options);
85
82
  switch (choice) {
86
- case 'y':
87
- case 'yes':
83
+ case 'once':
88
84
  return true;
89
- case 'a':
90
- case 'always':
85
+ case 'session':
91
86
  this.config.sessionApproved.add(this.getSessionKey(tool, details));
92
- console.log(chalk.white(`✓ "${tool}" approved for this session.\n`));
87
+ console.log(chalk.dim(` ✓ ${tool} approved for session`));
93
88
  return true;
94
- case 'n':
95
- case 'no':
96
- case '':
97
- console.log(chalk.yellow('⊘ Denied.\n'));
89
+ case 'deny':
90
+ case null:
98
91
  return false;
99
- case '!':
100
92
  case 'block':
101
93
  this.config.alwaysDeny.push(tool);
102
- console.log(chalk.red(`⛔ "${tool}" blocked for this session.\n`));
94
+ console.log(chalk.dim(` ⛔ ${tool} blocked for session`));
103
95
  return false;
104
96
  default:
105
- console.log(chalk.gray('Invalid choice, defaulting to deny.\n'));
106
97
  return false;
107
98
  }
108
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grokcodecli",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "CLI coding assistant powered by Grok AI - like Claude Code but for xAI's Grok models",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,5 +1,6 @@
1
1
  import * as readline from 'readline';
2
2
  import chalk from 'chalk';
3
+ import { interactiveSelect, SelectorOption } from '../utils/selector.js';
3
4
 
4
5
  export type ToolRiskLevel = 'read' | 'write' | 'execute';
5
6
 
@@ -88,58 +89,47 @@ export class PermissionManager {
88
89
  const color = RISK_COLORS[riskLevel];
89
90
  const icon = RISK_ICONS[riskLevel];
90
91
 
91
- console.log(chalk.cyan('\n┌─────────────────────────────────────────────────────┐'));
92
- console.log(chalk.cyan('│') + ` ${icon} ${color(`Permission Request: ${tool}`)}`.padEnd(60) + chalk.cyan('│'));
93
- console.log(chalk.cyan('├─────────────────────────────────────────────────────┤'));
94
- console.log(chalk.cyan('│') + ` ${description}`.padEnd(52) + chalk.cyan('│'));
95
-
96
- // Show details
92
+ // Show what's being requested
93
+ console.log();
94
+ console.log(` ${icon} ${color(tool)} ${chalk.dim('-')} ${description}`);
97
95
  if (details) {
98
- console.log(chalk.cyan('├─────────────────────────────────────────────────────┤'));
99
96
  for (const [key, value] of Object.entries(details)) {
100
97
  const valueStr = typeof value === 'string'
101
- ? value.length > 45 ? value.slice(0, 42) + '...' : value
98
+ ? value.length > 50 ? value.slice(0, 47) + '...' : value
102
99
  : String(value);
103
- console.log(chalk.cyan('│') + chalk.gray(` ${key}: `) + valueStr.padEnd(42 - key.length) + chalk.cyan('│'));
100
+ console.log(chalk.dim(` ${key}: ${valueStr}`));
104
101
  }
105
102
  }
106
-
107
- console.log(chalk.cyan('└─────────────────────────────────────────────────────┘'));
108
- console.log();
109
- console.log(` ${chalk.white('[y]')} Yes, allow once`);
110
- console.log(` ${chalk.white('[a]')} Allow for this session`);
111
- console.log(` ${chalk.red('[n]')} No, deny`);
112
- console.log(` ${chalk.red('[!]')} Deny and block for session`);
113
103
  console.log();
114
104
 
115
- const answer = await this.question(chalk.cyan('Choice [y/a/n/!]: '));
116
- const choice = answer.toLowerCase().trim();
105
+ const options: SelectorOption[] = [
106
+ { label: 'Allow once', value: 'once', description: 'permit this action' },
107
+ { label: 'Allow session', value: 'session', description: 'permit for session' },
108
+ { label: 'Deny', value: 'deny', description: 'reject this action' },
109
+ { label: 'Block', value: 'block', description: 'block tool for session' },
110
+ ];
111
+
112
+ const choice = await interactiveSelect('Permission:', options);
117
113
 
118
114
  switch (choice) {
119
- case 'y':
120
- case 'yes':
115
+ case 'once':
121
116
  return true;
122
117
 
123
- case 'a':
124
- case 'always':
118
+ case 'session':
125
119
  this.config.sessionApproved.add(this.getSessionKey(tool, details));
126
- console.log(chalk.white(`✓ "${tool}" approved for this session.\n`));
120
+ console.log(chalk.dim(` ✓ ${tool} approved for session`));
127
121
  return true;
128
122
 
129
- case 'n':
130
- case 'no':
131
- case '':
132
- console.log(chalk.yellow('⊘ Denied.\n'));
123
+ case 'deny':
124
+ case null:
133
125
  return false;
134
126
 
135
- case '!':
136
127
  case 'block':
137
128
  this.config.alwaysDeny.push(tool);
138
- console.log(chalk.red(`⛔ "${tool}" blocked for this session.\n`));
129
+ console.log(chalk.dim(` ⛔ ${tool} blocked for session`));
139
130
  return false;
140
131
 
141
132
  default:
142
- console.log(chalk.gray('Invalid choice, defaulting to deny.\n'));
143
133
  return false;
144
134
  }
145
135
  }