sensemaking 0.2.0 → 0.3.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.
- package/README.md +107 -126
- package/dist/cjs/cli.js +172 -182
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/commands/find.d.cts +3 -0
- package/dist/cjs/commands/find.d.ts +3 -0
- package/dist/cjs/commands/find.js +73 -0
- package/dist/cjs/commands/find.js.map +1 -0
- package/dist/cjs/commands/index.d.cts +5 -0
- package/dist/cjs/commands/index.d.ts +5 -0
- package/dist/cjs/commands/index.js +94 -0
- package/dist/cjs/commands/index.js.map +1 -0
- package/dist/cjs/commands/init.d.cts +3 -0
- package/dist/cjs/commands/init.d.ts +3 -0
- package/dist/cjs/commands/init.js +18 -0
- package/dist/cjs/commands/init.js.map +1 -0
- package/dist/cjs/commands/map.d.cts +3 -0
- package/dist/cjs/commands/map.d.ts +3 -0
- package/dist/cjs/commands/map.js +21 -0
- package/dist/cjs/commands/map.js.map +1 -0
- package/dist/cjs/commands/named.d.cts +2 -0
- package/dist/cjs/commands/named.d.ts +2 -0
- package/dist/cjs/commands/named.js +23 -0
- package/dist/cjs/commands/named.js.map +1 -0
- package/dist/cjs/commands/peek.d.cts +3 -0
- package/dist/cjs/commands/peek.d.ts +3 -0
- package/dist/cjs/commands/peek.js +69 -0
- package/dist/cjs/commands/peek.js.map +1 -0
- package/dist/cjs/commands/query.d.cts +3 -0
- package/dist/cjs/commands/query.d.ts +3 -0
- package/dist/cjs/commands/query.js +43 -0
- package/dist/cjs/commands/query.js.map +1 -0
- package/dist/cjs/commands/rebuild.d.cts +3 -0
- package/dist/cjs/commands/rebuild.d.ts +3 -0
- package/dist/cjs/commands/rebuild.js +20 -0
- package/dist/cjs/commands/rebuild.js.map +1 -0
- package/dist/cjs/commands/status.d.cts +3 -0
- package/dist/cjs/commands/status.d.ts +3 -0
- package/dist/cjs/commands/status.js +24 -0
- package/dist/cjs/commands/status.js.map +1 -0
- package/dist/cjs/commands/types.d.cts +15 -0
- package/dist/cjs/commands/types.d.ts +15 -0
- package/dist/cjs/commands/types.js +5 -0
- package/dist/cjs/commands/types.js.map +1 -0
- package/dist/cjs/commands/vault.d.cts +6 -0
- package/dist/cjs/commands/vault.d.ts +6 -0
- package/dist/cjs/commands/vault.js +94 -0
- package/dist/cjs/commands/vault.js.map +1 -0
- package/dist/cjs/commands/watch.d.cts +3 -0
- package/dist/cjs/commands/watch.d.ts +3 -0
- package/dist/cjs/commands/watch.js +173 -0
- package/dist/cjs/commands/watch.js.map +1 -0
- package/dist/cjs/config.d.cts +11 -1
- package/dist/cjs/config.d.ts +11 -1
- package/dist/cjs/config.js +82 -9
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/db.d.cts +1 -1
- package/dist/cjs/db.d.ts +1 -1
- package/dist/cjs/db.js +107 -16
- package/dist/cjs/db.js.map +1 -1
- package/dist/cjs/errors.d.cts +1 -1
- package/dist/cjs/errors.d.ts +1 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/features/index.d.cts +7 -0
- package/dist/cjs/features/index.d.ts +7 -0
- package/dist/cjs/features/index.js +36 -0
- package/dist/cjs/features/index.js.map +1 -0
- package/dist/cjs/features/links.d.cts +4 -0
- package/dist/cjs/features/links.d.ts +4 -0
- package/dist/cjs/features/links.js +217 -0
- package/dist/cjs/features/links.js.map +1 -0
- package/dist/cjs/features/rank.d.cts +2 -0
- package/dist/cjs/features/rank.d.ts +2 -0
- package/dist/cjs/features/rank.js +95 -0
- package/dist/cjs/features/rank.js.map +1 -0
- package/dist/cjs/features/sections.d.cts +9 -0
- package/dist/cjs/features/sections.d.ts +9 -0
- package/dist/cjs/features/sections.js +54 -0
- package/dist/cjs/features/sections.js.map +1 -0
- package/dist/cjs/features/types.d.cts +11 -0
- package/dist/cjs/features/types.d.ts +11 -0
- package/dist/cjs/features/types.js +5 -0
- package/dist/cjs/features/types.js.map +1 -0
- package/dist/cjs/graph.d.cts +7 -0
- package/dist/cjs/graph.d.ts +7 -0
- package/dist/cjs/graph.js +237 -0
- package/dist/cjs/graph.js.map +1 -0
- package/dist/cjs/index.d.cts +9 -2
- package/dist/cjs/index.d.ts +9 -2
- package/dist/cjs/index.js +39 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/output.d.cts +21 -0
- package/dist/cjs/output.d.ts +21 -0
- package/dist/cjs/output.js +112 -3
- package/dist/cjs/output.js.map +1 -1
- package/dist/cjs/scan.d.cts +3 -1
- package/dist/cjs/scan.d.ts +3 -1
- package/dist/cjs/scan.js +62 -14
- package/dist/cjs/scan.js.map +1 -1
- package/dist/cjs/verbs.d.cts +31 -0
- package/dist/cjs/verbs.d.ts +31 -0
- package/dist/cjs/verbs.js +284 -0
- package/dist/cjs/verbs.js.map +1 -0
- package/dist/esm/cli.js +63 -107
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/commands/find.d.ts +3 -0
- package/dist/esm/commands/find.js +14 -0
- package/dist/esm/commands/find.js.map +1 -0
- package/dist/esm/commands/index.d.ts +5 -0
- package/dist/esm/commands/index.js +13 -0
- package/dist/esm/commands/index.js.map +1 -0
- package/dist/esm/commands/init.d.ts +3 -0
- package/dist/esm/commands/init.js +7 -0
- package/dist/esm/commands/init.js.map +1 -0
- package/dist/esm/commands/map.d.ts +3 -0
- package/dist/esm/commands/map.js +10 -0
- package/dist/esm/commands/map.js.map +1 -0
- package/dist/esm/commands/named.d.ts +2 -0
- package/dist/esm/commands/named.js +12 -0
- package/dist/esm/commands/named.js.map +1 -0
- package/dist/esm/commands/peek.d.ts +3 -0
- package/dist/esm/commands/peek.js +12 -0
- package/dist/esm/commands/peek.js.map +1 -0
- package/dist/esm/commands/query.d.ts +3 -0
- package/dist/esm/commands/query.js +7 -0
- package/dist/esm/commands/query.js.map +1 -0
- package/dist/esm/commands/rebuild.d.ts +3 -0
- package/dist/esm/commands/rebuild.js +9 -0
- package/dist/esm/commands/rebuild.js.map +1 -0
- package/dist/esm/commands/status.d.ts +3 -0
- package/dist/esm/commands/status.js +13 -0
- package/dist/esm/commands/status.js.map +1 -0
- package/dist/esm/commands/types.d.ts +15 -0
- package/dist/esm/commands/types.js +1 -0
- package/dist/esm/commands/types.js.map +1 -0
- package/dist/esm/commands/vault.d.ts +6 -0
- package/dist/esm/commands/vault.js +29 -0
- package/dist/esm/commands/vault.js.map +1 -0
- package/dist/esm/commands/watch.d.ts +3 -0
- package/dist/esm/commands/watch.js +19 -0
- package/dist/esm/commands/watch.js.map +1 -0
- package/dist/esm/config.d.ts +11 -1
- package/dist/esm/config.js +68 -12
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/db.d.ts +1 -1
- package/dist/esm/db.js +27 -9
- package/dist/esm/db.js.map +1 -1
- package/dist/esm/errors.d.ts +1 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/features/index.d.ts +7 -0
- package/dist/esm/features/index.js +14 -0
- package/dist/esm/features/index.js.map +1 -0
- package/dist/esm/features/links.d.ts +4 -0
- package/dist/esm/features/links.js +81 -0
- package/dist/esm/features/links.js.map +1 -0
- package/dist/esm/features/rank.d.ts +2 -0
- package/dist/esm/features/rank.js +17 -0
- package/dist/esm/features/rank.js.map +1 -0
- package/dist/esm/features/sections.d.ts +9 -0
- package/dist/esm/features/sections.js +41 -0
- package/dist/esm/features/sections.js.map +1 -0
- package/dist/esm/features/types.d.ts +11 -0
- package/dist/esm/features/types.js +3 -0
- package/dist/esm/features/types.js.map +1 -0
- package/dist/esm/graph.d.ts +7 -0
- package/dist/esm/graph.js +79 -0
- package/dist/esm/graph.js.map +1 -0
- package/dist/esm/index.d.ts +9 -2
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/output.d.ts +21 -0
- package/dist/esm/output.js +28 -0
- package/dist/esm/output.js.map +1 -1
- package/dist/esm/scan.d.ts +3 -1
- package/dist/esm/scan.js +56 -7
- package/dist/esm/scan.js.map +1 -1
- package/dist/esm/verbs.d.ts +31 -0
- package/dist/esm/verbs.js +139 -0
- package/dist/esm/verbs.js.map +1 -0
- package/package.json +4 -4
- package/schema.json +23 -4
- package/skills/sense/EXAMPLES.md +46 -81
- package/skills/sense/SKILL.md +58 -92
package/dist/cjs/cli.js
CHANGED
|
@@ -2,18 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, // Thrown errors -> exit 1 with the message verbatim; usage errors exit
|
|
5
|
+
Object.defineProperty(exports, // Thrown errors -> exit 1 with the message verbatim; usage errors exit 2 directly.
|
|
6
6
|
"default", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function() {
|
|
9
9
|
return cli;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
var _nodemodule = require("node:module");
|
|
12
13
|
var _nodeutil = require("node:util");
|
|
14
|
+
var _indexts = require("./commands/index.js");
|
|
13
15
|
var _configts = require("./config.js");
|
|
14
|
-
var _dbts = require("./db.js");
|
|
15
|
-
var _outputts = require("./output.js");
|
|
16
|
-
var _watchts = require("./watch.js");
|
|
17
16
|
function _array_like_to_array(arr, len) {
|
|
18
17
|
if (len == null || len > arr.length) len = arr.length;
|
|
19
18
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -22,9 +21,6 @@ function _array_like_to_array(arr, len) {
|
|
|
22
21
|
function _array_with_holes(arr) {
|
|
23
22
|
if (Array.isArray(arr)) return arr;
|
|
24
23
|
}
|
|
25
|
-
function _array_without_holes(arr) {
|
|
26
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
27
|
-
}
|
|
28
24
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
29
25
|
try {
|
|
30
26
|
var info = gen[key](arg);
|
|
@@ -54,21 +50,56 @@ function _async_to_generator(fn) {
|
|
|
54
50
|
});
|
|
55
51
|
};
|
|
56
52
|
}
|
|
53
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
54
|
+
if (typeof WeakMap !== "function") return null;
|
|
55
|
+
var cacheBabelInterop = new WeakMap();
|
|
56
|
+
var cacheNodeInterop = new WeakMap();
|
|
57
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
58
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
59
|
+
})(nodeInterop);
|
|
60
|
+
}
|
|
61
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
62
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
66
|
+
return {
|
|
67
|
+
default: obj
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
71
|
+
if (cache && cache.has(obj)) {
|
|
72
|
+
return cache.get(obj);
|
|
73
|
+
}
|
|
74
|
+
var newObj = {
|
|
75
|
+
__proto__: null
|
|
76
|
+
};
|
|
77
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
78
|
+
for(var key in obj){
|
|
79
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
80
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
81
|
+
if (desc && (desc.get || desc.set)) {
|
|
82
|
+
Object.defineProperty(newObj, key, desc);
|
|
83
|
+
} else {
|
|
84
|
+
newObj[key] = obj[key];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
newObj.default = obj;
|
|
89
|
+
if (cache) {
|
|
90
|
+
cache.set(obj, newObj);
|
|
91
|
+
}
|
|
92
|
+
return newObj;
|
|
93
|
+
}
|
|
57
94
|
function _iterable_to_array(iter) {
|
|
58
95
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
59
96
|
}
|
|
60
97
|
function _non_iterable_rest() {
|
|
61
98
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
62
99
|
}
|
|
63
|
-
function _non_iterable_spread() {
|
|
64
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
65
|
-
}
|
|
66
100
|
function _to_array(arr) {
|
|
67
101
|
return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
|
|
68
102
|
}
|
|
69
|
-
function _to_consumable_array(arr) {
|
|
70
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
71
|
-
}
|
|
72
103
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
73
104
|
if (!o) return;
|
|
74
105
|
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
@@ -176,170 +207,118 @@ function _ts_generator(thisArg, body) {
|
|
|
176
207
|
};
|
|
177
208
|
}
|
|
178
209
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
function
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
},
|
|
191
|
-
config: {
|
|
192
|
-
type: 'string'
|
|
193
|
-
},
|
|
194
|
-
list: {
|
|
195
|
-
type: 'boolean',
|
|
196
|
-
default: false
|
|
197
|
-
},
|
|
198
|
-
force: {
|
|
199
|
-
type: 'boolean',
|
|
200
|
-
default: false
|
|
201
|
-
},
|
|
202
|
-
help: {
|
|
203
|
-
type: 'boolean',
|
|
204
|
-
default: false,
|
|
205
|
-
short: 'h'
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
allowPositionals: true
|
|
209
|
-
});
|
|
210
|
-
} catch (err) {
|
|
211
|
-
console.error(err.message);
|
|
212
|
-
console.error(usage(name));
|
|
213
|
-
process.exit(2);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
function printWarnings(warnings) {
|
|
217
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
218
|
-
try {
|
|
219
|
-
for(var _iterator = warnings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
220
|
-
var w = _step.value;
|
|
221
|
-
console.warn(w);
|
|
222
|
-
}
|
|
223
|
-
} catch (err) {
|
|
224
|
-
_didIteratorError = true;
|
|
225
|
-
_iteratorError = err;
|
|
226
|
-
} finally{
|
|
210
|
+
// Parsing and dispatch only. Commands live in src/commands/, one file each, lazy-loaded --
|
|
211
|
+
// nothing vault- or dependency-heavy may be imported at the top of this file.
|
|
212
|
+
// Works from dist/cjs and dist/esm alike: walk up past the dist type-marker package.json.
|
|
213
|
+
function packageVersion() {
|
|
214
|
+
var load = (0, _nodemodule.createRequire)(require("url").pathToFileURL(__filename).toString());
|
|
215
|
+
for(var _i = 0, _iter = [
|
|
216
|
+
'../package.json',
|
|
217
|
+
'../../package.json',
|
|
218
|
+
'../../../package.json'
|
|
219
|
+
]; _i < _iter.length; _i++){
|
|
220
|
+
var rel = _iter[_i];
|
|
227
221
|
try {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
} finally{
|
|
232
|
-
if (_didIteratorError) {
|
|
233
|
-
throw _iteratorError;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
// An unbound `?` silently binds NULL, so mismatched param counts fail loudly instead.
|
|
239
|
-
function runSql(cfg, sql, params, format, label) {
|
|
240
|
-
var _db_prepare;
|
|
241
|
-
var _sql_match;
|
|
242
|
-
var placeholderCount = ((_sql_match = sql.match(/\?/g)) !== null && _sql_match !== void 0 ? _sql_match : []).length;
|
|
243
|
-
if (params.length !== placeholderCount) {
|
|
244
|
-
console.error("".concat(label, " expects ").concat(placeholderCount, " parameter(s), got ").concat(params.length));
|
|
245
|
-
process.exit(2);
|
|
222
|
+
var pkg = load(rel);
|
|
223
|
+
if (pkg.name === 'sensemaking' && pkg.version) return pkg.version;
|
|
224
|
+
} catch (unused) {}
|
|
246
225
|
}
|
|
247
|
-
|
|
248
|
-
printWarnings(warnings);
|
|
249
|
-
var rows = (_db_prepare = db.prepare(sql)).all.apply(_db_prepare, _to_consumable_array(params));
|
|
250
|
-
(0, _outputts.printRows)(rows, format);
|
|
251
|
-
db.close();
|
|
226
|
+
return 'unknown';
|
|
252
227
|
}
|
|
253
|
-
function
|
|
254
|
-
|
|
255
|
-
console.log("sense watch: watching ".concat(event.baseDir));
|
|
256
|
-
console.log("sense watch: db ".concat(event.dbPath));
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
if (event.type === 'reconciled') {
|
|
260
|
-
printWarnings(event.warnings);
|
|
261
|
-
if (event.parsed > 0) {
|
|
262
|
-
console.log("sense watch: reconciled, ".concat(event.parsed, " file(s) reparsed (").concat(event.total, " total)"));
|
|
263
|
-
}
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
console.error("sense watch: reconcile error: ".concat(event.message));
|
|
228
|
+
function usage(name) {
|
|
229
|
+
return "usage: ".concat(name, " <name> [params...] [--format table|json] [--config path]\n") + " ".concat(name, ' query "<sql>" [params...]\n') + " ".concat(name, ' find "<terms>" [--where "<sql>"] [--k n]\n') + " ".concat(name, " map\n") + " ".concat(name, " peek <path>\n") + " ".concat(name, " --list\n") + " ".concat(name, " init\n") + " ".concat(name, " watch [--force]\n") + " ".concat(name, " status\n") + " ".concat(name, " rebuild\n") + " ".concat(name, " --version");
|
|
267
230
|
}
|
|
268
231
|
function cli(argv, name) {
|
|
269
232
|
return _async_to_generator(function() {
|
|
270
|
-
var
|
|
233
|
+
var values, positionals, ref, ctx, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, queryName, _positionals, first, params, load, err;
|
|
271
234
|
return _ts_generator(this, function(_state) {
|
|
272
235
|
switch(_state.label){
|
|
273
236
|
case 0:
|
|
274
|
-
|
|
237
|
+
try {
|
|
238
|
+
;
|
|
239
|
+
ref = (0, _nodeutil.parseArgs)({
|
|
240
|
+
args: argv,
|
|
241
|
+
options: {
|
|
242
|
+
format: {
|
|
243
|
+
type: 'string',
|
|
244
|
+
default: 'table'
|
|
245
|
+
},
|
|
246
|
+
config: {
|
|
247
|
+
type: 'string'
|
|
248
|
+
},
|
|
249
|
+
where: {
|
|
250
|
+
type: 'string'
|
|
251
|
+
},
|
|
252
|
+
k: {
|
|
253
|
+
type: 'string'
|
|
254
|
+
},
|
|
255
|
+
list: {
|
|
256
|
+
type: 'boolean',
|
|
257
|
+
default: false
|
|
258
|
+
},
|
|
259
|
+
force: {
|
|
260
|
+
type: 'boolean',
|
|
261
|
+
default: false
|
|
262
|
+
},
|
|
263
|
+
version: {
|
|
264
|
+
type: 'boolean',
|
|
265
|
+
default: false,
|
|
266
|
+
short: 'v'
|
|
267
|
+
},
|
|
268
|
+
help: {
|
|
269
|
+
type: 'boolean',
|
|
270
|
+
default: false,
|
|
271
|
+
short: 'h'
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
allowPositionals: true
|
|
275
|
+
}), values = ref.values, positionals = ref.positionals, ref;
|
|
276
|
+
} catch (err) {
|
|
277
|
+
console.error(err.message);
|
|
278
|
+
console.error(usage(name));
|
|
279
|
+
process.exit(2);
|
|
280
|
+
}
|
|
281
|
+
if (values.version) {
|
|
282
|
+
console.log("v".concat(packageVersion()));
|
|
283
|
+
return [
|
|
284
|
+
2
|
|
285
|
+
];
|
|
286
|
+
}
|
|
275
287
|
if (values.help) {
|
|
276
288
|
console.log(usage(name));
|
|
277
|
-
|
|
289
|
+
return [
|
|
290
|
+
2
|
|
291
|
+
];
|
|
278
292
|
}
|
|
279
|
-
|
|
280
|
-
|
|
293
|
+
ctx = {
|
|
294
|
+
name: name,
|
|
295
|
+
rest: positionals.slice(1),
|
|
296
|
+
format: values.format === 'json' ? 'json' : 'table',
|
|
297
|
+
values: values,
|
|
298
|
+
resolveConfig: function resolveConfig() {
|
|
299
|
+
var cfg = (0, _configts.loadConfig)(values.config);
|
|
300
|
+
if (cfg.migratedFrom !== undefined) {
|
|
301
|
+
console.warn("".concat(name, ": migrated ").concat(cfg.configPath, " from config version ").concat(cfg.migratedFrom, " to ").concat(_configts.SUPPORTED_CONFIG_VERSION));
|
|
302
|
+
}
|
|
303
|
+
return cfg;
|
|
304
|
+
},
|
|
305
|
+
usageError: function usageError(message) {
|
|
306
|
+
console.error(message);
|
|
307
|
+
process.exit(2);
|
|
308
|
+
}
|
|
281
309
|
};
|
|
282
310
|
_state.label = 1;
|
|
283
311
|
case 1:
|
|
284
312
|
_state.trys.push([
|
|
285
313
|
1,
|
|
286
|
-
|
|
314
|
+
7,
|
|
287
315
|
,
|
|
288
|
-
|
|
316
|
+
8
|
|
289
317
|
]);
|
|
290
|
-
_positionals = _to_array(positionals), first = _positionals[0], rest = _positionals.slice(1);
|
|
291
|
-
if (first === 'init') {
|
|
292
|
-
configPath = (0, _configts.initConfig)(process.cwd());
|
|
293
|
-
console.log("created ".concat(configPath));
|
|
294
|
-
console.log('query away: sense query "SELECT path FROM frontmatter LIMIT 10"');
|
|
295
|
-
process.exit(0);
|
|
296
|
-
}
|
|
297
|
-
if (!(first === 'watch')) return [
|
|
298
|
-
3,
|
|
299
|
-
3
|
|
300
|
-
];
|
|
301
|
-
cfg = resolveConfig();
|
|
302
|
-
return [
|
|
303
|
-
4,
|
|
304
|
-
(0, _watchts.runWatch)(cfg, {
|
|
305
|
-
force: values.force,
|
|
306
|
-
onEvent: logWatchEvent
|
|
307
|
-
})
|
|
308
|
-
];
|
|
309
|
-
case 2:
|
|
310
|
-
_state.sent();
|
|
311
|
-
process.exit(0);
|
|
312
|
-
_state.label = 3;
|
|
313
|
-
case 3:
|
|
314
|
-
if (first === 'status') {
|
|
315
|
-
cfg1 = resolveConfig();
|
|
316
|
-
_open = (0, _dbts.open)(cfg1), db = _open.db, dbPath = _open.dbPath, warnings = _open.warnings;
|
|
317
|
-
printWarnings(warnings);
|
|
318
|
-
console.log("db: ".concat(dbPath));
|
|
319
|
-
console.log("docs: ".concat((0, _dbts.docCount)(db)));
|
|
320
|
-
heartbeat = (0, _dbts.getMeta)(db, 'watch_heartbeat');
|
|
321
|
-
if (heartbeat) {
|
|
322
|
-
ageSec = Math.round((Date.now() - Date.parse(heartbeat)) / 1000);
|
|
323
|
-
console.log("watcher: last heartbeat ".concat(ageSec, "s ago"));
|
|
324
|
-
} else {
|
|
325
|
-
console.log('watcher: no watcher');
|
|
326
|
-
}
|
|
327
|
-
db.close();
|
|
328
|
-
process.exit(0);
|
|
329
|
-
}
|
|
330
|
-
if (first === 'rebuild') {
|
|
331
|
-
cfg2 = resolveConfig();
|
|
332
|
-
result = (0, _dbts.rebuild)(cfg2);
|
|
333
|
-
printWarnings(result.warnings);
|
|
334
|
-
console.log("rebuilt: ".concat((0, _dbts.docCount)(result.db), " docs"));
|
|
335
|
-
result.db.close();
|
|
336
|
-
process.exit(0);
|
|
337
|
-
}
|
|
338
318
|
if (values.list) {
|
|
339
|
-
cfg3 = resolveConfig();
|
|
340
319
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
341
320
|
try {
|
|
342
|
-
for(_iterator = Object.keys(
|
|
321
|
+
for(_iterator = Object.keys(ctx.resolveConfig().queries).sort()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
343
322
|
queryName = _step.value;
|
|
344
323
|
console.log(queryName);
|
|
345
324
|
}
|
|
@@ -357,48 +336,59 @@ function cli(argv, name) {
|
|
|
357
336
|
}
|
|
358
337
|
}
|
|
359
338
|
}
|
|
360
|
-
process.exit(0);
|
|
361
|
-
}
|
|
362
|
-
format = values.format === 'json' ? 'json' : 'table';
|
|
363
|
-
if (first === 'query') {
|
|
364
|
-
_rest = _to_array(rest), sql = _rest[0], params = _rest.slice(1);
|
|
365
|
-
if (!sql) {
|
|
366
|
-
console.error("usage: ".concat(name, ' query "<sql>" [params...]'));
|
|
367
|
-
process.exit(2);
|
|
368
|
-
}
|
|
369
|
-
runSql(resolveConfig(), sql, params, format, 'ad-hoc query');
|
|
370
339
|
return [
|
|
371
340
|
2
|
|
372
341
|
];
|
|
373
342
|
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
].concat(_to_consumable_array(rest))), name_ = _concat[0], params1 = _concat.slice(1);
|
|
377
|
-
if (!name_) {
|
|
343
|
+
_positionals = _to_array(positionals), first = _positionals[0], params = _positionals.slice(1);
|
|
344
|
+
if (!first) {
|
|
378
345
|
console.error(usage(name));
|
|
379
346
|
process.exit(2);
|
|
380
347
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
348
|
+
load = _indexts.COMMANDS[first];
|
|
349
|
+
if (!load) return [
|
|
350
|
+
3,
|
|
351
|
+
4
|
|
352
|
+
];
|
|
353
|
+
return [
|
|
354
|
+
4,
|
|
355
|
+
load()
|
|
356
|
+
];
|
|
357
|
+
case 2:
|
|
358
|
+
return [
|
|
359
|
+
4,
|
|
360
|
+
_state.sent().default(ctx)
|
|
361
|
+
];
|
|
362
|
+
case 3:
|
|
363
|
+
_state.sent();
|
|
389
364
|
return [
|
|
390
365
|
3,
|
|
391
|
-
|
|
366
|
+
6
|
|
392
367
|
];
|
|
393
368
|
case 4:
|
|
394
|
-
|
|
395
|
-
|
|
369
|
+
return [
|
|
370
|
+
4,
|
|
371
|
+
Promise.resolve().then(function() {
|
|
372
|
+
return /*#__PURE__*/ _interop_require_wildcard(require("./commands/named.js"));
|
|
373
|
+
})
|
|
374
|
+
];
|
|
375
|
+
case 5:
|
|
376
|
+
_state.sent().default(ctx, first, params);
|
|
377
|
+
_state.label = 6;
|
|
378
|
+
case 6:
|
|
379
|
+
return [
|
|
380
|
+
3,
|
|
381
|
+
8
|
|
382
|
+
];
|
|
383
|
+
case 7:
|
|
384
|
+
err = _state.sent();
|
|
385
|
+
console.error(err.message);
|
|
396
386
|
process.exit(1);
|
|
397
387
|
return [
|
|
398
388
|
3,
|
|
399
|
-
|
|
389
|
+
8
|
|
400
390
|
];
|
|
401
|
-
case
|
|
391
|
+
case 8:
|
|
402
392
|
return [
|
|
403
393
|
2
|
|
404
394
|
];
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli.ts"],"sourcesContent":["import { parseArgs } from 'node:util';\nimport type { ResolvedConfig } from './config.ts';\nimport { initConfig, loadConfig } from './config.ts';\nimport { docCount, getMeta, open, rebuild } from './db.ts';\nimport type { Row } from './output.ts';\nimport { printRows } from './output.ts';\nimport type { WatchEvent } from './watch.ts';\nimport { runWatch } from './watch.ts';\n\nfunction usage(name: string): string {\n return `usage: ${name} <name> [params...] [--format table|json] [--config path]\\n` + ` ${name} query \"<sql>\" [params...]\\n` + ` ${name} --list\\n` + ` ${name} init\\n` + ` ${name} watch [--force]\\n` + ` ${name} status\\n` + ` ${name} rebuild`;\n}\n\nfunction parseCliArgs(argv: string[], name: string) {\n try {\n return parseArgs({\n args: argv,\n options: {\n format: { type: 'string', default: 'table' },\n config: { type: 'string' },\n list: { type: 'boolean', default: false },\n force: { type: 'boolean', default: false },\n help: { type: 'boolean', default: false, short: 'h' },\n },\n allowPositionals: true,\n });\n } catch (err) {\n console.error((err as Error).message);\n console.error(usage(name));\n process.exit(2);\n }\n}\n\nfunction printWarnings(warnings: string[]): void {\n for (const w of warnings) console.warn(w);\n}\n\n// An unbound `?` silently binds NULL, so mismatched param counts fail loudly instead.\nfunction runSql(cfg: ResolvedConfig, sql: string, params: string[], format: 'table' | 'json', label: string): void {\n const placeholderCount = (sql.match(/\\?/g) ?? []).length;\n if (params.length !== placeholderCount) {\n console.error(`${label} expects ${placeholderCount} parameter(s), got ${params.length}`);\n process.exit(2);\n }\n const { db, warnings } = open(cfg);\n printWarnings(warnings);\n const rows = db.prepare(sql).all(...params) as Row[];\n printRows(rows, format);\n db.close();\n}\n\nfunction logWatchEvent(event: WatchEvent): void {\n if (event.type === 'started') {\n console.log(`sense watch: watching ${event.baseDir}`);\n console.log(`sense watch: db ${event.dbPath}`);\n return;\n }\n if (event.type === 'reconciled') {\n printWarnings(event.warnings);\n if (event.parsed > 0) {\n console.log(`sense watch: reconciled, ${event.parsed} file(s) reparsed (${event.total} total)`);\n }\n return;\n }\n console.error(`sense watch: reconcile error: ${event.message}`);\n}\n\n// Thrown errors -> exit 1 with the message verbatim; usage errors exit(2) directly.\nexport default async function cli(argv: string[], name: string): Promise<void> {\n const { values, positionals } = parseCliArgs(argv, name);\n\n if (values.help) {\n console.log(usage(name));\n process.exit(0);\n }\n\n const resolveConfig = () => loadConfig(values.config);\n\n try {\n const [first, ...rest] = positionals;\n\n if (first === 'init') {\n const configPath = initConfig(process.cwd());\n console.log(`created ${configPath}`);\n console.log('query away: sense query \"SELECT path FROM frontmatter LIMIT 10\"');\n process.exit(0);\n }\n\n if (first === 'watch') {\n const cfg = resolveConfig();\n await runWatch(cfg, { force: values.force, onEvent: logWatchEvent });\n process.exit(0);\n }\n\n if (first === 'status') {\n const cfg = resolveConfig();\n const { db, dbPath, warnings } = open(cfg);\n printWarnings(warnings);\n console.log(`db: ${dbPath}`);\n console.log(`docs: ${docCount(db)}`);\n const heartbeat = getMeta(db, 'watch_heartbeat');\n if (heartbeat) {\n const ageSec = Math.round((Date.now() - Date.parse(heartbeat)) / 1000);\n console.log(`watcher: last heartbeat ${ageSec}s ago`);\n } else {\n console.log('watcher: no watcher');\n }\n db.close();\n process.exit(0);\n }\n\n if (first === 'rebuild') {\n const cfg = resolveConfig();\n const result = rebuild(cfg);\n printWarnings(result.warnings);\n console.log(`rebuilt: ${docCount(result.db)} docs`);\n result.db.close();\n process.exit(0);\n }\n\n if (values.list) {\n const cfg = resolveConfig();\n for (const queryName of Object.keys(cfg.queries).sort()) console.log(queryName);\n process.exit(0);\n }\n\n const format = values.format === 'json' ? 'json' : 'table';\n\n if (first === 'query') {\n const [sql, ...params] = rest;\n if (!sql) {\n console.error(`usage: ${name} query \"<sql>\" [params...]`);\n process.exit(2);\n }\n runSql(resolveConfig(), sql, params, format, 'ad-hoc query');\n return;\n }\n\n const [name_, ...params] = [first, ...rest];\n\n if (!name_) {\n console.error(usage(name));\n process.exit(2);\n }\n\n const cfg = resolveConfig();\n\n const sql = cfg.queries[name_];\n if (!sql) {\n console.error(`unknown query: \"${name_}\"`);\n console.error(`valid queries: ${Object.keys(cfg.queries).sort().join(', ')}`);\n process.exit(2);\n }\n\n runSql(cfg, sql, params, format, `query \"${name_}\"`);\n } catch (err) {\n console.error((err as Error).message);\n process.exit(1);\n }\n}\n"],"names":["cli","usage","name","parseCliArgs","argv","parseArgs","args","options","format","type","default","config","list","force","help","short","allowPositionals","err","console","error","message","process","exit","printWarnings","warnings","w","warn","runSql","cfg","sql","params","label","db","placeholderCount","match","length","open","rows","prepare","all","printRows","close","logWatchEvent","event","log","baseDir","dbPath","parsed","total","values","positionals","resolveConfig","first","rest","configPath","heartbeat","ageSec","result","queryName","name_","loadConfig","initConfig","cwd","runWatch","onEvent","docCount","getMeta","Math","round","Date","now","parse","rebuild","Object","keys","queries","sort","join"],"mappings":";;;;+BAmEA,oFAAoF;AACpF;;;eAA8BA;;;wBApEJ;wBAEa;oBACU;wBAEvB;uBAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,SAASC,MAAMC,IAAY;IACzB,OAAO,AAAC,UAAc,OAALA,MAAK,iEAA+D,AAAC,UAAc,OAALA,MAAK,kCAAgC,AAAC,UAAc,OAALA,MAAK,eAAa,AAAC,UAAc,OAALA,MAAK,aAAW,AAAC,UAAc,OAALA,MAAK,wBAAsB,AAAC,UAAc,OAALA,MAAK,eAAa,AAAC,UAAc,OAALA,MAAK;AAC5Q;AAEA,SAASC,aAAaC,IAAc,EAAEF,IAAY;IAChD,IAAI;QACF,OAAOG,IAAAA,mBAAS,EAAC;YACfC,MAAMF;YACNG,SAAS;gBACPC,QAAQ;oBAAEC,MAAM;oBAAUC,SAAS;gBAAQ;gBAC3CC,QAAQ;oBAAEF,MAAM;gBAAS;gBACzBG,MAAM;oBAAEH,MAAM;oBAAWC,SAAS;gBAAM;gBACxCG,OAAO;oBAAEJ,MAAM;oBAAWC,SAAS;gBAAM;gBACzCI,MAAM;oBAAEL,MAAM;oBAAWC,SAAS;oBAAOK,OAAO;gBAAI;YACtD;YACAC,kBAAkB;QACpB;IACF,EAAE,OAAOC,KAAK;QACZC,QAAQC,KAAK,CAAC,AAACF,IAAcG,OAAO;QACpCF,QAAQC,KAAK,CAAClB,MAAMC;QACpBmB,QAAQC,IAAI,CAAC;IACf;AACF;AAEA,SAASC,cAAcC,QAAkB;QAClC,kCAAA,2BAAA;;QAAL,QAAK,YAAWA,6BAAX,SAAA,6BAAA,QAAA,yBAAA;YAAA,IAAMC,IAAN;YAAqBP,QAAQQ,IAAI,CAACD;;;QAAlC;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;AACP;AAEA,sFAAsF;AACtF,SAASE,OAAOC,GAAmB,EAAEC,GAAW,EAAEC,MAAgB,EAAEtB,MAAwB,EAAEuB,KAAa;QAQ5FC;QAPaH;IAA1B,IAAMI,mBAAmB,EAACJ,aAAAA,IAAIK,KAAK,CAAC,oBAAVL,wBAAAA,aAAoB,EAAE,EAAEM,MAAM;IACxD,IAAIL,OAAOK,MAAM,KAAKF,kBAAkB;QACtCf,QAAQC,KAAK,CAAC,AAAC,GAAmBc,OAAjBF,OAAM,aAAiDD,OAAtCG,kBAAiB,uBAAmC,OAAdH,OAAOK,MAAM;QACrFd,QAAQC,IAAI,CAAC;IACf;IACA,IAAyBc,QAAAA,IAAAA,UAAI,EAACR,MAAtBI,KAAiBI,MAAjBJ,IAAIR,WAAaY,MAAbZ;IACZD,cAAcC;IACd,IAAMa,OAAOL,CAAAA,cAAAA,GAAGM,OAAO,CAACT,MAAKU,GAAG,OAAnBP,aAAoB,qBAAGF;IACpCU,IAAAA,mBAAS,EAACH,MAAM7B;IAChBwB,GAAGS,KAAK;AACV;AAEA,SAASC,cAAcC,KAAiB;IACtC,IAAIA,MAAMlC,IAAI,KAAK,WAAW;QAC5BS,QAAQ0B,GAAG,CAAC,AAAC,yBAAsC,OAAdD,MAAME,OAAO;QAClD3B,QAAQ0B,GAAG,CAAC,AAAC,mBAA+B,OAAbD,MAAMG,MAAM;QAC3C;IACF;IACA,IAAIH,MAAMlC,IAAI,KAAK,cAAc;QAC/Bc,cAAcoB,MAAMnB,QAAQ;QAC5B,IAAImB,MAAMI,MAAM,GAAG,GAAG;YACpB7B,QAAQ0B,GAAG,CAAC,AAAC,4BAA6DD,OAAlCA,MAAMI,MAAM,EAAC,uBAAiC,OAAZJ,MAAMK,KAAK,EAAC;QACxF;QACA;IACF;IACA9B,QAAQC,KAAK,CAAC,AAAC,iCAA8C,OAAdwB,MAAMvB,OAAO;AAC9D;AAGe,SAAepB,IAAII,IAAc,EAAEF,IAAY;;YAC5BC,eAAxB8C,QAAQC,aAOVC,eAGqBD,cAAlBE,OAAUC,MAGTC,YAOA1B,KAMAA,MAC2BQ,OAAzBJ,IAAIc,QAAQtB,UAId+B,WAEEC,QAUF5B,MACA6B,QAQA7B,MACD,2BAAA,mBAAA,gBAAA,WAAA,OAAM8B,WAIPlD,QAGqB6C,OAAlBxB,KAAQC,QASU,SAApB6B,OAAU7B,SAOXF,MAEAC,MAQCZ;;;;oBAtFuBd,gBAAAA,aAAaC,MAAMF,OAA3C+C,SAAwB9C,cAAxB8C,QAAQC,cAAgB/C,cAAhB+C;oBAEhB,IAAID,OAAOnC,IAAI,EAAE;wBACfI,QAAQ0B,GAAG,CAAC3C,MAAMC;wBAClBmB,QAAQC,IAAI,CAAC;oBACf;oBAEM6B,gBAAgB;+BAAMS,IAAAA,oBAAU,EAACX,OAAOtC,MAAM;;;;;;;;;;oBAGzBuC,yBAAAA,cAAlBE,QAAkBF,iBAARG,OAAQH,mBAAX;oBAEd,IAAIE,UAAU,QAAQ;wBACdE,aAAaO,IAAAA,oBAAU,EAACxC,QAAQyC,GAAG;wBACzC5C,QAAQ0B,GAAG,CAAC,AAAC,WAAqB,OAAXU;wBACvBpC,QAAQ0B,GAAG,CAAC;wBACZvB,QAAQC,IAAI,CAAC;oBACf;yBAEI8B,CAAAA,UAAU,OAAM,GAAhBA;;;;oBACIxB,MAAMuB;oBACZ;;wBAAMY,IAAAA,iBAAQ,EAACnC,KAAK;4BAAEf,OAAOoC,OAAOpC,KAAK;4BAAEmD,SAAStB;wBAAc;;;oBAAlE;oBACArB,QAAQC,IAAI,CAAC;;;oBAGf,IAAI8B,UAAU,UAAU;wBAChBxB,OAAMuB;wBACqBf,QAAAA,IAAAA,UAAI,EAACR,OAA9BI,KAAyBI,MAAzBJ,IAAIc,SAAqBV,MAArBU,QAAQtB,WAAaY,MAAbZ;wBACpBD,cAAcC;wBACdN,QAAQ0B,GAAG,CAAC,AAAC,OAAa,OAAPE;wBACnB5B,QAAQ0B,GAAG,CAAC,AAAC,SAAqB,OAAbqB,IAAAA,cAAQ,EAACjC;wBACxBuB,YAAYW,IAAAA,aAAO,EAAClC,IAAI;wBAC9B,IAAIuB,WAAW;4BACPC,SAASW,KAAKC,KAAK,CAAC,AAACC,CAAAA,KAAKC,GAAG,KAAKD,KAAKE,KAAK,CAAChB,UAAS,IAAK;4BACjErC,QAAQ0B,GAAG,CAAC,AAAC,2BAAiC,OAAPY,QAAO;wBAChD,OAAO;4BACLtC,QAAQ0B,GAAG,CAAC;wBACd;wBACAZ,GAAGS,KAAK;wBACRpB,QAAQC,IAAI,CAAC;oBACf;oBAEA,IAAI8B,UAAU,WAAW;wBACjBxB,OAAMuB;wBACNM,SAASe,IAAAA,aAAO,EAAC5C;wBACvBL,cAAckC,OAAOjC,QAAQ;wBAC7BN,QAAQ0B,GAAG,CAAC,AAAC,YAA+B,OAApBqB,IAAAA,cAAQ,EAACR,OAAOzB,EAAE,GAAE;wBAC5CyB,OAAOzB,EAAE,CAACS,KAAK;wBACfpB,QAAQC,IAAI,CAAC;oBACf;oBAEA,IAAI2B,OAAOrC,IAAI,EAAE;wBACTgB,OAAMuB;wBACP,kCAAA,2BAAA;;4BAAL,IAAK,YAAmBsB,OAAOC,IAAI,CAAC9C,KAAI+C,OAAO,EAAEC,IAAI,yBAAhD,6BAAA,QAAA,yBAAA;gCAAMlB,YAAN;gCAAoDxC,QAAQ0B,GAAG,CAACc;;;4BAAhE;4BAAA;;;qCAAA,6BAAA;oCAAA;;;oCAAA;0CAAA;;;;wBACLrC,QAAQC,IAAI,CAAC;oBACf;oBAEMd,SAASyC,OAAOzC,MAAM,KAAK,SAAS,SAAS;oBAEnD,IAAI4C,UAAU,SAAS;wBACIC,kBAAAA,OAAlBxB,MAAkBwB,UAAVvB,SAAUuB,YAAb;wBACZ,IAAI,CAACxB,KAAK;4BACRX,QAAQC,KAAK,CAAC,AAAC,UAAc,OAALjB,MAAK;4BAC7BmB,QAAQC,IAAI,CAAC;wBACf;wBACAK,OAAOwB,iBAAiBtB,KAAKC,QAAQtB,QAAQ;wBAC7C;;;oBACF;oBAE2B,oBAAA;wBAAC4C;sBAAD,OAAQ,qBAAGC,SAA/BM,QAAoB,YAAV7B,UAAU,cAAb;oBAEd,IAAI,CAAC6B,OAAO;wBACVzC,QAAQC,KAAK,CAAClB,MAAMC;wBACpBmB,QAAQC,IAAI,CAAC;oBACf;oBAEMM,OAAMuB;oBAENtB,OAAMD,KAAI+C,OAAO,CAAChB,MAAM;oBAC9B,IAAI,CAAC9B,MAAK;wBACRX,QAAQC,KAAK,CAAC,AAAC,mBAAwB,OAANwC,OAAM;wBACvCzC,QAAQC,KAAK,CAAC,AAAC,kBAA4D,OAA3CsD,OAAOC,IAAI,CAAC9C,KAAI+C,OAAO,EAAEC,IAAI,GAAGC,IAAI,CAAC;wBACrExD,QAAQC,IAAI,CAAC;oBACf;oBAEAK,OAAOC,MAAKC,MAAKC,SAAQtB,QAAQ,AAAC,UAAe,OAANmD,OAAM;;;;;;oBAC1C1C;oBACPC,QAAQC,KAAK,CAAC,AAACF,KAAcG,OAAO;oBACpCC,QAAQC,IAAI,CAAC;;;;;;;;;;;IAEjB"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { parseArgs } from 'node:util';\nimport { COMMANDS } from './commands/index.ts';\nimport type { Ctx } from './commands/types.ts';\nimport { loadConfig, SUPPORTED_CONFIG_VERSION } from './config.ts';\n\n// Parsing and dispatch only. Commands live in src/commands/, one file each, lazy-loaded --\n// nothing vault- or dependency-heavy may be imported at the top of this file.\n\n// Works from dist/cjs and dist/esm alike: walk up past the dist type-marker package.json.\nfunction packageVersion(): string {\n const load = createRequire(import.meta.url);\n for (const rel of ['../package.json', '../../package.json', '../../../package.json']) {\n try {\n const pkg = load(rel) as { name?: string; version?: string };\n if (pkg.name === 'sensemaking' && pkg.version) return pkg.version;\n } catch {}\n }\n return 'unknown';\n}\n\nfunction usage(name: string): string {\n return (\n `usage: ${name} <name> [params...] [--format table|json] [--config path]\\n` +\n ` ${name} query \"<sql>\" [params...]\\n` +\n ` ${name} find \"<terms>\" [--where \"<sql>\"] [--k n]\\n` +\n ` ${name} map\\n` +\n ` ${name} peek <path>\\n` +\n ` ${name} --list\\n` +\n ` ${name} init\\n` +\n ` ${name} watch [--force]\\n` +\n ` ${name} status\\n` +\n ` ${name} rebuild\\n` +\n ` ${name} --version`\n );\n}\n\n// Thrown errors -> exit 1 with the message verbatim; usage errors exit 2 directly.\nexport default async function cli(argv: string[], name: string): Promise<void> {\n let values: Record<string, string | boolean | undefined>;\n let positionals: string[];\n try {\n ({ values, positionals } = parseArgs({\n args: argv,\n options: {\n format: { type: 'string', default: 'table' },\n config: { type: 'string' },\n where: { type: 'string' },\n k: { type: 'string' },\n list: { type: 'boolean', default: false },\n force: { type: 'boolean', default: false },\n version: { type: 'boolean', default: false, short: 'v' },\n help: { type: 'boolean', default: false, short: 'h' },\n },\n allowPositionals: true,\n }));\n } catch (err) {\n console.error((err as Error).message);\n console.error(usage(name));\n process.exit(2);\n }\n\n if (values.version) {\n console.log(`v${packageVersion()}`);\n return;\n }\n if (values.help) {\n console.log(usage(name));\n return;\n }\n\n const ctx: Ctx = {\n name,\n rest: positionals.slice(1),\n format: values.format === 'json' ? 'json' : 'table',\n values: values as Ctx['values'],\n resolveConfig() {\n const cfg = loadConfig(values.config as string | undefined);\n if (cfg.migratedFrom !== undefined) {\n console.warn(`${name}: migrated ${cfg.configPath} from config version ${cfg.migratedFrom} to ${SUPPORTED_CONFIG_VERSION}`);\n }\n return cfg;\n },\n usageError(message) {\n console.error(message);\n process.exit(2);\n },\n };\n\n try {\n if (values.list) {\n for (const queryName of Object.keys(ctx.resolveConfig().queries).sort()) console.log(queryName);\n return;\n }\n\n const [first, ...params] = positionals;\n if (!first) {\n console.error(usage(name));\n process.exit(2);\n }\n\n const load = COMMANDS[first];\n if (load) await (await load()).default(ctx);\n else (await import('./commands/named.ts')).default(ctx, first, params);\n } catch (err) {\n console.error((err as Error).message);\n process.exit(1);\n }\n}\n"],"names":["cli","packageVersion","load","createRequire","rel","pkg","name","version","usage","argv","values","positionals","ctx","queryName","first","params","err","parseArgs","args","options","format","type","default","config","where","k","list","force","short","help","allowPositionals","console","error","message","process","exit","log","rest","slice","resolveConfig","cfg","loadConfig","migratedFrom","undefined","warn","configPath","SUPPORTED_CONFIG_VERSION","usageError","Object","keys","queries","sort","COMMANDS"],"mappings":";;;;+BAqCA,mFAAmF;AACnF;;;eAA8BA;;;0BAtCA;wBACJ;uBACD;wBAE4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErD,2FAA2F;AAC3F,8EAA8E;AAE9E,0FAA0F;AAC1F,SAASC;IACP,IAAMC,OAAOC,IAAAA,yBAAa,EAAC;IAC3B,gBAAkB,QAAA;QAAC;QAAmB;QAAsB;KAAwB,OAAlE,mBAAoE;YAA3EC,MAAO;QAChB,IAAI;YACF,IAAMC,MAAMH,KAAKE;YACjB,IAAIC,IAAIC,IAAI,KAAK,iBAAiBD,IAAIE,OAAO,EAAE,OAAOF,IAAIE,OAAO;QACnE,EAAE,eAAM,CAAC;IACX;IACA,OAAO;AACT;AAEA,SAASC,MAAMF,IAAY;IACzB,OACE,AAAC,UAAc,OAALA,MAAK,iEACf,AAAC,UAAc,OAALA,MAAK,kCACf,AAAC,UAAc,OAALA,MAAK,iDACf,AAAC,UAAc,OAALA,MAAK,YACf,AAAC,UAAc,OAALA,MAAK,oBACf,AAAC,UAAc,OAALA,MAAK,eACf,AAAC,UAAc,OAALA,MAAK,aACf,AAAC,UAAc,OAALA,MAAK,wBACf,AAAC,UAAc,OAALA,MAAK,eACf,AAAC,UAAc,OAALA,MAAK,gBACf,AAAC,UAAc,OAALA,MAAK;AAEnB;AAGe,SAAeN,IAAIS,IAAc,EAAEH,IAAY;;YACxDI,QACAC,kBA+BEC,KAoBG,2BAAA,mBAAA,gBAAA,WAAA,OAAMC,WAIcF,cAApBG,OAAUC,QAMXb,MAGCc;;;;oBA/DT,IAAI;;8BACyBC,IAAAA,mBAAS,EAAC;4BACnCC,MAAMT;4BACNU,SAAS;gCACPC,QAAQ;oCAAEC,MAAM;oCAAUC,SAAS;gCAAQ;gCAC3CC,QAAQ;oCAAEF,MAAM;gCAAS;gCACzBG,OAAO;oCAAEH,MAAM;gCAAS;gCACxBI,GAAG;oCAAEJ,MAAM;gCAAS;gCACpBK,MAAM;oCAAEL,MAAM;oCAAWC,SAAS;gCAAM;gCACxCK,OAAO;oCAAEN,MAAM;oCAAWC,SAAS;gCAAM;gCACzCf,SAAS;oCAAEc,MAAM;oCAAWC,SAAS;oCAAOM,OAAO;gCAAI;gCACvDC,MAAM;oCAAER,MAAM;oCAAWC,SAAS;oCAAOM,OAAO;gCAAI;4BACtD;4BACAE,kBAAkB;wBACpB,IAbGpB,aAAAA,QAAQC,kBAAAA;oBAcb,EAAE,OAAOK,KAAK;wBACZe,QAAQC,KAAK,CAAC,AAAChB,IAAciB,OAAO;wBACpCF,QAAQC,KAAK,CAACxB,MAAMF;wBACpB4B,QAAQC,IAAI,CAAC;oBACf;oBAEA,IAAIzB,OAAOH,OAAO,EAAE;wBAClBwB,QAAQK,GAAG,CAAC,AAAC,IAAoB,OAAjBnC;wBAChB;;;oBACF;oBACA,IAAIS,OAAOmB,IAAI,EAAE;wBACfE,QAAQK,GAAG,CAAC5B,MAAMF;wBAClB;;;oBACF;oBAEMM,MAAW;wBACfN,MAAAA;wBACA+B,MAAM1B,YAAY2B,KAAK,CAAC;wBACxBlB,QAAQV,OAAOU,MAAM,KAAK,SAAS,SAAS;wBAC5CV,QAAQA;wBACR6B,eAAAA,SAAAA;4BACE,IAAMC,MAAMC,IAAAA,oBAAU,EAAC/B,OAAOa,MAAM;4BACpC,IAAIiB,IAAIE,YAAY,KAAKC,WAAW;gCAClCZ,QAAQa,IAAI,CAAC,AAAC,GAAoBJ,OAAlBlC,MAAK,eAAmDkC,OAAtCA,IAAIK,UAAU,EAAC,yBAA8CC,OAAvBN,IAAIE,YAAY,EAAC,QAA+B,OAAzBI,kCAAwB;4BACzH;4BACA,OAAON;wBACT;wBACAO,YAAAA,SAAAA,WAAWd,OAAO;4BAChBF,QAAQC,KAAK,CAACC;4BACdC,QAAQC,IAAI,CAAC;wBACf;oBACF;;;;;;;;;oBAGE,IAAIzB,OAAOgB,IAAI,EAAE;wBACV,kCAAA,2BAAA;;4BAAL,IAAK,YAAmBsB,OAAOC,IAAI,CAACrC,IAAI2B,aAAa,GAAGW,OAAO,EAAEC,IAAI,yBAAhE,6BAAA,QAAA,yBAAA;gCAAMtC,YAAN;gCAAoEkB,QAAQK,GAAG,CAACvB;;;4BAAhF;4BAAA;;;qCAAA,6BAAA;oCAAA;;;oCAAA;0CAAA;;;;wBACL;;;oBACF;oBAE2BF,yBAAAA,cAApBG,QAAoBH,iBAAVI,SAAUJ,mBAAb;oBACd,IAAI,CAACG,OAAO;wBACViB,QAAQC,KAAK,CAACxB,MAAMF;wBACpB4B,QAAQC,IAAI,CAAC;oBACf;oBAEMjC,OAAOkD,iBAAQ,CAACtC,MAAM;yBACxBZ,MAAAA;;;;oBAAa;;wBAAMA;;;oBAAb;;wBAAO,cAAcoB,OAAO,CAACV;;;oBAA7B;;;;;;oBACJ;;wBAAM;2EAAA,QAAO;;;;oBAAb,cAAqCU,OAAO,CAACV,KAAKE,OAAOC;;;;;;;;oBACxDC;oBACPe,QAAQC,KAAK,CAAC,AAAChB,IAAciB,OAAO;oBACpCC,QAAQC,IAAI,CAAC;;;;;;;;;;;IAEjB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _outputts = require("../output.js");
|
|
12
|
+
var _verbsts = require("../verbs.js");
|
|
13
|
+
var _vaultts = require("./vault.js");
|
|
14
|
+
function _array_like_to_array(arr, len) {
|
|
15
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
16
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
17
|
+
return arr2;
|
|
18
|
+
}
|
|
19
|
+
function _array_with_holes(arr) {
|
|
20
|
+
if (Array.isArray(arr)) return arr;
|
|
21
|
+
}
|
|
22
|
+
function _iterable_to_array_limit(arr, i) {
|
|
23
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
24
|
+
if (_i == null) return;
|
|
25
|
+
var _arr = [];
|
|
26
|
+
var _n = true;
|
|
27
|
+
var _d = false;
|
|
28
|
+
var _s, _e;
|
|
29
|
+
try {
|
|
30
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
31
|
+
_arr.push(_s.value);
|
|
32
|
+
if (i && _arr.length === i) break;
|
|
33
|
+
}
|
|
34
|
+
} catch (err) {
|
|
35
|
+
_d = true;
|
|
36
|
+
_e = err;
|
|
37
|
+
} finally{
|
|
38
|
+
try {
|
|
39
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
40
|
+
} finally{
|
|
41
|
+
if (_d) throw _e;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return _arr;
|
|
45
|
+
}
|
|
46
|
+
function _non_iterable_rest() {
|
|
47
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
48
|
+
}
|
|
49
|
+
function _sliced_to_array(arr, i) {
|
|
50
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
51
|
+
}
|
|
52
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
53
|
+
if (!o) return;
|
|
54
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
55
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
56
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
57
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
58
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
59
|
+
}
|
|
60
|
+
var findCmd = function findCmd(ctx) {
|
|
61
|
+
var _ctx_rest = _sliced_to_array(ctx.rest, 1), terms = _ctx_rest[0];
|
|
62
|
+
if (!terms) ctx.usageError("usage: ".concat(ctx.name, ' find "<terms>" [--where "<sql>"] [--k n]'));
|
|
63
|
+
var k = ctx.values.k === undefined ? undefined : Number.parseInt(ctx.values.k, 10);
|
|
64
|
+
if (ctx.values.k !== undefined && !Number.isInteger(k)) ctx.usageError('--k expects an integer, got "'.concat(ctx.values.k, '"'));
|
|
65
|
+
(0, _vaultts.withVault)(ctx, function(db, cfg) {
|
|
66
|
+
return (0, _outputts.printRows)((0, _verbsts.find)(db, cfg, terms, {
|
|
67
|
+
k: k,
|
|
68
|
+
where: ctx.values.where
|
|
69
|
+
}), ctx.format);
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
var _default = findCmd;
|
|
73
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/find.ts"],"sourcesContent":["import { printRows } from '../output.ts';\nimport { find } from '../verbs.ts';\nimport type { Command } from './types.ts';\nimport { withVault } from './vault.ts';\n\nconst findCmd: Command = (ctx) => {\n const [terms] = ctx.rest;\n if (!terms) ctx.usageError(`usage: ${ctx.name} find \"<terms>\" [--where \"<sql>\"] [--k n]`);\n const k = ctx.values.k === undefined ? undefined : Number.parseInt(ctx.values.k, 10);\n if (ctx.values.k !== undefined && !Number.isInteger(k)) ctx.usageError(`--k expects an integer, got \"${ctx.values.k}\"`);\n withVault(ctx, (db, cfg) => printRows(find(db, cfg, terms, { k, where: ctx.values.where }), ctx.format));\n};\nexport default findCmd;\n"],"names":["findCmd","ctx","rest","terms","usageError","name","k","values","undefined","Number","parseInt","isInteger","withVault","db","cfg","printRows","find","where","format"],"mappings":";;;;+BAYA;;;eAAA;;;wBAZ0B;uBACL;uBAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1B,IAAMA,UAAmB,iBAACC;IACxB,IAAgBA,6BAAAA,IAAIC,IAAI,MAAjBC,QAASF;IAChB,IAAI,CAACE,OAAOF,IAAIG,UAAU,CAAC,AAAC,UAAkB,OAATH,IAAII,IAAI,EAAC;IAC9C,IAAMC,IAAIL,IAAIM,MAAM,CAACD,CAAC,KAAKE,YAAYA,YAAYC,OAAOC,QAAQ,CAACT,IAAIM,MAAM,CAACD,CAAC,EAAE;IACjF,IAAIL,IAAIM,MAAM,CAACD,CAAC,KAAKE,aAAa,CAACC,OAAOE,SAAS,CAACL,IAAIL,IAAIG,UAAU,CAAC,AAAC,gCAA4C,OAAbH,IAAIM,MAAM,CAACD,CAAC,EAAC;IACpHM,IAAAA,kBAAS,EAACX,KAAK,SAACY,IAAIC;eAAQC,IAAAA,mBAAS,EAACC,IAAAA,aAAI,EAACH,IAAIC,KAAKX,OAAO;YAAEG,GAAAA;YAAGW,OAAOhB,IAAIM,MAAM,CAACU,KAAK;QAAC,IAAIhB,IAAIiB,MAAM;;AACxG;IACA,WAAelB"}
|