@openweave/weave-cli 1.0.2 β†’ 1.0.3

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 (63) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +136 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/errors.d.ts +32 -0
  6. package/dist/commands/errors.d.ts.map +1 -0
  7. package/dist/commands/errors.js +182 -0
  8. package/dist/commands/errors.js.map +1 -0
  9. package/dist/commands/init.d.ts +29 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +126 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/migrate.d.ts +23 -0
  14. package/dist/commands/migrate.d.ts.map +1 -0
  15. package/dist/commands/migrate.js +233 -0
  16. package/dist/commands/migrate.js.map +1 -0
  17. package/dist/commands/milestones.d.ts +32 -0
  18. package/dist/commands/milestones.d.ts.map +1 -0
  19. package/dist/commands/milestones.js +217 -0
  20. package/dist/commands/milestones.js.map +1 -0
  21. package/dist/commands/orphans.d.ts +38 -0
  22. package/dist/commands/orphans.d.ts.map +1 -0
  23. package/dist/commands/orphans.js +182 -0
  24. package/dist/commands/orphans.js.map +1 -0
  25. package/dist/commands/query.d.ts +30 -0
  26. package/dist/commands/query.d.ts.map +1 -0
  27. package/dist/commands/query.js +147 -0
  28. package/dist/commands/query.js.map +1 -0
  29. package/dist/commands/save-node.d.ts +45 -0
  30. package/dist/commands/save-node.d.ts.map +1 -0
  31. package/dist/commands/save-node.js +138 -0
  32. package/dist/commands/save-node.js.map +1 -0
  33. package/dist/commands/skills.d.ts +12 -0
  34. package/dist/commands/skills.d.ts.map +1 -0
  35. package/dist/commands/skills.js +202 -0
  36. package/dist/commands/skills.js.map +1 -0
  37. package/dist/commands/status.d.ts +25 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +110 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/commands/tools.d.ts +13 -0
  42. package/dist/commands/tools.d.ts.map +1 -0
  43. package/dist/commands/tools.js +341 -0
  44. package/dist/commands/tools.js.map +1 -0
  45. package/dist/index.d.ts +12 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +28 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/types.d.ts +46 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +6 -0
  52. package/dist/types.js.map +1 -0
  53. package/dist/utils.d.ts +17 -0
  54. package/dist/utils.d.ts.map +1 -0
  55. package/dist/utils.js +24 -0
  56. package/dist/utils.js.map +1 -0
  57. package/package.json +6 -7
  58. package/src/commands/errors.ts +1 -1
  59. package/src/commands/milestones.ts +1 -1
  60. package/src/commands/orphans.ts +1 -1
  61. package/src/commands/query.ts +1 -1
  62. package/src/commands/save-node.ts +1 -1
  63. package/src/commands/status.ts +1 -1
