@ironbee-ai/cli 0.14.0 → 0.15.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +2 -95
  3. package/dist/clients/claude/hooks/session-status.d.ts +5 -0
  4. package/dist/clients/claude/hooks/session-status.d.ts.map +1 -1
  5. package/dist/clients/claude/hooks/session-status.js +120 -17
  6. package/dist/clients/claude/hooks/session-status.js.map +1 -1
  7. package/dist/clients/claude/index.d.ts.map +1 -1
  8. package/dist/clients/claude/index.js +11 -14
  9. package/dist/clients/claude/index.js.map +1 -1
  10. package/dist/clients/claude/oauth.d.ts +96 -0
  11. package/dist/clients/claude/oauth.d.ts.map +1 -0
  12. package/dist/clients/claude/oauth.js +290 -0
  13. package/dist/clients/claude/oauth.js.map +1 -0
  14. package/dist/clients/cursor/hooks/session-start.js +1 -1
  15. package/dist/clients/cursor/hooks/session-start.js.map +1 -1
  16. package/dist/clients/cursor/index.d.ts.map +1 -1
  17. package/dist/clients/cursor/index.js +9 -13
  18. package/dist/clients/cursor/index.js.map +1 -1
  19. package/dist/commands/claude.d.ts +30 -0
  20. package/dist/commands/claude.d.ts.map +1 -0
  21. package/dist/commands/claude.js +188 -0
  22. package/dist/commands/claude.js.map +1 -0
  23. package/dist/commands/status.js +1 -1
  24. package/dist/commands/verify.d.ts.map +1 -1
  25. package/dist/commands/verify.js +1 -2
  26. package/dist/commands/verify.js.map +1 -1
  27. package/dist/index.js +2 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/config.d.ts +41 -0
  30. package/dist/lib/config.d.ts.map +1 -1
  31. package/dist/lib/config.js +42 -1
  32. package/dist/lib/config.js.map +1 -1
  33. package/dist/lib/fs-prune.d.ts +1 -1
  34. package/dist/lib/fs-prune.js +1 -1
  35. package/dist/tui/config/schema.d.ts.map +1 -1
  36. package/dist/tui/config/schema.js +19 -0
  37. package/dist/tui/config/schema.js.map +1 -1
  38. package/dist/tui/sessions/area.d.ts.map +1 -1
  39. package/dist/tui/sessions/area.js +2 -45
  40. package/dist/tui/sessions/area.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/analysis/code-changes.d.ts +0 -22
  43. package/dist/analysis/code-changes.d.ts.map +0 -1
  44. package/dist/analysis/code-changes.js +0 -141
  45. package/dist/analysis/code-changes.js.map +0 -1
  46. package/dist/analysis/cross-session.d.ts +0 -34
  47. package/dist/analysis/cross-session.d.ts.map +0 -1
  48. package/dist/analysis/cross-session.js +0 -230
  49. package/dist/analysis/cross-session.js.map +0 -1
  50. package/dist/analysis/fix-effectiveness.d.ts +0 -16
  51. package/dist/analysis/fix-effectiveness.d.ts.map +0 -1
  52. package/dist/analysis/fix-effectiveness.js +0 -99
  53. package/dist/analysis/fix-effectiveness.js.map +0 -1
  54. package/dist/analysis/scoring.d.ts +0 -15
  55. package/dist/analysis/scoring.d.ts.map +0 -1
  56. package/dist/analysis/scoring.js +0 -59
  57. package/dist/analysis/scoring.js.map +0 -1
  58. package/dist/analysis/time-analysis.d.ts +0 -22
  59. package/dist/analysis/time-analysis.d.ts.map +0 -1
  60. package/dist/analysis/time-analysis.js +0 -174
  61. package/dist/analysis/time-analysis.js.map +0 -1
  62. package/dist/analysis/verdict-details.d.ts +0 -23
  63. package/dist/analysis/verdict-details.d.ts.map +0 -1
  64. package/dist/analysis/verdict-details.js +0 -59
  65. package/dist/analysis/verdict-details.js.map +0 -1
  66. package/dist/analysis/verification-quality.d.ts +0 -20
  67. package/dist/analysis/verification-quality.d.ts.map +0 -1
  68. package/dist/analysis/verification-quality.js +0 -145
  69. package/dist/analysis/verification-quality.js.map +0 -1
  70. package/dist/clients/claude/commands/ironbee-analyze.md +0 -42
  71. package/dist/clients/cursor/commands/ironbee-analyze/SKILL.md +0 -48
  72. package/dist/commands/analyze.d.ts +0 -3
  73. package/dist/commands/analyze.d.ts.map +0 -1
  74. package/dist/commands/analyze.js +0 -329
  75. package/dist/commands/analyze.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-analysis.js","sourceRoot":"","sources":["../../src/analysis/time-analysis.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * IronBee — Verdict Details Extraction
