@aaronsb/kg-cli 0.6.6 → 0.7.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 (96) hide show
  1. package/dist/api/client.d.ts +127 -1
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/client.js +147 -0
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/cli/batch.d.ts +8 -0
  6. package/dist/cli/batch.d.ts.map +1 -0
  7. package/dist/cli/batch.js +225 -0
  8. package/dist/cli/batch.js.map +1 -0
  9. package/dist/cli/commands.d.ts.map +1 -1
  10. package/dist/cli/commands.js +8 -0
  11. package/dist/cli/commands.js.map +1 -1
  12. package/dist/cli/concept.d.ts +9 -0
  13. package/dist/cli/concept.d.ts.map +1 -0
  14. package/dist/cli/concept.js +336 -0
  15. package/dist/cli/concept.js.map +1 -0
  16. package/dist/cli/edge.d.ts +9 -0
  17. package/dist/cli/edge.d.ts.map +1 -0
  18. package/dist/cli/edge.js +364 -0
  19. package/dist/cli/edge.js.map +1 -0
  20. package/dist/cli/jobs.js +111 -3
  21. package/dist/cli/jobs.js.map +1 -1
  22. package/dist/cli/storage.d.ts +10 -0
  23. package/dist/cli/storage.d.ts.map +1 -0
  24. package/dist/cli/storage.js +260 -0
  25. package/dist/cli/storage.js.map +1 -0
  26. package/dist/cli/vocabulary/index.d.ts.map +1 -1
  27. package/dist/cli/vocabulary/index.js +1 -0
  28. package/dist/cli/vocabulary/index.js.map +1 -1
  29. package/dist/cli/vocabulary/similarity.d.ts +1 -0
  30. package/dist/cli/vocabulary/similarity.d.ts.map +1 -1
  31. package/dist/cli/vocabulary/similarity.js +60 -9
  32. package/dist/cli/vocabulary/similarity.js.map +1 -1
  33. package/dist/lib/interactive.d.ts +84 -0
  34. package/dist/lib/interactive.d.ts.map +1 -0
  35. package/dist/lib/interactive.js +296 -0
  36. package/dist/lib/interactive.js.map +1 -0
  37. package/dist/lib/validation.d.ts +106 -0
  38. package/dist/lib/validation.d.ts.map +1 -0
  39. package/dist/lib/validation.js +354 -0
  40. package/dist/lib/validation.js.map +1 -0
  41. package/dist/mcp/formatters/concept.d.ts +24 -0
  42. package/dist/mcp/formatters/concept.d.ts.map +1 -0
  43. package/dist/mcp/formatters/concept.js +243 -0
  44. package/dist/mcp/formatters/concept.js.map +1 -0
  45. package/dist/mcp/formatters/document.d.ts +25 -0
  46. package/dist/mcp/formatters/document.d.ts.map +1 -0
  47. package/dist/mcp/formatters/document.js +178 -0
  48. package/dist/mcp/formatters/document.js.map +1 -0
  49. package/dist/mcp/formatters/epistemic.d.ts +16 -0
  50. package/dist/mcp/formatters/epistemic.d.ts.map +1 -0
  51. package/dist/mcp/formatters/epistemic.js +269 -0
  52. package/dist/mcp/formatters/epistemic.js.map +1 -0
  53. package/dist/mcp/formatters/graph.d.ts +63 -0
  54. package/dist/mcp/formatters/graph.d.ts.map +1 -0
  55. package/dist/mcp/formatters/graph.js +220 -0
  56. package/dist/mcp/formatters/graph.js.map +1 -0
  57. package/dist/mcp/formatters/index.d.ts +18 -0
  58. package/dist/mcp/formatters/index.d.ts.map +1 -0
  59. package/dist/mcp/formatters/index.js +63 -0
  60. package/dist/mcp/formatters/index.js.map +1 -0
  61. package/dist/mcp/formatters/ingest.d.ts +16 -0
  62. package/dist/mcp/formatters/ingest.d.ts.map +1 -0
  63. package/dist/mcp/formatters/ingest.js +169 -0
  64. package/dist/mcp/formatters/ingest.js.map +1 -0
  65. package/dist/mcp/formatters/job.d.ts +13 -0
  66. package/dist/mcp/formatters/job.d.ts.map +1 -0
  67. package/dist/mcp/formatters/job.js +204 -0
  68. package/dist/mcp/formatters/job.js.map +1 -0
  69. package/dist/mcp/formatters/source.d.ts +19 -0
  70. package/dist/mcp/formatters/source.d.ts.map +1 -0
  71. package/dist/mcp/formatters/source.js +182 -0
  72. package/dist/mcp/formatters/source.js.map +1 -0
  73. package/dist/mcp/formatters/system.d.ts +10 -0
  74. package/dist/mcp/formatters/system.d.ts.map +1 -0
  75. package/dist/mcp/formatters/system.js +152 -0
  76. package/dist/mcp/formatters/system.js.map +1 -0
  77. package/dist/mcp/formatters/utils.d.ts +17 -0
  78. package/dist/mcp/formatters/utils.d.ts.map +1 -0
  79. package/dist/mcp/formatters/utils.js +55 -0
  80. package/dist/mcp/formatters/utils.js.map +1 -0
  81. package/dist/mcp/graph-operations.d.ts +242 -0
  82. package/dist/mcp/graph-operations.d.ts.map +1 -0
  83. package/dist/mcp/graph-operations.js +532 -0
  84. package/dist/mcp/graph-operations.js.map +1 -0
  85. package/dist/mcp-server.js +460 -32
  86. package/dist/mcp-server.js.map +1 -1
  87. package/dist/types/index.d.ts +153 -0
  88. package/dist/types/index.d.ts.map +1 -1
  89. package/dist/version.d.ts +3 -3
  90. package/dist/version.js +3 -3
  91. package/dist/version.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/mcp/formatters.d.ts +0 -100
  94. package/dist/mcp/formatters.d.ts.map +0 -1
  95. package/dist/mcp/formatters.js +0 -1411
  96. package/dist/mcp/formatters.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concept.js","sourceRoot":"","sources":["../../src/cli/concept.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Edge CRUD Commands (ADR-089 Phase 2)
