@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,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orphansCommand = exports.OrphansCommand = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * Orphans Command - Detect unused code
9
+ */
10
+ class OrphansCommand {
11
+ name = 'orphans';
12
+ description = 'Analyze code for orphaned (unused) entities';
13
+ usage = 'weave orphans [--severity=all] [--type=all]';
14
+ flags = {
15
+ severity: {
16
+ short: 's',
17
+ description: 'Filter by severity: all, critical, high, medium, low',
18
+ default: 'all',
19
+ },
20
+ type: {
21
+ short: 't',
22
+ description: 'Filter by entity type: all, function, class, variable',
23
+ default: 'all',
24
+ },
25
+ 'include-tests': {
26
+ short: 'i',
27
+ description: 'Include test files in analysis',
28
+ default: false,
29
+ },
30
+ json: {
31
+ short: 'j',
32
+ description: 'Output as JSON',
33
+ default: false,
34
+ },
35
+ };
36
+ async execute(args) {
37
+ try {
38
+ const projectRoot = (0, utils_1.resolveProjectRoot)(args.flags.root);
39
+ const weaveDir = (0, path_1.join)(projectRoot, '.weave');
40
+ const configPath = (0, path_1.join)(weaveDir, 'config.json');
41
+ if (!(0, fs_1.existsSync)(configPath)) {
42
+ return {
43
+ success: false,
44
+ message: 'Error: .weave directory not found',
45
+ error: 'Please run "weave init <project-name>" first',
46
+ };
47
+ }
48
+ // Mock orphans data for demonstration
49
+ const mockOrphans = [
50
+ {
51
+ id: 'o1',
52
+ name: 'legacyParser',
53
+ type: 'function',
54
+ file: 'src/utils/parser.ts',
55
+ line: 42,
56
+ severity: 'high',
57
+ description: 'Parser function with no external references. Possibly replaced by new implementation.',
58
+ },
59
+ {
60
+ id: 'o2',
61
+ name: 'validateConfig',
62
+ type: 'function',
63
+ file: 'src/validators/config.ts',
64
+ line: 15,
65
+ severity: 'medium',
66
+ description: 'Exported function but only used internally in test files.',
67
+ },
68
+ {
69
+ id: 'o3',
70
+ name: 'DeprecatedClass',
71
+ type: 'class',
72
+ file: 'src/core/deprecated.ts',
73
+ line: 8,
74
+ severity: 'critical',
75
+ description: 'Class marked as exported but has no usages outside module. Consider removing.',
76
+ },
77
+ {
78
+ id: 'o4',
79
+ name: 'tempCache',
80
+ type: 'variable',
81
+ file: 'src/state/cache.ts',
82
+ line: 101,
83
+ severity: 'low',
84
+ description: 'Module-level variable possibly being phased out.',
85
+ },
86
+ ];
87
+ const severity = args.flags.severity || 'all';
88
+ const typeFilter = args.flags.type || 'all';
89
+ let results = mockOrphans;
90
+ if (severity !== 'all') {
91
+ results = results.filter((o) => o.severity === severity);
92
+ }
93
+ if (typeFilter !== 'all') {
94
+ results = results.filter((o) => o.type.toLowerCase() === typeFilter.toLowerCase());
95
+ }
96
+ if (args.flags.json) {
97
+ return {
98
+ success: true,
99
+ message: JSON.stringify(results, null, 2),
100
+ data: {
101
+ total: results.length,
102
+ by_severity: this.groupBySeverity(results),
103
+ orphans: results,
104
+ },
105
+ };
106
+ }
107
+ let output = '\n🔎 Code Analysis: Orphaned Entities\n';
108
+ output += '='.repeat(60) + '\n';
109
+ if (results.length === 0) {
110
+ output += '✨ No orphaned entities detected!\n';
111
+ }
112
+ else {
113
+ const bySeverity = this.groupBySeverity(results);
114
+ for (const sev of ['critical', 'high', 'medium', 'low']) {
115
+ if (bySeverity[sev] && bySeverity[sev].length > 0) {
116
+ output += `\n${this.getSeverityIcon(sev)} ${sev.toUpperCase()} (${bySeverity[sev].length})\n`;
117
+ output += '-'.repeat(40) + '\n';
118
+ for (const orphan of bySeverity[sev]) {
119
+ output += this.formatOrphan(orphan);
120
+ }
121
+ }
122
+ }
123
+ }
124
+ output += '\n' + '='.repeat(60) + '\n';
125
+ output += `Total orphaned entities: ${results.length}\n`;
126
+ output += 'Recommendation: Remove or refactor unused code regularly.\n';
127
+ return {
128
+ success: true,
129
+ message: output,
130
+ data: {
131
+ total: results.length,
132
+ by_severity: this.groupBySeverity(results),
133
+ orphans: results,
134
+ },
135
+ };
136
+ }
137
+ catch (error) {
138
+ return {
139
+ success: false,
140
+ message: 'Error analyzing orphans',
141
+ error: error instanceof Error ? error.message : String(error),
142
+ };
143
+ }
144
+ }
145
+ groupBySeverity(orphans) {
146
+ return {
147
+ critical: orphans.filter((o) => o.severity === 'critical'),
148
+ high: orphans.filter((o) => o.severity === 'high'),
149
+ medium: orphans.filter((o) => o.severity === 'medium'),
150
+ low: orphans.filter((o) => o.severity === 'low'),
151
+ };
152
+ }
153
+ getSeverityIcon(severity) {
154
+ const icons = {
155
+ critical: '🔴',
156
+ high: '🟠',
157
+ medium: '🟡',
158
+ low: '🟢',
159
+ };
160
+ return icons[severity];
161
+ }
162
+ getTypeIcon(type) {
163
+ const icons = {
164
+ function: '📌',
165
+ class: '🏛️',
166
+ variable: '📦',
167
+ interface: '📋',
168
+ enum: '📊',
169
+ default: '❓',
170
+ };
171
+ return icons[type.toLowerCase()] || icons.default;
172
+ }
173
+ formatOrphan(orphan) {
174
+ let output = ` ${this.getTypeIcon(orphan.type)} ${orphan.name}\n`;
175
+ output += ` File: ${orphan.file}:${orphan.line}\n`;
176
+ output += ` ${orphan.description}\n`;
177
+ return output;
178
+ }
179
+ }
180
+ exports.OrphansCommand = OrphansCommand;
181
+ exports.orphansCommand = new OrphansCommand();
182
+ //# sourceMappingURL=orphans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orphans.js","sourceRoot":"","sources":["../../src/commands/orphans.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { CLIArgs, CommandResult, CliCommand } from '../types';
2
+ /**
3
+ * Query Command - Search the knowledge graph
4
+ */
5
+ export declare class QueryCommand implements CliCommand {
6
+ name: string;
7
+ description: string;
8
+ usage: string;
9
+ flags: {
10
+ limit: {
11
+ short: string;
12
+ description: string;
13
+ default: string;
14
+ };
15
+ type: {
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 formatNode;
28
+ }
29
+ export declare const queryCommand: QueryCommand;
30
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY9D;;GAEG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,IAAI,SAAW;IACf,WAAW,SAA4D;IACvE,KAAK,SAAyD;IAC9D,KAAK;;;;;;;;;;;;;;;;MAgBH;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAwGpD,OAAO,CAAC,UAAU;CAwBnB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryCommand = exports.QueryCommand = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * Query Command - Search the knowledge graph
9
+ */
10
+ class QueryCommand {
11
+ name = 'query';
12
+ description = 'Search the knowledge graph for nodes and relationships';
13
+ usage = 'weave query <search-term> [--limit=10] [--type=all]';
14
+ flags = {
15
+ limit: {
16
+ short: 'l',
17
+ description: 'Maximum results to return (default: 10)',
18
+ default: '10',
19
+ },
20
+ type: {
21
+ short: 't',
22
+ description: 'Filter by node type (default: all)',
23
+ default: 'all',
24
+ },
25
+ json: {
26
+ short: 'j',
27
+ description: 'Output as JSON',
28
+ default: false,
29
+ },
30
+ };
31
+ async execute(args) {
32
+ try {
33
+ const searchTerm = args.args[0];
34
+ if (!searchTerm) {
35
+ return {
36
+ success: false,
37
+ message: 'Error: Search term is required',
38
+ error: 'Usage: weave query <search-term>',
39
+ };
40
+ }
41
+ const projectRoot = (0, utils_1.resolveProjectRoot)(args.flags.root);
42
+ const weaveDir = (0, path_1.join)(projectRoot, '.weave');
43
+ const graphPath = (0, path_1.join)(weaveDir, 'graph.json');
44
+ if (!(0, fs_1.existsSync)(graphPath)) {
45
+ return {
46
+ success: false,
47
+ message: 'Error: Knowledge graph not found',
48
+ error: 'Please run "weave init <project-name>" first',
49
+ };
50
+ }
51
+ // Mock search results for demonstration
52
+ const mockResults = [
53
+ {
54
+ id: 'n1',
55
+ label: 'initializeProject',
56
+ type: 'FUNCTION',
57
+ description: 'Initializes a new project with default settings',
58
+ frequency: 5,
59
+ last_accessed: new Date().toISOString().split('T')[0],
60
+ },
61
+ {
62
+ id: 'n2',
63
+ label: 'ProjectManager',
64
+ type: 'CLASS',
65
+ description: 'Manages project lifecycle and state',
66
+ frequency: 12,
67
+ last_accessed: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000)
68
+ .toISOString()
69
+ .split('T')[0],
70
+ },
71
+ {
72
+ id: 'n3',
73
+ label: 'project_config',
74
+ type: 'VARIABLE',
75
+ description: 'Global configuration object',
76
+ frequency: 3,
77
+ last_accessed: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000)
78
+ .toISOString()
79
+ .split('T')[0],
80
+ },
81
+ ];
82
+ const limit = parseInt(args.flags.limit || '10', 10);
83
+ const typeFilter = args.flags.type || 'all';
84
+ let results = mockResults.filter((r) => r.label.toLowerCase().includes(searchTerm.toLowerCase()));
85
+ if (typeFilter !== 'all') {
86
+ results = results.filter((r) => r.type === typeFilter.toUpperCase());
87
+ }
88
+ results = results.slice(0, limit);
89
+ if (args.flags.json) {
90
+ return {
91
+ success: true,
92
+ message: JSON.stringify(results, null, 2),
93
+ data: results,
94
+ };
95
+ }
96
+ let output = `\n🔍 Query Results for: "${searchTerm}"\n`;
97
+ output += '='.repeat(60) + '\n';
98
+ if (results.length === 0) {
99
+ output += 'No results found.\n';
100
+ }
101
+ else {
102
+ for (const node of results) {
103
+ output += this.formatNode(node);
104
+ }
105
+ }
106
+ output += '\n' + '='.repeat(60) + '\n';
107
+ output += `Found: ${results.length} result(s)\n`;
108
+ return {
109
+ success: true,
110
+ message: output,
111
+ data: results,
112
+ };
113
+ }
114
+ catch (error) {
115
+ return {
116
+ success: false,
117
+ message: 'Error querying knowledge graph',
118
+ error: error instanceof Error ? error.message : String(error),
119
+ };
120
+ }
121
+ }
122
+ formatNode(node) {
123
+ const typeEmoji = {
124
+ FUNCTION: '📌',
125
+ CLASS: '🏛️',
126
+ INTERFACE: '📋',
127
+ ENUM: '📊',
128
+ TYPE: '📝',
129
+ VARIABLE: '📦',
130
+ METHOD: '🔧',
131
+ MODULE: '📚',
132
+ }[node.type] || '❓';
133
+ let output = `\n${typeEmoji} ${node.label} (${node.type})\n`;
134
+ if (node.description) {
135
+ output += ` Description: ${node.description}\n`;
136
+ }
137
+ output += ` ID: ${node.id}\n`;
138
+ output += ` Frequency: ${node.frequency} times\n`;
139
+ if (node.last_accessed) {
140
+ output += ` Last accessed: ${node.last_accessed}\n`;
141
+ }
142
+ return output;
143
+ }
144
+ }
145
+ exports.QueryCommand = QueryCommand;
146
+ exports.queryCommand = new QueryCommand();
147
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { CLIArgs, CommandResult, CliCommand } from '../types';
2
+ /**
3
+ * SaveNode Command - Manually add or update a node in the knowledge graph
4
+ */
5
+ export declare class SaveNodeCommand implements CliCommand {
6
+ name: string;
7
+ description: string;
8
+ usage: string;
9
+ flags: {
10
+ label: {
11
+ short: string;
12
+ description: string;
13
+ };
14
+ type: {
15
+ short: string;
16
+ description: string;
17
+ };
18
+ description: {
19
+ short: string;
20
+ description: string;
21
+ default: string;
22
+ };
23
+ file: {
24
+ short: string;
25
+ description: string;
26
+ default: string;
27
+ };
28
+ line: {
29
+ description: string;
30
+ default: string;
31
+ };
32
+ frequency: {
33
+ description: string;
34
+ default: string;
35
+ };
36
+ json: {
37
+ short: string;
38
+ description: string;
39
+ default: boolean;
40
+ };
41
+ };
42
+ execute(args: CLIArgs): Promise<CommandResult>;
43
+ }
44
+ export declare const saveNodeCommand: SaveNodeCommand;
45
+ //# sourceMappingURL=save-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-node.d.ts","sourceRoot":"","sources":["../../src/commands/save-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAc9D;;GAEG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,IAAI,SAAe;IACnB,WAAW,SAA0D;IACrE,KAAK,SAAyE;IAC9E,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgCH;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CAqGrD;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveNodeCommand = exports.SaveNodeCommand = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * SaveNode Command - Manually add or update a node in the knowledge graph
9
+ */
10
+ class SaveNodeCommand {
11
+ name = 'save-node';
12
+ description = 'Manually add or update a node in the knowledge graph';
13
+ usage = 'weave save-node --label=<name> --type=<type> [--description=<desc>]';
14
+ flags = {
15
+ label: {
16
+ short: 'l',
17
+ description: 'Node label/name (required)',
18
+ },
19
+ type: {
20
+ short: 't',
21
+ description: 'Node type: function, class, variable, interface, enum, etc.',
22
+ },
23
+ description: {
24
+ short: 'd',
25
+ description: 'Node description/documentation',
26
+ default: '',
27
+ },
28
+ file: {
29
+ short: 'f',
30
+ description: 'Source file location',
31
+ default: '',
32
+ },
33
+ line: {
34
+ description: 'Line number in source file',
35
+ default: '0',
36
+ },
37
+ frequency: {
38
+ description: 'Reference frequency hint',
39
+ default: '1',
40
+ },
41
+ json: {
42
+ short: 'j',
43
+ description: 'Output as JSON',
44
+ default: false,
45
+ },
46
+ };
47
+ async execute(args) {
48
+ try {
49
+ const label = args.flags.label;
50
+ const type = args.flags.type;
51
+ if (!label) {
52
+ return {
53
+ success: false,
54
+ message: 'Error: --label is required',
55
+ error: 'Usage: weave save-node --label=<name> --type=<type>',
56
+ };
57
+ }
58
+ if (!type) {
59
+ return {
60
+ success: false,
61
+ message: 'Error: --type is required',
62
+ error: 'Valid types: function, class, variable, interface, enum, module, type, method',
63
+ };
64
+ }
65
+ const projectRoot = (0, utils_1.resolveProjectRoot)(args.flags.root);
66
+ const weaveDir = (0, path_1.join)(projectRoot, '.weave');
67
+ const graphPath = (0, path_1.join)(weaveDir, 'graph.json');
68
+ if (!(0, fs_1.existsSync)(graphPath)) {
69
+ return {
70
+ success: false,
71
+ message: 'Error: Knowledge graph not found',
72
+ error: 'Please run "weave init <project-name>" first',
73
+ };
74
+ }
75
+ // Read existing graph
76
+ const graphContent = (0, fs_1.readFileSync)(graphPath, 'utf-8');
77
+ const graphData = JSON.parse(graphContent);
78
+ // Create new node
79
+ const nodeId = `node_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
80
+ const now = new Date().toISOString();
81
+ const newNode = {
82
+ id: nodeId,
83
+ label,
84
+ type: type.toUpperCase(),
85
+ description: args.flags.description || undefined,
86
+ frequency: parseInt(args.flags.frequency || '1', 10),
87
+ created_at: now,
88
+ updated_at: now,
89
+ };
90
+ if (args.flags.file) {
91
+ newNode.metadata = {
92
+ file: args.flags.file,
93
+ line: parseInt(args.flags.line || '0', 10),
94
+ };
95
+ }
96
+ // Add to graph
97
+ graphData.nodes.push(newNode);
98
+ // Write back
99
+ (0, fs_1.writeFileSync)(graphPath, JSON.stringify(graphData, null, 2));
100
+ if (args.flags.json) {
101
+ return {
102
+ success: true,
103
+ message: JSON.stringify(newNode, null, 2),
104
+ data: newNode,
105
+ };
106
+ }
107
+ const output = `
108
+ ✅ Node created successfully!
109
+
110
+ 📍 Node ID: ${newNode.id}
111
+ 📌 Label: ${newNode.label}
112
+ 🏷️ Type: ${newNode.type}
113
+ ${newNode.description ? `📝 Description: ${newNode.description}\n` : ''}
114
+
115
+ Graph Statistics:
116
+ • Total nodes: ${graphData.nodes.length}
117
+ • Total edges: ${graphData.edges.length}
118
+
119
+ Use 'weave query ${newNode.label}' to search for this node.
120
+ `;
121
+ return {
122
+ success: true,
123
+ message: output,
124
+ data: newNode,
125
+ };
126
+ }
127
+ catch (error) {
128
+ return {
129
+ success: false,
130
+ message: 'Error saving node',
131
+ error: error instanceof Error ? error.message : String(error),
132
+ };
133
+ }
134
+ }
135
+ }
136
+ exports.SaveNodeCommand = SaveNodeCommand;
137
+ exports.saveNodeCommand = new SaveNodeCommand();
138
+ //# sourceMappingURL=save-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-node.js","sourceRoot":"","sources":["../../src/commands/save-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CliCommand } from '../types.js';
2
+ /**
3
+ * SkillsCommand — manage OpenWeave skill modules
4
+ *
5
+ * Subcommands:
6
+ * weave skills list List all skills and their enabled state
7
+ * weave skills enable <id> Enable a skill in .weave.config.json
8
+ * weave skills disable <id> Disable a skill in .weave.config.json
9
+ * weave skills info <id> Show config entry for a skill
10
+ */
11
+ export declare const skillsCommand: CliCommand;
12
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,UAAU,EAAE,MAAM,aAAa,CAAC;AAQjE;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,UA+D3B,CAAC"}