@reposkein/mcp 0.2.7 → 0.4.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 +73 -1
- package/binary-digests.json +4 -4
- package/dist/SKILL.md +63 -1
- package/dist/cli/adr.d.ts +37 -0
- package/dist/cli/adr.js +231 -0
- package/dist/cli/adr.js.map +1 -0
- package/dist/cli/agentAdapters.d.ts +68 -0
- package/dist/cli/agentAdapters.js +223 -0
- package/dist/cli/agentAdapters.js.map +1 -0
- package/dist/cli/ansi.d.ts +24 -0
- package/dist/cli/ansi.js +40 -0
- package/dist/cli/ansi.js.map +1 -0
- package/dist/cli/doctor.d.ts +34 -2
- package/dist/cli/doctor.js +53 -5
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/doctorDecisions.d.ts +5 -0
- package/dist/cli/doctorDecisions.js +83 -0
- package/dist/cli/doctorDecisions.js.map +1 -0
- package/dist/cli/doctorFreshness.d.ts +43 -0
- package/dist/cli/doctorFreshness.js +111 -0
- package/dist/cli/doctorFreshness.js.map +1 -0
- package/dist/cli/doctorSummaries.d.ts +2 -0
- package/dist/cli/doctorSummaries.js +95 -0
- package/dist/cli/doctorSummaries.js.map +1 -0
- package/dist/cli/federatedDiscovery.d.ts +16 -0
- package/dist/cli/federatedDiscovery.js +75 -0
- package/dist/cli/federatedDiscovery.js.map +1 -0
- package/dist/cli/init.d.ts +69 -6
- package/dist/cli/init.js +194 -28
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/sourceSlices.d.ts +17 -0
- package/dist/cli/sourceSlices.js +59 -0
- package/dist/cli/sourceSlices.js.map +1 -0
- package/dist/cli/stats.d.ts +29 -0
- package/dist/cli/stats.js +180 -0
- package/dist/cli/stats.js.map +1 -0
- package/dist/cli/view.d.ts +71 -3
- package/dist/cli/view.js +147 -12
- package/dist/cli/view.js.map +1 -1
- package/dist/guard/decisionValidation.d.ts +29 -0
- package/dist/guard/decisionValidation.js +51 -0
- package/dist/guard/decisionValidation.js.map +1 -0
- package/dist/guard/summaryValidation.d.ts +3 -0
- package/dist/guard/summaryValidation.js +5 -3
- package/dist/guard/summaryValidation.js.map +1 -1
- package/dist/index.d.ts +48 -0
- package/dist/index.js +355 -78
- package/dist/index.js.map +1 -1
- package/dist/indexer/decisionsAffected.d.ts +42 -0
- package/dist/indexer/decisionsAffected.js +149 -0
- package/dist/indexer/decisionsAffected.js.map +1 -0
- package/dist/indexer/fetchBinary.d.ts +14 -0
- package/dist/indexer/fetchBinary.js +81 -40
- package/dist/indexer/fetchBinary.js.map +1 -1
- package/dist/indexer/runIndexer.d.ts +3 -2
- package/dist/indexer/runIndexer.js +8 -4
- package/dist/indexer/runIndexer.js.map +1 -1
- package/dist/profile/decisions.d.ts +37 -0
- package/dist/profile/decisions.js +112 -0
- package/dist/profile/decisions.js.map +1 -0
- package/dist/profile/types.d.ts +8 -0
- package/dist/store/GraphStore.d.ts +5 -0
- package/dist/store/JsonlGraphStore.d.ts +14 -3
- package/dist/store/JsonlGraphStore.js +66 -19
- package/dist/store/JsonlGraphStore.js.map +1 -1
- package/dist/store/decisions.d.ts +131 -0
- package/dist/store/decisions.js +321 -0
- package/dist/store/decisions.js.map +1 -0
- package/dist/store/indexedAt.d.ts +18 -0
- package/dist/store/indexedAt.js +56 -0
- package/dist/store/indexedAt.js.map +1 -0
- package/dist/store/instrumentTool.d.ts +40 -0
- package/dist/store/instrumentTool.js +82 -0
- package/dist/store/instrumentTool.js.map +1 -0
- package/dist/store/repoContextCache.d.ts +15 -0
- package/dist/store/repoContextCache.js +26 -0
- package/dist/store/repoContextCache.js.map +1 -0
- package/dist/store/repoSession.d.ts +63 -0
- package/dist/store/repoSession.js +123 -0
- package/dist/store/repoSession.js.map +1 -0
- package/dist/store/resolveRepoPath.d.ts +31 -0
- package/dist/store/resolveRepoPath.js +85 -0
- package/dist/store/resolveRepoPath.js.map +1 -0
- package/dist/store/sessionLog.d.ts +98 -0
- package/dist/store/sessionLog.js +216 -0
- package/dist/store/sessionLog.js.map +1 -0
- package/dist/store/sessionStats.d.ts +55 -0
- package/dist/store/sessionStats.js +140 -0
- package/dist/store/sessionStats.js.map +1 -0
- package/dist/store/sidecar.d.ts +39 -3
- package/dist/store/sidecar.js +89 -5
- package/dist/store/sidecar.js.map +1 -1
- package/dist/store/summaryShards.d.ts +117 -0
- package/dist/store/summaryShards.js +291 -0
- package/dist/store/summaryShards.js.map +1 -0
- package/dist/store/teamConfig.d.ts +13 -0
- package/dist/store/teamConfig.js +49 -0
- package/dist/store/teamConfig.js.map +1 -0
- package/dist/tools/getContextProfile.d.ts +1 -1
- package/dist/tools/getContextProfile.js +9 -1
- package/dist/tools/getContextProfile.js.map +1 -1
- package/dist/tools/getDecision.d.ts +6 -0
- package/dist/tools/getDecision.js +59 -0
- package/dist/tools/getDecision.js.map +1 -0
- package/dist/tools/impact.d.ts +1 -1
- package/dist/tools/impact.js +13 -1
- package/dist/tools/impact.js.map +1 -1
- package/dist/tools/indexerTools.d.ts +16 -2
- package/dist/tools/indexerTools.js +44 -5
- package/dist/tools/indexerTools.js.map +1 -1
- package/dist/tools/listDecisions.d.ts +19 -0
- package/dist/tools/listDecisions.js +93 -0
- package/dist/tools/listDecisions.js.map +1 -0
- package/dist/tools/reaffirmDecision.d.ts +11 -0
- package/dist/tools/reaffirmDecision.js +55 -0
- package/dist/tools/reaffirmDecision.js.map +1 -0
- package/dist/tools/recordDecision.d.ts +24 -0
- package/dist/tools/recordDecision.js +135 -0
- package/dist/tools/recordDecision.js.map +1 -0
- package/dist/tools/semanticFind.d.ts +9 -2
- package/dist/tools/semanticFind.js +44 -2
- package/dist/tools/semanticFind.js.map +1 -1
- package/dist/tools/setDecisionStatus.d.ts +8 -0
- package/dist/tools/setDecisionStatus.js +34 -0
- package/dist/tools/setDecisionStatus.js.map +1 -0
- package/dist/viz/assets/{graph.worker-CC7BeE-8.js → graph.worker-DkH6-lMU.js} +1 -1
- package/dist/viz/assets/index-CxqeGuRS.css +1 -0
- package/dist/viz/assets/index-DiNZyrXx.js +9 -0
- package/dist/viz/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/viz/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/viz/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
- package/dist/viz/assets/r3f-BZY3QR6_.js +336 -0
- package/dist/viz/assets/tanstack-CjXr-L-s.js +62 -0
- package/dist/viz/assets/three-Cpu5RUEM.js +4116 -0
- package/dist/viz/index.html +5 -4
- package/package.json +5 -4
- package/dist/viz/assets/index-C_8UkiJ8.js +0 -9
- package/dist/viz/assets/r3f-Cku1OhB-.js +0 -277
- package/dist/viz/assets/tanstack-DyXcNRWk.js +0 -77
- package/dist/viz/assets/three-Z8XaLGmf.js +0 -3839
package/dist/cli/view.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type IncomingMessage, type ServerResponse } from "node:http";
|
|
2
|
+
import { type SourceSliceEntry } from "./sourceSlices.js";
|
|
2
3
|
/** The prebuilt viz/ SPA bundle, copied into the mcp package at build time
|
|
3
4
|
* (scripts/bundle-viz.mjs copies viz/dist -> mcp/dist/viz). */
|
|
4
5
|
export declare function vizDistDir(): string;
|
|
@@ -7,6 +8,25 @@ export interface ViewOptions {
|
|
|
7
8
|
host: string;
|
|
8
9
|
open: boolean;
|
|
9
10
|
}
|
|
11
|
+
export interface RepoBakeMeta {
|
|
12
|
+
commitSha: string | null;
|
|
13
|
+
builtAt: string | null;
|
|
14
|
+
repoUrl: string | null;
|
|
15
|
+
/** `[team] pages_url` from `.reposkein/config.toml`, or null when unset.
|
|
16
|
+
* The team's canonical/CI-published constellation link (e.g. a GitHub
|
|
17
|
+
* Pages URL) — distinct from whatever local `view`/export a machine
|
|
18
|
+
* happens to be looking at. Drives the viewer header's "team constellation"
|
|
19
|
+
* link (viz/src/routes/Root.tsx). */
|
|
20
|
+
pagesUrl: string | null;
|
|
21
|
+
}
|
|
22
|
+
/** Best-effort git introspection for the live `view` server: the current HEAD
|
|
23
|
+
* sha + a guessed web URL for `origin` (github.com only; other hosts degrade
|
|
24
|
+
* to null rather than guessing wrong), plus `[team] pages_url` from
|
|
25
|
+
* config.toml. Never throws — any failure (not a repo, no origin, git
|
|
26
|
+
* missing, no config.toml) yields nulls so the affected UI just doesn't
|
|
27
|
+
* render. Computed ONCE at server start (not per-request) since it shells
|
|
28
|
+
* out to git. */
|
|
29
|
+
export declare function resolveServerRepoMeta(repoPath: string): RepoBakeMeta;
|
|
10
30
|
/** Builds the request handler. Exposed for tests (no listening socket). */
|
|
11
31
|
export declare function makeViewHandler(repoPath: string, repoId: string): (req: IncomingMessage, res: ServerResponse) => void;
|
|
12
32
|
/** `reposkein-mcp view [repoPath] [--port N] [--host H] [--no-open]`.
|
|
@@ -15,11 +35,54 @@ export declare function makeViewHandler(repoPath: string, repoId: string): (req:
|
|
|
15
35
|
export declare function runView(repoPath: string, repoId: string, opts: ViewOptions): Promise<number>;
|
|
16
36
|
/** Parses `view` CLI args (after the `view` subcommand). When `--export <dir>`
|
|
17
37
|
* is present, returns `exportDir` set (and the server opts are ignored). */
|
|
38
|
+
/** Metadata baked into a static export, driving the viewer's staleness badge.
|
|
39
|
+
* `builtAt` defaults to bake-time (now) when not given explicitly — it is the
|
|
40
|
+
* one time-derived field: the same repo + commitSha + builtAt always bakes
|
|
41
|
+
* byte-identical output, but builtAt itself is naturally different per run
|
|
42
|
+
* unless the caller pins it (e.g. for a reproducibility test). */
|
|
43
|
+
export interface ExportBakeOptions {
|
|
44
|
+
commitSha?: string | null;
|
|
45
|
+
repoUrl?: string | null;
|
|
46
|
+
builtAt?: string | null;
|
|
47
|
+
/** `[team] pages_url`; defaults to reading `.reposkein/config.toml` at
|
|
48
|
+
* export time when omitted (same source resolveServerRepoMeta uses in
|
|
49
|
+
* server mode) — pass explicitly only to override or pin it. */
|
|
50
|
+
pagesUrl?: string | null;
|
|
51
|
+
/** Bake size-capped per-node source slices (design: optional, flag-gated). */
|
|
52
|
+
withSource?: boolean;
|
|
53
|
+
/** Byte cap for baked source slices; only consulted when withSource is true. */
|
|
54
|
+
sourceMaxBytes?: number;
|
|
55
|
+
/** How many directory levels to scan for nested `.reposkein/` repos. */
|
|
56
|
+
federatedDepth?: number;
|
|
57
|
+
}
|
|
18
58
|
export declare function parseViewArgs(argv: string[]): {
|
|
19
59
|
repoPath: string;
|
|
20
60
|
opts: ViewOptions;
|
|
21
61
|
exportDir: string | null;
|
|
62
|
+
exportOpts: ExportBakeOptions;
|
|
22
63
|
};
|
|
64
|
+
/** A federated repo's data inlined into a static export (self-contained: no
|
|
65
|
+
* fetch of nodesUrl/edgesUrl at runtime — the viewer reads federatedText). */
|
|
66
|
+
export interface FederatedBakeEntry {
|
|
67
|
+
repoId: string;
|
|
68
|
+
rootPath: string;
|
|
69
|
+
nodesText: string;
|
|
70
|
+
edgesText: string;
|
|
71
|
+
}
|
|
72
|
+
/** Extra data baked into `graph-data.js` alongside the root repo's JSONL. */
|
|
73
|
+
export interface GraphDataExtra {
|
|
74
|
+
meta?: RepoBakeMeta;
|
|
75
|
+
/** Git-derived file co-change map (same shape /api/temporal returns), or
|
|
76
|
+
* omitted/{} when temporal data is unavailable. */
|
|
77
|
+
cochange?: Record<string, {
|
|
78
|
+
path: string;
|
|
79
|
+
support: number;
|
|
80
|
+
confidence: number;
|
|
81
|
+
}[]>;
|
|
82
|
+
federated?: FederatedBakeEntry[];
|
|
83
|
+
/** node id -> source slice, size-capped (design: optional, flag-gated). */
|
|
84
|
+
sourceSlices?: Record<string, SourceSliceEntry>;
|
|
85
|
+
}
|
|
23
86
|
/** Builds the contents of `graph-data.js` for a static export: a single
|
|
24
87
|
* assignment of `window.__REPOSKEIN_GRAPH__` with the manifest + the inlined
|
|
25
88
|
* JSONL text. The viewer's static-mode path parses this on the main thread.
|
|
@@ -27,7 +90,7 @@ export declare function parseViewArgs(argv: string[]): {
|
|
|
27
90
|
* Pure (string in → string out) so the baked shape is unit-testable. The
|
|
28
91
|
* payload is a JSON.stringify'd object assigned in an external .js file (NOT
|
|
29
92
|
* inline HTML), so `</script>` sequences in the JSONL need no escaping. */
|
|
30
|
-
export declare function buildGraphDataJs(repoId: string, nodesText: string, edgesText: string): string;
|
|
93
|
+
export declare function buildGraphDataJs(repoId: string, nodesText: string, edgesText: string, extra?: GraphDataExtra): string;
|
|
31
94
|
/** Injects `<script src="./graph-data.js"></script>` into `html` BEFORE the
|
|
32
95
|
* first app bundle `<script ... src=...>` (or before </head> / </body> as a
|
|
33
96
|
* fallback) so the global is set prior to the app booting. Pure. Idempotent:
|
|
@@ -36,5 +99,10 @@ export declare function injectGraphDataScript(html: string): string;
|
|
|
36
99
|
/** `reposkein-mcp view --export <outDir> [repoPath]`.
|
|
37
100
|
* Writes a SELF-CONTAINED static site to `<outDir>`: the viz bundle plus the
|
|
38
101
|
* repo's graph baked into `graph-data.js`, so it loads with NO server (works
|
|
39
|
-
* from file:// and from any static-host subpath). Returns the exit code.
|
|
40
|
-
|
|
102
|
+
* from file:// and from any static-host subpath). Returns the exit code.
|
|
103
|
+
*
|
|
104
|
+
* Determinism: given the same repo state + the same {commitSha, repoUrl,
|
|
105
|
+
* builtAt} inputs, the export is byte-identical. `builtAt` is the one
|
|
106
|
+
* time-derived field (defaults to bake-time `new Date().toISOString()` when
|
|
107
|
+
* not passed) — pin it explicitly for a reproducible export. */
|
|
108
|
+
export declare function runExport(repoPath: string, repoId: string, outDir: string, bake?: ExportBakeOptions): Promise<number>;
|
package/dist/cli/view.js
CHANGED
|
@@ -2,9 +2,12 @@ import { createServer } from "node:http";
|
|
|
2
2
|
import { readFileSync, existsSync, statSync, createReadStream, mkdirSync, cpSync, writeFileSync, realpathSync, } from "node:fs";
|
|
3
3
|
import { join, resolve, normalize, extname } from "node:path";
|
|
4
4
|
import { gzipSync } from "node:zlib";
|
|
5
|
-
import { spawn } from "node:child_process";
|
|
5
|
+
import { spawn, execFileSync } from "node:child_process";
|
|
6
6
|
import { packageRoot } from "../indexer/fetchBinary.js";
|
|
7
|
+
import { readTeamPagesUrl } from "../store/teamConfig.js";
|
|
7
8
|
import { getTemporal } from "../temporal/temporal.js";
|
|
9
|
+
import { discoverFederatedRepos } from "./federatedDiscovery.js";
|
|
10
|
+
import { collectSourceSlices } from "./sourceSlices.js";
|
|
8
11
|
/** The prebuilt viz/ SPA bundle, copied into the mcp package at build time
|
|
9
12
|
* (scripts/bundle-viz.mjs copies viz/dist -> mcp/dist/viz). */
|
|
10
13
|
export function vizDistDir() {
|
|
@@ -65,7 +68,40 @@ function safeJoin(root, urlPath) {
|
|
|
65
68
|
return abs;
|
|
66
69
|
return null;
|
|
67
70
|
}
|
|
68
|
-
|
|
71
|
+
/** Best-effort git introspection for the live `view` server: the current HEAD
|
|
72
|
+
* sha + a guessed web URL for `origin` (github.com only; other hosts degrade
|
|
73
|
+
* to null rather than guessing wrong), plus `[team] pages_url` from
|
|
74
|
+
* config.toml. Never throws — any failure (not a repo, no origin, git
|
|
75
|
+
* missing, no config.toml) yields nulls so the affected UI just doesn't
|
|
76
|
+
* render. Computed ONCE at server start (not per-request) since it shells
|
|
77
|
+
* out to git. */
|
|
78
|
+
export function resolveServerRepoMeta(repoPath) {
|
|
79
|
+
const git = (args) => {
|
|
80
|
+
try {
|
|
81
|
+
return execFileSync("git", args, { cwd: repoPath, encoding: "utf8" }).trim() || null;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const commitSha = git(["rev-parse", "HEAD"]);
|
|
88
|
+
const remote = git(["remote", "get-url", "origin"]);
|
|
89
|
+
const repoUrl = remote ? githubHttpsUrl(remote) : null;
|
|
90
|
+
const pagesUrl = readTeamPagesUrl(repoPath);
|
|
91
|
+
return { commitSha, builtAt: new Date().toISOString(), repoUrl, pagesUrl };
|
|
92
|
+
}
|
|
93
|
+
/** Normalizes a git remote URL (https or ssh form) to an https://github.com/...
|
|
94
|
+
* web URL. Returns null for non-github.com remotes (no safe guess). */
|
|
95
|
+
function githubHttpsUrl(remote) {
|
|
96
|
+
const httpsMatch = remote.match(/^https:\/\/github\.com\/([^/]+)\/(.+?)(?:\.git)?\/?$/);
|
|
97
|
+
if (httpsMatch)
|
|
98
|
+
return `https://github.com/${httpsMatch[1]}/${httpsMatch[2]}`;
|
|
99
|
+
const sshMatch = remote.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?\/?$/);
|
|
100
|
+
if (sshMatch)
|
|
101
|
+
return `https://github.com/${sshMatch[1]}/${sshMatch[2]}`;
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
function buildManifest(repoId, repoRoot, meta) {
|
|
69
105
|
return JSON.stringify({
|
|
70
106
|
root: {
|
|
71
107
|
repoId,
|
|
@@ -82,6 +118,7 @@ function buildManifest(repoId, repoRoot) {
|
|
|
82
118
|
},
|
|
83
119
|
federated: [], // M1: single repo. Federation deferred to M3.
|
|
84
120
|
counts: { nodes: 0, edges: 0 }, // counts are advisory; the client re-derives.
|
|
121
|
+
meta,
|
|
85
122
|
});
|
|
86
123
|
}
|
|
87
124
|
/** Max lines a single /api/source request may return (cap, design §P3). */
|
|
@@ -119,13 +156,16 @@ export function makeViewHandler(repoPath, repoId) {
|
|
|
119
156
|
const edgesPath = join(reposkeinDir, "edges.jsonl");
|
|
120
157
|
const distDir = vizDistDir();
|
|
121
158
|
const repoRoot = resolve(repoPath);
|
|
159
|
+
// Computed once (shells out to git) — cheap and stable for the server's
|
|
160
|
+
// lifetime; recomputing per-request would add a git spawn to every load.
|
|
161
|
+
const repoMeta = resolveServerRepoMeta(repoPath);
|
|
122
162
|
return function handler(req, res) {
|
|
123
163
|
const rawUrl = req.url ?? "/";
|
|
124
164
|
const qIdx = rawUrl.indexOf("?");
|
|
125
165
|
const url = (qIdx === -1 ? rawUrl : rawUrl.slice(0, qIdx)) || "/";
|
|
126
166
|
// --- API routes ---
|
|
127
167
|
if (url === "/api/graph") {
|
|
128
|
-
sendGzip(res, buildManifest(repoId, repoRoot), "application/json; charset=utf-8");
|
|
168
|
+
sendGzip(res, buildManifest(repoId, repoRoot, repoMeta), "application/json; charset=utf-8");
|
|
129
169
|
return;
|
|
130
170
|
}
|
|
131
171
|
// Read-only source slice (design §P3). Path-guarded by safeJoin (rejects
|
|
@@ -245,13 +285,17 @@ export async function runView(repoPath, repoId, opts) {
|
|
|
245
285
|
process.on("SIGTERM", shutdown);
|
|
246
286
|
});
|
|
247
287
|
}
|
|
248
|
-
/** Parses `view` CLI args (after the `view` subcommand). When `--export <dir>`
|
|
249
|
-
* is present, returns `exportDir` set (and the server opts are ignored). */
|
|
250
288
|
export function parseViewArgs(argv) {
|
|
251
289
|
let port = 4317;
|
|
252
290
|
let host = "127.0.0.1";
|
|
253
291
|
let open = true;
|
|
254
292
|
let exportDir = null;
|
|
293
|
+
let commitSha = null;
|
|
294
|
+
let repoUrl = null;
|
|
295
|
+
let builtAt = null;
|
|
296
|
+
let pagesUrl;
|
|
297
|
+
let withSource = false;
|
|
298
|
+
let sourceMaxBytes;
|
|
255
299
|
const positional = [];
|
|
256
300
|
for (let i = 0; i < argv.length; i++) {
|
|
257
301
|
const a = argv[i];
|
|
@@ -269,11 +313,48 @@ export function parseViewArgs(argv) {
|
|
|
269
313
|
exportDir = argv[++i] ?? null;
|
|
270
314
|
else if (a.startsWith("--export="))
|
|
271
315
|
exportDir = a.slice(9);
|
|
316
|
+
else if (a === "--commit-sha")
|
|
317
|
+
commitSha = argv[++i] ?? null;
|
|
318
|
+
else if (a.startsWith("--commit-sha="))
|
|
319
|
+
commitSha = a.slice(13);
|
|
320
|
+
else if (a === "--repo-url")
|
|
321
|
+
repoUrl = argv[++i] ?? null;
|
|
322
|
+
else if (a.startsWith("--repo-url="))
|
|
323
|
+
repoUrl = a.slice(11);
|
|
324
|
+
else if (a === "--built-at")
|
|
325
|
+
builtAt = argv[++i] ?? null;
|
|
326
|
+
else if (a.startsWith("--built-at="))
|
|
327
|
+
builtAt = a.slice(11);
|
|
328
|
+
else if (a === "--pages-url")
|
|
329
|
+
pagesUrl = argv[++i];
|
|
330
|
+
else if (a.startsWith("--pages-url="))
|
|
331
|
+
pagesUrl = a.slice(12);
|
|
332
|
+
else if (a === "--with-source") {
|
|
333
|
+
withSource = true;
|
|
334
|
+
// Optional numeric byte-cap as the next bare token (e.g. `--with-source 500000`).
|
|
335
|
+
const next = argv[i + 1];
|
|
336
|
+
if (next && /^\d+$/.test(next))
|
|
337
|
+
sourceMaxBytes = parseInt(argv[++i], 10);
|
|
338
|
+
}
|
|
339
|
+
else if (a.startsWith("--with-source=")) {
|
|
340
|
+
withSource = true;
|
|
341
|
+
const v = a.slice(14);
|
|
342
|
+
if (/^\d+$/.test(v))
|
|
343
|
+
sourceMaxBytes = parseInt(v, 10);
|
|
344
|
+
}
|
|
272
345
|
else if (!a.startsWith("-"))
|
|
273
346
|
positional.push(a);
|
|
274
347
|
}
|
|
275
348
|
const repoPath = positional[0] ?? process.env.REPOSKEIN_REPO_PATH ?? ".";
|
|
276
|
-
|
|
349
|
+
const exportOpts = {
|
|
350
|
+
commitSha: commitSha ?? process.env.REPOSKEIN_COMMIT_SHA ?? null,
|
|
351
|
+
repoUrl: repoUrl ?? process.env.REPOSKEIN_REPO_URL ?? null,
|
|
352
|
+
builtAt,
|
|
353
|
+
pagesUrl: pagesUrl ?? process.env.REPOSKEIN_PAGES_URL, // undefined -> runExport reads config.toml itself
|
|
354
|
+
withSource,
|
|
355
|
+
sourceMaxBytes,
|
|
356
|
+
};
|
|
357
|
+
return { repoPath, opts: { port, host, open }, exportDir, exportOpts };
|
|
277
358
|
}
|
|
278
359
|
/** Builds the contents of `graph-data.js` for a static export: a single
|
|
279
360
|
* assignment of `window.__REPOSKEIN_GRAPH__` with the manifest + the inlined
|
|
@@ -282,7 +363,8 @@ export function parseViewArgs(argv) {
|
|
|
282
363
|
* Pure (string in → string out) so the baked shape is unit-testable. The
|
|
283
364
|
* payload is a JSON.stringify'd object assigned in an external .js file (NOT
|
|
284
365
|
* inline HTML), so `</script>` sequences in the JSONL need no escaping. */
|
|
285
|
-
export function buildGraphDataJs(repoId, nodesText, edgesText) {
|
|
366
|
+
export function buildGraphDataJs(repoId, nodesText, edgesText, extra = {}) {
|
|
367
|
+
const federated = extra.federated ?? [];
|
|
286
368
|
// Static export bakes a single repo (no federation) and intentionally OMITS
|
|
287
369
|
// repoRoot — the export is shared/hosted, so a local absolute path is both
|
|
288
370
|
// meaningless and a leak; server-only features degrade in the viewer.
|
|
@@ -295,11 +377,26 @@ export function buildGraphDataJs(repoId, nodesText, edgesText) {
|
|
|
295
377
|
nodesUrl: "/api/jsonl/nodes.jsonl",
|
|
296
378
|
edgesUrl: "/api/jsonl/edges.jsonl",
|
|
297
379
|
},
|
|
298
|
-
federated
|
|
380
|
+
// federated[] entries carry no fetchable URLs in a static export — the
|
|
381
|
+
// actual text is inlined below (federatedText), read entirely offline.
|
|
382
|
+
federated: federated.map((f) => ({
|
|
383
|
+
repoId: f.repoId,
|
|
384
|
+
rootPath: f.rootPath,
|
|
385
|
+
nodesUrl: "",
|
|
386
|
+
edgesUrl: "",
|
|
387
|
+
})),
|
|
299
388
|
counts: { nodes: 0, edges: 0 },
|
|
300
389
|
},
|
|
301
390
|
nodesText,
|
|
302
391
|
edgesText,
|
|
392
|
+
federatedText: federated.map((f) => ({
|
|
393
|
+
repoId: f.repoId,
|
|
394
|
+
nodesText: f.nodesText,
|
|
395
|
+
edgesText: f.edgesText,
|
|
396
|
+
})),
|
|
397
|
+
meta: extra.meta ?? { commitSha: null, builtAt: null, repoUrl: null, pagesUrl: null },
|
|
398
|
+
cochange: extra.cochange ?? {},
|
|
399
|
+
...(extra.sourceSlices ? { sourceSlices: extra.sourceSlices } : {}),
|
|
303
400
|
};
|
|
304
401
|
return `window.__REPOSKEIN_GRAPH__ = ${JSON.stringify(payload)};\n`;
|
|
305
402
|
}
|
|
@@ -325,8 +422,13 @@ export function injectGraphDataScript(html) {
|
|
|
325
422
|
/** `reposkein-mcp view --export <outDir> [repoPath]`.
|
|
326
423
|
* Writes a SELF-CONTAINED static site to `<outDir>`: the viz bundle plus the
|
|
327
424
|
* repo's graph baked into `graph-data.js`, so it loads with NO server (works
|
|
328
|
-
* from file:// and from any static-host subpath). Returns the exit code.
|
|
329
|
-
|
|
425
|
+
* from file:// and from any static-host subpath). Returns the exit code.
|
|
426
|
+
*
|
|
427
|
+
* Determinism: given the same repo state + the same {commitSha, repoUrl,
|
|
428
|
+
* builtAt} inputs, the export is byte-identical. `builtAt` is the one
|
|
429
|
+
* time-derived field (defaults to bake-time `new Date().toISOString()` when
|
|
430
|
+
* not passed) — pin it explicitly for a reproducible export. */
|
|
431
|
+
export async function runExport(repoPath, repoId, outDir, bake = {}) {
|
|
330
432
|
const reposkeinDir = join(repoPath, ".reposkein");
|
|
331
433
|
const nodesPath = join(reposkeinDir, "nodes.jsonl");
|
|
332
434
|
const edgesPath = join(reposkeinDir, "edges.jsonl");
|
|
@@ -346,10 +448,41 @@ export async function runExport(repoPath, repoId, outDir) {
|
|
|
346
448
|
// 1) Copy the prebuilt viz bundle into the output directory.
|
|
347
449
|
mkdirSync(absOut, { recursive: true });
|
|
348
450
|
cpSync(distDir, absOut, { recursive: true });
|
|
349
|
-
// 2) Bake the repo graph into graph-data.js.
|
|
451
|
+
// 2) Bake the repo graph + metadata + temporal + federation into graph-data.js.
|
|
350
452
|
const nodesText = readFileSync(nodesPath, "utf8");
|
|
351
453
|
const edgesText = existsSync(edgesPath) ? readFileSync(edgesPath, "utf8") : "";
|
|
352
|
-
|
|
454
|
+
const meta = {
|
|
455
|
+
commitSha: bake.commitSha ?? null,
|
|
456
|
+
repoUrl: bake.repoUrl ?? null,
|
|
457
|
+
builtAt: bake.builtAt ?? new Date().toISOString(),
|
|
458
|
+
pagesUrl: bake.pagesUrl !== undefined ? bake.pagesUrl : readTeamPagesUrl(repoPath),
|
|
459
|
+
};
|
|
460
|
+
// Temporal co-change data: the SAME code path /api/temporal uses, called
|
|
461
|
+
// once at export time so the static viewer's coupling overlay works
|
|
462
|
+
// offline. Best-effort — degrades to {} on any failure (never blocks the
|
|
463
|
+
// export).
|
|
464
|
+
const temporalResult = await getTemporal(repoPath);
|
|
465
|
+
const cochange = "cochange" in temporalResult ? temporalResult.cochange : {};
|
|
466
|
+
// Federation: nested `.reposkein/` repos discovered under repoPath, inlined
|
|
467
|
+
// in full (self-contained — no network fetch of federated JSONL at runtime).
|
|
468
|
+
const federatedRepos = discoverFederatedRepos(repoPath, bake.federatedDepth ?? 6);
|
|
469
|
+
const federated = [];
|
|
470
|
+
for (const fed of federatedRepos) {
|
|
471
|
+
const fNodes = join(fed.absPath, ".reposkein", "nodes.jsonl");
|
|
472
|
+
const fEdges = join(fed.absPath, ".reposkein", "edges.jsonl");
|
|
473
|
+
if (!existsSync(fNodes))
|
|
474
|
+
continue; // not indexed — skip, don't fail the export
|
|
475
|
+
federated.push({
|
|
476
|
+
repoId: fed.repoId,
|
|
477
|
+
rootPath: fed.rootPath,
|
|
478
|
+
nodesText: readFileSync(fNodes, "utf8"),
|
|
479
|
+
edgesText: existsSync(fEdges) ? readFileSync(fEdges, "utf8") : "",
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
const sourceSlices = bake.withSource
|
|
483
|
+
? collectSourceSlices(repoPath, nodesText, bake.sourceMaxBytes ?? DEFAULT_SOURCE_MAX_BYTES)
|
|
484
|
+
: undefined;
|
|
485
|
+
writeFileSync(join(absOut, "graph-data.js"), buildGraphDataJs(repoId, nodesText, edgesText, { meta, cochange, federated, sourceSlices }), "utf8");
|
|
353
486
|
// 3) Inject the graph-data.js script into index.html before the app bundle.
|
|
354
487
|
const indexPath = join(absOut, "index.html");
|
|
355
488
|
const html = readFileSync(indexPath, "utf8");
|
|
@@ -369,4 +502,6 @@ export async function runExport(repoPath, repoId, outDir) {
|
|
|
369
502
|
console.error(` open ${join(absOut, "index.html")} or host this folder.`);
|
|
370
503
|
return 0;
|
|
371
504
|
}
|
|
505
|
+
/** Default byte cap for baked per-node source slices (--with-source). */
|
|
506
|
+
const DEFAULT_SOURCE_MAX_BYTES = 2_000_000;
|
|
372
507
|
//# sourceMappingURL=view.js.map
|
package/dist/cli/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/cli/view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/cli/view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Write-path guard for decision prose (PRD §3.6 discipline, same rules as
|
|
2
|
+
* summaries): plain text only, control chars stripped, fences/links rejected,
|
|
3
|
+
* per-field caps. Decisions are rationale, not instructions — this bounds the
|
|
4
|
+
* prompt-injection surface of a file that arrives via git pull. */
|
|
5
|
+
export declare const DECISION_FIELD_CAPS: {
|
|
6
|
+
readonly title: 120;
|
|
7
|
+
readonly context: 2000;
|
|
8
|
+
readonly decision: 2000;
|
|
9
|
+
readonly consequences: 2000;
|
|
10
|
+
readonly alternatives: 1000;
|
|
11
|
+
};
|
|
12
|
+
export type DecisionFieldName = keyof typeof DECISION_FIELD_CAPS;
|
|
13
|
+
export interface DecisionProseInput {
|
|
14
|
+
title: string;
|
|
15
|
+
context: string;
|
|
16
|
+
decision: string;
|
|
17
|
+
consequences?: string;
|
|
18
|
+
alternatives?: string;
|
|
19
|
+
}
|
|
20
|
+
export type SanitizeFieldsResult = {
|
|
21
|
+
ok: true;
|
|
22
|
+
value: DecisionProseInput;
|
|
23
|
+
} | {
|
|
24
|
+
ok: false;
|
|
25
|
+
error: string;
|
|
26
|
+
};
|
|
27
|
+
/** Validates + sanitizes every prose field of a decision. Optional fields are
|
|
28
|
+
* dropped when absent; required fields fail loudly. */
|
|
29
|
+
export declare function sanitizeDecisionFields(input: DecisionProseInput): SanitizeFieldsResult;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Write-path guard for decision prose (PRD §3.6 discipline, same rules as
|
|
2
|
+
* summaries): plain text only, control chars stripped, fences/links rejected,
|
|
3
|
+
* per-field caps. Decisions are rationale, not instructions — this bounds the
|
|
4
|
+
* prompt-injection surface of a file that arrives via git pull. */
|
|
5
|
+
import { CODE_FENCE, CONTROL_CHARS, MD_LINK } from "./summaryValidation.js";
|
|
6
|
+
export const DECISION_FIELD_CAPS = {
|
|
7
|
+
title: 120,
|
|
8
|
+
context: 2000,
|
|
9
|
+
decision: 2000,
|
|
10
|
+
consequences: 2000,
|
|
11
|
+
alternatives: 1000,
|
|
12
|
+
};
|
|
13
|
+
const REQUIRED = ["title", "context", "decision"];
|
|
14
|
+
function sanitizeField(name, input) {
|
|
15
|
+
const trimmed = input.replace(CONTROL_CHARS, "").trim();
|
|
16
|
+
if (trimmed.length === 0) {
|
|
17
|
+
return { ok: false, error: `${name} is empty` };
|
|
18
|
+
}
|
|
19
|
+
if (trimmed.length > DECISION_FIELD_CAPS[name]) {
|
|
20
|
+
return { ok: false, error: `${name} exceeds ${DECISION_FIELD_CAPS[name]} characters` };
|
|
21
|
+
}
|
|
22
|
+
if (CODE_FENCE.test(trimmed)) {
|
|
23
|
+
return { ok: false, error: `${name} must be plain text (no code fences)` };
|
|
24
|
+
}
|
|
25
|
+
if (MD_LINK.test(trimmed)) {
|
|
26
|
+
return { ok: false, error: `${name} must be plain text (no markdown links)` };
|
|
27
|
+
}
|
|
28
|
+
return { ok: true, value: trimmed };
|
|
29
|
+
}
|
|
30
|
+
/** Validates + sanitizes every prose field of a decision. Optional fields are
|
|
31
|
+
* dropped when absent; required fields fail loudly. */
|
|
32
|
+
export function sanitizeDecisionFields(input) {
|
|
33
|
+
const out = { title: "", context: "", decision: "" };
|
|
34
|
+
for (const name of REQUIRED) {
|
|
35
|
+
const r = sanitizeField(name, input[name] ?? "");
|
|
36
|
+
if (!r.ok)
|
|
37
|
+
return r;
|
|
38
|
+
out[name] = r.value;
|
|
39
|
+
}
|
|
40
|
+
for (const name of ["consequences", "alternatives"]) {
|
|
41
|
+
const raw = input[name];
|
|
42
|
+
if (raw === undefined)
|
|
43
|
+
continue;
|
|
44
|
+
const r = sanitizeField(name, raw);
|
|
45
|
+
if (!r.ok)
|
|
46
|
+
return r;
|
|
47
|
+
out[name] = r.value;
|
|
48
|
+
}
|
|
49
|
+
return { ok: true, value: out };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=decisionValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionValidation.js","sourceRoot":"","sources":["../../src/guard/decisionValidation.ts"],"names":[],"mappings":"AAAA;;;oEAGoE;AAEpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;CACV,CAAC;AAgBX,MAAM,QAAQ,GAAiC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEhF,SAAS,aAAa,CAAC,IAAuB,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,YAAY,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IACzF,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,sCAAsC,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,yCAAyC,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;wDACwD;AACxD,MAAM,UAAU,sBAAsB,CAAC,KAAyB;IAC9D,MAAM,GAAG,GAAuB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,cAAc,CAAU,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -5,6 +5,9 @@ export type SanitizeResult = {
|
|
|
5
5
|
ok: false;
|
|
6
6
|
error: string;
|
|
7
7
|
};
|
|
8
|
+
export declare const CONTROL_CHARS: RegExp;
|
|
9
|
+
export declare const CODE_FENCE: RegExp;
|
|
10
|
+
export declare const MD_LINK: RegExp;
|
|
8
11
|
/** Validates + sanitizes an agent summary (PRD §3.6): strips control chars,
|
|
9
12
|
* rejects oversized / non-plain-text input. Summaries are descriptions, not
|
|
10
13
|
* instructions — this bounds the prompt-injection surface. */
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
const MAX_LEN = 1000;
|
|
2
2
|
// Control chars except tab (\t, 0x09), newline (\n, 0x0A), carriage return (\r, 0x0D).
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
3
|
+
// Exported so decisionValidation shares the exact same guard surface — a
|
|
4
|
+
// hardening fix here must apply to both write paths.
|
|
5
|
+
export const CONTROL_CHARS = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;
|
|
6
|
+
export const CODE_FENCE = /```/;
|
|
7
|
+
export const MD_LINK = /\[[^\]]*\]\([^)]*\)/;
|
|
6
8
|
const CODE_FENCE_G = /```/g;
|
|
7
9
|
const MD_LINK_G = /\[([^\]]*)\]\([^)]*\)/g;
|
|
8
10
|
/** Validates + sanitizes an agent summary (PRD §3.6): strips control chars,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summaryValidation.js","sourceRoot":"","sources":["../../src/guard/summaryValidation.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,uFAAuF;AACvF,MAAM,aAAa,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"summaryValidation.js","sourceRoot":"","sources":["../../src/guard/summaryValidation.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,uFAAuF;AACvF,yEAAyE;AACzE,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAC7C,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAE3C;;+DAE+D;AAC/D,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,OAAO,aAAa,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;yEAKyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,KAAK;SACd,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,IAAI,EAAE,CAAC;IACV,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { z } from "zod";
|
|
3
|
+
import type { RepoResolution } from "./store/resolveRepoPath.js";
|
|
4
|
+
/** Structured, actionable message for repo-scoped tool calls when no repo
|
|
5
|
+
* resolved (see `resolveRepoPath`). Names the discovered candidates when
|
|
6
|
+
* resolution failed due to workspace-mode ambiguity, and points at
|
|
7
|
+
* `list_repos` / `select_repo` so the agent can pick one instead of
|
|
8
|
+
* abandoning the tools. */
|
|
9
|
+
export declare function repoRequiredMessage(resolution: RepoResolution): string;
|
|
10
|
+
export declare function repoUnindexedMessage(repoPath: string): string;
|
|
3
11
|
export declare const getContextProfileInputSchema: {
|
|
4
12
|
node_id: z.ZodOptional<z.ZodString>;
|
|
5
13
|
file_path: z.ZodOptional<z.ZodString>;
|
|
@@ -7,4 +15,44 @@ export declare const getContextProfileInputSchema: {
|
|
|
7
15
|
hops: z.ZodOptional<z.ZodNumber>;
|
|
8
16
|
federated: z.ZodOptional<z.ZodBoolean>;
|
|
9
17
|
};
|
|
18
|
+
export declare const recordDecisionInputSchema: {
|
|
19
|
+
title: z.ZodString;
|
|
20
|
+
context: z.ZodString;
|
|
21
|
+
decision: z.ZodString;
|
|
22
|
+
consequences: z.ZodOptional<z.ZodString>;
|
|
23
|
+
alternatives: z.ZodOptional<z.ZodString>;
|
|
24
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
proposed: "proposed";
|
|
26
|
+
accepted: "accepted";
|
|
27
|
+
}>>;
|
|
28
|
+
anchor_node_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
anchor_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
|
+
supersedes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
|
+
};
|
|
32
|
+
export declare const setDecisionStatusInputSchema: {
|
|
33
|
+
decision_id: z.ZodString;
|
|
34
|
+
status: z.ZodEnum<{
|
|
35
|
+
accepted: "accepted";
|
|
36
|
+
rejected: "rejected";
|
|
37
|
+
deprecated: "deprecated";
|
|
38
|
+
}>;
|
|
39
|
+
};
|
|
40
|
+
export declare const reaffirmDecisionInputSchema: {
|
|
41
|
+
decision_id: z.ZodString;
|
|
42
|
+
};
|
|
43
|
+
export declare const listDecisionsInputSchema: {
|
|
44
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
45
|
+
proposed: "proposed";
|
|
46
|
+
accepted: "accepted";
|
|
47
|
+
rejected: "rejected";
|
|
48
|
+
deprecated: "deprecated";
|
|
49
|
+
superseded: "superseded";
|
|
50
|
+
}>>;
|
|
51
|
+
anchor: z.ZodOptional<z.ZodString>;
|
|
52
|
+
q: z.ZodOptional<z.ZodString>;
|
|
53
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
};
|
|
55
|
+
export declare const getDecisionInputSchema: {
|
|
56
|
+
decision_id: z.ZodString;
|
|
57
|
+
};
|
|
10
58
|
export declare function main(): Promise<void>;
|