3
- *
4
- * Extracts raw verdict data (status, checks, issues, fixes) from
5
- * actions.jsonl for semantic analysis by LLM agents. Per-cycle structural
6
- * evidence (pages tested, console errors, probes, endpoints called, …) is
7
- * NOT part of the verdict shape — it will be derived from `tool_call`
8
- * records by a future extractor. See `verify-gate.ts` TODO.
9
- * Pure logic — no process.exit, no stdin, no side effects.
10
- */
11
- export interface VerdictDetail {
12
- timestamp: number;
13
- status: string;
14
- checks: string[];
15
- issues: string[];
16
- fixes: string[];
17
- verification_id?: string;
18
- }
19
- export interface VerdictDetailsResult {
20
- verdicts: VerdictDetail[];
21
- }
22
- export declare function extractVerdictDetails(actionsFile: string): VerdictDetailsResult | null;
23
- //# sourceMappingURL=verdict-details.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verdict-details.d.ts","sourceRoot":"","sources":["../../src/analysis/verdict-details.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAkDtF"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- /**
3
- * IronBee — Verdict Details Extraction
4
- *
5
- * Extracts raw verdict data (status, checks, issues, fixes) from
6
- * actions.jsonl for semantic analysis by LLM agents. Per-cycle structural
7
- * evidence (pages tested, console errors, probes, endpoints called, …) is
8
- * NOT part of the verdict shape — it will be derived from `tool_call`
9
- * records by a future extractor. See `verify-gate.ts` TODO.
10
- * Pure logic — no process.exit, no stdin, no side effects.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.extractVerdictDetails = extractVerdictDetails;
14
- const fs_1 = require("fs");
15
- function extractVerdictDetails(actionsFile) {
16
- if (!(0, fs_1.existsSync)(actionsFile)) {
17
- return null;
18
- }
19
- let content;
20
- try {
21
- content = (0, fs_1.readFileSync)(actionsFile, "utf-8");
22
- }
23
- catch {
24
- return null;
25
- }
26
- const lines = content.trim().split("\n").filter((l) => l.length > 0);
27
- const verdicts = [];
28
- for (const line of lines) {
29
- try {
30
- const entry = JSON.parse(line);
31
- if (entry.type !== "verdict_write") {
32
- continue;
33
- }
34
- const verdict = entry.verdict;
35
- if (!verdict) {
36
- continue;
37
- }
38
- const detail = {
39
- timestamp: entry.timestamp,
40
- status: typeof verdict.status === "string" ? verdict.status : "unknown",
41
- checks: Array.isArray(verdict.checks) ? verdict.checks.map(String) : [],
42
- issues: Array.isArray(verdict.issues) ? verdict.issues.map(String) : [],
43
- fixes: Array.isArray(verdict.fixes) ? verdict.fixes.map(String) : [],
44
- };
45
- if (typeof entry.verification_id === "string") {
46
- detail.verification_id = entry.verification_id;
47
- }
48
- verdicts.push(detail);
49
- }
50
- catch {
51
- // skip malformed lines
52
- }
53
- }
54
- if (verdicts.length === 0) {
55
- return null;
56
- }
57
- return { verdicts };
58
- }
59
- //# sourceMappingURL=verdict-details.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verdict-details.js","sourceRoot":"","sources":["../../src/analysis/verdict-details.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAkBH,sDAkDC;AAlED,2BAA8C;AAgB9C,SAAgB,qBAAqB,CAAC,WAAmB;IACrD,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACD,OAAO,GAAG,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAa,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjC,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAA4B,KAAK,CAAC,OAAkC,CAAC;YAClF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,SAAS;YACb,CAAC;YAED,MAAM,MAAM,GAAkB;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACvE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;aACvE,CAAC;YAEF,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;YACnD,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,uBAAuB;QAC3B,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxB,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * IronBee — Verification Quality Analysis
3
- *
4
- * Reads actions.jsonl and calculates verification quality metrics.
5
- * Per-cycle structural metrics (avg console errors, network failures,
6
- * pages tested) have been removed — those values are no longer part of
7
- * the verdict shape; they will return when verify-gate derives them
8
- * from `tool_call` records. See `verify-gate.ts` TODO.
9
- * Pure logic — no process.exit, no stdin, no side effects.
10
- */
11
- export interface VerificationQualityAnalysis {
12
- firstPassSuccessRate: number;
13
- totalVerifications: number;
14
- passCount: number;
15
- failCount: number;
16
- averageRetries: number;
17
- averageChecksCount: number;
18
- }
19
- export declare function analyzeVerificationQuality(actionsFile: string): VerificationQualityAnalysis | null;
20
- //# sourceMappingURL=verification-quality.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-quality.d.ts","sourceRoot":"","sources":["../../src/analysis/verification-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,2BAA2B;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AA6ED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAoFlG"}
@@ -1,145 +0,0 @@
1
- "use strict";
2
- /**
3
- * IronBee — Verification Quality Analysis
4
- *
5
- * Reads actions.jsonl and calculates verification quality metrics.
6
- * Per-cycle structural metrics (avg console errors, network failures,
7
- * pages tested) have been removed — those values are no longer part of
8
- * the verdict shape; they will return when verify-gate derives them
9
- * from `tool_call` records. See `verify-gate.ts` TODO.
10
- * Pure logic — no process.exit, no stdin, no side effects.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.analyzeVerificationQuality = analyzeVerificationQuality;
14
- const fs_1 = require("fs");
15
- function parseEntries(actionsFile) {
16
- if (!(0, fs_1.existsSync)(actionsFile)) {
17
- return [];
18
- }
19
- const content = (0, fs_1.readFileSync)(actionsFile, "utf-8");
20
- const lines = content.trim().split("\n").filter((l) => l.length > 0);
21
- const entries = [];
22
- for (const line of lines) {
23
- try {
24
- const entry = JSON.parse(line);
25
- entries.push(entry);
26
- }
27
- catch {
28
- // skip malformed lines
29
- }
30
- }
31
- return entries;
32
- }
33
- function extractVerdictData(entry) {
34
- if (entry.type !== "verdict_write") {
35
- return null;
36
- }
37
- const verdict = entry.verdict;
38
- if (typeof verdict !== "object" || verdict === null) {
39
- return null;
40
- }
41
- const v = verdict;
42
- return {
43
- status: typeof v.status === "string" ? v.status : undefined,
44
- checks: Array.isArray(v.checks) ? v.checks : undefined,
45
- };
46
- }
47
- function buildChains(entries) {
48
- const chains = [];
49
- let currentChain = { verdicts: [] };
50
- for (const entry of entries) {
51
- if (entry.type === "verdict_write") {
52
- const data = extractVerdictData(entry);
53
- if (data !== null) {
54
- currentChain.verdicts.push(data);
55
- }
56
- }
57
- if (entry.type === "verification_requested" && entry.action === "allow") {
58
- if (currentChain.verdicts.length > 0) {
59
- chains.push(currentChain);
60
- }
61
- currentChain = { verdicts: [] };
62
- }
63
- }
64
- // push trailing chain if it has verdicts
65
- if (currentChain.verdicts.length > 0) {
66
- chains.push(currentChain);
67
- }
68
- return chains;
69
- }
70
- function analyzeVerificationQuality(actionsFile) {
71
- const entries = parseEntries(actionsFile);
72
- // Collect all verdict_write entries
73
- const allVerdicts = [];
74
- for (const entry of entries) {
75
- const data = extractVerdictData(entry);
76
- if (data !== null) {
77
- allVerdicts.push(data);
78
- }
79
- }
80
- if (allVerdicts.length === 0) {
81
- return null;
82
- }
83
- const chains = buildChains(entries);
84
- // First-pass success rate
85
- let firstPassSuccesses = 0;
86
- const totalChains = chains.length;
87
- for (const chain of chains) {
88
- if (chain.verdicts.length > 0 && chain.verdicts[0].status === "pass") {
89
- firstPassSuccesses++;
90
- }
91
- }
92
- const firstPassSuccessRate = totalChains > 0
93
- ? Math.round((firstPassSuccesses / totalChains) * 100)
94
- : 0;
95
- // Pass / fail counts
96
- let passCount = 0;
97
- let failCount = 0;
98
- for (const v of allVerdicts) {
99
- if (v.status === "pass") {
100
- passCount++;
101
- }
102
- else if (v.status === "fail") {
103
- failCount++;
104
- }
105
- }
106
- // Average retries: for each chain that ends in pass, count fails before the pass.
107
- // Chains that never reach pass don't contribute (average is over pass-terminated chains).
108
- const retryCounts = [];
109
- for (const chain of chains) {
110
- let failsBeforePass = 0;
111
- for (const v of chain.verdicts) {
112
- if (v.status === "pass") {
113
- retryCounts.push(failsBeforePass);
114
- break;
115
- }
116
- if (v.status === "fail") {
117
- failsBeforePass++;
118
- }
119
- }
120
- }
121
- const averageRetries = retryCounts.length > 0
122
- ? Math.round((retryCounts.reduce((a, b) => a + b, 0) / retryCounts.length) * 10) / 10
123
- : 0;
124
- // Average checks count
125
- let totalChecksCount = 0;
126
- let checksEntries = 0;
127
- for (const v of allVerdicts) {
128
- if (v.checks !== undefined) {
129
- totalChecksCount += v.checks.length;
130
- checksEntries++;
131
- }
132
- }
133
- const averageChecksCount = checksEntries > 0
134
- ? Math.round((totalChecksCount / checksEntries) * 10) / 10
135
- : 0;
136
- return {
137
- firstPassSuccessRate,
138
- totalVerifications: allVerdicts.length,
139
- passCount,
140
- failCount,
141
- averageRetries,
142
- averageChecksCount,
143
- };
144
- }
145
- //# sourceMappingURL=verification-quality.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-quality.js","sourceRoot":"","sources":["../../src/analysis/verification-quality.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- # IronBee Session Analysis
2
-
3
- Run `ironbee analyze --json --detailed` via Bash to get raw session metrics, then provide a semantic analysis.
4
-
5
- ## Steps
6
-
7
- 1. Run `ironbee analyze --json --detailed` (all sessions) or `ironbee analyze <session-id> --json` (specific session) via Bash
8
- 2. Parse the JSON output
9
- 3. Analyze and interpret the results:
10
-
11
- ### Time Analysis
12
- - Is the coding:verification:fix ratio healthy? (High fix% = inefficient coding)
13
- - Is time to first verification reasonable? (Too long = agent coding without testing)
14
-
15
- ### Verification Quality
16
- - What is the first-pass success rate? Why might it be low?
17
- - Are enough pages and checks being tested? (Low numbers = superficial testing)
18
-
19
- ### Code Changes
20
- - Which files are hot files? Are they expected to change frequently?
21
- - Which files are problematic? What might be causing repeated fixes?
22
- - Is there edit churn? (Same file in multiple fix cycles = root cause not resolved)
23
-
24
- ### Fix Effectiveness
25
- - Are fixes working? (Low fix success rate = agent not understanding the problem)
26
- - Is re-fail rate high? What patterns do you see in the issues?
27
-
28
- ### Semantic Analysis (LLM-powered)
29
- - Group similar issues from verdict data into categories (e.g., "contrast issues", "event handler bugs", "API errors")
30
- - Identify recurring patterns across sessions
31
- - Suggest root causes for frequently failing files
32
-
33
- ### Scoring
34
- - Interpret the efficiency, quality, and confidence scores
35
- - Compare with project averages if cross-session data is available
36
-
37
- ## Output Format
38
- Provide a structured report with:
39
- - Executive summary (1-2 sentences)
40
- - Key findings (bullet points)
41
- - Recommendations (actionable next steps)
42
- - Risk areas (files/patterns to watch)
@@ -1,48 +0,0 @@
1
- ---
2
- name: ironbee-analyze
3
- description: Run IronBee session analysis with semantic interpretation of verification metrics, issues, and fixes
4
- disable-model-invocation: true
5
- ---
6
-
7
- # IronBee Session Analysis
8
-
9
- Run `ironbee analyze --json --detailed` via terminal to get raw session metrics, then provide a semantic analysis.
10
-
11
- ## Steps
12
-
13
- 1. Run `ironbee analyze --json --detailed` (all sessions) or `ironbee analyze <session-id> --json` (specific session) via terminal
14
- 2. Parse the JSON output
15
- 3. Analyze and interpret the results:
16
-
17
- ### Time Analysis
18
- - Is the coding:verification:fix ratio healthy? (High fix% = inefficient coding)
19
- - Is time to first verification reasonable? (Too long = agent coding without testing)
20
-
21
- ### Verification Quality
22
- - What is the first-pass success rate? Why might it be low?
23
- - Are enough pages and checks being tested? (Low numbers = superficial testing)
24
-
25
- ### Code Changes
26
- - Which files are hot files? Are they expected to change frequently?
27
- - Which files are problematic? What might be causing repeated fixes?
28
- - Is there edit churn? (Same file in multiple fix cycles = root cause not resolved)
29
-
30
- ### Fix Effectiveness
31
- - Are fixes working? (Low fix success rate = agent not understanding the problem)
32
- - Is re-fail rate high? What patterns do you see in the issues?
33
-
34
- ### Semantic Analysis (LLM-powered)
35
- - Group similar issues from verdict data into categories (e.g., "contrast issues", "event handler bugs", "API errors")
36
- - Identify recurring patterns across sessions
37
- - Suggest root causes for frequently failing files
38
-
39
- ### Scoring
40
- - Interpret the efficiency, quality, and confidence scores
41
- - Compare with project averages if cross-session data is available
42
-
43
- ## Output Format
44
- Provide a structured report with:
45
- - Executive summary (1-2 sentences)
46
- - Key findings (bullet points)
47
- - Recommendations (actionable next steps)
48
- - Risk areas (files/patterns to watch)
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const analyzeCommand: Command;
3
- //# sourceMappingURL=analyze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwUpC,eAAO,MAAM,cAAc,EAAE,OA2CvB,CAAC"}