3
+ *
4
+ * Direct creation, listing, and management of edges (relationships) in the knowledge graph.
5
+ * Supports both non-interactive (flags) and interactive (-i) modes.
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const edgeCommand: Command;
9
+ //# sourceMappingURL=edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/cli/edge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,WAAW,SAUY,CAAC"}
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ /**
3
+ * Edge CRUD Commands (ADR-089 Phase 2)
4
+ *
5
+ * Direct creation, listing, and management of edges (relationships) in the knowledge graph.
6
+ * Supports both non-interactive (flags) and interactive (-i) modes.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.edgeCommand = void 0;
43
+ const commander_1 = require("commander");
44
+ const client_1 = require("../api/client");
45
+ const colors = __importStar(require("./colors"));
46
+ const colors_1 = require("./colors");
47
+ const table_1 = require("../lib/table");
48
+ const help_formatter_1 = require("./help-formatter");
49
+ const validation_1 = require("../lib/validation");
50
+ const interactive_1 = require("../lib/interactive");
51
+ exports.edgeCommand = (0, help_formatter_1.setCommandHelp)(new commander_1.Command('edge'), 'Manage edges (relationships) in the knowledge graph', 'Create, list, and delete edges between concepts. Edges represent relationships like IMPLIES, SUPPORTS, CONTRADICTS, etc. Use --from/--to with concept IDs or --from-label/--to-label for semantic lookup by label.')
52
+ .alias('e')
53
+ .showHelpAfterError('(add --help for additional information)')
54
+ .showSuggestionAfterError()
55
+ .addCommand(createListCommand())
56
+ .addCommand(createCreateCommand())
57
+ .addCommand(createDeleteCommand());
58
+ function createListCommand() {
59
+ return new commander_1.Command('list')
60
+ .description('List edges with optional filters.')
61
+ .option('--from <id>', 'Filter by source concept ID')
62
+ .option('--to <id>', 'Filter by target concept ID')
63
+ .option('--type <type>', 'Filter by relationship type')
64
+ .option('--category <cat>', 'Filter by category')
65
+ .option('--limit <n>', 'Maximum results (default: 50)', '50')
66
+ .option('--offset <n>', 'Pagination offset', '0')
67
+ .option('--json', 'Output as JSON')
68
+ .action(async (options) => {
69
+ try {
70
+ const client = (0, client_1.createClientFromEnv)();
71
+ const params = {
72
+ from_concept_id: options.from,
73
+ to_concept_id: options.to,
74
+ relationship_type: options.type,
75
+ category: options.category,
76
+ limit: parseInt(options.limit, 10),
77
+ offset: parseInt(options.offset, 10),
78
+ };
79
+ const result = await client.listEdges(params);
80
+ if (options.json) {
81
+ console.log(JSON.stringify(result, null, 2));
82
+ return;
83
+ }
84
+ if (result.edges.length === 0) {
85
+ console.log(colors.status.warning('\nNo edges found.'));
86
+ return;
87
+ }
88
+ console.log('\n' + colors.ui.title('🔗 Edges'));
89
+ console.log((0, colors_1.separator)());
90
+ console.log(colors.status.dim(`Showing ${result.edges.length} of ${result.total} edges\n`));
91
+ const table = new table_1.Table({
92
+ columns: [
93
+ { header: 'From', field: 'from_concept_id', type: 'concept_id', width: 15 },
94
+ { header: 'Type', field: 'relationship_type', type: 'heading', width: 20 },
95
+ { header: 'To', field: 'to_concept_id', type: 'concept_id', width: 15 },
96
+ { header: 'Category', field: 'category', type: 'text', width: 15 },
97
+ { header: 'Conf', field: (row) => (row.confidence * 100).toFixed(0) + '%', type: 'text', width: 6, align: 'right' },
98
+ ],
99
+ });
100
+ table.print(result.edges);
101
+ if (result.total > result.edges.length) {
102
+ console.log(colors.status.dim(`\nUse --offset ${result.offset + result.edges.length} to see more`));
103
+ }
104
+ }
105
+ catch (error) {
106
+ (0, interactive_1.handleCliError)(error, 'Failed to list edges');
107
+ }
108
+ });
109
+ }
110
+ function createCreateCommand() {
111
+ return new commander_1.Command('create')
112
+ .description('Create an edge between two concepts.')
113
+ .option('--from <id>', 'Source concept ID')
114
+ .option('--to <id>', 'Target concept ID')
115
+ .option('--from-label <text>', 'Source concept (search by label)')
116
+ .option('--to-label <text>', 'Target concept (search by label)')
117
+ .option('--type <type>', 'Relationship type (e.g., IMPLIES, SUPPORTS)')
118
+ .option('--category <cat>', 'Relationship category (auto-inferred if omitted)')
119
+ .option('--confidence <n>', 'Confidence score 0-1 (default: 1.0)', '1.0')
120
+ .option('--create-vocab', 'Create vocabulary term if it does not exist')
121
+ .option('--json', 'Output as JSON')
122
+ .option('-i, --interactive', 'Guided wizard mode')
123
+ .option('-y, --yes', 'Skip confirmation prompts')
124
+ .action(async (options) => {
125
+ try {
126
+ const client = (0, client_1.createClientFromEnv)();
127
+ let fromConceptId;
128
+ let toConceptId;
129
+ let relationshipType;
130
+ let category = options.category;
131
+ let confidence = parseFloat(options.confidence) || 1.0;
132
+ if (options.interactive) {
133
+ // Interactive wizard mode
134
+ console.log('\n' + colors.ui.title('🔗 Create Edge'));
135
+ console.log((0, colors_1.separator)());
136
+ console.log();
137
+ // Get source concept
138
+ const fromResult = await (0, interactive_1.textInput)('Source concept (ID or search term)');
139
+ if (fromResult.cancelled || !fromResult.value) {
140
+ console.log(colors.status.dim('\nCancelled.'));
141
+ return;
142
+ }
143
+ // Try to resolve as ID first, then as label
144
+ if (fromResult.value.startsWith('c_')) {
145
+ const validFrom = await (0, validation_1.validateConceptId)(client, fromResult.value);
146
+ if (!validFrom.valid) {
147
+ console.log(colors.status.error(validFrom.error));
148
+ return;
149
+ }
150
+ fromConceptId = validFrom.data.concept_id;
151
+ console.log(colors.status.success(` → ${validFrom.data.label}`));
152
+ }
153
+ else {
154
+ const resolved = await (0, validation_1.resolveConceptByLabel)(client, fromResult.value);
155
+ if (!resolved.valid) {
156
+ console.log(colors.status.error(resolved.error));
157
+ return;
158
+ }
159
+ fromConceptId = resolved.data.concept_id;
160
+ console.log(colors.status.success(` → ${resolved.data.label} (${resolved.data.similarity.toFixed(0)}% match)`));
161
+ }
162
+ // Get target concept
163
+ const toResult = await (0, interactive_1.textInput)('Target concept (ID or search term)');
164
+ if (toResult.cancelled || !toResult.value) {
165
+ console.log(colors.status.dim('\nCancelled.'));
166
+ return;
167
+ }
168
+ if (toResult.value.startsWith('c_')) {
169
+ const validTo = await (0, validation_1.validateConceptId)(client, toResult.value);
170
+ if (!validTo.valid) {
171
+ console.log(colors.status.error(validTo.error));
172
+ return;
173
+ }
174
+ toConceptId = validTo.data.concept_id;
175
+ console.log(colors.status.success(` → ${validTo.data.label}`));
176
+ }
177
+ else {
178
+ const resolved = await (0, validation_1.resolveConceptByLabel)(client, toResult.value);
179
+ if (!resolved.valid) {
180
+ console.log(colors.status.error(resolved.error));
181
+ return;
182
+ }
183
+ toConceptId = resolved.data.concept_id;
184
+ console.log(colors.status.success(` → ${resolved.data.label} (${resolved.data.similarity.toFixed(0)}% match)`));
185
+ }
186
+ // Get relationship type
187
+ const typeResult = await (0, interactive_1.textInput)('Relationship type (e.g., IMPLIES, SUPPORTS)');
188
+ if (typeResult.cancelled || !typeResult.value) {
189
+ console.log(colors.status.dim('\nCancelled.'));
190
+ return;
191
+ }
192
+ relationshipType = typeResult.value.toUpperCase().replace(/\s+/g, '_');
193
+ // Validate vocab term
194
+ const vocabResult = await (0, validation_1.validateVocabTerm)(client, relationshipType, false);
195
+ if (!vocabResult.valid) {
196
+ console.log(colors.status.warning(` Vocabulary term '${relationshipType}' not found.`));
197
+ if (vocabResult.data?.similar_terms?.length) {
198
+ console.log(colors.status.dim(' Similar terms:'));
199
+ for (const t of vocabResult.data.similar_terms.slice(0, 3)) {
200
+ console.log(colors.status.dim(` - ${t.term} (${(t.similarity * 100).toFixed(0)}%)`));
201
+ }
202
+ }
203
+ const createNew = await (0, interactive_1.confirmYesNo)('Create new vocabulary term?', false);
204
+ if (!createNew) {
205
+ console.log(colors.status.dim('\nCancelled.'));
206
+ return;
207
+ }
208
+ // Will create with --create-vocab
209
+ options.createVocab = true;
210
+ }
211
+ // Confidence
212
+ const confResult = await (0, interactive_1.textInput)('Confidence (0-1)', '1.0');
213
+ if (!confResult.cancelled && confResult.value) {
214
+ confidence = parseFloat(confResult.value) || 1.0;
215
+ }
216
+ // Confirm
217
+ console.log('\n' + (0, colors_1.separator)());
218
+ console.log(colors.ui.header('Summary:'));
219
+ console.log(` ${fromConceptId} -[${relationshipType}]-> ${toConceptId}`);
220
+ console.log(` ${colors.ui.key('Confidence:')} ${(confidence * 100).toFixed(0)}%`);
221
+ console.log();
222
+ const confirmed = await (0, interactive_1.confirmYesNo)('Create this edge?', true);
223
+ if (!confirmed) {
224
+ console.log(colors.status.dim('\nCancelled.'));
225
+ return;
226
+ }
227
+ }
228
+ else {
229
+ // Non-interactive mode
230
+ const hasFromId = !!options.from;
231
+ const hasToId = !!options.to;
232
+ const hasFromLabel = !!options.fromLabel;
233
+ const hasToLabel = !!options.toLabel;
234
+ if (!hasFromId && !hasFromLabel) {
235
+ console.error(colors.status.error('✗ Missing required option: --from or --from-label'));
236
+ process.exit(1);
237
+ }
238
+ if (!hasToId && !hasToLabel) {
239
+ console.error(colors.status.error('✗ Missing required option: --to or --to-label'));
240
+ process.exit(1);
241
+ }
242
+ if (!options.type) {
243
+ console.error(colors.status.error('✗ Missing required option: --type'));
244
+ process.exit(1);
245
+ }
246
+ // Resolve source concept
247
+ if (hasFromId) {
248
+ const validFrom = await (0, validation_1.validateConceptId)(client, options.from);
249
+ if (!validFrom.valid) {
250
+ console.error(colors.status.error(`✗ From concept: ${validFrom.error}`));
251
+ process.exit(1);
252
+ }
253
+ fromConceptId = validFrom.data.concept_id;
254
+ }
255
+ else {
256
+ const resolved = await (0, validation_1.resolveConceptByLabel)(client, options.fromLabel);
257
+ if (!resolved.valid) {
258
+ console.error(colors.status.error(`✗ From concept: ${resolved.error}`));
259
+ process.exit(1);
260
+ }
261
+ fromConceptId = resolved.data.concept_id;
262
+ if (!options.json) {
263
+ console.log(colors.status.info(`Resolved --from-label "${options.fromLabel}" → ${resolved.data.concept_id}`));
264
+ }
265
+ }
266
+ // Resolve target concept
267
+ if (hasToId) {
268
+ const validTo = await (0, validation_1.validateConceptId)(client, options.to);
269
+ if (!validTo.valid) {
270
+ console.error(colors.status.error(`✗ To concept: ${validTo.error}`));
271
+ process.exit(1);
272
+ }
273
+ toConceptId = validTo.data.concept_id;
274
+ }
275
+ else {
276
+ const resolved = await (0, validation_1.resolveConceptByLabel)(client, options.toLabel);
277
+ if (!resolved.valid) {
278
+ console.error(colors.status.error(`✗ To concept: ${resolved.error}`));
279
+ process.exit(1);
280
+ }
281
+ toConceptId = resolved.data.concept_id;
282
+ if (!options.json) {
283
+ console.log(colors.status.info(`Resolved --to-label "${options.toLabel}" → ${resolved.data.concept_id}`));
284
+ }
285
+ }
286
+ relationshipType = options.type.toUpperCase().replace(/\s+/g, '_');
287
+ // Validate vocab term
288
+ const vocabResult = await (0, validation_1.validateVocabTerm)(client, relationshipType, options.createVocab);
289
+ if (!vocabResult.valid) {
290
+ console.error(colors.status.error(`✗ Relationship type: ${vocabResult.error}`));
291
+ process.exit(1);
292
+ }
293
+ if (vocabResult.warning) {
294
+ console.log(colors.status.warning(`⚠ ${vocabResult.warning}`));
295
+ }
296
+ relationshipType = vocabResult.data.term;
297
+ }
298
+ // Create the edge
299
+ const request = {
300
+ from_concept_id: fromConceptId,
301
+ to_concept_id: toConceptId,
302
+ relationship_type: relationshipType,
303
+ confidence,
304
+ source: 'api_creation',
305
+ };
306
+ if (category) {
307
+ request.category = category;
308
+ }
309
+ const result = await (0, interactive_1.withSpinner)('Creating edge...', async () => {
310
+ return client.createEdge(request);
311
+ });
312
+ if (options.json) {
313
+ console.log(JSON.stringify(result, null, 2));
314
+ return;
315
+ }
316
+ console.log(colors.status.success(`\n✓ Created edge: ${result.edge_id}`));
317
+ console.log(` ${result.from_concept_id} -[${result.relationship_type}]-> ${result.to_concept_id}`);
318
+ }
319
+ catch (error) {
320
+ (0, interactive_1.handleCliError)(error, 'Failed to create edge');
321
+ }
322
+ });
323
+ }
324
+ function createDeleteCommand() {
325
+ return new commander_1.Command('delete')
326
+ .description('Delete an edge by its composite key (from, type, to).')
327
+ .argument('<from>', 'Source concept ID')
328
+ .argument('<type>', 'Relationship type')
329
+ .argument('<to>', 'Target concept ID')
330
+ .option('-f, --force', 'Skip confirmation')
331
+ .option('--json', 'Output as JSON')
332
+ .action(async (from, type, to, options) => {
333
+ try {
334
+ const client = (0, client_1.createClientFromEnv)();
335
+ if (!options.force) {
336
+ console.log('\n' + (0, colors_1.separator)());
337
+ console.log(colors.status.warning('⚠️ Delete Edge'));
338
+ console.log((0, colors_1.separator)());
339
+ console.log();
340
+ console.log(` ${from} -[${type}]-> ${to}`);
341
+ console.log();
342
+ console.log(colors.status.warning('This action cannot be undone.'));
343
+ console.log();
344
+ const confirmed = await (0, interactive_1.confirmYesNo)('Delete this edge?', false);
345
+ if (!confirmed) {
346
+ console.log(colors.status.dim('\nCancelled.'));
347
+ return;
348
+ }
349
+ }
350
+ await client.deleteEdge(from, type, to);
351
+ if (options.json) {
352
+ console.log(JSON.stringify({ deleted: true, from, type, to }));
353
+ return;
354
+ }
355
+ console.log(colors.status.success(`\n✓ Deleted edge: ${from} -[${type}]-> ${to}`));
356
+ }
357
+ catch (error) {
358
+ (0, interactive_1.handleCliError)(error, 'Failed to delete edge', {
359
+ notFoundMessage: `Edge not found: ${from} -[${type}]-> ${to}`,
360
+ });
361
+ }
362
+ });
363
+ }
364
+ //# sourceMappingURL=edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/cli/edge.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,0CAAoD;AACpD,iDAAmC;AACnC,qCAAqC;AACrC,wCAAqC;AACrC,qDAAkD;AAElD,kDAI2B;AAC3B,oDAM4B;AAEf,QAAA,WAAW,GAAG,IAAA,+BAAc,EACvC,IAAI,mBAAO,CAAC,MAAM,CAAC,EACnB,qDAAqD,EACrD,oNAAoN,CACrN;KACE,KAAK,CAAC,GAAG,CAAC;KACV,kBAAkB,CAAC,yCAAyC,CAAC;KAC7D,wBAAwB,EAAE;KAC1B,UAAU,CAAC,iBAAiB,EAAE,CAAC;KAC/B,UAAU,CAAC,mBAAmB,EAAE,CAAC;KACjC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAErC,SAAS,iBAAiB;IACxB,OAAO,IAAI,mBAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,+BAA+B,EAAE,IAAI,CAAC;SAC5D,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,GAAG,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,4BAAmB,GAAE,CAAC;YACrC,MAAM,MAAM,GAAG;gBACb,eAAe,EAAE,OAAO,CAAC,IAAI;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,iBAAiB,EAAE,OAAO,CAAC,IAAI;gBAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,GAAE,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;YAE5F,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;gBACtB,OAAO,EAAE;oBACP,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC3E,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1E,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;oBACvE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;oBAClE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE;iBAClI;aACF,CAAC,CAAC;YAEH,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAY,CAAC,CAAC;YAEjC,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAA,4BAAc,EAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,mBAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;SACtE,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;SAC9E,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,KAAK,CAAC;SACxE,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;SACjD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,4BAAmB,GAAE,CAAC;YAErC,IAAI,aAAqB,CAAC;YAC1B,IAAI,WAAmB,CAAC;YACxB,IAAI,gBAAwB,CAAC;YAC7B,IAAI,QAAQ,GAAuB,OAAO,CAAC,QAAQ,CAAC;YACpD,IAAI,UAAU,GAAW,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;YAE/D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,0BAA0B;gBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,GAAE,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,EAAE,CAAC;gBAEd,qBAAqB;gBACrB,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAS,EAAC,oCAAoC,CAAC,CAAC;gBACzE,IAAI,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAM,CAAC,CAAC,CAAC;wBACnD,OAAO;oBACT,CAAC;oBACD,aAAa,GAAG,SAAS,CAAC,IAAK,CAAC,UAAU,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC,IAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAqB,EAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,CAAC;wBAClD,OAAO;oBACT,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,IAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrH,CAAC;gBAED,qBAAqB;gBACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAS,EAAC,oCAAoC,CAAC,CAAC;gBACvE,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAED,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC;wBACjD,OAAO;oBACT,CAAC;oBACD,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC,UAAU,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,CAAC,IAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,CAAC;wBAClD,OAAO;oBACT,CAAC;oBACD,WAAW,GAAG,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,IAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrH,CAAC;gBAED,wBAAwB;gBACxB,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAS,EAAC,6CAA6C,CAAC,CAAC;gBAClF,IAAI,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBACD,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEvE,sBAAsB;gBACtB,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAC7E,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,gBAAgB,cAAc,CAAC,CAAC,CAAC;oBACzF,IAAI,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;wBAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;wBACnD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1F,CAAC;oBACH,CAAC;oBACD,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAY,EAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;oBAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC/C,OAAO;oBACT,CAAC;oBACD,kCAAkC;oBAClC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBAED,aAAa;gBACb,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAS,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBAC9C,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;gBACnD,CAAC;gBAED,UAAU;gBACV,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,kBAAS,GAAE,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,MAAM,gBAAgB,OAAO,WAAW,EAAE,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,EAAE,CAAC;gBAEd,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAY,EAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;gBAErC,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;oBACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;oBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,yBAAyB;gBACzB,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,aAAa,GAAG,SAAS,CAAC,IAAK,CAAC,UAAU,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,SAAS,OAAO,QAAQ,CAAC,IAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACjH,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC,UAAU,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAqB,EAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,WAAW,GAAG,QAAQ,CAAC,IAAK,CAAC,UAAU,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,OAAO,OAAO,QAAQ,CAAC,IAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC7G,CAAC;gBACH,CAAC;gBAED,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEnE,sBAAsB;gBACtB,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAiB,EAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC3F,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;gBACD,gBAAgB,GAAG,WAAW,CAAC,IAAK,CAAC,IAAI,CAAC;YAC5C,CAAC;YAED,kBAAkB;YAClB,MAAM,OAAO,GAAe;gBAC1B,eAAe,EAAE,aAAa;gBAC9B,aAAa,EAAE,WAAW;gBAC1B,iBAAiB,EAAE,gBAAgB;gBACnC,UAAU;gBACV,MAAM,EAAE,cAAc;aACvB,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,QAAQ,GAAG,QAAe,CAAC;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAW,EAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;gBAC9D,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,eAAe,MAAM,MAAM,CAAC,iBAAiB,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAA,4BAAc,EAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,mBAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,uDAAuD,CAAC;SACpE,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SACvC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SACvC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;SACrC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,EAAU,EAAE,OAAO,EAAE,EAAE;QAChE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,4BAAmB,GAAE,CAAC;YAErC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,kBAAS,GAAE,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,GAAE,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,EAAE,CAAC;gBAEd,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAY,EAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAExC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,IAAI,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAA,4BAAc,EAAC,KAAK,EAAE,uBAAuB,EAAE;gBAC7C,eAAe,EAAE,mBAAmB,IAAI,MAAM,IAAI,OAAO,EAAE,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/cli/jobs.js CHANGED
@@ -508,18 +508,126 @@ exports.jobsCommand
508
508
  process.exit(1);
509
509
  }
510
510
  });
511
- // Clear all jobs
511
+ // Delete a single job permanently
512
+ exports.jobsCommand
513
+ .command('delete <job-id>')
514
+ .description('Permanently delete a job from database (removes record entirely, not just cancels)')
515
+ .option('-f, --force', 'Force delete even if job is processing (dangerous)', false)
516
+ .showHelpAfterError()
517
+ .action(async (jobId, options) => {
518
+ try {
519
+ const client = (0, client_1.createClientFromEnv)();
520
+ console.log(chalk_1.default.blue(`Deleting job ${jobId}...`));
521
+ const result = await client.deleteJob(jobId, { purge: true, force: options.force });
522
+ if (result.deleted) {
523
+ console.log(chalk_1.default.green('✓ Job permanently deleted'));
524
+ }
525
+ else {
526
+ console.log(chalk_1.default.yellow('⚠ Job could not be deleted'));
527
+ }
528
+ }
529
+ catch (error) {
530
+ console.error(chalk_1.default.red('✗ Failed to delete job'));
531
+ console.error(chalk_1.default.red(error.response?.data?.detail || error.message));
532
+ process.exit(1);
533
+ }
534
+ });
535
+ // Cleanup jobs with filters
536
+ exports.jobsCommand
537
+ .command('cleanup')
538
+ .description('Delete jobs matching filters (with preview) - safer alternative to clear')
539
+ .option('-s, --status <status>', 'Filter by status (pending|cancelled|completed|failed)')
540
+ .option('--system', 'Only delete system/scheduled jobs', false)
541
+ .option('--older-than <duration>', 'Delete jobs older than duration (1h|24h|7d|30d)')
542
+ .option('-t, --type <job-type>', 'Filter by job type (ingestion|epistemic_remeasurement|projection|etc)')
543
+ .option('--confirm', 'Execute deletion (without this flag, shows preview only)', false)
544
+ .option('--all', 'Delete ALL jobs (nuclear option, requires --confirm)', false)
545
+ .showHelpAfterError()
546
+ .action(async (options) => {
547
+ try {
548
+ const client = (0, client_1.createClientFromEnv)();
549
+ // Check for --all without filters
550
+ const hasFilters = options.status || options.system || options.olderThan || options.type;
551
+ if (options.all && !options.confirm) {
552
+ console.error(chalk_1.default.red('✗ Confirmation required for --all'));
553
+ console.error(chalk_1.default.yellow('\n⚠️ This will DELETE ALL jobs from the database!'));
554
+ console.error(chalk_1.default.gray('\nTo confirm, run: ') + chalk_1.default.cyan('kg job cleanup --all --confirm'));
555
+ process.exit(1);
556
+ }
557
+ if (!hasFilters && !options.all) {
558
+ console.error(chalk_1.default.red('✗ No filters specified'));
559
+ console.error(chalk_1.default.gray('\nExamples:'));
560
+ console.error(chalk_1.default.gray(' kg job cleanup --status pending # Preview pending jobs'));
561
+ console.error(chalk_1.default.gray(' kg job cleanup --status pending --confirm # Delete pending jobs'));
562
+ console.error(chalk_1.default.gray(' kg job cleanup --system --older-than 24h # Preview old system jobs'));
563
+ console.error(chalk_1.default.gray(' kg job cleanup --all --confirm # Delete ALL jobs (nuclear)'));
564
+ process.exit(1);
565
+ }
566
+ // Preview mode (default)
567
+ if (!options.confirm) {
568
+ console.log(chalk_1.default.blue('Preview mode - showing jobs that would be deleted:\n'));
569
+ const result = await client.deleteJobs({
570
+ dryRun: true,
571
+ status: options.status,
572
+ system: options.system,
573
+ olderThan: options.olderThan,
574
+ jobType: options.type
575
+ });
576
+ if (!result.jobs || result.jobs.length === 0) {
577
+ console.log(chalk_1.default.gray('No jobs match the specified filters\n'));
578
+ return;
579
+ }
580
+ console.log(chalk_1.default.yellow(`Found ${result.jobs_to_delete} job(s) to delete:\n`));
581
+ // Show preview table (limit to 10)
582
+ const previewJobs = result.jobs.slice(0, 10);
583
+ for (const job of previewJobs) {
584
+ const created = new Date(job.created_at).toLocaleString();
585
+ console.log(chalk_1.default.gray(` ${job.job_id.substring(0, 16)} ${job.status.padEnd(10)} ${(job.job_type || '-').padEnd(24)} ${created}`));
586
+ }
587
+ if (result.jobs.length > 10) {
588
+ console.log(chalk_1.default.gray(` ... and ${result.jobs.length - 10} more\n`));
589
+ }
590
+ console.log(chalk_1.default.blue('\nTo delete these jobs, add --confirm'));
591
+ }
592
+ else {
593
+ // Execute deletion
594
+ if (options.all) {
595
+ console.log(chalk_1.default.yellow('\n⚠️ Deleting ALL jobs from database...'));
596
+ }
597
+ else {
598
+ console.log(chalk_1.default.yellow('\n⚠️ Deleting jobs matching filters...'));
599
+ }
600
+ const result = await client.deleteJobs({
601
+ confirm: true,
602
+ status: options.status,
603
+ system: options.system,
604
+ olderThan: options.olderThan,
605
+ jobType: options.type
606
+ });
607
+ console.log(chalk_1.default.green(`\n✓ ${result.message}`));
608
+ console.log(chalk_1.default.gray(` Jobs deleted: ${result.jobs_deleted}\n`));
609
+ }
610
+ }
611
+ catch (error) {
612
+ console.error(chalk_1.default.red('✗ Failed to cleanup jobs'));
613
+ console.error(chalk_1.default.red(error.response?.data?.detail || error.message));
614
+ process.exit(1);
615
+ }
616
+ });
617
+ // Clear all jobs (deprecated, kept for backwards compatibility)
512
618
  exports.jobsCommand
513
619
  .command('clear')
514
- .description('Clear ALL jobs from database - DESTRUCTIVE operation requiring --confirm flag (use for dev/testing cleanup)')
620
+ .description('Clear ALL jobs from database (deprecated: use "cleanup --all --confirm" instead)')
515
621
  .option('--confirm', 'Confirm deletion (REQUIRED for safety)', false)
516
622
  .showHelpAfterError()
517
623
  .action(async (options) => {
518
624
  try {
625
+ console.log(chalk_1.default.yellow('⚠️ Note: "kg job clear" is deprecated. Use "kg job cleanup --all --confirm" instead.\n'));
519
626
  if (!options.confirm) {
520
627
  console.error(chalk_1.default.red('✗ Confirmation required'));
521
628
  console.error(chalk_1.default.yellow('\n⚠️ This will DELETE ALL jobs from the database!'));
522
- console.error(chalk_1.default.gray('\nTo confirm, run: ') + chalk_1.default.cyan('kg jobs clear --confirm'));
629
+ console.error(chalk_1.default.gray('\nTo confirm, run: ') + chalk_1.default.cyan('kg job clear --confirm'));
630
+ console.error(chalk_1.default.gray('Or use: ') + chalk_1.default.cyan('kg job cleanup --all --confirm'));
523
631
  process.exit(1);
524
632
  }
525
633
  const client = (0, client_1.createClientFromEnv)();