cxgrd 0.1.21 → 0.1.22

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.
@@ -4,6 +4,7 @@ export interface CheckCommandOptions {
4
4
  skipStructural?: boolean;
5
5
  skipCompiler?: boolean;
6
6
  strict?: boolean;
7
+ ci?: boolean;
7
8
  }
8
9
  export declare function checkCommand(projectPath?: string, options?: CheckCommandOptions): Promise<void>;
9
10
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAUjD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAChC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA8If"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAYjD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,YAAY,CAChC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAoKf"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -12,19 +45,36 @@ const scope_1 = require("../check/scope");
12
45
  const auth_session_1 = require("../auth/auth-session");
13
46
  const audit_1 = require("../team/audit");
14
47
  const audit_usage_1 = require("../auth/audit-usage");
48
+ const cloud_client_1 = require("../team/cloud-client");
49
+ const telemetry_1 = require("../telemetry");
15
50
  async function checkCommand(projectPath, options = {}) {
16
51
  const rootPath = (0, path_1.resolve)(projectPath || process.cwd());
17
52
  const scope = options.scope ?? 'all';
53
+ const isCi = options.ci ?? false;
18
54
  console.log(chalk_1.default.blue('✓ Running cxgrd check...'));
19
- if (scope !== 'all') {
55
+ if (scope !== 'all')
20
56
  console.log(chalk_1.default.gray(` Scope: ${scope} files only`));
21
- }
22
- if (options.strict) {
57
+ if (options.strict)
23
58
  console.log(chalk_1.default.gray(' Mode: strict (skipped compilers fail the check)'));
24
- }
59
+ if (isCi)
60
+ console.log(chalk_1.default.gray(' Mode: CI (results posted to server for PR status)'));
25
61
  try {
26
- // Check free tier audit limit before running
27
62
  const session = await (0, auth_session_1.resolveActiveSession)();
63
+ // --ci requires team plan so we can post the result back
64
+ if (isCi) {
65
+ if (!session) {
66
+ console.error(chalk_1.default.red('\n✗ --ci requires authentication. Run: cxgrd auth login'));
67
+ process.exit(1);
68
+ }
69
+ if (session.plan !== 'team') {
70
+ console.error(chalk_1.default.red('\n✗ --ci requires a Team plan. Upgrade at https://cxgrd.com/pricing'));
71
+ process.exit(1);
72
+ }
73
+ if (!session.orgId) {
74
+ console.error(chalk_1.default.red('\n✗ --ci: no team found on your account. Ask your team owner to invite you.'));
75
+ process.exit(1);
76
+ }
77
+ }
28
78
  if (!session || session.plan === 'free') {
29
79
  try {
30
80
  await (0, audit_usage_1.checkFreeAuditLimit)();
@@ -73,11 +123,8 @@ async function checkCommand(projectPath, options = {}) {
73
123
  else {
74
124
  console.log(chalk_1.default.red('✗ Issues found:'));
75
125
  for (const issue of result.issues) {
76
- const color = issue.severity === 'error'
77
- ? chalk_1.default.red
78
- : issue.severity === 'warning'
79
- ? chalk_1.default.yellow
80
- : chalk_1.default.blue;
126
+ const color = issue.severity === 'error' ? chalk_1.default.red :
127
+ issue.severity === 'warning' ? chalk_1.default.yellow : chalk_1.default.blue;
81
128
  const tag = issue.source === 'compiler' ? 'compiler' : 'structural';
82
129
  console.log(color(` [${issue.severity.toUpperCase()}][${tag}] ${issue.message}`));
83
130
  if (issue.file) {
@@ -88,7 +135,6 @@ async function checkCommand(projectPath, options = {}) {
88
135
  }
89
136
  console.log(chalk_1.default.gray(` ${result.summary}`));
90
137
  }
91
- // Increment audit count after successful run (for free tier tracking)
92
138
  if (!session || session.plan === 'free') {
93
139
  await (0, audit_usage_1.incrementAuditCount)();
94
140
  await (0, audit_usage_1.printAuditUsageStatus)();
@@ -100,7 +146,7 @@ async function checkCommand(projectPath, options = {}) {
100
146
  strict: options.strict ?? false,
101
147
  passed: result.passed,
102
148
  issueCount: result.issues.length,
103
- errorCount: result.issues.filter((i) => i.severity === 'error').length,
149
+ errorCount: result.issues.filter(i => i.severity === 'error').length,
104
150
  compiler: result.compilerSummary,
105
151
  };
106
152
  history.push(historyEntry);
@@ -117,13 +163,31 @@ async function checkCommand(projectPath, options = {}) {
117
163
  eventType: 'check',
118
164
  passed: result.passed,
119
165
  summary: result.summary,
120
- metadata: {
121
- issueCount: result.issues.length,
122
- scope,
123
- strict: options.strict ?? false,
124
- },
166
+ metadata: { issueCount: result.issues.length, scope, strict: options.strict ?? false, ci: isCi },
125
167
  });
168
+ // ── CI mode: post result to server so GitHub commit status is updated ─────
169
+ if (isCi && session?.orgId) {
170
+ const gitRef = await resolveGitSha(rootPath);
171
+ const repoId = rootPath.split(/[/\\]/).pop() ?? 'unknown';
172
+ // fire-and-forget — never block CI on network issues
173
+ (0, cloud_client_1.postCiCheckResult)(session, {
174
+ repoId,
175
+ gitRef,
176
+ passed: result.passed,
177
+ issueCount: result.issues.length,
178
+ errorCount: result.issues.filter(i => i.severity === 'error').length,
179
+ summary: result.summary,
180
+ }).catch(err => {
181
+ // Non-fatal in CI — print warning but don't fail the build
182
+ console.warn(chalk_1.default.yellow(` ⚠ Could not post CI result to server: ${err.message}`));
183
+ });
184
+ }
185
+ (0, telemetry_1.trackEvent)('cli_check', { scope, strict: !!options.strict, ci: isCi, passed: result.passed });
186
+ // In CI mode, exit 1 on any failure — no exceptions
126
187
  if (!result.passed) {
188
+ if (isCi) {
189
+ console.error(chalk_1.default.red('\n✗ CI check failed — blocking merge.'));
190
+ }
127
191
  process.exit(1);
128
192
  }
129
193
  }
@@ -133,6 +197,15 @@ async function checkCommand(projectPath, options = {}) {
133
197
  process.exit(1);
134
198
  }
135
199
  }
200
+ async function resolveGitSha(rootPath) {
201
+ try {
202
+ const { execSync } = await Promise.resolve().then(() => __importStar(require('child_process')));
203
+ return execSync('git rev-parse HEAD', { cwd: rootPath, stdio: 'pipe' }).toString().trim();
204
+ }
205
+ catch {
206
+ return `local-${Date.now()}`;
207
+ }
208
+ }
136
209
  function printCompilerSummary(summaries) {
137
210
  if (summaries.length === 0)
138
211
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,137 +16,82 @@ const watch_1 = require("./commands/watch");
16
16
  const doctor_1 = require("./commands/doctor");
17
17
  const auth_1 = require("./commands/auth");
18
18
  const env_1 = require("./config/env");
19
+ const telemetry_1 = require("./telemetry");
19
20
  async function main() {
20
21
  await (0, env_1.loadCxgrdEnv)();
22
+ (0, telemetry_1.printFirstRunNotice)();
21
23
  try {
22
24
  await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
23
25
  .command('scan [path]', 'Scan project and build dependency graph', (y) => y
24
- .positional('path', {
25
- describe: 'Project path (default: current directory)',
26
- type: 'string',
27
- })
28
- .option('sync', {
29
- describe: 'Push graph to cloud after scan',
30
- type: 'boolean',
31
- default: false,
32
- })
33
- .option('team', {
34
- describe: 'Require team session and push to shared team graph (Team plan)',
35
- type: 'boolean',
36
- default: false,
37
- }), async (argv) => {
26
+ .positional('path', { describe: 'Project path (default: current directory)', type: 'string' })
27
+ .option('sync', { describe: 'Push graph to cloud after scan', type: 'boolean', default: false })
28
+ .option('team', { describe: 'Require team session and push to shared team graph (Team plan)', type: 'boolean', default: false }), async (argv) => {
29
+ (0, telemetry_1.trackEvent)('cli_scan', { team: !!argv.team, sync: !!argv.sync });
38
30
  await (0, scan_1.scanCommand)(argv.path, { sync: argv.sync, team: argv.team });
39
31
  })
40
32
  .command('input <description>', 'Analyze blast radius of a change', (y) => y
41
- .positional('description', {
42
- describe: 'Description of the change',
43
- type: 'string',
44
- })
45
- .option('path', {
46
- describe: 'Project path (default: current directory)',
47
- type: 'string',
48
- alias: 'p',
49
- }), async (argv) => {
33
+ .positional('description', { describe: 'Description of the change', type: 'string' })
34
+ .option('path', { describe: 'Project path (default: current directory)', type: 'string', alias: 'p' }), async (argv) => {
35
+ (0, telemetry_1.trackEvent)('cli_input');
50
36
  await (0, input_1.inputCommand)(argv.description, argv.path);
51
37
  })
52
38
  .command('prompt <description>', 'Generate LLM-enriched AI prompt (Pro / Team)', (y) => y
53
- .positional('description', {
54
- describe: 'Description of the change',
55
- type: 'string',
56
- })
57
- .option('path', {
58
- describe: 'Project path (default: current directory)',
59
- type: 'string',
60
- alias: 'p',
61
- }), async (argv) => {
39
+ .positional('description', { describe: 'Description of the change', type: 'string' })
40
+ .option('path', { describe: 'Project path (default: current directory)', type: 'string', alias: 'p' }), async (argv) => {
41
+ (0, telemetry_1.trackEvent)('cli_prompt');
62
42
  await (0, prompt_1.promptCommand)(argv.description, argv.path);
63
43
  })
64
44
  .command('check [path]', 'Validate architecture and run compiler-backed verification', (y) => y
65
- .positional('path', {
66
- describe: 'Project path (default: current directory)',
67
- type: 'string',
68
- })
69
- .option('staged', {
70
- describe: 'Only check git staged files (for pre-commit hooks)',
71
- type: 'boolean',
72
- default: false,
73
- })
74
- .option('changed', {
75
- describe: 'Only check staged and unstaged changed files',
76
- type: 'boolean',
77
- default: false,
78
- })
79
- .option('skip-compiler', {
80
- describe: 'Skip compiler-backed verification (structural only)',
81
- type: 'boolean',
82
- default: false,
83
- })
84
- .option('skip-structural', {
85
- describe: 'Skip structural graph checks (compiler only)',
86
- type: 'boolean',
87
- default: false,
88
- })
89
- .option('strict', {
90
- describe: 'Fail if a detected language compiler was skipped (e.g. Pyright missing on a Python project)',
91
- type: 'boolean',
92
- default: false,
93
- }), async (argv) => {
45
+ .positional('path', { describe: 'Project path (default: current directory)', type: 'string' })
46
+ .option('staged', { describe: 'Only check git staged files', type: 'boolean', default: false })
47
+ .option('changed', { describe: 'Only check staged and unstaged changed files', type: 'boolean', default: false })
48
+ .option('skip-compiler', { describe: 'Skip compiler-backed verification', type: 'boolean', default: false })
49
+ .option('skip-structural', { describe: 'Skip structural graph checks', type: 'boolean', default: false })
50
+ .option('strict', { describe: 'Fail if a detected language compiler was skipped', type: 'boolean', default: false })
51
+ .option('ci', { describe: 'CI mode: post result to server for GitHub PR status (Team plan)', type: 'boolean', default: false }), async (argv) => {
94
52
  const scope = argv.staged ? 'staged' : argv.changed ? 'changed' : 'all';
53
+ (0, telemetry_1.trackEvent)('cli_check', { scope, strict: !!argv.strict, ci: !!argv.ci });
95
54
  await (0, check_1.checkCommand)(argv.path, {
96
55
  scope,
97
56
  skipCompiler: argv.skipCompiler,
98
57
  skipStructural: argv.skipStructural,
99
58
  strict: argv.strict,
59
+ ci: argv.ci,
100
60
  });
101
61
  })
102
62
  .command('auth', 'Sign in for Pro features (prompt, repo memory)', (y) => y
103
- .command('login', 'Open browser to sign in with GitHub', {}, async () => {
104
- await (0, auth_1.authLoginCommand)();
105
- })
106
- .command('logout', 'Remove stored credentials', {}, async () => {
107
- await (0, auth_1.authLogoutCommand)();
108
- })
109
- .command('status', 'Show current plan and auth state', {}, async () => {
110
- await (0, auth_1.authStatusCommand)();
111
- })
63
+ .command('login', 'Open browser to sign in with GitHub', {}, async () => { (0, telemetry_1.trackEvent)('cli_auth_login'); await (0, auth_1.authLoginCommand)(); })
64
+ .command('logout', 'Remove stored credentials', {}, async () => { (0, telemetry_1.trackEvent)('cli_auth_logout'); await (0, auth_1.authLogoutCommand)(); })
65
+ .command('status', 'Show current plan and auth state', {}, async () => { await (0, auth_1.authStatusCommand)(); })
112
66
  .demandCommand(1, 'Specify auth login, logout, or status')
113
67
  .help())
114
- .command('doctor [path]', 'Check runtime, compiler tools, and project readiness for cxgrd check --strict', (y) => y.positional('path', {
115
- describe: 'Project path (optional; omit for global toolchain only)',
116
- type: 'string',
117
- }), async (argv) => {
118
- await (0, doctor_1.doctorCommand)(argv.path);
119
- })
68
+ .command('config', 'Manage cxgrd settings', (y) => y
69
+ .option('no-telemetry', { describe: 'Opt out of anonymous usage stats', type: 'boolean' })
70
+ .option('telemetry', { describe: 'Re-enable anonymous usage stats', type: 'boolean' }), (argv) => {
71
+ if (argv.noTelemetry) {
72
+ (0, telemetry_1.optOut)();
73
+ console.log(chalk_1.default.green('✓ Telemetry disabled. No usage data will be sent.'));
74
+ }
75
+ else if (argv.telemetry) {
76
+ (0, telemetry_1.optIn)();
77
+ console.log(chalk_1.default.green('✓ Telemetry enabled. Thanks for helping improve cxgrd!'));
78
+ }
79
+ else {
80
+ const status = (0, telemetry_1.isOptedOut)() ? chalk_1.default.yellow('disabled') : chalk_1.default.green('enabled');
81
+ console.log(`Telemetry: ${status}`);
82
+ console.log(chalk_1.default.gray(' cxgrd config --no-telemetry disable'));
83
+ console.log(chalk_1.default.gray(' cxgrd config --telemetry enable'));
84
+ }
85
+ })
86
+ .command('doctor [path]', 'Check runtime, compiler tools, and project readiness', (y) => y.positional('path', { describe: 'Project path (optional)', type: 'string' }), async (argv) => { (0, telemetry_1.trackEvent)('cli_doctor'); await (0, doctor_1.doctorCommand)(argv.path); })
120
87
  .command('init-hooks [path]', 'Set up pre-commit hooks for architecture checks', (y) => y
121
- .positional('path', {
122
- describe: 'Project path (default: current directory)',
123
- type: 'string',
124
- })
125
- .option('block-critical', {
126
- describe: 'Block commits on critical risk',
127
- type: 'boolean',
128
- default: true,
129
- })
130
- .option('block-high', {
131
- describe: 'Block commits on high risk',
132
- type: 'boolean',
133
- default: false,
134
- })
135
- .option('warn-medium', {
136
- describe: 'Warn on medium risk',
137
- type: 'boolean',
138
- default: true,
139
- })
140
- .option('threshold', {
141
- describe: 'Risk threshold (0-100)',
142
- type: 'number',
143
- default: 70,
144
- })
145
- .option('uninstall', {
146
- describe: 'Uninstall hooks',
147
- type: 'boolean',
148
- default: false,
149
- }), async (argv) => {
88
+ .positional('path', { describe: 'Project path (default: current directory)', type: 'string' })
89
+ .option('block-critical', { type: 'boolean', default: true })
90
+ .option('block-high', { type: 'boolean', default: false })
91
+ .option('warn-medium', { type: 'boolean', default: true })
92
+ .option('threshold', { type: 'number', default: 70 })
93
+ .option('uninstall', { type: 'boolean', default: false }), async (argv) => {
94
+ (0, telemetry_1.trackEvent)('cli_init_hooks', { uninstall: !!argv.uninstall });
150
95
  await (0, init_hooks_1.initHooksCommand)(argv.path, {
151
96
  blockCritical: argv.blockCritical,
152
97
  blockHigh: argv.blockHigh,
@@ -156,19 +101,8 @@ async function main() {
156
101
  });
157
102
  })
158
103
  .command('watch [path]', 'Monitor project for real-time architecture analysis', (y) => y
159
- .positional('path', {
160
- describe: 'Project path (default: current directory)',
161
- type: 'string',
162
- })
163
- .option('debounce', {
164
- describe: 'Debounce time in ms',
165
- type: 'number',
166
- default: 500,
167
- }), async (argv) => {
168
- await (0, watch_1.watchCommand)(argv.path, {
169
- debounce: argv.debounce,
170
- });
171
- })
104
+ .positional('path', { describe: 'Project path (default: current directory)', type: 'string' })
105
+ .option('debounce', { type: 'number', default: 500 }), async (argv) => { (0, telemetry_1.trackEvent)('cli_watch'); await (0, watch_1.watchCommand)(argv.path, { debounce: argv.debounce }); })
172
106
  .version('0.1.0')
173
107
  .help()
174
108
  .alias('h', 'help')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,13 @@ export declare function postHealthSnapshot(session: ActiveSession, payload: {
14
14
  hubCount: number;
15
15
  hotspots: string[];
16
16
  }): Promise<void>;
17
+ export declare function postCiCheckResult(session: ActiveSession, payload: {
18
+ repoId: string;
19
+ gitRef: string;
20
+ passed: boolean;
21
+ issueCount: number;
22
+ errorCount: number;
23
+ summary: string;
24
+ }): Promise<void>;
17
25
  export declare function fetchOrgPolicy(session: ActiveSession): Promise<OrgPolicyDocument>;
18
26
  //# sourceMappingURL=cloud-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-client.d.ts","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiCjF,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1F;AAGD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoB7B;AAGD,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAcf;AAGD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAevF"}
1
+ {"version":3,"file":"cloud-client.d.ts","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiCjF,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F;AAGD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgB7B;AAGD,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAWf;AAGD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CAYf;AAID,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAWvF"}
@@ -4,6 +4,7 @@ exports.pushGraph = pushGraph;
4
4
  exports.pullGraph = pullGraph;
5
5
  exports.postAuditEvent = postAuditEvent;
6
6
  exports.postHealthSnapshot = postHealthSnapshot;
7
+ exports.postCiCheckResult = postCiCheckResult;
7
8
  exports.fetchOrgPolicy = fetchOrgPolicy;
8
9
  const env_1 = require("../config/env");
9
10
  const dev_store_1 = require("./dev-store");
@@ -88,17 +89,33 @@ async function postHealthSnapshot(session, payload) {
88
89
  if (!teamId)
89
90
  return;
90
91
  if (useDevStore(session))
91
- return; // no dev-store equivalent needed for health
92
+ return;
92
93
  const res = await apiFetch(`/api/teams/${teamId}/health`, session.token, {
93
94
  method: 'POST',
94
95
  body: JSON.stringify(payload),
95
96
  }).catch(() => null);
96
- // Non-fatal — health snapshots are best-effort telemetry
97
97
  if (res && !res.ok && res.status !== 404 && res.status !== 501) {
98
98
  const body = await res.text().catch(() => '');
99
99
  console.debug(`Health snapshot skipped (${res.status}): ${body}`);
100
100
  }
101
101
  }
102
+ // POST /api/teams/:teamId/ci-check
103
+ // Called by `cxgrd check --ci` — server updates the GitHub commit status
104
+ async function postCiCheckResult(session, payload) {
105
+ const teamId = session.orgId;
106
+ if (!teamId)
107
+ return;
108
+ if (useDevStore(session))
109
+ return;
110
+ const res = await apiFetch(`/api/teams/${teamId}/ci-check`, session.token, {
111
+ method: 'POST',
112
+ body: JSON.stringify(payload),
113
+ }).catch(() => null);
114
+ if (res && !res.ok && res.status !== 404 && res.status !== 501) {
115
+ const body = await res.text().catch(() => '');
116
+ throw new Error(`CI check post failed (${res.status}): ${body}`);
117
+ }
118
+ }
102
119
  async function fetchOrgPolicy(session) {
103
120
  const teamId = session.orgId;
104
121
  if (!teamId)
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-client.js","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-client.js","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function isOptedOut(): boolean;
2
+ export declare function optOut(): void;
3
+ export declare function optIn(): void;
4
+ export declare function printFirstRunNotice(): void;
5
+ export declare function trackEvent(event: string, props?: Record<string, unknown>): void;
6
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AA8CA,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,MAAM,IAAI,IAAI,CAG7B;AAED,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAGD,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAoCnF"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isOptedOut = isOptedOut;
7
+ exports.optOut = optOut;
8
+ exports.optIn = optIn;
9
+ exports.printFirstRunNotice = printFirstRunNotice;
10
+ exports.trackEvent = trackEvent;
11
+ const https_1 = __importDefault(require("https"));
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const os_1 = __importDefault(require("os"));
15
+ const crypto_1 = require("crypto");
16
+ // PostHog public write-only key — safe to ship in CLI source
17
+ const POSTHOG_KEY = 'phc_PvPYwxDBSkjfgTX3506gCplb8TL1FSnKUkdFZDlNEFu';
18
+ const POSTHOG_HOST = 'https://us.i.posthog.com';
19
+ const CLI_VERSION = '0.1.0';
20
+ const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.cg');
21
+ const TELEMETRY_PATH = path_1.default.join(CONFIG_DIR, 'telemetry.json');
22
+ function readConfig() {
23
+ try {
24
+ if (!fs_1.default.existsSync(TELEMETRY_PATH))
25
+ return null;
26
+ return JSON.parse(fs_1.default.readFileSync(TELEMETRY_PATH, 'utf8'));
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ function writeConfig(config) {
33
+ try {
34
+ fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
35
+ fs_1.default.writeFileSync(TELEMETRY_PATH, JSON.stringify(config, null, 2));
36
+ }
37
+ catch {
38
+ // non-fatal
39
+ }
40
+ }
41
+ function getOrCreateDeviceId() {
42
+ const existing = readConfig();
43
+ if (existing?.deviceId)
44
+ return existing.deviceId;
45
+ const deviceId = (0, crypto_1.randomUUID)();
46
+ writeConfig({ deviceId, optOut: false, firstRunAt: Date.now() });
47
+ return deviceId;
48
+ }
49
+ function isOptedOut() {
50
+ return readConfig()?.optOut === true;
51
+ }
52
+ function optOut() {
53
+ const config = readConfig();
54
+ writeConfig({ deviceId: config?.deviceId ?? (0, crypto_1.randomUUID)(), optOut: true });
55
+ }
56
+ function optIn() {
57
+ const config = readConfig();
58
+ writeConfig({ deviceId: config?.deviceId ?? (0, crypto_1.randomUUID)(), optOut: false });
59
+ }
60
+ // Print one-line notice on very first run (no config file yet)
61
+ function printFirstRunNotice() {
62
+ if (fs_1.default.existsSync(TELEMETRY_PATH))
63
+ return;
64
+ console.log('\x1b[90mℹ Anonymous usage stats help improve cxgrd. Disable: cxgrd config --no-telemetry\x1b[0m');
65
+ }
66
+ // Fire-and-forget — never blocks the CLI, never throws
67
+ function trackEvent(event, props = {}) {
68
+ if (isOptedOut())
69
+ return;
70
+ if (POSTHOG_KEY.includes('REPLACE'))
71
+ return; // dev environment guard
72
+ const deviceId = getOrCreateDeviceId();
73
+ const body = JSON.stringify({
74
+ api_key: POSTHOG_KEY,
75
+ event,
76
+ distinct_id: deviceId,
77
+ properties: {
78
+ ...props,
79
+ cli_version: CLI_VERSION,
80
+ platform: process.platform,
81
+ node_version: process.version,
82
+ $lib: 'cxgrd-cli',
83
+ },
84
+ });
85
+ try {
86
+ const req = https_1.default.request({
87
+ hostname: POSTHOG_HOST,
88
+ path: '/capture/',
89
+ method: 'POST',
90
+ headers: {
91
+ 'Content-Type': 'application/json',
92
+ 'Content-Length': Buffer.byteLength(body),
93
+ },
94
+ timeout: 3000,
95
+ });
96
+ req.on('error', () => { });
97
+ req.on('timeout', () => req.destroy());
98
+ req.write(body);
99
+ req.end();
100
+ }
101
+ catch {
102
+ // never propagate
103
+ }
104
+ }
105
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cxgrd",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "AI context guardrail CLI — dependency-aware architecture safety for AI-assisted development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {