@cavelang/cli 0.27.14 → 0.29.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/Authors.md +5 -0
- package/License.md +6 -0
- package/README.md +122 -24
- package/dist/internal/act/action.d.ts +69 -0
- package/dist/internal/act/action.d.ts.map +1 -0
- package/dist/internal/act/action.js +201 -0
- package/dist/internal/act/action.js.map +1 -0
- package/dist/internal/act/declare.d.ts +102 -0
- package/dist/internal/act/declare.d.ts.map +1 -0
- package/dist/internal/act/declare.js +270 -0
- package/dist/internal/act/declare.js.map +1 -0
- package/dist/internal/act/engine.d.ts +103 -0
- package/dist/internal/act/engine.d.ts.map +1 -0
- package/dist/internal/act/engine.js +298 -0
- package/dist/internal/act/engine.js.map +1 -0
- package/dist/internal/act/index.d.ts +27 -0
- package/dist/internal/act/index.d.ts.map +1 -0
- package/dist/internal/act/index.js +25 -0
- package/dist/internal/act/index.js.map +1 -0
- package/dist/internal/automate/automation.d.ts +78 -0
- package/dist/internal/automate/automation.d.ts.map +1 -0
- package/dist/internal/automate/automation.js +135 -0
- package/dist/internal/automate/automation.js.map +1 -0
- package/dist/internal/automate/declare.d.ts +84 -0
- package/dist/internal/automate/declare.d.ts.map +1 -0
- package/dist/internal/automate/declare.js +233 -0
- package/dist/internal/automate/declare.js.map +1 -0
- package/dist/internal/automate/engine.d.ts +125 -0
- package/dist/internal/automate/engine.d.ts.map +1 -0
- package/dist/internal/automate/engine.js +388 -0
- package/dist/internal/automate/engine.js.map +1 -0
- package/dist/internal/automate/index.d.ts +28 -0
- package/dist/internal/automate/index.d.ts.map +1 -0
- package/dist/internal/automate/index.js +26 -0
- package/dist/internal/automate/index.js.map +1 -0
- package/dist/internal/automate/main.d.ts +26 -0
- package/dist/internal/automate/main.d.ts.map +1 -0
- package/dist/internal/automate/main.js +298 -0
- package/dist/internal/automate/main.js.map +1 -0
- package/dist/internal/connect/index.d.ts +26 -0
- package/dist/internal/connect/index.d.ts.map +1 -0
- package/dist/internal/connect/index.js +24 -0
- package/dist/internal/connect/index.js.map +1 -0
- package/dist/internal/connect/main.d.ts +23 -0
- package/dist/internal/connect/main.d.ts.map +1 -0
- package/dist/internal/connect/main.js +330 -0
- package/dist/internal/connect/main.js.map +1 -0
- package/dist/internal/connect/run.d.ts +85 -0
- package/dist/internal/connect/run.d.ts.map +1 -0
- package/dist/internal/connect/run.js +242 -0
- package/dist/internal/connect/run.js.map +1 -0
- package/dist/internal/connect/source.d.ts +44 -0
- package/dist/internal/connect/source.d.ts.map +1 -0
- package/dist/internal/connect/source.js +215 -0
- package/dist/internal/connect/source.js.map +1 -0
- package/dist/internal/connect/template.d.ts +69 -0
- package/dist/internal/connect/template.d.ts.map +1 -0
- package/dist/internal/connect/template.js +221 -0
- package/dist/internal/connect/template.js.map +1 -0
- package/dist/internal/eval/index.d.ts +28 -0
- package/dist/internal/eval/index.d.ts.map +1 -0
- package/dist/internal/eval/index.js +27 -0
- package/dist/internal/eval/index.js.map +1 -0
- package/dist/internal/eval/judge.d.ts +30 -0
- package/dist/internal/eval/judge.d.ts.map +1 -0
- package/dist/internal/eval/judge.js +101 -0
- package/dist/internal/eval/judge.js.map +1 -0
- package/dist/internal/eval/loop.d.ts +64 -0
- package/dist/internal/eval/loop.d.ts.map +1 -0
- package/dist/internal/eval/loop.js +123 -0
- package/dist/internal/eval/loop.js.map +1 -0
- package/dist/internal/eval/main.d.ts +17 -0
- package/dist/internal/eval/main.d.ts.map +1 -0
- package/dist/internal/eval/main.js +236 -0
- package/dist/internal/eval/main.js.map +1 -0
- package/dist/internal/eval/queries.d.ts +74 -0
- package/dist/internal/eval/queries.d.ts.map +1 -0
- package/dist/internal/eval/queries.js +161 -0
- package/dist/internal/eval/queries.js.map +1 -0
- package/dist/internal/eval/run.d.ts +143 -0
- package/dist/internal/eval/run.d.ts.map +1 -0
- package/dist/internal/eval/run.js +376 -0
- package/dist/internal/eval/run.js.map +1 -0
- package/dist/internal/eval/score.d.ts +81 -0
- package/dist/internal/eval/score.d.ts.map +1 -0
- package/dist/internal/eval/score.js +126 -0
- package/dist/internal/eval/score.js.map +1 -0
- package/dist/internal/eval/suite.d.ts +66 -0
- package/dist/internal/eval/suite.d.ts.map +1 -0
- package/dist/internal/eval/suite.js +130 -0
- package/dist/internal/eval/suite.js.map +1 -0
- package/dist/internal/ingest/context.d.ts +20 -0
- package/dist/internal/ingest/context.d.ts.map +1 -0
- package/dist/internal/ingest/context.js +59 -0
- package/dist/internal/ingest/context.js.map +1 -0
- package/dist/internal/ingest/files.d.ts +46 -0
- package/dist/internal/ingest/files.d.ts.map +1 -0
- package/dist/internal/ingest/files.js +115 -0
- package/dist/internal/ingest/files.js.map +1 -0
- package/dist/internal/ingest/index.d.ts +31 -0
- package/dist/internal/ingest/index.d.ts.map +1 -0
- package/dist/internal/ingest/index.js +29 -0
- package/dist/internal/ingest/index.js.map +1 -0
- package/dist/internal/ingest/main.d.ts +12 -0
- package/dist/internal/ingest/main.d.ts.map +1 -0
- package/dist/internal/ingest/main.js +180 -0
- package/dist/internal/ingest/main.js.map +1 -0
- package/dist/internal/ingest/prompt.d.ts +32 -0
- package/dist/internal/ingest/prompt.d.ts.map +1 -0
- package/dist/internal/ingest/prompt.js +75 -0
- package/dist/internal/ingest/prompt.js.map +1 -0
- package/dist/internal/ingest/run.d.ts +142 -0
- package/dist/internal/ingest/run.d.ts.map +1 -0
- package/dist/internal/ingest/run.js +350 -0
- package/dist/internal/ingest/run.js.map +1 -0
- package/dist/internal/ingest/web.d.ts +48 -0
- package/dist/internal/ingest/web.d.ts.map +1 -0
- package/dist/internal/ingest/web.js +140 -0
- package/dist/internal/ingest/web.js.map +1 -0
- package/dist/internal/loop/demo.d.ts +22 -0
- package/dist/internal/loop/demo.d.ts.map +1 -0
- package/dist/internal/loop/demo.js +67 -0
- package/dist/internal/loop/demo.js.map +1 -0
- package/dist/internal/loop/index.d.ts +20 -0
- package/dist/internal/loop/index.d.ts.map +1 -0
- package/dist/internal/loop/index.js +17 -0
- package/dist/internal/loop/index.js.map +1 -0
- package/dist/internal/loop/llm.d.ts +99 -0
- package/dist/internal/loop/llm.d.ts.map +1 -0
- package/dist/internal/loop/llm.js +231 -0
- package/dist/internal/loop/llm.js.map +1 -0
- package/dist/internal/loop/reconstruct.d.ts +87 -0
- package/dist/internal/loop/reconstruct.d.ts.map +1 -0
- package/dist/internal/loop/reconstruct.js +157 -0
- package/dist/internal/loop/reconstruct.js.map +1 -0
- package/dist/internal/loop/sqlite.d.ts +13 -0
- package/dist/internal/loop/sqlite.d.ts.map +1 -0
- package/dist/internal/loop/sqlite.js +33 -0
- package/dist/internal/loop/sqlite.js.map +1 -0
- package/dist/internal/loop/store.d.ts +50 -0
- package/dist/internal/loop/store.d.ts.map +1 -0
- package/dist/internal/loop/store.js +100 -0
- package/dist/internal/loop/store.js.map +1 -0
- package/dist/internal/mcp/bin.d.ts +7 -0
- package/dist/internal/mcp/bin.d.ts.map +1 -0
- package/dist/internal/mcp/bin.js +8 -0
- package/dist/internal/mcp/bin.js.map +1 -0
- package/dist/internal/mcp/index.d.ts +25 -0
- package/dist/internal/mcp/index.d.ts.map +1 -0
- package/dist/internal/mcp/index.js +23 -0
- package/dist/internal/mcp/index.js.map +1 -0
- package/dist/internal/mcp/main.d.ts +23 -0
- package/dist/internal/mcp/main.d.ts.map +1 -0
- package/dist/internal/mcp/main.js +156 -0
- package/dist/internal/mcp/main.js.map +1 -0
- package/dist/internal/mcp/server.d.ts +92 -0
- package/dist/internal/mcp/server.d.ts.map +1 -0
- package/dist/internal/mcp/server.js +251 -0
- package/dist/internal/mcp/server.js.map +1 -0
- package/dist/internal/mcp/tools.d.ts +91 -0
- package/dist/internal/mcp/tools.d.ts.map +1 -0
- package/dist/internal/mcp/tools.js +584 -0
- package/dist/internal/mcp/tools.js.map +1 -0
- package/dist/internal/rules/declare.d.ts +58 -0
- package/dist/internal/rules/declare.d.ts.map +1 -0
- package/dist/internal/rules/declare.js +152 -0
- package/dist/internal/rules/declare.js.map +1 -0
- package/dist/internal/rules/engine.d.ts +125 -0
- package/dist/internal/rules/engine.d.ts.map +1 -0
- package/dist/internal/rules/engine.js +575 -0
- package/dist/internal/rules/engine.js.map +1 -0
- package/dist/internal/rules/index.d.ts +23 -0
- package/dist/internal/rules/index.d.ts.map +1 -0
- package/dist/internal/rules/index.js +21 -0
- package/dist/internal/rules/index.js.map +1 -0
- package/dist/internal/rules/rule.d.ts +88 -0
- package/dist/internal/rules/rule.d.ts.map +1 -0
- package/dist/internal/rules/rule.js +221 -0
- package/dist/internal/rules/rule.js.map +1 -0
- package/dist/internal/shape/check.d.ts +118 -0
- package/dist/internal/shape/check.d.ts.map +1 -0
- package/dist/internal/shape/check.js +331 -0
- package/dist/internal/shape/check.js.map +1 -0
- package/dist/internal/shape/client.d.ts +31 -0
- package/dist/internal/shape/client.d.ts.map +1 -0
- package/dist/internal/shape/client.js +170 -0
- package/dist/internal/shape/client.js.map +1 -0
- package/dist/internal/shape/gate.d.ts +33 -0
- package/dist/internal/shape/gate.d.ts.map +1 -0
- package/dist/internal/shape/gate.js +0 -0
- package/dist/internal/shape/gate.js.map +1 -0
- package/dist/internal/shape/index.d.ts +27 -0
- package/dist/internal/shape/index.d.ts.map +1 -0
- package/dist/internal/shape/index.js +23 -0
- package/dist/internal/shape/index.js.map +1 -0
- package/dist/internal/shape/suggest.d.ts +82 -0
- package/dist/internal/shape/suggest.d.ts.map +1 -0
- package/dist/internal/shape/suggest.js +374 -0
- package/dist/internal/shape/suggest.js.map +1 -0
- package/dist/internal/sync/index.d.ts +22 -0
- package/dist/internal/sync/index.d.ts.map +1 -0
- package/dist/internal/sync/index.js +21 -0
- package/dist/internal/sync/index.js.map +1 -0
- package/dist/internal/sync/sync.d.ts +95 -0
- package/dist/internal/sync/sync.d.ts.map +1 -0
- package/dist/internal/sync/sync.js +342 -0
- package/dist/internal/sync/sync.js.map +1 -0
- package/dist/internal/view/api.d.ts +196 -0
- package/dist/internal/view/api.d.ts.map +1 -0
- package/dist/internal/view/api.js +189 -0
- package/dist/internal/view/api.js.map +1 -0
- package/dist/internal/view/index.d.ts +33 -0
- package/dist/internal/view/index.d.ts.map +1 -0
- package/dist/internal/view/index.js +30 -0
- package/dist/internal/view/index.js.map +1 -0
- package/dist/internal/view/main.d.ts +11 -0
- package/dist/internal/view/main.d.ts.map +1 -0
- package/dist/internal/view/main.js +98 -0
- package/dist/internal/view/main.js.map +1 -0
- package/dist/internal/view/page.d.ts +14 -0
- package/dist/internal/view/page.d.ts.map +1 -0
- package/dist/internal/view/page.js +370 -0
- package/dist/internal/view/page.js.map +1 -0
- package/dist/internal/view/report.d.ts +52 -0
- package/dist/internal/view/report.d.ts.map +1 -0
- package/dist/internal/view/report.js +367 -0
- package/dist/internal/view/report.js.map +1 -0
- package/dist/internal/view/scope.d.ts +11 -0
- package/dist/internal/view/scope.d.ts.map +1 -0
- package/dist/internal/view/scope.js +41 -0
- package/dist/internal/view/scope.js.map +1 -0
- package/dist/internal/view/server.d.ts +35 -0
- package/dist/internal/view/server.d.ts.map +1 -0
- package/dist/internal/view/server.js +141 -0
- package/dist/internal/view/server.js.map +1 -0
- package/dist/src/act.d.ts +3 -0
- package/dist/src/act.d.ts.map +1 -0
- package/dist/src/act.js +3 -0
- package/dist/src/act.js.map +1 -0
- package/dist/src/automate.d.ts +3 -0
- package/dist/src/automate.d.ts.map +1 -0
- package/dist/src/automate.js +3 -0
- package/dist/src/automate.js.map +1 -0
- package/dist/src/cli.d.ts +24 -17
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +408 -107
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands.d.ts +104 -0
- package/dist/src/commands.d.ts.map +1 -0
- package/dist/src/commands.js +33 -0
- package/dist/src/commands.js.map +1 -0
- package/dist/src/connect.d.ts +3 -0
- package/dist/src/connect.d.ts.map +1 -0
- package/dist/src/connect.js +3 -0
- package/dist/src/connect.js.map +1 -0
- package/dist/src/dispatch.d.ts +14 -0
- package/dist/src/dispatch.d.ts.map +1 -0
- package/dist/src/dispatch.js +116 -0
- package/dist/src/dispatch.js.map +1 -0
- package/dist/src/doctor.d.ts +45 -0
- package/dist/src/doctor.d.ts.map +1 -0
- package/dist/src/doctor.js +284 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/eval.d.ts +3 -0
- package/dist/src/eval.d.ts.map +1 -0
- package/dist/src/eval.js +3 -0
- package/dist/src/eval.js.map +1 -0
- package/dist/src/index.d.ts +9 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/ingest.d.ts +3 -0
- package/dist/src/ingest.d.ts.map +1 -0
- package/dist/src/ingest.js +3 -0
- package/dist/src/ingest.js.map +1 -0
- package/dist/src/loop.d.ts +3 -0
- package/dist/src/loop.d.ts.map +1 -0
- package/dist/src/loop.js +3 -0
- package/dist/src/loop.js.map +1 -0
- package/dist/src/main.d.ts +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +3 -75
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp.d.ts +3 -0
- package/dist/src/mcp.d.ts.map +1 -0
- package/dist/src/mcp.js +3 -0
- package/dist/src/mcp.js.map +1 -0
- package/dist/src/rules.d.ts +3 -0
- package/dist/src/rules.d.ts.map +1 -0
- package/dist/src/rules.js +3 -0
- package/dist/src/rules.js.map +1 -0
- package/dist/src/shape.d.ts +3 -0
- package/dist/src/shape.d.ts.map +1 -0
- package/dist/src/shape.js +3 -0
- package/dist/src/shape.js.map +1 -0
- package/dist/src/sync.d.ts +3 -0
- package/dist/src/sync.d.ts.map +1 -0
- package/dist/src/sync.js +3 -0
- package/dist/src/sync.js.map +1 -0
- package/dist/src/view.d.ts +3 -0
- package/dist/src/view.d.ts.map +1 -0
- package/dist/src/view.js +3 -0
- package/dist/src/view.js.map +1 -0
- package/package.json +81 -21
- package/src/act.ts +2 -0
- package/src/automate.ts +2 -0
- package/src/cli.ts +416 -102
- package/src/commands.ts +48 -0
- package/src/connect.ts +2 -0
- package/src/dispatch.ts +141 -0
- package/src/doctor.ts +370 -0
- package/src/eval.ts +2 -0
- package/src/index.ts +9 -2
- package/src/ingest.ts +2 -0
- package/src/loop.ts +2 -0
- package/src/main.ts +3 -66
- package/src/mcp.ts +2 -0
- package/src/rules.ts +2 -0
- package/src/shape.ts +2 -0
- package/src/sync.ts +2 -0
- package/src/view.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View models (spec §30.2) — pure reads from a store into the JSON the
|
|
3
|
+
* page renders. Every function here is a read; nothing in this package
|
|
4
|
+
* ever writes. Semantics are the ones defined elsewhere: current belief
|
|
5
|
+
* is §9.1's latest-tx, the belief series is §9.1's history, lineage is
|
|
6
|
+
* the §13.2/§24.3 edge table, health is the §20.2 report — the view
|
|
7
|
+
* renders them, it never reinterprets them.
|
|
8
|
+
*
|
|
9
|
+
* Claims are returned *structured* (subject, verb, payload, contexts,
|
|
10
|
+
* tags as columns), not re-parsed from text: the page renders and links
|
|
11
|
+
* from row data, so no second grammar exists to drift out of sync, and
|
|
12
|
+
* `line` keeps the claim as authored for the places text is the point.
|
|
13
|
+
*/
|
|
14
|
+
import { SourceSpan, Uuidv7, Verb, Version } from '@cavelang/core';
|
|
15
|
+
import { check, defaultStaleDays } from '@cavelang/cli/shape';
|
|
16
|
+
import { QuerySql, Sensitivity } from '@cavelang/store';
|
|
17
|
+
import { withScopedStore } from "./scope.js";
|
|
18
|
+
const currentSql = QuerySql.current();
|
|
19
|
+
const maximumOf = (options) => options.maxSensitivity ?? Sensitivity.defaultMaximum;
|
|
20
|
+
const rows = (store, sql, ...params) => store.db.prepare(sql).all(...params);
|
|
21
|
+
const toView = (store, row, maximum) => {
|
|
22
|
+
const contexts = store.db.prepare('SELECT context FROM cave_context WHERE claim_id = ?').all(row.id).map(entry => entry.context);
|
|
23
|
+
const tags = store.db.prepare('SELECT key, value FROM cave_tag WHERE claim_id = ?').all(row.id)
|
|
24
|
+
.map(tag => tag.value === null ? { key: tag.key } : { key: tag.key, value: tag.value });
|
|
25
|
+
const visibleChild = maximum === undefined ? '' :
|
|
26
|
+
` JOIN cave_claim visible ON visible.id = cave_edge.child_id AND ${Sensitivity.sql('visible', maximum)}`;
|
|
27
|
+
const visibleParent = maximum === undefined ? '' :
|
|
28
|
+
` JOIN cave_claim visible ON visible.id = cave_edge.parent_id AND ${Sensitivity.sql('visible', maximum)}`;
|
|
29
|
+
const cites = store.db.prepare(`SELECT COUNT(*) AS n FROM cave_edge${visibleChild} WHERE parent_id = ?`).get(row.id).n;
|
|
30
|
+
const citedBy = store.db.prepare(`SELECT COUNT(*) AS n FROM cave_edge${visibleParent} WHERE child_id = ?`).get(row.id).n;
|
|
31
|
+
return {
|
|
32
|
+
id: row.id,
|
|
33
|
+
tx: row.tx,
|
|
34
|
+
at: new Date(Uuidv7.msOf(row.tx)).toISOString(),
|
|
35
|
+
subject: row.subject,
|
|
36
|
+
verb: row.verb,
|
|
37
|
+
negated: row.negated !== 0,
|
|
38
|
+
...row.object === null ? {} : { object: row.object },
|
|
39
|
+
...row.attribute === null ? {} : { attribute: row.attribute },
|
|
40
|
+
...row.value_text === null ? {} : { value: row.value_text },
|
|
41
|
+
...row.delta_text === null ? {} : { delta: row.delta_text },
|
|
42
|
+
conf: row.conf,
|
|
43
|
+
importance: row.importance !== 0,
|
|
44
|
+
...row.comment === null ? {} : { comment: row.comment },
|
|
45
|
+
contexts,
|
|
46
|
+
sources: SourceSpan.ofContexts(contexts),
|
|
47
|
+
tags,
|
|
48
|
+
key: row.claim_key,
|
|
49
|
+
line: row.raw_line,
|
|
50
|
+
cites,
|
|
51
|
+
citedBy
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
const views = (store, list, maximum) => list.map(row => toView(store, row, maximum));
|
|
55
|
+
/** Entity test mirroring §20.2's: not a verb token, not a stored literal. */
|
|
56
|
+
const isEntityName = (name) => !Verb.isVerbToken(name) && !name.startsWith('"') && !name.startsWith('`');
|
|
57
|
+
/** Topics — subjects of current positive `CONTAINS` claims, largest first. */
|
|
58
|
+
const topicsRaw = (store) => store.db.prepare(`
|
|
59
|
+
SELECT c.subject AS name, COUNT(*) AS members FROM (${currentSql}) c
|
|
60
|
+
WHERE c.verb = 'CONTAINS' AND c.negated = 0 AND c.conf > 0 AND c.object IS NOT NULL
|
|
61
|
+
GROUP BY c.subject ORDER BY members DESC, name
|
|
62
|
+
`).all()
|
|
63
|
+
.filter(topic => isEntityName(topic.name))
|
|
64
|
+
.map(({ name, members }) => ({ name, members }));
|
|
65
|
+
export const topics = (store, options = {}) => withScopedStore(store, maximumOf(options), topicsRaw);
|
|
66
|
+
const cap = (list, limit, map) => ({ total: list.length, items: list.slice(0, limit).map(map) });
|
|
67
|
+
/**
|
|
68
|
+
* The dashboard (spec §30.2): §20.2 coverage and frontier — violations,
|
|
69
|
+
* review candidates, stale beliefs, alias disagreements — plus topics
|
|
70
|
+
* and the latest appends. Long sections are capped (the report is the
|
|
71
|
+
* uncapped surface); `total` counts what the store has.
|
|
72
|
+
*/
|
|
73
|
+
export const overview = (store, options = {}) => withScopedStore(store, maximumOf(options), scoped => {
|
|
74
|
+
const limit = options.limit ?? 100;
|
|
75
|
+
const report = check(scoped, { staleDays: options.staleDays ?? defaultStaleDays });
|
|
76
|
+
const recent = rows(scoped, 'SELECT * FROM cave_claim ORDER BY tx DESC LIMIT ?', options.recent ?? 30);
|
|
77
|
+
return {
|
|
78
|
+
version: Version.current(),
|
|
79
|
+
coverage: report.coverage,
|
|
80
|
+
violations: cap(report.violations, limit, violation => ({
|
|
81
|
+
entity: violation.entity,
|
|
82
|
+
via: violation.via,
|
|
83
|
+
kind: violation.expectation.kind,
|
|
84
|
+
name: violation.expectation.name,
|
|
85
|
+
type: violation.expectation.type,
|
|
86
|
+
cardinality: violation.expectation.cardinality,
|
|
87
|
+
...violation.expectation.unit === undefined ? {} : { unit: violation.expectation.unit },
|
|
88
|
+
actualCount: violation.actualCount,
|
|
89
|
+
actualUnits: violation.actualUnits
|
|
90
|
+
})),
|
|
91
|
+
stale: cap(report.stale, limit, stale => ({ ageDays: stale.ageDays, row: toView(scoped, stale.row) })),
|
|
92
|
+
review: cap(report.review, limit, row => toView(scoped, row)),
|
|
93
|
+
disagreements: cap(report.disagreements, limit, disagreement => ({
|
|
94
|
+
kind: disagreement.kind,
|
|
95
|
+
about: disagreement.about,
|
|
96
|
+
entities: disagreement.entities,
|
|
97
|
+
rows: views(scoped, disagreement.rows)
|
|
98
|
+
})),
|
|
99
|
+
topics: topicsRaw(scoped),
|
|
100
|
+
recent: views(scoped, recent)
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
/**
|
|
104
|
+
* Entity 360 (spec §30.2): everything the store currently believes about
|
|
105
|
+
* one name — object-less facts, both relation directions, topics and the
|
|
106
|
+
* alias closure — plus the raw activity feed underneath. Negated current
|
|
107
|
+
* claims are shown (they are knowledge); retracted ones only appear in
|
|
108
|
+
* the activity feed and in each fact's own history.
|
|
109
|
+
*/
|
|
110
|
+
export const entity = (store, name, options = {}) => withScopedStore(store, maximumOf(options), scoped => {
|
|
111
|
+
const aliases = options.aliases === true ? scoped.aliasesOf(name) : [name];
|
|
112
|
+
const marks = aliases.map(() => '?').join(', ');
|
|
113
|
+
const facts = rows(scoped, `
|
|
114
|
+
SELECT c.* FROM (${currentSql}) c
|
|
115
|
+
WHERE c.subject IN (${marks}) AND c.object IS NULL AND c.conf > 0
|
|
116
|
+
ORDER BY c.verb, c.attribute, c.tx
|
|
117
|
+
`, ...aliases);
|
|
118
|
+
const traverse = { negated: true, ...options.aliases === true ? { aliases: true } : {} };
|
|
119
|
+
const about = scoped.claimsAbout(name, traverse);
|
|
120
|
+
const out = scoped.forward(name, traverse).map(fact => fact.row);
|
|
121
|
+
return {
|
|
122
|
+
name,
|
|
123
|
+
aliases,
|
|
124
|
+
types: [...new Set(out.filter(row => row.verb === 'IS' && row.negated === 0).map(row => row.object))],
|
|
125
|
+
facts: views(scoped, facts),
|
|
126
|
+
out: views(scoped, out),
|
|
127
|
+
in: scoped.reverse(name, traverse).map(fact => ({ ...toView(scoped, fact.row), ...fact.rel === undefined ? {} : { rel: fact.rel } })),
|
|
128
|
+
topics: scoped.topicsOf(name, traverse),
|
|
129
|
+
total: about.length,
|
|
130
|
+
activity: views(scoped, about.slice(0, options.activity ?? 30))
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
/** One topic's members — the forward `CONTAINS` read (spec §11.2). */
|
|
134
|
+
export const topic = (store, name, options = {}) => withScopedStore(store, maximumOf(options), scoped => ({ name, members: scoped.topicMembers(name, { aliases: options.aliases }) }));
|
|
135
|
+
/** The belief-history timeline of one claim key (spec §30.2). */
|
|
136
|
+
export const history = (store, key, options = {}) => withScopedStore(store, maximumOf(options), scoped => ({ key, rows: views(scoped, scoped.history(key)) }));
|
|
137
|
+
const maxLineageDepth = 16;
|
|
138
|
+
/**
|
|
139
|
+
* The lineage of one row (spec §30.2): the §13.2 edge table walked both
|
|
140
|
+
* ways. Down answers "why is this believed" — premise rows and the rule
|
|
141
|
+
* behind a §24 derivation, conditions behind a qualified claim; up
|
|
142
|
+
* answers "what depends on this". Edges form a graph; the tree re-states
|
|
143
|
+
* a repeated row without children (`repeat`), so §24.5 cycles terminate.
|
|
144
|
+
* Depth is capped: a node whose further edges the cap cut off is marked
|
|
145
|
+
* `truncated`, so an incomplete explanation never renders as complete.
|
|
146
|
+
*/
|
|
147
|
+
export const lineage = (store, id, options = {}) => withScopedStore(store, maximumOf(options), scoped => {
|
|
148
|
+
store = scoped;
|
|
149
|
+
const root = store.db.prepare('SELECT * FROM cave_claim WHERE id = ?').get(id);
|
|
150
|
+
if (root === undefined) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
const walk = (direction, rowId, seen, depth) => {
|
|
154
|
+
const edges = direction === 'down' ?
|
|
155
|
+
store.db.prepare('SELECT role, child_id AS next FROM cave_edge WHERE parent_id = ? ORDER BY rowid') :
|
|
156
|
+
store.db.prepare('SELECT role, parent_id AS next FROM cave_edge WHERE child_id = ? ORDER BY rowid');
|
|
157
|
+
return edges.all(rowId).flatMap(edge => {
|
|
158
|
+
const row = store.db.prepare('SELECT * FROM cave_claim WHERE id = ?').get(edge.next);
|
|
159
|
+
if (row === undefined) {
|
|
160
|
+
return [];
|
|
161
|
+
}
|
|
162
|
+
const repeat = seen.has(row.id);
|
|
163
|
+
seen.add(row.id);
|
|
164
|
+
const view = toView(store, row);
|
|
165
|
+
// The view's own edge counts say whether the walk would continue —
|
|
166
|
+
// the cut and its marker share one condition, so they cannot drift.
|
|
167
|
+
const deeper = (direction === 'down' ? view.cites : view.citedBy) > 0;
|
|
168
|
+
const truncated = !repeat && deeper && depth + 1 >= maxLineageDepth;
|
|
169
|
+
return [{
|
|
170
|
+
role: edge.role,
|
|
171
|
+
row: view,
|
|
172
|
+
...repeat ? { repeat: true } : {},
|
|
173
|
+
...truncated ? { truncated: true } : {},
|
|
174
|
+
children: repeat || truncated || !deeper ? [] : walk(direction, row.id, seen, depth + 1)
|
|
175
|
+
}];
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
return {
|
|
179
|
+
row: toView(store, root),
|
|
180
|
+
cites: walk('down', id, new Set([id]), 0),
|
|
181
|
+
citedBy: walk('up', id, new Set([id]), 0)
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
/** Full-text search (§13.5's FTS surface), newest first, capped in the query. */
|
|
185
|
+
export const search = (store, text, options = {}) => views(store, store.search(text, {
|
|
186
|
+
limit: options.limit ?? 100,
|
|
187
|
+
maxSensitivity: maximumOf(options)
|
|
188
|
+
}), maximumOf(options));
|
|
189
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@cavelang/cli/view` — the human read surface (spec §30, §31): `cave serve`
|
|
3
|
+
* puts one static, self-contained HTML page over a store, backed by
|
|
4
|
+
* read-only JSON endpoints — entity 360, topic browse, belief-history
|
|
5
|
+
* timelines, `BECAUSE`/`VIA` lineage trees and the §20 coverage/frontier
|
|
6
|
+
* dashboard, with full-text search over everything — and `cave report`
|
|
7
|
+
* renders templated markdown from CAVE-Q results, claim keys as
|
|
8
|
+
* citations (§31).
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { serve, report } from '@cavelang/cli/view'
|
|
12
|
+
*
|
|
13
|
+
* const handle = await serve(store, { label: 'k.db' })
|
|
14
|
+
* // browse http://127.0.0.1:2283/ — every request reads the live store
|
|
15
|
+
* await handle.close()
|
|
16
|
+
*
|
|
17
|
+
* report(store, template).markdown // the cited deliverable
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Everything here is a read: no endpoint writes, non-GET methods are
|
|
21
|
+
* refused, and the page's CSP denies every non-self source (§30.3).
|
|
22
|
+
* The view models in `api.ts` and the report renderer are plain
|
|
23
|
+
* functions over a store, usable without the server.
|
|
24
|
+
*/
|
|
25
|
+
export { entity, history, lineage, overview, search, topic, topics } from './api.ts';
|
|
26
|
+
export type { Capped, ClaimView, Entity, History, Lineage, LineageNode, Options, Overview, Topic, TopicPage } from './api.ts';
|
|
27
|
+
export { report } from './report.ts';
|
|
28
|
+
export type { Problem, Report, ReportOptions } from './report.ts';
|
|
29
|
+
export { page } from './page.ts';
|
|
30
|
+
export { defaultHost, defaultPort, serve } from './server.ts';
|
|
31
|
+
export type { Handle, ServeOptions } from './server.ts';
|
|
32
|
+
export { runServe } from './main.ts';
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC1D,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAC9F,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7D,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@cavelang/cli/view` — the human read surface (spec §30, §31): `cave serve`
|
|
3
|
+
* puts one static, self-contained HTML page over a store, backed by
|
|
4
|
+
* read-only JSON endpoints — entity 360, topic browse, belief-history
|
|
5
|
+
* timelines, `BECAUSE`/`VIA` lineage trees and the §20 coverage/frontier
|
|
6
|
+
* dashboard, with full-text search over everything — and `cave report`
|
|
7
|
+
* renders templated markdown from CAVE-Q results, claim keys as
|
|
8
|
+
* citations (§31).
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { serve, report } from '@cavelang/cli/view'
|
|
12
|
+
*
|
|
13
|
+
* const handle = await serve(store, { label: 'k.db' })
|
|
14
|
+
* // browse http://127.0.0.1:2283/ — every request reads the live store
|
|
15
|
+
* await handle.close()
|
|
16
|
+
*
|
|
17
|
+
* report(store, template).markdown // the cited deliverable
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Everything here is a read: no endpoint writes, non-GET methods are
|
|
21
|
+
* refused, and the page's CSP denies every non-self source (§30.3).
|
|
22
|
+
* The view models in `api.ts` and the report renderer are plain
|
|
23
|
+
* functions over a store, usable without the server.
|
|
24
|
+
*/
|
|
25
|
+
export { entity, history, lineage, overview, search, topic, topics } from "./api.js";
|
|
26
|
+
export { report } from "./report.js";
|
|
27
|
+
export { page } from "./page.js";
|
|
28
|
+
export { defaultHost, defaultPort, serve } from "./server.js";
|
|
29
|
+
export { runServe } from "./main.js";
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC1D,MAAM,UAAU,CAAA;AAIjB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cave serve` entry (spec §30.3) — argument parsing, then the server
|
|
3
|
+
* until the shared CLI abort signal requests an awaited shutdown.
|
|
4
|
+
*/
|
|
5
|
+
export type RunContext = {
|
|
6
|
+
readonly stdout?: NodeJS.WritableStream;
|
|
7
|
+
readonly stderr?: NodeJS.WritableStream;
|
|
8
|
+
readonly signal?: AbortSignal;
|
|
9
|
+
};
|
|
10
|
+
export declare const runServe: (argv: readonly string[], context?: RunContext) => Promise<number>;
|
|
11
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;AAKD,eAAO,MAAM,QAAQ,GAAU,MAAM,SAAS,MAAM,EAAE,EAAE,UAAS,UAAe,KAAG,OAAO,CAAC,MAAM,CAsDhG,CAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cave serve` entry (spec §30.3) — argument parsing, then the server
|
|
3
|
+
* until the shared CLI abort signal requests an awaited shutdown.
|
|
4
|
+
*/
|
|
5
|
+
import { parseArgs } from 'node:util';
|
|
6
|
+
import { Registry } from '@cavelang/canonical';
|
|
7
|
+
import { Sensitivity, defaultDbPath, open } from '@cavelang/store';
|
|
8
|
+
import { defaultHost, defaultPort, serve } from "./server.js";
|
|
9
|
+
const usage = `cave serve — browse a CAVE store in the browser (spec §30)
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
cave serve [--db <path>] [--port <n>] [--host <address>]
|
|
13
|
+
[--max-sensitivity <level>]
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
--db <path> database file (default: $CAVE_DB, or cave.db)
|
|
17
|
+
--port <n> port to bind (default ${defaultPort} — "cave" on a phone
|
|
18
|
+
keypad; 0 picks a free port)
|
|
19
|
+
--host <a> interface to bind (default ${defaultHost} — localhost
|
|
20
|
+
only)
|
|
21
|
+
--max-sensitivity <level>
|
|
22
|
+
public, internal, confidential, or restricted (default
|
|
23
|
+
internal; malformed/unknown claim labels fail closed)
|
|
24
|
+
--no-prelude open the store without the standard verb registry
|
|
25
|
+
|
|
26
|
+
One static, self-contained page over the store — no build step, no
|
|
27
|
+
external resources, works offline: entity 360 pages, topic browse, the
|
|
28
|
+
belief-history timeline of any claim key, BECAUSE/VIA lineage trees,
|
|
29
|
+
and the spec §20 coverage/frontier dashboard, with full-text search
|
|
30
|
+
within the selected sensitivity ceiling. Every request reads the live store, so a running
|
|
31
|
+
loop's appends show on the next refresh.
|
|
32
|
+
|
|
33
|
+
The surface is strictly read-only: only GET is answered and no
|
|
34
|
+
endpoint writes — recording knowledge stays with cave add, the MCP
|
|
35
|
+
tools and the kinetic layer (spec §24, §25, §29).
|
|
36
|
+
|
|
37
|
+
Examples:
|
|
38
|
+
cave serve --db k.db
|
|
39
|
+
cave serve --db k.db --port 8080
|
|
40
|
+
CAVE_DB=k.db cave serve`;
|
|
41
|
+
const waitForAbort = (signal) => signal?.aborted === true ? Promise.resolve() : new Promise(resolve => signal?.addEventListener('abort', () => resolve(), { once: true }));
|
|
42
|
+
export const runServe = async (argv, context = {}) => {
|
|
43
|
+
const stdout = context.stdout ?? process.stdout;
|
|
44
|
+
const stderr = context.stderr ?? process.stderr;
|
|
45
|
+
const { values, positionals } = parseArgs({
|
|
46
|
+
args: [...argv],
|
|
47
|
+
options: {
|
|
48
|
+
db: { type: 'string' },
|
|
49
|
+
port: { type: 'string' },
|
|
50
|
+
host: { type: 'string' },
|
|
51
|
+
'max-sensitivity': { type: 'string' },
|
|
52
|
+
'no-prelude': { type: 'boolean' },
|
|
53
|
+
help: { type: 'boolean', short: 'h' }
|
|
54
|
+
},
|
|
55
|
+
allowPositionals: true
|
|
56
|
+
});
|
|
57
|
+
if (values.help === true) {
|
|
58
|
+
stdout.write(`${usage}\n`);
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
if (positionals.length > 0) {
|
|
62
|
+
stderr.write(`cave serve: unexpected argument ${JSON.stringify(positionals[0])}\n`);
|
|
63
|
+
return 1;
|
|
64
|
+
}
|
|
65
|
+
const port = values.port === undefined ? defaultPort : Number(values.port);
|
|
66
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
67
|
+
stderr.write(`cave serve: --port expects 0..65535, got '${values.port}'\n`);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
const maximum = Sensitivity.parse(values['max-sensitivity'] ?? Sensitivity.defaultMaximum);
|
|
71
|
+
if (maximum === undefined) {
|
|
72
|
+
stderr.write(`cave serve: --max-sensitivity expects ${Sensitivity.levels.join(', ')}, got ${JSON.stringify(values['max-sensitivity'])}\n`);
|
|
73
|
+
return 1;
|
|
74
|
+
}
|
|
75
|
+
const dbPath = values.db ?? defaultDbPath();
|
|
76
|
+
const store = open(dbPath, values['no-prelude'] === true ? { registry: Registry.empty } : {});
|
|
77
|
+
let handle;
|
|
78
|
+
try {
|
|
79
|
+
handle = await serve(store, {
|
|
80
|
+
port,
|
|
81
|
+
label: dbPath,
|
|
82
|
+
maxSensitivity: maximum,
|
|
83
|
+
...values.host === undefined ? {} : { host: values.host }
|
|
84
|
+
});
|
|
85
|
+
stdout.write(`serving ${dbPath} at ${handle.url} (sensitivity <= ${maximum}, read-only, ctrl-c to stop)\n`);
|
|
86
|
+
await waitForAbort(context.signal);
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
if (handle?.server.listening === true) {
|
|
91
|
+
const closing = handle.close();
|
|
92
|
+
handle.server.closeAllConnections();
|
|
93
|
+
await closing;
|
|
94
|
+
}
|
|
95
|
+
store.close();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page (spec §30.1) — one static, self-contained HTML document: no
|
|
3
|
+
* external scripts, styles, fonts or images, so it renders offline and
|
|
4
|
+
* the server's CSP can deny every non-self source. Views are hash
|
|
5
|
+
* routes over the read-only `/api/*` endpoints; claims render from
|
|
6
|
+
* *structured* row data (never by re-parsing text — no second grammar),
|
|
7
|
+
* and every entity name, claim key and row id links onward: entity 360,
|
|
8
|
+
* topic browse, belief-history timeline, lineage, search.
|
|
9
|
+
*
|
|
10
|
+
* `__CAVE_DB__`, `__CAVE_VERSION__`, and `__CAVE_SENSITIVITY__` are stamped by the server
|
|
11
|
+
* (HTML-escaped) when the page is requested.
|
|
12
|
+
*/
|
|
13
|
+
export declare const page: string;
|
|
14
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,IAAI,EAAE,MAoWlB,CAAA"}
|