@@ -0,0 +1,233 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.migrateCommand = void 0;
37
+ const path_1 = require("path");
38
+ const weave_provider_1 = require("@openweave/weave-provider");
39
+ /**
40
+ * MigrateCommand
41
+ *
42
+ * Migrate data between any two registered OpenWeave providers.
43
+ *
44
+ * Usage:
45
+ * weave migrate --from json --to sqlite
46
+ * weave migrate --from sqlite --to json --data-dir /my/data
47
+ * weave migrate --from json --to sqlite --dry-run
48
+ *
49
+ * Supported built-in providers (no external service needed):
50
+ * json β€” JSON files in --data-dir (default: .weave)
51
+ * sqlite β€” SQLite file via node:sqlite (requires @openweave/weave-provider-sqlite)
52
+ * memory β€” In-memory (useful for --dry-run inspection)
53
+ *
54
+ * Extended providers (require running services + extra packages):
55
+ * mongodb β€” requires @openweave/weave-provider-mongodb + WEAVE_MONGODB_URI
56
+ * postgres β€” requires @openweave/weave-provider-postgres + WEAVE_POSTGRES_URL
57
+ * mysql β€” requires @openweave/weave-provider-mysql + WEAVE_MYSQL_URI
58
+ */
59
+ exports.migrateCommand = {
60
+ name: "migrate",
61
+ description: "Migrate data between OpenWeave storage providers",
62
+ usage: "weave migrate --from <source> --to <destination> [options]",
63
+ flags: {
64
+ from: {
65
+ short: "f",
66
+ description: "Source provider (json | sqlite | memory | mongodb | postgres | mysql)",
67
+ default: "json",
68
+ },
69
+ to: {
70
+ short: "t",
71
+ description: "Target provider (json | sqlite | memory | mongodb | postgres | mysql)",
72
+ default: "sqlite",
73
+ },
74
+ "data-dir": {
75
+ short: "d",
76
+ description: "Data directory for file-based providers (default: .weave)",
77
+ default: ".weave",
78
+ },
79
+ "db-file": {
80
+ description: "SQLite database file path (default: <data-dir>/weave.db)",
81
+ default: "",
82
+ },
83
+ prefix: {
84
+ short: "p",
85
+ description: "Migrate only keys matching this prefix (e.g. graph:)",
86
+ default: "",
87
+ },
88
+ "dry-run": {
89
+ description: "Preview what would be migrated without writing to destination",
90
+ default: false,
91
+ },
92
+ verbose: {
93
+ short: "v",
94
+ description: "Verbose output",
95
+ default: false,
96
+ },
97
+ },
98
+ async execute(args) {
99
+ const fromName = args.flags["from"] || "json";
100
+ const toName = args.flags["to"] || "sqlite";
101
+ const dataDir = args.flags["data-dir"] || ".weave";
102
+ const dbFile = args.flags["db-file"] || (0, path_1.join)(dataDir, "weave.db");
103
+ const prefix = args.flags["prefix"] || undefined;
104
+ const dryRun = !!args.flags["dry-run"];
105
+ const verbose = !!args.flags["verbose"];
106
+ if (fromName === toName) {
107
+ return { success: false, message: "Source and destination providers must differ." };
108
+ }
109
+ const log = (msg) => { if (verbose)
110
+ console.error(` ${msg}`); };
111
+ let source;
112
+ let destination;
113
+ try {
114
+ source = await buildProvider(fromName, dataDir, dbFile, log);
115
+ }
116
+ catch (err) {
117
+ return {
118
+ success: false,
119
+ message: `Failed to open source provider "${fromName}": ${err.message}`,
120
+ };
121
+ }
122
+ try {
123
+ if (!dryRun) {
124
+ destination = await buildProvider(toName, dataDir, dbFile + ".migrated", log);
125
+ }
126
+ else {
127
+ destination = new weave_provider_1.MemoryProvider();
128
+ }
129
+ }
130
+ catch (err) {
131
+ await source.close().catch(() => { });
132
+ return {
133
+ success: false,
134
+ message: `Failed to open destination provider "${toName}": ${err.message}`,
135
+ };
136
+ }
137
+ try {
138
+ const keys = await source.list(prefix);
139
+ if (keys.length === 0) {
140
+ return {
141
+ success: true,
142
+ message: `No keys found${prefix ? ` matching prefix "${prefix}"` : ""}. Nothing to migrate.`,
143
+ };
144
+ }
145
+ log(`Found ${keys.length} key(s) to migrate...`);
146
+ let migrated = 0;
147
+ let failed = 0;
148
+ const errors = [];
149
+ for (const key of keys) {
150
+ try {
151
+ const value = await source.get(key);
152
+ if (value !== null) {
153
+ if (!dryRun)
154
+ await destination.set(key, value);
155
+ migrated++;
156
+ log(`βœ“ ${key}`);
157
+ }
158
+ }
159
+ catch (err) {
160
+ failed++;
161
+ errors.push(` ${key}: ${err.message}`);
162
+ log(`βœ— ${key}: ${err.message}`);
163
+ }
164
+ }
165
+ const dryRunNote = dryRun ? " [DRY RUN β€” no data written]" : "";
166
+ const summary = [
167
+ `Migration complete${dryRunNote}`,
168
+ ` From: ${fromName}`,
169
+ ` To: ${dryRun ? "memory (dry-run)" : toName}`,
170
+ ` Keys: ${keys.length} found`,
171
+ ` Migrated: ${migrated}`,
172
+ ...(failed > 0 ? [` Failed: ${failed}`, ...errors] : []),
173
+ ].join("\n");
174
+ return { success: failed === 0, message: summary };
175
+ }
176
+ finally {
177
+ await source.close().catch(() => { });
178
+ if (!dryRun)
179
+ await destination.close().catch(() => { });
180
+ }
181
+ },
182
+ };
183
+ // ---------------------------------------------------------------------------
184
+ // Factory: create a provider by name
185
+ // ---------------------------------------------------------------------------
186
+ async function buildProvider(name, dataDir, dbFile, log) {
187
+ log(`Opening "${name}" provider...`);
188
+ switch (name) {
189
+ case "json":
190
+ return new weave_provider_1.JsonProvider(dataDir);
191
+ case "memory":
192
+ return new weave_provider_1.MemoryProvider();
193
+ case "sqlite": {
194
+ // Dynamically import to avoid hard dep; package must be installed
195
+ const { SqliteProvider } = await Promise.resolve(`${"@openweave/weave-provider-sqlite"}`).then(s => __importStar(require(s))).catch(() => {
196
+ throw new Error('"sqlite" provider requires @openweave/weave-provider-sqlite to be installed.');
197
+ });
198
+ return new SqliteProvider(dbFile);
199
+ }
200
+ case "mongodb": {
201
+ const { MongoProvider } = await Promise.resolve(`${"@openweave/weave-provider-mongodb"}`).then(s => __importStar(require(s))).catch(() => {
202
+ throw new Error('"mongodb" provider requires @openweave/weave-provider-mongodb to be installed.');
203
+ });
204
+ const uri = process.env["WEAVE_MONGODB_URI"] ?? "mongodb://localhost:27017";
205
+ return MongoProvider.connect({
206
+ uri,
207
+ });
208
+ }
209
+ case "postgres": {
210
+ const { PostgresProvider } = await Promise.resolve(`${"@openweave/weave-provider-postgres"}`).then(s => __importStar(require(s))).catch(() => {
211
+ throw new Error('"postgres" provider requires @openweave/weave-provider-postgres to be installed.');
212
+ });
213
+ const connectionString = process.env["WEAVE_POSTGRES_URL"] ??
214
+ process.env["DATABASE_URL"] ??
215
+ "postgresql://postgres:postgres@localhost:5432/openweave";
216
+ return PostgresProvider.connect({ connectionString });
217
+ }
218
+ case "mysql": {
219
+ const { MysqlProvider } = await Promise.resolve(`${"@openweave/weave-provider-mysql"}`).then(s => __importStar(require(s))).catch(() => {
220
+ throw new Error('"mysql" provider requires @openweave/weave-provider-mysql to be installed.');
221
+ });
222
+ const uri = process.env["WEAVE_MYSQL_URI"] ??
223
+ process.env["DATABASE_URL"] ??
224
+ "mysql://root:root@localhost:3306/openweave";
225
+ return MysqlProvider.connect({
226
+ uri,
227
+ });
228
+ }
229
+ default:
230
+ throw new Error(`Unknown provider "${name}". Supported: json, sqlite, memory, mongodb, postgres, mysql.`);
231
+ }
232
+ }
233
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { CLIArgs, CommandResult, CliCommand } from '../types';
2
+ /**
3
+ * Milestones Command - View project milestones and tasks
4
+ */
5
+ export declare class MilestonesCommand implements CliCommand {
6
+ name: string;
7
+ description: string;
8
+ usage: string;
9
+ flags: {
10
+ filter: {
11
+ short: string;
12
+ description: string;
13
+ default: string;
14
+ };
15
+ sort: {
16
+ short: string;
17
+ description: string;
18
+ default: string;
19
+ };
20
+ json: {
21
+ short: string;
22
+ description: string;
23
+ default: boolean;
24
+ };
25
+ };
26
+ execute(args: CLIArgs): Promise<CommandResult>;
27
+ private filterMilestones;
28
+ private formatMilestone;
29
+ private progressBar;
30
+ }
31
+ export declare const milestonesCommand: MilestonesCommand;
32
+ //# sourceMappingURL=milestones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestones.d.ts","sourceRoot":"","sources":["../../src/commands/milestones.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAmB9D;;GAEG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAClD,IAAI,SAAgB;IACpB,WAAW,SAAuC;IAClD,KAAK,SAA0D;IAC/D,KAAK;;;;;;;;;;;;;;;;MAiBH;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAgJpD,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,WAAW;CAKpB;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.milestonesCommand = exports.MilestonesCommand = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * Milestones Command - View project milestones and tasks
9
+ */
10
+ class MilestonesCommand {
11
+ name = 'milestones';
12
+ description = 'List all milestones and sub-tasks';
13
+ usage = 'weave milestones [--filter=active] [--sort=priority]';
14
+ flags = {
15
+ filter: {
16
+ short: 'f',
17
+ description: 'Filter by status: all, active, completed, blocked (default: all)',
18
+ default: 'all',
19
+ },
20
+ sort: {
21
+ short: 's',
22
+ description: 'Sort by: priority, date, name (default: priority)',
23
+ default: 'priority',
24
+ },
25
+ json: {
26
+ short: 'j',
27
+ description: 'Output as JSON',
28
+ default: false,
29
+ },
30
+ };
31
+ async execute(args) {
32
+ try {
33
+ const projectRoot = (0, utils_1.resolveProjectRoot)(args.flags.root);
34
+ const weaveDir = (0, path_1.join)(projectRoot, '.weave');
35
+ const roadmapPath = (0, path_1.join)(weaveDir, 'ROADMAP.md');
36
+ if (!(0, fs_1.existsSync)(roadmapPath)) {
37
+ return {
38
+ success: false,
39
+ message: 'Error: ROADMAP.md not found',
40
+ error: 'Please run "weave init <project-name>" first',
41
+ };
42
+ }
43
+ // Mock milestones for demonstration
44
+ const mockMilestones = [
45
+ {
46
+ id: 'm1',
47
+ name: 'Setup Development Environment',
48
+ status: 'completed',
49
+ priority: 'critical',
50
+ completion_percentage: 100,
51
+ subtasks: [
52
+ {
53
+ id: 'st1',
54
+ title: 'Install dependencies',
55
+ status: 'completed',
56
+ completed_date: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000)
57
+ .toISOString()
58
+ .split('T')[0],
59
+ },
60
+ {
61
+ id: 'st2',
62
+ title: 'Configure TypeScript',
63
+ status: 'completed',
64
+ completed_date: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000)
65
+ .toISOString()
66
+ .split('T')[0],
67
+ },
68
+ {
69
+ id: 'st3',
70
+ title: 'Setup testing framework',
71
+ status: 'completed',
72
+ completed_date: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000)
73
+ .toISOString()
74
+ .split('T')[0],
75
+ },
76
+ ],
77
+ },
78
+ {
79
+ id: 'm2',
80
+ name: 'Core Feature Implementation',
81
+ status: 'in_progress',
82
+ priority: 'critical',
83
+ start_date: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000)
84
+ .toISOString()
85
+ .split('T')[0],
86
+ completion_percentage: 65,
87
+ subtasks: [
88
+ {
89
+ id: 'st4',
90
+ title: 'Implement knowledge graph',
91
+ status: 'completed',
92
+ completed_date: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000)
93
+ .toISOString()
94
+ .split('T')[0],
95
+ },
96
+ {
97
+ id: 'st5',
98
+ title: 'Add orphan detection',
99
+ status: 'in_progress',
100
+ },
101
+ {
102
+ id: 'st6',
103
+ title: 'Implement milestone planner',
104
+ status: 'not_started',
105
+ },
106
+ {
107
+ id: 'st7',
108
+ title: 'Create MCP server',
109
+ status: 'not_started',
110
+ },
111
+ ],
112
+ },
113
+ {
114
+ id: 'm3',
115
+ name: 'CLI Development',
116
+ status: 'not_started',
117
+ priority: 'high',
118
+ completion_percentage: 0,
119
+ subtasks: [
120
+ {
121
+ id: 'st8',
122
+ title: 'Design CLI commands',
123
+ status: 'not_started',
124
+ },
125
+ {
126
+ id: 'st9',
127
+ title: 'Implement command handlers',
128
+ status: 'not_started',
129
+ },
130
+ {
131
+ id: 'st10',
132
+ title: 'Add help and documentation',
133
+ status: 'not_started',
134
+ },
135
+ ],
136
+ },
137
+ ];
138
+ const filter = args.flags.filter || 'all';
139
+ const filtered = this.filterMilestones(mockMilestones, filter);
140
+ if (args.flags.json) {
141
+ return {
142
+ success: true,
143
+ message: JSON.stringify(filtered, null, 2),
144
+ data: filtered,
145
+ };
146
+ }
147
+ let output = '\nπŸ“‹ Project Milestones\n' + '='.repeat(60) + '\n';
148
+ for (const milestone of filtered) {
149
+ output += this.formatMilestone(milestone);
150
+ }
151
+ output += '\n' + '='.repeat(60) + '\n';
152
+ output += `Total: ${filtered.length} milestone(s)\n`;
153
+ return {
154
+ success: true,
155
+ message: output,
156
+ data: filtered,
157
+ };
158
+ }
159
+ catch (error) {
160
+ return {
161
+ success: false,
162
+ message: 'Error reading milestones',
163
+ error: error instanceof Error ? error.message : String(error),
164
+ };
165
+ }
166
+ }
167
+ filterMilestones(milestones, filter) {
168
+ if (filter === 'all')
169
+ return milestones;
170
+ if (filter === 'active')
171
+ return milestones.filter((m) => m.status === 'in_progress');
172
+ if (filter === 'completed')
173
+ return milestones.filter((m) => m.status === 'completed');
174
+ if (filter === 'blocked')
175
+ return milestones.filter((m) => m.status === 'blocked');
176
+ return milestones;
177
+ }
178
+ formatMilestone(milestone) {
179
+ const statusIcon = {
180
+ completed: 'βœ…',
181
+ in_progress: 'πŸ”„',
182
+ not_started: 'πŸ”œ',
183
+ blocked: 'β›”',
184
+ deferred: '⏸️',
185
+ }[milestone.status];
186
+ const priorityEmoji = {
187
+ critical: 'πŸ”΄',
188
+ high: '🟠',
189
+ medium: '🟑',
190
+ low: '🟒',
191
+ }[milestone.priority];
192
+ let output = `\n${statusIcon} ${milestone.name} [${priorityEmoji} ${milestone.priority}]\n`;
193
+ output += ` Progress: ${this.progressBar(milestone.completion_percentage)} ${milestone.completion_percentage}%\n`;
194
+ if (milestone.subtasks && milestone.subtasks.length > 0) {
195
+ output += ' Sub-tasks:\n';
196
+ for (const subtask of milestone.subtasks) {
197
+ const subIcon = {
198
+ completed: 'βœ“',
199
+ in_progress: 'β†’',
200
+ not_started: 'β—‹',
201
+ blocked: 'βœ—',
202
+ deferred: '–',
203
+ }[subtask.status];
204
+ output += ` [${subIcon}] ${subtask.title}\n`;
205
+ }
206
+ }
207
+ return output;
208
+ }
209
+ progressBar(percentage, width = 20) {
210
+ const filled = Math.round((percentage / 100) * width);
211
+ const empty = width - filled;
212
+ return '[' + 'β–ˆ'.repeat(filled) + 'β–‘'.repeat(empty) + ']';
213
+ }
214
+ }
215
+ exports.MilestonesCommand = MilestonesCommand;
216
+ exports.milestonesCommand = new MilestonesCommand();
217
+ //# sourceMappingURL=milestones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestones.js","sourceRoot":"","sources":["../../src/commands/milestones.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { CLIArgs, CommandResult, CliCommand } from '../types';
2
+ /**
3
+ * Orphans Command - Detect unused code
4
+ */
5
+ export declare class OrphansCommand implements CliCommand {
6
+ name: string;
7
+ description: string;
8
+ usage: string;
9
+ flags: {
10
+ severity: {
11
+ short: string;
12
+ description: string;
13
+ default: string;
14
+ };
15
+ type: {
16
+ short: string;
17
+ description: string;
18
+ default: string;
19
+ };
20
+ 'include-tests': {
21
+ short: string;
22
+ description: string;
23
+ default: boolean;
24
+ };
25
+ json: {
26
+ short: string;
27
+ description: string;
28
+ default: boolean;
29
+ };
30
+ };
31
+ execute(args: CLIArgs): Promise<CommandResult>;
32
+ private groupBySeverity;
33
+ private getSeverityIcon;
34
+ private getTypeIcon;
35
+ private formatOrphan;
36
+ }
37
+ export declare const orphansCommand: OrphansCommand;
38
+ //# sourceMappingURL=orphans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../../src/commands/orphans.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAa9D;;GAEG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAa;IACjB,WAAW,SAAiD;IAC5D,KAAK,SAAiD;IACtD,KAAK;;;;;;;;;;;;;;;;;;;;;MAqBH;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA2HpD,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;CAMrB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}