sensemaking 0.4.0 → 0.6.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 +16 -7
- package/dist/cjs/cli.js +5 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/commands/find.js +173 -10
- package/dist/cjs/commands/find.js.map +1 -1
- package/dist/cjs/commands/map.js +1 -1
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/peek.js +1 -1
- package/dist/cjs/commands/peek.js.map +1 -1
- package/dist/cjs/commands/shared.d.cts +1 -1
- package/dist/cjs/commands/shared.d.ts +1 -1
- package/dist/cjs/commands/shared.js +166 -8
- package/dist/cjs/commands/shared.js.map +1 -1
- package/dist/cjs/commands/status.js +10 -1
- package/dist/cjs/commands/status.js.map +1 -1
- package/dist/cjs/commands/types.d.cts +1 -0
- package/dist/cjs/commands/types.d.ts +1 -0
- package/dist/cjs/config.d.cts +26 -2
- package/dist/cjs/config.d.ts +26 -2
- package/dist/cjs/config.js +171 -10
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/db.js +46 -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/embed.d.cts +14 -0
- package/dist/cjs/features/embed.d.ts +14 -0
- package/dist/cjs/features/embed.js +840 -0
- package/dist/cjs/features/embed.js.map +1 -0
- package/dist/cjs/features/index.js +3 -1
- package/dist/cjs/features/index.js.map +1 -1
- package/dist/cjs/features/types.d.cts +4 -1
- package/dist/cjs/features/types.d.ts +4 -1
- package/dist/cjs/index.d.cts +3 -10
- package/dist/cjs/index.d.ts +3 -10
- package/dist/cjs/index.js +2 -52
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/output.d.cts +5 -0
- package/dist/cjs/output.d.ts +5 -0
- package/dist/cjs/output.js +14 -1
- package/dist/cjs/output.js.map +1 -1
- package/dist/cjs/scan.js +9 -8
- package/dist/cjs/scan.js.map +1 -1
- package/dist/cjs/verbs.d.cts +8 -2
- package/dist/cjs/verbs.d.ts +8 -2
- package/dist/cjs/verbs.js +263 -76
- package/dist/cjs/verbs.js.map +1 -1
- package/dist/esm/cli.js +5 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/commands/find.js +5 -4
- package/dist/esm/commands/find.js.map +1 -1
- package/dist/esm/commands/map.js +1 -3
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/peek.js +1 -1
- package/dist/esm/commands/peek.js.map +1 -1
- package/dist/esm/commands/shared.d.ts +1 -1
- package/dist/esm/commands/shared.js +2 -2
- package/dist/esm/commands/shared.js.map +1 -1
- package/dist/esm/commands/status.js +8 -1
- package/dist/esm/commands/status.js.map +1 -1
- package/dist/esm/commands/types.d.ts +1 -0
- package/dist/esm/commands/types.js.map +1 -1
- package/dist/esm/config.d.ts +26 -2
- package/dist/esm/config.js +88 -10
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/db.js +19 -10
- 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/embed.d.ts +14 -0
- package/dist/esm/features/embed.js +290 -0
- package/dist/esm/features/embed.js.map +1 -0
- package/dist/esm/features/index.js +3 -1
- package/dist/esm/features/index.js.map +1 -1
- package/dist/esm/features/types.d.ts +4 -1
- package/dist/esm/features/types.js.map +1 -1
- package/dist/esm/index.d.ts +3 -10
- package/dist/esm/index.js +4 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/output.d.ts +5 -0
- package/dist/esm/output.js +11 -1
- package/dist/esm/output.js.map +1 -1
- package/dist/esm/scan.js +9 -8
- package/dist/esm/scan.js.map +1 -1
- package/dist/esm/verbs.d.ts +8 -2
- package/dist/esm/verbs.js +51 -13
- package/dist/esm/verbs.js.map +1 -1
- package/package.json +2 -1
- package/schema.json +17 -1
- package/skills/sense/EXAMPLES.md +16 -0
- package/skills/sense/SKILL.md +41 -19
- package/skills/sense-setup/SKILL.md +73 -0
package/README.md
CHANGED
|
@@ -59,14 +59,16 @@ ORDER BY bm25(content, 10.0, 5.0, 1.0) LIMIT 10
|
|
|
59
59
|
| verb | does |
|
|
60
60
|
|---|---|
|
|
61
61
|
| `map` | doc count, frontmatter field coverage, top hubs by link rank, recent changes |
|
|
62
|
-
| `find "<terms>" [--where "<sql>"] [--k n]` | BM25 + link-graph expansion, fused; `via` marks each row `match`, `link`, or `match+link` |
|
|
62
|
+
| `find "<terms>" [--where "<sql>"] [--k n] [--semantic]` | BM25 + link-graph expansion, fused; `via` marks each row `match`, `link`, or `match+link` |
|
|
63
63
|
| `peek <path>` | frontmatter + heading outline (`[L143-162, ~380t]`) + links both ways, capped at 20 per list |
|
|
64
64
|
| `query "<sql>" [params...]` | ad-hoc SQL over all four tables; `?` binds positional args |
|
|
65
65
|
|
|
66
66
|
`find` seeds a personalized-PageRank walk with the BM25 matches, so a note that never contains
|
|
67
67
|
the terms but is linked from ones that do still surfaces. Terms pass verbatim to FTS5 `MATCH`
|
|
68
68
|
(bare words AND-join; operators are yours to write). `--where` takes a frontmatter condition
|
|
69
|
-
against alias `f`.
|
|
69
|
+
against alias `f`. On trees with the `embed` feature, `--semantic` additionally expands by
|
|
70
|
+
meaning — explicit per query, never silent; rows it adds are labeled `via: vector` and carry a
|
|
71
|
+
`lines` column pointing at the best-matching section.
|
|
70
72
|
`--format json` on any verb returns structured output.
|
|
71
73
|
|
|
72
74
|
## Config
|
|
@@ -91,10 +93,18 @@ goes BM25-only without `links`, `map` drops hubs without `rank`, `peek` drops th
|
|
|
91
93
|
without `sections`). Toggling rebuilds the cache. Older config versions auto-migrate on load,
|
|
92
94
|
noted on stderr.
|
|
93
95
|
|
|
96
|
+
`embed` is the one opt-in feature (absent = off; most trees don't need vectors): `"embed": true`
|
|
97
|
+
uses the built-in static model (downloaded to `~/.cache/sensemaking` on first use, never in the
|
|
98
|
+
package), or `{ "model", "type": "static"|"api", "url", "key" }` points at any Model2Vec model,
|
|
99
|
+
local path, or OpenAI-compatible endpoint (Ollama, LM Studio, hosted). With it on, vectors stay
|
|
100
|
+
fresh at reconcile and `find --semantic` uses them; default `find` results are unchanged.
|
|
101
|
+
|
|
94
102
|
## Reference
|
|
95
103
|
|
|
96
104
|
- `has(field, value)` — the one custom SQL function: array membership on JSON-array fields,
|
|
97
|
-
substring on strings, false on missing
|
|
105
|
+
substring on strings (so `has(f.status, 'active')` also matches `inactive`), false on missing
|
|
106
|
+
keys. Exact matches: `=` for scalars, `EXISTS (SELECT 1 FROM json_each(f.tags) WHERE value = ?)`
|
|
107
|
+
for array members.
|
|
98
108
|
- Reserved frontmatter keys (dropped with a warning): `path`, `_mtime`, `_size`, `_rank`,
|
|
99
109
|
`content`, `links`, `sections`.
|
|
100
110
|
- FTS5 syntax in `MATCH`: `a OR b`, `"phrase"`, `pref*`, `NEAR(a b, 5)`, `summary: term`.
|
|
@@ -138,10 +148,9 @@ The skill teaches the descent: `map` to orient, `find` to locate, `peek` before
|
|
|
138
148
|
query it headless.
|
|
139
149
|
- **Index-on-build tools (MarkdownDB)** — query a snapshot; `sense` reconciles on every query.
|
|
140
150
|
- **Note CLIs (zk)** — fixed schema; `sense` filters on arbitrary frontmatter.
|
|
141
|
-
- **RAG / vector stores** — similarity can't express `WHERE status = 'active'`.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
measurably miss.
|
|
151
|
+
- **RAG / vector stores** — similarity can't express `WHERE status = 'active'`. Here vectors are
|
|
152
|
+
the optional `embed` feature: same SQLite file, filters compose, expansion is explicit per
|
|
153
|
+
query (`find --semantic`) and labeled — no second store, no daemon, no native builds.
|
|
145
154
|
|
|
146
155
|
Dependencies: [yaml](https://github.com/eemeli/yaml),
|
|
147
156
|
[remove-markdown](https://github.com/zuchka/remove-markdown),
|
package/dist/cjs/cli.js
CHANGED
|
@@ -226,7 +226,7 @@ function packageVersion() {
|
|
|
226
226
|
return 'unknown';
|
|
227
227
|
}
|
|
228
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");
|
|
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] [--semantic]\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");
|
|
230
230
|
}
|
|
231
231
|
function cli(argv, name) {
|
|
232
232
|
return _async_to_generator(function() {
|
|
@@ -252,6 +252,10 @@ function cli(argv, name) {
|
|
|
252
252
|
k: {
|
|
253
253
|
type: 'string'
|
|
254
254
|
},
|
|
255
|
+
semantic: {
|
|
256
|
+
type: 'boolean',
|
|
257
|
+
default: false
|
|
258
|
+
},
|
|
255
259
|
list: {
|
|
256
260
|
type: 'boolean',
|
|
257
261
|
default: false
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 tree- 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,6EAA6E;AAE7E,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,
|
|
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 tree- 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] [--semantic]\\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 semantic: { type: 'boolean', default: false },\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","semantic","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":"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"}
|
|
@@ -19,6 +19,35 @@ function _array_like_to_array(arr, len) {
|
|
|
19
19
|
function _array_with_holes(arr) {
|
|
20
20
|
if (Array.isArray(arr)) return arr;
|
|
21
21
|
}
|
|
22
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
23
|
+
try {
|
|
24
|
+
var info = gen[key](arg);
|
|
25
|
+
var value = info.value;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
reject(error);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (info.done) {
|
|
31
|
+
resolve(value);
|
|
32
|
+
} else {
|
|
33
|
+
Promise.resolve(value).then(_next, _throw);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function _async_to_generator(fn) {
|
|
37
|
+
return function() {
|
|
38
|
+
var self = this, args = arguments;
|
|
39
|
+
return new Promise(function(resolve, reject) {
|
|
40
|
+
var gen = fn.apply(self, args);
|
|
41
|
+
function _next(value) {
|
|
42
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
43
|
+
}
|
|
44
|
+
function _throw(err) {
|
|
45
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
46
|
+
}
|
|
47
|
+
_next(undefined);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
}
|
|
22
51
|
function _iterable_to_array_limit(arr, i) {
|
|
23
52
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
24
53
|
if (_i == null) return;
|
|
@@ -57,17 +86,151 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
57
86
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
58
87
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
59
88
|
}
|
|
89
|
+
function _ts_generator(thisArg, body) {
|
|
90
|
+
var f, y, t, _ = {
|
|
91
|
+
label: 0,
|
|
92
|
+
sent: function() {
|
|
93
|
+
if (t[0] & 1) throw t[1];
|
|
94
|
+
return t[1];
|
|
95
|
+
},
|
|
96
|
+
trys: [],
|
|
97
|
+
ops: []
|
|
98
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
99
|
+
return d(g, "next", {
|
|
100
|
+
value: verb(0)
|
|
101
|
+
}), d(g, "throw", {
|
|
102
|
+
value: verb(1)
|
|
103
|
+
}), d(g, "return", {
|
|
104
|
+
value: verb(2)
|
|
105
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
106
|
+
value: function() {
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
}), g;
|
|
110
|
+
function verb(n) {
|
|
111
|
+
return function(v) {
|
|
112
|
+
return step([
|
|
113
|
+
n,
|
|
114
|
+
v
|
|
115
|
+
]);
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function step(op) {
|
|
119
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
120
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
121
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
122
|
+
if (y = 0, t) op = [
|
|
123
|
+
op[0] & 2,
|
|
124
|
+
t.value
|
|
125
|
+
];
|
|
126
|
+
switch(op[0]){
|
|
127
|
+
case 0:
|
|
128
|
+
case 1:
|
|
129
|
+
t = op;
|
|
130
|
+
break;
|
|
131
|
+
case 4:
|
|
132
|
+
_.label++;
|
|
133
|
+
return {
|
|
134
|
+
value: op[1],
|
|
135
|
+
done: false
|
|
136
|
+
};
|
|
137
|
+
case 5:
|
|
138
|
+
_.label++;
|
|
139
|
+
y = op[1];
|
|
140
|
+
op = [
|
|
141
|
+
0
|
|
142
|
+
];
|
|
143
|
+
continue;
|
|
144
|
+
case 7:
|
|
145
|
+
op = _.ops.pop();
|
|
146
|
+
_.trys.pop();
|
|
147
|
+
continue;
|
|
148
|
+
default:
|
|
149
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
150
|
+
_ = 0;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
154
|
+
_.label = op[1];
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
158
|
+
_.label = t[1];
|
|
159
|
+
t = op;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
if (t && _.label < t[2]) {
|
|
163
|
+
_.label = t[2];
|
|
164
|
+
_.ops.push(op);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
if (t[2]) _.ops.pop();
|
|
168
|
+
_.trys.pop();
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
op = body.call(thisArg, _);
|
|
172
|
+
} catch (e) {
|
|
173
|
+
op = [
|
|
174
|
+
6,
|
|
175
|
+
e
|
|
176
|
+
];
|
|
177
|
+
y = 0;
|
|
178
|
+
} finally{
|
|
179
|
+
f = t = 0;
|
|
180
|
+
}
|
|
181
|
+
if (op[0] & 5) throw op[1];
|
|
182
|
+
return {
|
|
183
|
+
value: op[0] ? op[1] : void 0,
|
|
184
|
+
done: true
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
60
188
|
var findCmd = function findCmd(ctx) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
189
|
+
return _async_to_generator(function() {
|
|
190
|
+
var _ctx_rest, terms, k;
|
|
191
|
+
return _ts_generator(this, function(_state) {
|
|
192
|
+
switch(_state.label){
|
|
193
|
+
case 0:
|
|
194
|
+
_ctx_rest = _sliced_to_array(ctx.rest, 1), terms = _ctx_rest[0];
|
|
195
|
+
if (!terms) ctx.usageError("usage: ".concat(ctx.name, ' find "<terms>" [--where "<sql>"] [--k n] [--semantic]'));
|
|
196
|
+
k = ctx.values.k === undefined ? undefined : Number.parseInt(ctx.values.k, 10);
|
|
197
|
+
if (ctx.values.k !== undefined && !Number.isInteger(k)) ctx.usageError('--k expects an integer, got "'.concat(ctx.values.k, '"'));
|
|
198
|
+
return [
|
|
199
|
+
4,
|
|
200
|
+
(0, _sharedts.withDb)(ctx, function(db, cfg) {
|
|
201
|
+
return _async_to_generator(function() {
|
|
202
|
+
return _ts_generator(this, function(_state) {
|
|
203
|
+
switch(_state.label){
|
|
204
|
+
case 0:
|
|
205
|
+
return [
|
|
206
|
+
4,
|
|
207
|
+
(0, _verbsts.find)(db, cfg, terms, {
|
|
208
|
+
k: k,
|
|
209
|
+
where: ctx.values.where,
|
|
210
|
+
semantic: ctx.values.semantic
|
|
211
|
+
})
|
|
212
|
+
];
|
|
213
|
+
case 1:
|
|
214
|
+
return [
|
|
215
|
+
2,
|
|
216
|
+
_outputts.printRows.apply(void 0, [
|
|
217
|
+
_state.sent(),
|
|
218
|
+
ctx.format
|
|
219
|
+
])
|
|
220
|
+
];
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
})();
|
|
224
|
+
})
|
|
225
|
+
];
|
|
226
|
+
case 1:
|
|
227
|
+
_state.sent();
|
|
228
|
+
return [
|
|
229
|
+
2
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
})();
|
|
71
234
|
};
|
|
72
235
|
var _default = findCmd;
|
|
73
236
|
/* 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; }
|
|
@@ -1 +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 { withDb } from './shared.ts';\nimport type { Command } from './types.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 withDb(ctx, (db, cfg) => printRows(find(db, cfg, terms, { k, where: ctx.values.where }), ctx.format));\n};\nexport default findCmd;\n"],"names":["findCmd","ctx","
|
|
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 { withDb } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst findCmd: Command = async (ctx) => {\n const [terms] = ctx.rest;\n if (!terms) ctx.usageError(`usage: ${ctx.name} find \"<terms>\" [--where \"<sql>\"] [--k n] [--semantic]`);\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 await withDb(ctx, async (db, cfg) => printRows(await find(db, cfg, terms, { k, where: ctx.values.where, semantic: ctx.values.semantic }), ctx.format));\n};\nexport default findCmd;\n"],"names":["findCmd","ctx","terms","k","rest","usageError","name","values","undefined","Number","parseInt","isInteger","withDb","db","cfg","find","where","semantic","printRows","format"],"mappings":";;;;+BAYA;;;eAAA;;;wBAZ0B;uBACL;wBACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvB,IAAMA,UAAmB,iBAAOC;;YACdA,WAATC,OAEDC;;;;oBAFUF,6BAAAA,IAAIG,IAAI,MAAjBF,QAASD;oBAChB,IAAI,CAACC,OAAOD,IAAII,UAAU,CAAC,AAAC,UAAkB,OAATJ,IAAIK,IAAI,EAAC;oBACxCH,IAAIF,IAAIM,MAAM,CAACJ,CAAC,KAAKK,YAAYA,YAAYC,OAAOC,QAAQ,CAACT,IAAIM,MAAM,CAACJ,CAAC,EAAE;oBACjF,IAAIF,IAAIM,MAAM,CAACJ,CAAC,KAAKK,aAAa,CAACC,OAAOE,SAAS,CAACR,IAAIF,IAAII,UAAU,CAAC,AAAC,gCAA4C,OAAbJ,IAAIM,MAAM,CAACJ,CAAC,EAAC;oBACpH;;wBAAMS,IAAAA,gBAAM,EAACX,KAAK,SAAOY,IAAIC;;;;;4CAAkB;;gDAAMC,IAAAA,aAAI,EAACF,IAAIC,KAAKZ,OAAO;oDAAEC,GAAAA;oDAAGa,OAAOf,IAAIM,MAAM,CAACS,KAAK;oDAAEC,UAAUhB,IAAIM,MAAM,CAACU,QAAQ;gDAAC;;;;;gDAAjGC,mBAAS;oDAAC;oDAA2FjB,IAAIkB,MAAM;;;;;;;;;oBAApJ;;;;;;IACF;;IACA,WAAenB"}
|
package/dist/cjs/commands/map.js
CHANGED
|
@@ -12,7 +12,7 @@ var _outputts = require("../output.js");
|
|
|
12
12
|
var _verbsts = require("../verbs.js");
|
|
13
13
|
var _sharedts = require("./shared.js");
|
|
14
14
|
var map = function map(ctx) {
|
|
15
|
-
(0, _sharedts.withDb)(ctx, function(db, cfg) {
|
|
15
|
+
return (0, _sharedts.withDb)(ctx, function(db, cfg) {
|
|
16
16
|
var result = (0, _verbsts.mapTree)(db, cfg);
|
|
17
17
|
console.log(ctx.format === 'json' ? JSON.stringify(result, null, 2) : (0, _outputts.renderMap)(result));
|
|
18
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/map.ts"],"sourcesContent":["import { renderMap } from '../output.ts';\nimport { mapTree } from '../verbs.ts';\nimport { withDb } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst map: Command = (ctx)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/map.ts"],"sourcesContent":["import { renderMap } from '../output.ts';\nimport { mapTree } from '../verbs.ts';\nimport { withDb } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst map: Command = (ctx) =>\n withDb(ctx, (db, cfg) => {\n const result = mapTree(db, cfg);\n console.log(ctx.format === 'json' ? JSON.stringify(result, null, 2) : renderMap(result));\n });\nexport default map;\n"],"names":["map","ctx","withDb","db","cfg","result","mapTree","console","log","format","JSON","stringify","renderMap"],"mappings":";;;;+BAUA;;;eAAA;;;wBAV0B;uBACF;wBACD;AAGvB,IAAMA,MAAe,aAACC;WACpBC,IAAAA,gBAAM,EAACD,KAAK,SAACE,IAAIC;QACf,IAAMC,SAASC,IAAAA,gBAAO,EAACH,IAAIC;QAC3BG,QAAQC,GAAG,CAACP,IAAIQ,MAAM,KAAK,SAASC,KAAKC,SAAS,CAACN,QAAQ,MAAM,KAAKO,IAAAA,mBAAS,EAACP;IAClF;;IACF,WAAeL"}
|
|
@@ -60,7 +60,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
60
60
|
var peekCmd = function peekCmd(ctx) {
|
|
61
61
|
var _ctx_rest = _sliced_to_array(ctx.rest, 1), pathArg = _ctx_rest[0];
|
|
62
62
|
if (!pathArg) ctx.usageError("usage: ".concat(ctx.name, " peek <path>"));
|
|
63
|
-
(0, _sharedts.withDb)(ctx, function(db, cfg) {
|
|
63
|
+
return (0, _sharedts.withDb)(ctx, function(db, cfg) {
|
|
64
64
|
var result = (0, _verbsts.peek)(db, cfg, pathArg);
|
|
65
65
|
console.log(ctx.format === 'json' ? JSON.stringify(result, null, 2) : (0, _outputts.renderPeek)(result));
|
|
66
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/peek.ts"],"sourcesContent":["import { renderPeek } from '../output.ts';\nimport { peek } from '../verbs.ts';\nimport { withDb } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst peekCmd: Command = (ctx) => {\n const [pathArg] = ctx.rest;\n if (!pathArg) ctx.usageError(`usage: ${ctx.name} peek <path>`);\n withDb(ctx, (db, cfg) => {\n const result = peek(db, cfg, pathArg);\n console.log(ctx.format === 'json' ? JSON.stringify(result, null, 2) : renderPeek(result));\n });\n};\nexport default peekCmd;\n"],"names":["peekCmd","ctx","rest","pathArg","usageError","name","withDb","db","cfg","result","peek","console","log","format","JSON","stringify","renderPeek"],"mappings":";;;;+BAaA;;;eAAA;;;wBAb2B;uBACN;wBACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvB,IAAMA,UAAmB,iBAACC;IACxB,IAAkBA,6BAAAA,IAAIC,IAAI,MAAnBC,UAAWF;IAClB,IAAI,CAACE,SAASF,IAAIG,UAAU,CAAC,AAAC,UAAkB,OAATH,IAAII,IAAI,EAAC;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/peek.ts"],"sourcesContent":["import { renderPeek } from '../output.ts';\nimport { peek } from '../verbs.ts';\nimport { withDb } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst peekCmd: Command = (ctx) => {\n const [pathArg] = ctx.rest;\n if (!pathArg) ctx.usageError(`usage: ${ctx.name} peek <path>`);\n return withDb(ctx, (db, cfg) => {\n const result = peek(db, cfg, pathArg);\n console.log(ctx.format === 'json' ? JSON.stringify(result, null, 2) : renderPeek(result));\n });\n};\nexport default peekCmd;\n"],"names":["peekCmd","ctx","rest","pathArg","usageError","name","withDb","db","cfg","result","peek","console","log","format","JSON","stringify","renderPeek"],"mappings":";;;;+BAaA;;;eAAA;;;wBAb2B;uBACN;wBACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvB,IAAMA,UAAmB,iBAACC;IACxB,IAAkBA,6BAAAA,IAAIC,IAAI,MAAnBC,UAAWF;IAClB,IAAI,CAACE,SAASF,IAAIG,UAAU,CAAC,AAAC,UAAkB,OAATH,IAAII,IAAI,EAAC;IAChD,OAAOC,IAAAA,gBAAM,EAACL,KAAK,SAACM,IAAIC;QACtB,IAAMC,SAASC,IAAAA,aAAI,EAACH,IAAIC,KAAKL;QAC7BQ,QAAQC,GAAG,CAACX,IAAIY,MAAM,KAAK,SAASC,KAAKC,SAAS,CAACN,QAAQ,MAAM,KAAKO,IAAAA,oBAAU,EAACP;IACnF;AACF;IACA,WAAeT"}
|
|
@@ -2,5 +2,5 @@ import type { ResolvedConfig } from '../config.js';
|
|
|
2
2
|
import type { OpenResult } from '../db.js';
|
|
3
3
|
import type { Ctx } from './types.js';
|
|
4
4
|
export declare function printWarnings(warnings: string[]): void;
|
|
5
|
-
export declare function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void): void
|
|
5
|
+
export declare function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void | Promise<void>): Promise<void>;
|
|
6
6
|
export declare function runSql(cfg: ResolvedConfig, sql: string, params: string[], format: 'table' | 'json', label: string): void;
|
|
@@ -2,5 +2,5 @@ import type { ResolvedConfig } from '../config.js';
|
|
|
2
2
|
import type { OpenResult } from '../db.js';
|
|
3
3
|
import type { Ctx } from './types.js';
|
|
4
4
|
export declare function printWarnings(warnings: string[]): void;
|
|
5
|
-
export declare function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void): void
|
|
5
|
+
export declare function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void | Promise<void>): Promise<void>;
|
|
6
6
|
export declare function runSql(cfg: ResolvedConfig, sql: string, params: string[], format: 'table' | 'json', label: string): void;
|
|
@@ -29,6 +29,35 @@ function _array_like_to_array(arr, len) {
|
|
|
29
29
|
function _array_without_holes(arr) {
|
|
30
30
|
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
31
31
|
}
|
|
32
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
33
|
+
try {
|
|
34
|
+
var info = gen[key](arg);
|
|
35
|
+
var value = info.value;
|
|
36
|
+
} catch (error) {
|
|
37
|
+
reject(error);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (info.done) {
|
|
41
|
+
resolve(value);
|
|
42
|
+
} else {
|
|
43
|
+
Promise.resolve(value).then(_next, _throw);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function _async_to_generator(fn) {
|
|
47
|
+
return function() {
|
|
48
|
+
var self = this, args = arguments;
|
|
49
|
+
return new Promise(function(resolve, reject) {
|
|
50
|
+
var gen = fn.apply(self, args);
|
|
51
|
+
function _next(value) {
|
|
52
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
53
|
+
}
|
|
54
|
+
function _throw(err) {
|
|
55
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
56
|
+
}
|
|
57
|
+
_next(undefined);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}
|
|
32
61
|
function _iterable_to_array(iter) {
|
|
33
62
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
34
63
|
}
|
|
@@ -46,6 +75,105 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
46
75
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
47
76
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
48
77
|
}
|
|
78
|
+
function _ts_generator(thisArg, body) {
|
|
79
|
+
var f, y, t, _ = {
|
|
80
|
+
label: 0,
|
|
81
|
+
sent: function() {
|
|
82
|
+
if (t[0] & 1) throw t[1];
|
|
83
|
+
return t[1];
|
|
84
|
+
},
|
|
85
|
+
trys: [],
|
|
86
|
+
ops: []
|
|
87
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
88
|
+
return d(g, "next", {
|
|
89
|
+
value: verb(0)
|
|
90
|
+
}), d(g, "throw", {
|
|
91
|
+
value: verb(1)
|
|
92
|
+
}), d(g, "return", {
|
|
93
|
+
value: verb(2)
|
|
94
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
95
|
+
value: function() {
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
}), g;
|
|
99
|
+
function verb(n) {
|
|
100
|
+
return function(v) {
|
|
101
|
+
return step([
|
|
102
|
+
n,
|
|
103
|
+
v
|
|
104
|
+
]);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function step(op) {
|
|
108
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
109
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
110
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
111
|
+
if (y = 0, t) op = [
|
|
112
|
+
op[0] & 2,
|
|
113
|
+
t.value
|
|
114
|
+
];
|
|
115
|
+
switch(op[0]){
|
|
116
|
+
case 0:
|
|
117
|
+
case 1:
|
|
118
|
+
t = op;
|
|
119
|
+
break;
|
|
120
|
+
case 4:
|
|
121
|
+
_.label++;
|
|
122
|
+
return {
|
|
123
|
+
value: op[1],
|
|
124
|
+
done: false
|
|
125
|
+
};
|
|
126
|
+
case 5:
|
|
127
|
+
_.label++;
|
|
128
|
+
y = op[1];
|
|
129
|
+
op = [
|
|
130
|
+
0
|
|
131
|
+
];
|
|
132
|
+
continue;
|
|
133
|
+
case 7:
|
|
134
|
+
op = _.ops.pop();
|
|
135
|
+
_.trys.pop();
|
|
136
|
+
continue;
|
|
137
|
+
default:
|
|
138
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
139
|
+
_ = 0;
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
143
|
+
_.label = op[1];
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
147
|
+
_.label = t[1];
|
|
148
|
+
t = op;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
if (t && _.label < t[2]) {
|
|
152
|
+
_.label = t[2];
|
|
153
|
+
_.ops.push(op);
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
if (t[2]) _.ops.pop();
|
|
157
|
+
_.trys.pop();
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
op = body.call(thisArg, _);
|
|
161
|
+
} catch (e) {
|
|
162
|
+
op = [
|
|
163
|
+
6,
|
|
164
|
+
e
|
|
165
|
+
];
|
|
166
|
+
y = 0;
|
|
167
|
+
} finally{
|
|
168
|
+
f = t = 0;
|
|
169
|
+
}
|
|
170
|
+
if (op[0] & 5) throw op[1];
|
|
171
|
+
return {
|
|
172
|
+
value: op[0] ? op[1] : void 0,
|
|
173
|
+
done: true
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
49
177
|
function printWarnings(warnings) {
|
|
50
178
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
51
179
|
try {
|
|
@@ -69,14 +197,44 @@ function printWarnings(warnings) {
|
|
|
69
197
|
}
|
|
70
198
|
}
|
|
71
199
|
function withDb(ctx, fn) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
200
|
+
return _async_to_generator(function() {
|
|
201
|
+
var cfg, _open, db, warnings;
|
|
202
|
+
return _ts_generator(this, function(_state) {
|
|
203
|
+
switch(_state.label){
|
|
204
|
+
case 0:
|
|
205
|
+
cfg = ctx.resolveConfig();
|
|
206
|
+
_open = (0, _dbts.open)(cfg), db = _open.db, warnings = _open.warnings;
|
|
207
|
+
printWarnings(warnings);
|
|
208
|
+
_state.label = 1;
|
|
209
|
+
case 1:
|
|
210
|
+
_state.trys.push([
|
|
211
|
+
1,
|
|
212
|
+
,
|
|
213
|
+
3,
|
|
214
|
+
4
|
|
215
|
+
]);
|
|
216
|
+
return [
|
|
217
|
+
4,
|
|
218
|
+
fn(db, cfg)
|
|
219
|
+
];
|
|
220
|
+
case 2:
|
|
221
|
+
_state.sent();
|
|
222
|
+
return [
|
|
223
|
+
3,
|
|
224
|
+
4
|
|
225
|
+
];
|
|
226
|
+
case 3:
|
|
227
|
+
db.close();
|
|
228
|
+
return [
|
|
229
|
+
7
|
|
230
|
+
];
|
|
231
|
+
case 4:
|
|
232
|
+
return [
|
|
233
|
+
2
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
})();
|
|
80
238
|
}
|
|
81
239
|
function runSql(cfg, sql, params, format, label) {
|
|
82
240
|
var _db_prepare;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/shared.ts"],"sourcesContent":["import type { ResolvedConfig } from '../config.ts';\nimport type { OpenResult } from '../db.ts';\nimport { open } from '../db.ts';\nimport type { Row } from '../output.ts';\nimport { printRows } from '../output.ts';\nimport type { Ctx } from './types.ts';\n\n// Shared open-query-close envelope for commands that touch the tree.\n\nexport function printWarnings(warnings: string[]): void {\n for (const w of warnings) console.warn(w);\n}\n\nexport function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void): void {\n const cfg = ctx.resolveConfig();\n const { db, warnings } = open(cfg);\n printWarnings(warnings);\n try {\n fn(db, cfg);\n } finally {\n db.close();\n }\n}\n\n// An unbound `?` silently binds NULL, so mismatched param counts fail loudly instead.\nexport function 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 printRows(db.prepare(sql).all(...params) as Row[], format);\n db.close();\n}\n"],"names":["printWarnings","runSql","withDb","warnings","w","console","warn","ctx","fn","cfg","
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/shared.ts"],"sourcesContent":["import type { ResolvedConfig } from '../config.ts';\nimport type { OpenResult } from '../db.ts';\nimport { open } from '../db.ts';\nimport type { Row } from '../output.ts';\nimport { printRows } from '../output.ts';\nimport type { Ctx } from './types.ts';\n\n// Shared open-query-close envelope for commands that touch the tree.\n\nexport function printWarnings(warnings: string[]): void {\n for (const w of warnings) console.warn(w);\n}\n\nexport async function withDb(ctx: Ctx, fn: (db: OpenResult['db'], cfg: ResolvedConfig) => void | Promise<void>): Promise<void> {\n const cfg = ctx.resolveConfig();\n const { db, warnings } = open(cfg);\n printWarnings(warnings);\n try {\n await fn(db, cfg);\n } finally {\n db.close();\n }\n}\n\n// An unbound `?` silently binds NULL, so mismatched param counts fail loudly instead.\nexport function 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 printRows(db.prepare(sql).all(...params) as Row[], format);\n db.close();\n}\n"],"names":["printWarnings","runSql","withDb","warnings","w","console","warn","ctx","fn","cfg","open","db","resolveConfig","close","sql","params","format","label","placeholderCount","match","length","error","process","exit","printRows","prepare","all"],"mappings":";;;;;;;;;;;QASgBA;eAAAA;;QAgBAC;eAAAA;;QAZMC;eAAAA;;;oBAXD;wBAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKnB,SAASF,cAAcG,QAAkB;QACzC,kCAAA,2BAAA;;QAAL,QAAK,YAAWA,6BAAX,SAAA,6BAAA,QAAA,yBAAA;YAAA,IAAMC,IAAN;YAAqBC,QAAQC,IAAI,CAACF;;;QAAlC;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;AACP;AAEO,SAAeF,OAAOK,GAAQ,EAAEC,EAAuE;;YACtGC,KACmBC,OAAjBC,IAAIR;;;;oBADNM,MAAMF,IAAIK,aAAa;oBACJF,QAAAA,IAAAA,UAAI,EAACD,MAAtBE,KAAiBD,MAAjBC,IAAIR,WAAaO,MAAbP;oBACZH,cAAcG;;;;;;;;;oBAEZ;;wBAAMK,GAAGG,IAAIF;;;oBAAb;;;;;;oBAEAE,GAAGE,KAAK;;;;;;;;;;IAEZ;;AAGO,SAASZ,OAAOQ,GAAmB,EAAEK,GAAW,EAAEC,MAAgB,EAAEC,MAAwB,EAAEC,KAAa;QAQtGN;QAPgBG;IAA1B,IAAMI,mBAAmB,EAACJ,aAAAA,IAAIK,KAAK,CAAC,oBAAVL,wBAAAA,aAAoB,EAAE,EAAEM,MAAM;IACxD,IAAIL,OAAOK,MAAM,KAAKF,kBAAkB;QACtCb,QAAQgB,KAAK,CAAC,AAAC,GAAmBH,OAAjBD,OAAM,aAAiDF,OAAtCG,kBAAiB,uBAAmC,OAAdH,OAAOK,MAAM;QACrFE,QAAQC,IAAI,CAAC;IACf;IACA,IAAyBb,QAAAA,IAAAA,UAAI,EAACD,MAAtBE,KAAiBD,MAAjBC,IAAIR,WAAaO,MAAbP;IACZH,cAAcG;IACdqB,IAAAA,mBAAS,EAACb,CAAAA,cAAAA,GAAGc,OAAO,CAACX,MAAKY,GAAG,OAAnBf,aAAoB,qBAAGI,UAAkBC;IACnDL,GAAGE,KAAK;AACV"}
|
|
@@ -8,13 +8,22 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _configts = require("../config.js");
|
|
11
12
|
var _dbts = require("../db.js");
|
|
12
13
|
var _sharedts = require("./shared.js");
|
|
13
14
|
var status = function status(ctx) {
|
|
14
|
-
var
|
|
15
|
+
var cfg = ctx.resolveConfig();
|
|
16
|
+
var _open = (0, _dbts.open)(cfg), db = _open.db, dbPath = _open.dbPath, warnings = _open.warnings;
|
|
15
17
|
(0, _sharedts.printWarnings)(warnings);
|
|
16
18
|
console.log("db: ".concat(dbPath));
|
|
17
19
|
console.log("docs: ".concat((0, _dbts.docCount)(db)));
|
|
20
|
+
var features = (0, _configts.featureStates)(cfg);
|
|
21
|
+
var off = features.off.length > 0 ? " \xb7 off: ".concat(features.off.map(function(name) {
|
|
22
|
+
return "".concat(name, " (features.").concat(name, ")");
|
|
23
|
+
}).join(', ')) : '';
|
|
24
|
+
console.log("features: ".concat(features.on.join(', ')).concat(off));
|
|
25
|
+
var e = (0, _configts.embedConfig)(cfg);
|
|
26
|
+
if (e) console.log("embed: ".concat(e.type, " ").concat(e.model));
|
|
18
27
|
var heartbeat = (0, _dbts.getMeta)(db, 'watch_heartbeat');
|
|
19
28
|
if (heartbeat) console.log("watcher: last heartbeat ".concat(Math.round((Date.now() - Date.parse(heartbeat)) / 1000), "s ago"));
|
|
20
29
|
else console.log('watcher: no watcher');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/status.ts"],"sourcesContent":["import { docCount, getMeta, open } from '../db.ts';\nimport { printWarnings } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst status: Command = (ctx) => {\n const { db, dbPath, warnings } = open(
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/commands/status.ts"],"sourcesContent":["import { embedConfig, featureStates } from '../config.ts';\nimport { docCount, getMeta, open } from '../db.ts';\nimport { printWarnings } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst status: Command = (ctx) => {\n const cfg = ctx.resolveConfig();\n const { db, dbPath, warnings } = open(cfg);\n printWarnings(warnings);\n console.log(`db: ${dbPath}`);\n console.log(`docs: ${docCount(db)}`);\n const features = featureStates(cfg);\n const off = features.off.length > 0 ? ` · off: ${features.off.map((name) => `${name} (features.${name})`).join(', ')}` : '';\n console.log(`features: ${features.on.join(', ')}${off}`);\n const e = embedConfig(cfg);\n if (e) console.log(`embed: ${e.type} ${e.model}`);\n const heartbeat = getMeta(db, 'watch_heartbeat');\n if (heartbeat) console.log(`watcher: last heartbeat ${Math.round((Date.now() - Date.parse(heartbeat)) / 1000)}s ago`);\n else console.log('watcher: no watcher');\n db.close();\n};\nexport default status;\n"],"names":["status","ctx","cfg","resolveConfig","open","db","dbPath","warnings","printWarnings","console","log","docCount","features","featureStates","off","length","map","name","join","on","e","embedConfig","type","model","heartbeat","getMeta","Math","round","Date","now","parse","close"],"mappings":";;;;+BAqBA;;;eAAA;;;wBArB2C;oBACH;wBACV;AAG9B,IAAMA,SAAkB,gBAACC;IACvB,IAAMC,MAAMD,IAAIE,aAAa;IAC7B,IAAiCC,QAAAA,IAAAA,UAAI,EAACF,MAA9BG,KAAyBD,MAAzBC,IAAIC,SAAqBF,MAArBE,QAAQC,WAAaH,MAAbG;IACpBC,IAAAA,uBAAa,EAACD;IACdE,QAAQC,GAAG,CAAC,AAAC,OAAa,OAAPJ;IACnBG,QAAQC,GAAG,CAAC,AAAC,SAAqB,OAAbC,IAAAA,cAAQ,EAACN;IAC9B,IAAMO,WAAWC,IAAAA,uBAAa,EAACX;IAC/B,IAAMY,MAAMF,SAASE,GAAG,CAACC,MAAM,GAAG,IAAI,AAAC,cAA8E,OAApEH,SAASE,GAAG,CAACE,GAAG,CAAC,SAACC;eAAS,AAAC,GAAoBA,OAAlBA,MAAK,eAAkB,OAALA,MAAK;OAAIC,IAAI,CAAC,SAAU;IACzHT,QAAQC,GAAG,CAAC,AAAC,aAAqCI,OAAzBF,SAASO,EAAE,CAACD,IAAI,CAAC,OAAY,OAAJJ;IAClD,IAAMM,IAAIC,IAAAA,qBAAW,EAACnB;IACtB,IAAIkB,GAAGX,QAAQC,GAAG,CAAC,AAAC,UAAmBU,OAAVA,EAAEE,IAAI,EAAC,KAAW,OAARF,EAAEG,KAAK;IAC9C,IAAMC,YAAYC,IAAAA,aAAO,EAACpB,IAAI;IAC9B,IAAImB,WAAWf,QAAQC,GAAG,CAAC,AAAC,2BAAkF,OAAxDgB,KAAKC,KAAK,CAAC,AAACC,CAAAA,KAAKC,GAAG,KAAKD,KAAKE,KAAK,CAACN,UAAS,IAAK,OAAM;SACzGf,QAAQC,GAAG,CAAC;IACjBL,GAAG0B,KAAK;AACV;IACA,WAAe/B"}
|