@fractalsynapse/dsh-chapters 0.0.0-stage → 0.2.20
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/LICENSE +14 -0
- package/README.md +76 -2
- package/cordis.patch.yml +363 -0
- package/docs/architecture.md +692 -0
- package/docs/autorun-guide.md +248 -0
- package/docs/backlog.md +2022 -0
- package/docs/contract.md +938 -0
- package/docs/development.md +990 -0
- package/docs/host-compaction-seam.md +225 -0
- package/docs/host-protected-head-ask.md +80 -0
- package/docs/knowledge-repo.md +1332 -0
- package/docs/plans-carriage.md +571 -0
- package/docs/project-state.md +642 -0
- package/docs/provider.md +98 -0
- package/docs/superpowers/plans/2026-10-17-chapters-save.md +198 -0
- package/docs/superpowers/plans/2026-11-02-chapter-removal.md +151 -0
- package/docs/superpowers/specs/2026-11-02-chapter-removal-design.md +115 -0
- package/docs/verify.md +561 -0
- package/lib/archive.d.ts +161 -0
- package/lib/archive.js +229 -0
- package/lib/archive.js.map +1 -0
- package/lib/arrival.d.ts +23 -0
- package/lib/arrival.js +125 -0
- package/lib/arrival.js.map +1 -0
- package/lib/artifact-query.d.ts +62 -0
- package/lib/artifact-query.js +187 -0
- package/lib/artifact-query.js.map +1 -0
- package/lib/attach.d.ts +46 -0
- package/lib/attach.js +120 -0
- package/lib/attach.js.map +1 -0
- package/lib/auto-save.d.ts +145 -0
- package/lib/auto-save.js +334 -0
- package/lib/auto-save.js.map +1 -0
- package/lib/aux-message.d.ts +17 -0
- package/lib/aux-message.js +20 -0
- package/lib/aux-message.js.map +1 -0
- package/lib/client.js +1419 -0
- package/lib/client.js.map +1 -0
- package/lib/codegraph.d.ts +76 -0
- package/lib/codegraph.js +190 -0
- package/lib/codegraph.js.map +1 -0
- package/lib/commands.d.ts +52 -0
- package/lib/commands.js +946 -0
- package/lib/commands.js.map +1 -0
- package/lib/compose.d.ts +30 -0
- package/lib/compose.js +185 -0
- package/lib/compose.js.map +1 -0
- package/lib/continue-core.d.ts +245 -0
- package/lib/continue-core.js +405 -0
- package/lib/continue-core.js.map +1 -0
- package/lib/diag.d.ts +55 -0
- package/lib/diag.js +186 -0
- package/lib/diag.js.map +1 -0
- package/lib/engine-core.d.ts +301 -0
- package/lib/engine-core.js +531 -0
- package/lib/engine-core.js.map +1 -0
- package/lib/engine-note.d.ts +35 -0
- package/lib/engine-note.js +32 -0
- package/lib/engine-note.js.map +1 -0
- package/lib/engine.d.ts +329 -0
- package/lib/engine.js +1179 -0
- package/lib/engine.js.map +1 -0
- package/lib/enrich-queue.d.ts +66 -0
- package/lib/enrich-queue.js +126 -0
- package/lib/enrich-queue.js.map +1 -0
- package/lib/enrich-store.d.ts +31 -0
- package/lib/enrich-store.js +103 -0
- package/lib/enrich-store.js.map +1 -0
- package/lib/enrich-wire.d.ts +163 -0
- package/lib/enrich-wire.js +353 -0
- package/lib/enrich-wire.js.map +1 -0
- package/lib/enrich.d.ts +102 -0
- package/lib/enrich.js +267 -0
- package/lib/enrich.js.map +1 -0
- package/lib/gitops.d.ts +107 -0
- package/lib/gitops.js +539 -0
- package/lib/gitops.js.map +1 -0
- package/lib/index.d.ts +241 -0
- package/lib/index.js +1162 -0
- package/lib/index.js.map +1 -0
- package/lib/indexing.d.ts +98 -0
- package/lib/indexing.js +223 -0
- package/lib/indexing.js.map +1 -0
- package/lib/injections.d.ts +90 -0
- package/lib/injections.js +165 -0
- package/lib/injections.js.map +1 -0
- package/lib/last-resort.d.ts +24 -0
- package/lib/last-resort.js +27 -0
- package/lib/last-resort.js.map +1 -0
- package/lib/log-shape.d.ts +38 -0
- package/lib/log-shape.js +93 -0
- package/lib/log-shape.js.map +1 -0
- package/lib/models-command.d.ts +74 -0
- package/lib/models-command.js +100 -0
- package/lib/models-command.js.map +1 -0
- package/lib/notice.d.ts +74 -0
- package/lib/notice.js +92 -0
- package/lib/notice.js.map +1 -0
- package/lib/plans.d.ts +154 -0
- package/lib/plans.js +315 -0
- package/lib/plans.js.map +1 -0
- package/lib/preset.d.ts +186 -0
- package/lib/preset.js +212 -0
- package/lib/preset.js.map +1 -0
- package/lib/prompt-keys.d.ts +7 -0
- package/lib/prompt-keys.js +8 -0
- package/lib/prompt-keys.js.map +1 -0
- package/lib/prompt-loop.d.ts +73 -0
- package/lib/prompt-loop.js +147 -0
- package/lib/prompt-loop.js.map +1 -0
- package/lib/prompt-push.d.ts +47 -0
- package/lib/prompt-push.js +115 -0
- package/lib/prompt-push.js.map +1 -0
- package/lib/prompt-runner.d.ts +48 -0
- package/lib/prompt-runner.js +90 -0
- package/lib/prompt-runner.js.map +1 -0
- package/lib/prompt-state.d.ts +142 -0
- package/lib/prompt-state.js +101 -0
- package/lib/prompt-state.js.map +1 -0
- package/lib/prompt.d.ts +270 -0
- package/lib/prompt.js +408 -0
- package/lib/prompt.js.map +1 -0
- package/lib/provider.d.ts +44 -0
- package/lib/provider.js +66 -0
- package/lib/provider.js.map +1 -0
- package/lib/redact.d.ts +24 -0
- package/lib/redact.js +85 -0
- package/lib/redact.js.map +1 -0
- package/lib/registry.d.ts +187 -0
- package/lib/registry.js +235 -0
- package/lib/registry.js.map +1 -0
- package/lib/removal.d.ts +159 -0
- package/lib/removal.js +556 -0
- package/lib/removal.js.map +1 -0
- package/lib/render.d.ts +97 -0
- package/lib/render.js +530 -0
- package/lib/render.js.map +1 -0
- package/lib/repair-run.d.ts +76 -0
- package/lib/repair-run.js +506 -0
- package/lib/repair-run.js.map +1 -0
- package/lib/repair.d.ts +208 -0
- package/lib/repair.js +357 -0
- package/lib/repair.js.map +1 -0
- package/lib/repo.d.ts +78 -0
- package/lib/repo.js +184 -0
- package/lib/repo.js.map +1 -0
- package/lib/rules-commands.d.ts +46 -0
- package/lib/rules-commands.js +379 -0
- package/lib/rules-commands.js.map +1 -0
- package/lib/rules.d.ts +267 -0
- package/lib/rules.js +478 -0
- package/lib/rules.js.map +1 -0
- package/lib/save-core.d.ts +72 -0
- package/lib/save-core.js +220 -0
- package/lib/save-core.js.map +1 -0
- package/lib/search.d.ts +112 -0
- package/lib/search.js +282 -0
- package/lib/search.js.map +1 -0
- package/lib/session-rules.d.ts +222 -0
- package/lib/session-rules.js +454 -0
- package/lib/session-rules.js.map +1 -0
- package/lib/signature.d.ts +45 -0
- package/lib/signature.js +199 -0
- package/lib/signature.js.map +1 -0
- package/lib/store.d.ts +156 -0
- package/lib/store.js +368 -0
- package/lib/store.js.map +1 -0
- package/lib/sync.d.ts +220 -0
- package/lib/sync.js +810 -0
- package/lib/sync.js.map +1 -0
- package/lib/tools.d.ts +113 -0
- package/lib/tools.js +1090 -0
- package/lib/tools.js.map +1 -0
- package/lib/treedx/client.d.ts +57 -0
- package/lib/treedx/client.js +82 -0
- package/lib/treedx/client.js.map +1 -0
- package/lib/treedx/provider.d.ts +39 -0
- package/lib/treedx/provider.js +479 -0
- package/lib/treedx/provider.js.map +1 -0
- package/lib/treedx/state.d.ts +27 -0
- package/lib/treedx/state.js +65 -0
- package/lib/treedx/state.js.map +1 -0
- package/lib/types.d.ts +210 -0
- package/lib/types.js +31 -0
- package/lib/types.js.map +1 -0
- package/lib/version.d.ts +9 -0
- package/lib/version.js +10 -0
- package/lib/version.js.map +1 -0
- package/lib/vocabulary.d.ts +41 -0
- package/lib/vocabulary.js +118 -0
- package/lib/vocabulary.js.map +1 -0
- package/lib/warnings.d.ts +10 -0
- package/lib/warnings.js +18 -0
- package/lib/warnings.js.map +1 -0
- package/package.json +151 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../src/repair.ts"],"names":[],"mappings":"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"}
|
package/lib/repo.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record §2.3, exact: lowercase; strip `https://` / `ssh://`; convert
|
|
3
|
+
* `user@host:path` → `host/path`; strip trailing `/` and `.git`; KEEP the
|
|
4
|
+
* host (two hosts, same path = different projects).
|
|
5
|
+
*/
|
|
6
|
+
export declare function canonicalizeRemote(url: string): string;
|
|
7
|
+
/** UUIDv5(NAMESPACE_OID, name) per RFC 4122 — deterministic, name-derived. */
|
|
8
|
+
export declare const NAMESPACE_OID = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
|
9
|
+
export declare function uuidv5(namespaceUuid: string, name: string): string;
|
|
10
|
+
/** The project key: stable across machines for the same remote (record §2.3). */
|
|
11
|
+
export declare const projectKeyFromRemote: (url: string) => string;
|
|
12
|
+
/**
|
|
13
|
+
* A knowledge upstream target string (record §2.1/§3.2 + §15 amendment
|
|
14
|
+
* "transport is pluggable"). Shapes:
|
|
15
|
+
* https://host/org/repo(.git) git over HTTPS (token required, §2.1)
|
|
16
|
+
* /some/dir.git | ./dir | ~dir local-path git bare pool (no credentials)
|
|
17
|
+
* treedx+http(s)://host[:port]/repo-name TreeDX managed repository
|
|
18
|
+
* The `treedx+` prefix is the ONLY kind discriminator — identity, credentials,
|
|
19
|
+
* and the mirror layout are provider-independent beyond it.
|
|
20
|
+
*/
|
|
21
|
+
export interface KnowledgeRemoteTarget {
|
|
22
|
+
kind: 'git' | 'treedx';
|
|
23
|
+
/** The raw string as the user typed it (stored as `ProjectRecord.remote`). */
|
|
24
|
+
raw: string;
|
|
25
|
+
/** TreeDX: REST base URL + the managed repository name. */
|
|
26
|
+
treedx?: {
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
repoName: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Parse an upstream target. Throws (never guesses) on a treedx+ URL without a
|
|
32
|
+
* repository name — a wrong identity means syncing into the wrong pool. */
|
|
33
|
+
export declare function parseKnowledgeRemote(target: string): KnowledgeRemoteTarget;
|
|
34
|
+
/**
|
|
35
|
+
* Project identity for a parsed target (§2.3 unchanged in spirit): for git,
|
|
36
|
+
* the canonical remote; for TreeDX, `treedx/` + the canonical form of
|
|
37
|
+
* `baseUrl/repoName`. The prefix keeps transports distinct on purpose —
|
|
38
|
+
* a server that happens to mirror the same host/port/path as a git remote
|
|
39
|
+
* is a DIFFERENT pool, and two linked records must never fight over one key.
|
|
40
|
+
*/
|
|
41
|
+
export declare function projectKeyForTarget(t: KnowledgeRemoteTarget): string;
|
|
42
|
+
/**
|
|
43
|
+
* Parse the minimum of a git config we need: the first remote's url,
|
|
44
|
+
* preferring `origin`. Comments (# ;), sections, and whitespace handled;
|
|
45
|
+
* anything exotic returns null rather than guessing.
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseGitConfigRemoteUrl(text: string): string | null;
|
|
48
|
+
export interface ProjectRemote {
|
|
49
|
+
remote: string;
|
|
50
|
+
/** `remote` = from a git remote; `path-derived` = non-git workspace fallback. */
|
|
51
|
+
source: 'remote' | 'path-derived';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Discover the project's remote WITHOUT a git binary: read `.git` as a file
|
|
55
|
+
* or directory, parse its `config` (following a `gitdir:` pointer for
|
|
56
|
+
* worktrees/submodules, relative to `cwd`). Non-git workspace → the
|
|
57
|
+
* path-derived fallback is the CALLER's choice (this returns null), so the
|
|
58
|
+
* key's `source` flag stays an explicit decision.
|
|
59
|
+
*/
|
|
60
|
+
export declare function readProjectRemote(cwd: string): ProjectRemote | null;
|
|
61
|
+
/** Resolve the project identity: override > discovered remote > path-derived. */
|
|
62
|
+
export declare function resolveProject(cwd: string, overrideKey?: string, overrideRemote?: string): {
|
|
63
|
+
projectKey: string;
|
|
64
|
+
projectKeySource: 'override' | 'remote' | 'path-derived';
|
|
65
|
+
remote: string | null;
|
|
66
|
+
};
|
|
67
|
+
/** Repo layout (record §2.2) — every path the sync/index/search layers touch. */
|
|
68
|
+
export declare function repoPaths(projectKey: string, harnessId: string, sessionId?: string): {
|
|
69
|
+
projectYml: string;
|
|
70
|
+
chaptersDir: string;
|
|
71
|
+
artifactsDir: string;
|
|
72
|
+
collectionsFile: (sid: string) => string;
|
|
73
|
+
indexDir: string;
|
|
74
|
+
indexManifest: string;
|
|
75
|
+
curationFile: string;
|
|
76
|
+
rulesDir: string;
|
|
77
|
+
vocabularyJson: string;
|
|
78
|
+
};
|
package/lib/repo.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project identity and knowledge-repo layout (knowledge-repo.md §2.2–2.3).
|
|
3
|
+
*
|
|
4
|
+
* Pure module: no cordis, no network, no git binary. `canonicalizeRemote` +
|
|
5
|
+
* UUIDv5 give every machine the SAME key for the same project (local paths
|
|
6
|
+
* differ; the remote is the identity). `.git/config` is parsed as a plain
|
|
7
|
+
* file — the no-git-executable rule (record §3.2) applies to discovery too.
|
|
8
|
+
*/
|
|
9
|
+
import { createHash } from 'node:crypto';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
/**
|
|
13
|
+
* Record §2.3, exact: lowercase; strip `https://` / `ssh://`; convert
|
|
14
|
+
* `user@host:path` → `host/path`; strip trailing `/` and `.git`; KEEP the
|
|
15
|
+
* host (two hosts, same path = different projects).
|
|
16
|
+
*/
|
|
17
|
+
export function canonicalizeRemote(url) {
|
|
18
|
+
let s = url.trim().toLowerCase();
|
|
19
|
+
s = s.replace(/^(?:https?|ssh|git|file):\/\//, '');
|
|
20
|
+
// file:// urls carry no host, only a path
|
|
21
|
+
s = s.replace(/^\/+/, '');
|
|
22
|
+
// embedded credentials (https://user:token@host/…) must NOT fork identity:
|
|
23
|
+
// the same repo pasted with and without creds is the same pool. Colon-bearing
|
|
24
|
+
// userinfo only ever appears in scheme-form URLs (scp usernames have none).
|
|
25
|
+
s = s.replace(/^[^@/]*:[^@/]*@/, '');
|
|
26
|
+
// [user@]host:path (scp-style) and [user@]host/path (scheme-form, after the
|
|
27
|
+
// scheme strip above)
|
|
28
|
+
s = s.replace(/^([a-z0-9._-]+)@([a-z0-9.-]+)[:\/](.+)$/, (_m, _user, host, p) => `${host}/${p}`);
|
|
29
|
+
s = s.replace(/^([a-z0-9.-]+):(.+)$/, (_m, host, p) => `${host}/${p}`);
|
|
30
|
+
s = s.replace(/\/+$/, '');
|
|
31
|
+
s = s.replace(/\.git$/, '');
|
|
32
|
+
return s;
|
|
33
|
+
}
|
|
34
|
+
/** UUIDv5(NAMESPACE_OID, name) per RFC 4122 — deterministic, name-derived. */
|
|
35
|
+
export const NAMESPACE_OID = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
|
36
|
+
export function uuidv5(namespaceUuid, name) {
|
|
37
|
+
const ns = namespaceUuid.replace(/-/g, '');
|
|
38
|
+
if (ns.length !== 32)
|
|
39
|
+
throw new Error(`uuidv5: namespace is not a UUID: ${namespaceUuid}`);
|
|
40
|
+
const b = createHash('sha1').update(Buffer.concat([Buffer.from(ns, 'hex'), Buffer.from(name, 'utf8')])).digest();
|
|
41
|
+
b[6] = (b[6] & 0x0f) | 0x50; // version 5
|
|
42
|
+
b[8] = (b[8] & 0x3f) | 0x80; // variant 10xx
|
|
43
|
+
// RFC 4122: the first 16 OCTETS of the SHA-1 (not all 20)
|
|
44
|
+
const h = b.subarray(0, 16).toString('hex');
|
|
45
|
+
return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
|
|
46
|
+
}
|
|
47
|
+
/** The project key: stable across machines for the same remote (record §2.3). */
|
|
48
|
+
export const projectKeyFromRemote = (url) => uuidv5(NAMESPACE_OID, canonicalizeRemote(url));
|
|
49
|
+
const TREEDX_FORM = /^treedx\+(https?:\/\/\S+)$/i;
|
|
50
|
+
/** Parse an upstream target. Throws (never guesses) on a treedx+ URL without a
|
|
51
|
+
* repository name — a wrong identity means syncing into the wrong pool. */
|
|
52
|
+
export function parseKnowledgeRemote(target) {
|
|
53
|
+
const raw = target.trim();
|
|
54
|
+
const m = TREEDX_FORM.exec(raw);
|
|
55
|
+
if (m === null)
|
|
56
|
+
return { kind: 'git', raw };
|
|
57
|
+
let u;
|
|
58
|
+
try {
|
|
59
|
+
u = new URL(m[1]);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
throw new Error(`treedx+ remote is not a valid URL: ${raw}`);
|
|
63
|
+
}
|
|
64
|
+
const segs = u.pathname.split('/').filter((s) => s !== '' && !(s === 'api' && u.pathname.includes('/api/v1')) && s !== 'v1');
|
|
65
|
+
if (segs.length === 0)
|
|
66
|
+
throw new Error(`treedx+ remote needs a repository name: treedx+<url>/repo — got ${raw}`);
|
|
67
|
+
const repoName = segs[segs.length - 1].toLowerCase(); // TreeDX names are canonical lowercase
|
|
68
|
+
const trimmed = segs.slice(0, -1);
|
|
69
|
+
const baseUrl = u.origin + (trimmed.length > 0 ? `/${trimmed.join('/')}` : '');
|
|
70
|
+
return { kind: 'treedx', raw, treedx: { baseUrl, repoName } };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Project identity for a parsed target (§2.3 unchanged in spirit): for git,
|
|
74
|
+
* the canonical remote; for TreeDX, `treedx/` + the canonical form of
|
|
75
|
+
* `baseUrl/repoName`. The prefix keeps transports distinct on purpose —
|
|
76
|
+
* a server that happens to mirror the same host/port/path as a git remote
|
|
77
|
+
* is a DIFFERENT pool, and two linked records must never fight over one key.
|
|
78
|
+
*/
|
|
79
|
+
export function projectKeyForTarget(t) {
|
|
80
|
+
if (t.treedx !== undefined)
|
|
81
|
+
return uuidv5(NAMESPACE_OID, `treedx/${canonicalizeRemote(`${t.treedx.baseUrl}/${t.treedx.repoName}`)}`);
|
|
82
|
+
return projectKeyFromRemote(t.raw);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Parse the minimum of a git config we need: the first remote's url,
|
|
86
|
+
* preferring `origin`. Comments (# ;), sections, and whitespace handled;
|
|
87
|
+
* anything exotic returns null rather than guessing.
|
|
88
|
+
*/
|
|
89
|
+
export function parseGitConfigRemoteUrl(text) {
|
|
90
|
+
let section = null;
|
|
91
|
+
let originUrl = null;
|
|
92
|
+
let firstRemoteUrl = null;
|
|
93
|
+
for (const raw of text.split(/\r?\n/)) {
|
|
94
|
+
const line = raw.trim();
|
|
95
|
+
if (line === '' || line.startsWith('#') || line.startsWith(';'))
|
|
96
|
+
continue;
|
|
97
|
+
const sectionMatch = /^\[([^\]]+)\]$/.exec(line);
|
|
98
|
+
if (sectionMatch !== null) {
|
|
99
|
+
section = sectionMatch[1];
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const kv = /^([A-Za-z0-9.]+)\s*=\s*(.+)$/.exec(line);
|
|
103
|
+
if (kv === null || section === null)
|
|
104
|
+
continue;
|
|
105
|
+
if (kv[1].toLowerCase() !== 'url')
|
|
106
|
+
continue;
|
|
107
|
+
const value = kv[2].trim().replace(/^["']|["']$/g, '');
|
|
108
|
+
const sectionName = section.replace(/^remote\s+"?([^"]+)"?$/i, '$1').toLowerCase();
|
|
109
|
+
if (sectionName === 'origin' && originUrl === null)
|
|
110
|
+
originUrl = value;
|
|
111
|
+
else if (/^remote/.test(section) && firstRemoteUrl === null)
|
|
112
|
+
firstRemoteUrl = value;
|
|
113
|
+
}
|
|
114
|
+
return originUrl ?? firstRemoteUrl;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Discover the project's remote WITHOUT a git binary: read `.git` as a file
|
|
118
|
+
* or directory, parse its `config` (following a `gitdir:` pointer for
|
|
119
|
+
* worktrees/submodules, relative to `cwd`). Non-git workspace → the
|
|
120
|
+
* path-derived fallback is the CALLER's choice (this returns null), so the
|
|
121
|
+
* key's `source` flag stays an explicit decision.
|
|
122
|
+
*/
|
|
123
|
+
export function readProjectRemote(cwd) {
|
|
124
|
+
const dotGit = path.join(cwd, '.git');
|
|
125
|
+
let configPath = null;
|
|
126
|
+
try {
|
|
127
|
+
const st = fs.statSync(dotGit);
|
|
128
|
+
if (st.isDirectory())
|
|
129
|
+
configPath = path.join(dotGit, 'config');
|
|
130
|
+
else if (st.isFile()) {
|
|
131
|
+
const pointer = fs.readFileSync(dotGit, 'utf8').trim();
|
|
132
|
+
const m = /^gitdir:\s*(.+)$/m.exec(pointer);
|
|
133
|
+
if (m !== null) {
|
|
134
|
+
const target = m[1].trim();
|
|
135
|
+
configPath = path.isAbsolute(target) ? path.join(target, 'config') : path.join(cwd, target, 'config');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return null; // no .git, unreadable, or not git
|
|
141
|
+
}
|
|
142
|
+
if (configPath === null)
|
|
143
|
+
return null;
|
|
144
|
+
try {
|
|
145
|
+
const url = parseGitConfigRemoteUrl(fs.readFileSync(configPath, 'utf8'));
|
|
146
|
+
if (url === null)
|
|
147
|
+
return null;
|
|
148
|
+
return { remote: url, source: 'remote' };
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** Resolve the project identity: override > discovered remote > path-derived. */
|
|
155
|
+
export function resolveProject(cwd, overrideKey, overrideRemote) {
|
|
156
|
+
if (overrideKey !== undefined && overrideKey !== '') {
|
|
157
|
+
return { projectKey: overrideKey, projectKeySource: 'override', remote: overrideRemote ?? null };
|
|
158
|
+
}
|
|
159
|
+
const discovered = overrideRemote !== undefined && overrideRemote !== ''
|
|
160
|
+
? { remote: overrideRemote, source: 'remote' }
|
|
161
|
+
: readProjectRemote(cwd);
|
|
162
|
+
if (discovered !== null) {
|
|
163
|
+
return { projectKey: projectKeyFromRemote(discovered.remote), projectKeySource: discovered.source, remote: discovered.remote };
|
|
164
|
+
}
|
|
165
|
+
return { projectKey: uuidv5(NAMESPACE_OID, cwd), projectKeySource: 'path-derived', remote: null };
|
|
166
|
+
}
|
|
167
|
+
/** Repo layout (record §2.2) — every path the sync/index/search layers touch. */
|
|
168
|
+
export function repoPaths(projectKey, harnessId, sessionId) {
|
|
169
|
+
const base = '';
|
|
170
|
+
return {
|
|
171
|
+
projectYml: path.join(base, 'project.yml'),
|
|
172
|
+
chaptersDir: sessionId === undefined
|
|
173
|
+
? path.join(base, 'chapters', projectKey)
|
|
174
|
+
: path.join(base, 'chapters', projectKey, sessionId),
|
|
175
|
+
artifactsDir: path.join(base, 'artifacts', projectKey),
|
|
176
|
+
collectionsFile: (sid) => path.join(base, 'collections', projectKey, `${sid}.jsonl`),
|
|
177
|
+
indexDir: path.join(base, 'index'),
|
|
178
|
+
indexManifest: path.join(base, 'index', 'manifest.json'),
|
|
179
|
+
curationFile: path.join(base, 'edits', harnessId, 'curation.jsonl'),
|
|
180
|
+
rulesDir: path.join(base, 'rules', projectKey),
|
|
181
|
+
vocabularyJson: path.join(base, 'topics', 'vocabulary.json'),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=repo.js.map
|
package/lib/repo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type RuleRecord } from './rules.ts';
|
|
2
|
+
import type { ProjectRecord } from './sync.ts';
|
|
3
|
+
export interface RulesIo {
|
|
4
|
+
cwd(): string;
|
|
5
|
+
storeRoot: string;
|
|
6
|
+
harnessId: string;
|
|
7
|
+
store: {
|
|
8
|
+
rules(): IterableIterator<[string, RuleRecord]>;
|
|
9
|
+
getRule(id: string): RuleRecord | undefined;
|
|
10
|
+
putRule(id: string, value: RuleRecord): Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
projectFor(cwd: string): ProjectRecord | undefined;
|
|
13
|
+
mirrorDir(cwd: string): string;
|
|
14
|
+
/** arm an immediate sync so facts and files travel (never throws) */
|
|
15
|
+
syncNow(cwd: string): Promise<void>;
|
|
16
|
+
/** provenance of the ADD path: 'manual' for commands, the session id for the tool */
|
|
17
|
+
sourceSession?: string;
|
|
18
|
+
now: () => Date;
|
|
19
|
+
/**
|
|
20
|
+
* #50 §7.5: the current session's ancestor path (root-first), so `active`,
|
|
21
|
+
* `list --scope session` and `conflicts` can tell which session rules bind.
|
|
22
|
+
* Absent ⇒ the session tier is reported as unresolved, never guessed.
|
|
23
|
+
*/
|
|
24
|
+
ancestors?: () => Promise<ReadonlySet<string>>;
|
|
25
|
+
/** #52: true when the ancestry walk hit its cap (delegation or continuation). */
|
|
26
|
+
ancestryTruncated?: () => Promise<boolean>;
|
|
27
|
+
/** #50 §7.7: ONE bounded model call, report-only. Absent ⇒ the verb refuses. */
|
|
28
|
+
ask?: (prompt: string) => Promise<string>;
|
|
29
|
+
/** §7.3/§7.4 numbers the answer is measured with — the SAME config the doors
|
|
30
|
+
* render from, so `active` cannot report a view the head will not show. */
|
|
31
|
+
budgetTokens?: number;
|
|
32
|
+
projectCap?: number;
|
|
33
|
+
sessionCap?: number;
|
|
34
|
+
/** §7.5: reported by `active`, and drives whether mined rules govern on arrival */
|
|
35
|
+
autoActivate?: boolean | undefined;
|
|
36
|
+
/** the shared settings table (`rules.model` lives beside `enrichment.model`) */
|
|
37
|
+
settings?: {
|
|
38
|
+
get(key: string): string | undefined;
|
|
39
|
+
put(key: string, value: string): Promise<void>;
|
|
40
|
+
} | undefined;
|
|
41
|
+
}
|
|
42
|
+
export interface RulesReply {
|
|
43
|
+
kind: 'success' | 'error';
|
|
44
|
+
text: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function rulesCommand(io: RulesIo, args: string): Promise<RulesReply>;
|