@izagood/avcs 0.27.0 → 0.28.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.
@@ -0,0 +1,98 @@
1
+ import type { Repo } from "../api/repo.ts";
2
+ import type { Actor } from "../objects/types.ts";
3
+ /**
4
+ * Programmatic git-history import (issue #63).
5
+ *
6
+ * A server process (or any embedder) replays a git repository's history into
7
+ * an AVCS operation graph without shelling out to the `avcs` CLI. Two layers,
8
+ * so the core's git-independence is preserved:
9
+ *
10
+ * - {@link GitHistorySource} — the seam. Anything that can enumerate commits
11
+ * (sha + metadata + per-commit file changes) drives the import; no git
12
+ * binary is required at this layer.
13
+ * - {@link gitCliSource} — the batteries-included source. Reads a checkout,
14
+ * a bare repo, a bundle file, or a clone URL by shelling out to `git`
15
+ * (exactly like the CLI's existing git-bridge does). Fails with a clear
16
+ * error when no git binary is available.
17
+ *
18
+ * History maps onto AVCS the way `commitWorkingTree` established: one intent +
19
+ * one session per commit (title = the commit subject, owner = the git author),
20
+ * `put_file`/`delete_file` operations per changed path, each new commit's ops
21
+ * anchored on the previous frontier via `causalDeps`. AVCS history is an
22
+ * operation graph, not replayed diffs — the import walks the FIRST-PARENT
23
+ * line, so a merge commit lands as its net effect on the mainline (the side
24
+ * branch's internal commits are not replayed).
25
+ *
26
+ * Commit metadata travels in existing fields — no object-schema change:
27
+ * the actor is `git:<author-email>`, `Co-authored-by:` trailers become
28
+ * `coAuthors`, and `declaredPurpose` carries the full commit message plus a
29
+ * `[git <sha>] <author> <date>` provenance line.
30
+ */
31
+ /** One file touched by a commit. `read` is required for `kind: "write"`. */
32
+ export interface GitFileChange {
33
+ readonly path: string;
34
+ readonly kind: "write" | "delete";
35
+ readonly read?: () => Promise<Uint8Array>;
36
+ }
37
+ /** One commit on the imported line, in replay (oldest-first) order. */
38
+ export interface GitCommitRecord {
39
+ readonly sha: string;
40
+ readonly subject: string;
41
+ readonly message: string;
42
+ readonly authorName: string;
43
+ readonly authorEmail: string;
44
+ /** Author date, ISO-8601. */
45
+ readonly authorDate: string;
46
+ readonly coAuthors: ReadonlyArray<{
47
+ name: string;
48
+ email: string;
49
+ }>;
50
+ readonly changes: readonly GitFileChange[];
51
+ }
52
+ /** The import seam: enumerate commits oldest-first. No git binary implied. */
53
+ export interface GitHistorySource {
54
+ commits(): AsyncIterable<GitCommitRecord>;
55
+ /** Release temp resources (e.g. a bare clone). Safe to omit. */
56
+ close?(): Promise<void>;
57
+ }
58
+ export interface ImportGitHistoryOptions {
59
+ /** AVCS line (view) to import onto. Default `main`. */
60
+ readonly line?: string;
61
+ /**
62
+ * Actor recorded when a commit has no usable author identity, and the
63
+ * session opener. Defaults to `{ id: "git-import", kind: "ci_bot" }`.
64
+ */
65
+ readonly actor?: Actor;
66
+ /** Progress callback: commits replayed so far + the sha just finished. */
67
+ readonly onCommit?: (done: number, sha: string) => void;
68
+ }
69
+ export interface ImportGitHistoryResult {
70
+ /** Commits walked on the first-parent line (empty ones included). */
71
+ readonly commits: number;
72
+ /** Operations authored. */
73
+ readonly operations: number;
74
+ /** Intents created (one per commit that changed anything). */
75
+ readonly intents: number;
76
+ }
77
+ /** What {@link gitCliSource} accepts: a checkout/bare dir, a bundle, or a URL. */
78
+ export type GitCliTarget = string | {
79
+ dir?: string;
80
+ url?: string;
81
+ bundle?: string;
82
+ ref?: string;
83
+ };
84
+ /**
85
+ * A {@link GitHistorySource} backed by the `git` binary. A URL or bundle is
86
+ * bare-cloned into a temp dir (removed on `close()`); a local dir is read in
87
+ * place. The walk is `rev-list --first-parent --reverse <ref>` and per-commit
88
+ * changes come from `diff-tree` against the first parent (`--no-renames`, so
89
+ * a rename is a delete + write — the reducer treats paths as entities).
90
+ */
91
+ export declare function gitCliSource(target: GitCliTarget): Promise<GitHistorySource>;
92
+ /**
93
+ * Replay a git history into `repo` as an operation graph. See the module doc
94
+ * for the mapping. Accepts a {@link GitHistorySource}, or anything
95
+ * {@link gitCliSource} understands (dir / URL / bundle path).
96
+ */
97
+ export declare function importGitHistory(repo: Repo, source: GitHistorySource | GitCliTarget, opts?: ImportGitHistoryOptions): Promise<ImportGitHistoryResult>;
98
+ //# sourceMappingURL=gitHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitHistory.d.ts","sourceRoot":"","sources":["../../src/importer/gitHistory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC3C;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;IAC1C,gEAAgE;IAChE,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA0BlG;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsFlF;AASD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,sBAAsB,CAAC,CA0EjC"}
@@ -0,0 +1,203 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { existsSync } from "node:fs";
4
+ import { mkdtemp, rm } from "node:fs/promises";
5
+ import { tmpdir } from "node:os";
6
+ import { join } from "node:path";
7
+ const execFileAsync = promisify(execFile);
8
+ async function runGit(dir, args) {
9
+ const { stdout } = await execFileAsync("git", ["-C", dir, ...args], {
10
+ maxBuffer: 1 << 28,
11
+ });
12
+ return stdout;
13
+ }
14
+ async function runGitBuffer(dir, args) {
15
+ const { stdout } = await execFileAsync("git", ["-C", dir, ...args], {
16
+ maxBuffer: 1 << 28,
17
+ encoding: "buffer",
18
+ });
19
+ return stdout;
20
+ }
21
+ function parseCoAuthors(message) {
22
+ const out = [];
23
+ for (const line of message.split("\n")) {
24
+ const m = /^co-authored-by:\s*(.+?)\s*<([^>]*)>\s*$/i.exec(line.trim());
25
+ if (m)
26
+ out.push({ name: m[1], email: m[2] });
27
+ }
28
+ return out;
29
+ }
30
+ /**
31
+ * A {@link GitHistorySource} backed by the `git` binary. A URL or bundle is
32
+ * bare-cloned into a temp dir (removed on `close()`); a local dir is read in
33
+ * place. The walk is `rev-list --first-parent --reverse <ref>` and per-commit
34
+ * changes come from `diff-tree` against the first parent (`--no-renames`, so
35
+ * a rename is a delete + write — the reducer treats paths as entities).
36
+ */
37
+ export async function gitCliSource(target) {
38
+ try {
39
+ await execFileAsync("git", ["--version"]);
40
+ }
41
+ catch {
42
+ throw new Error("gitCliSource requires a `git` executable on PATH. To import without one, " +
43
+ "implement GitHistorySource yourself (e.g. over a parsed bundle) and pass it " +
44
+ "to importGitHistory directly.");
45
+ }
46
+ const t = typeof target === "string" ? inferTarget(target) : target;
47
+ const ref = t.ref ?? "HEAD";
48
+ let dir;
49
+ let tempClone = null;
50
+ if (t.dir) {
51
+ dir = t.dir;
52
+ }
53
+ else {
54
+ const source = t.url ?? t.bundle;
55
+ if (!source)
56
+ throw new Error("gitCliSource: pass one of dir, url, or bundle");
57
+ tempClone = await mkdtemp(join(tmpdir(), "avcs-git-import-"));
58
+ await execFileAsync("git", ["clone", "--bare", "--quiet", source, join(tempClone, "src.git")], {
59
+ maxBuffer: 1 << 24,
60
+ });
61
+ dir = join(tempClone, "src.git");
62
+ }
63
+ return {
64
+ async *commits() {
65
+ const shas = (await runGit(dir, ["rev-list", "--first-parent", "--reverse", ref]))
66
+ .split("\n")
67
+ .filter(Boolean);
68
+ for (const sha of shas) {
69
+ // %x00-separated to survive arbitrary subjects/messages.
70
+ const meta = await runGit(dir, [
71
+ "show",
72
+ "-s",
73
+ "--format=%an%x00%ae%x00%aI%x00%s%x00%B",
74
+ sha,
75
+ ]);
76
+ const [authorName = "", authorEmail = "", authorDate = "", subject = "", ...rest] = meta.split("\0");
77
+ const message = rest.join("\0").replace(/\n$/, "");
78
+ // First-parent diff; --root covers the parentless first commit.
79
+ const hasParent = (await runGit(dir, ["rev-list", "--parents", "-n", "1", sha])).trim().split(" ").length > 1;
80
+ const rawDiff = hasParent
81
+ ? await runGit(dir, ["diff-tree", "--no-renames", "-r", "-z", "--name-status", `${sha}^`, sha])
82
+ : await runGit(dir, ["diff-tree", "--root", "--no-renames", "-r", "-z", "--name-status", sha]);
83
+ const fields = rawDiff.split("\0").filter(Boolean);
84
+ // A --root diff-tree echoes the sha as its first record; drop it.
85
+ const records = fields[0] === sha ? fields.slice(1) : fields;
86
+ const changes = [];
87
+ for (let i = 0; i + 1 < records.length; i += 2) {
88
+ const status = records[i];
89
+ const path = records[i + 1];
90
+ if (status.startsWith("D")) {
91
+ changes.push({ path, kind: "delete" });
92
+ }
93
+ else {
94
+ changes.push({
95
+ path,
96
+ kind: "write",
97
+ read: () => runGitBuffer(dir, ["cat-file", "blob", `${sha}:${path}`]),
98
+ });
99
+ }
100
+ }
101
+ yield {
102
+ sha,
103
+ subject,
104
+ message,
105
+ authorName,
106
+ authorEmail,
107
+ authorDate,
108
+ coAuthors: parseCoAuthors(message),
109
+ changes,
110
+ };
111
+ }
112
+ },
113
+ async close() {
114
+ if (tempClone)
115
+ await rm(tempClone, { recursive: true, force: true });
116
+ },
117
+ };
118
+ }
119
+ function inferTarget(target) {
120
+ if (/^[a-z+]+:\/\//i.test(target) || /^[^/\s]+@[^/\s]+:/.test(target))
121
+ return { url: target };
122
+ if (target.endsWith(".bundle"))
123
+ return { bundle: target };
124
+ if (existsSync(target))
125
+ return { dir: target };
126
+ return { url: target };
127
+ }
128
+ /**
129
+ * Replay a git history into `repo` as an operation graph. See the module doc
130
+ * for the mapping. Accepts a {@link GitHistorySource}, or anything
131
+ * {@link gitCliSource} understands (dir / URL / bundle path).
132
+ */
133
+ export async function importGitHistory(repo, source, opts = {}) {
134
+ const src = typeof source === "object" && source !== null && "commits" in source
135
+ ? source
136
+ : await gitCliSource(source);
137
+ const fallback = opts.actor ?? { id: "git-import", kind: "ci_bot" };
138
+ let commits = 0;
139
+ let operations = 0;
140
+ let intents = 0;
141
+ try {
142
+ for await (const c of src.commits()) {
143
+ commits += 1;
144
+ if (c.changes.length === 0) {
145
+ opts.onCommit?.(commits, c.sha);
146
+ continue;
147
+ }
148
+ const authorId = c.authorEmail || c.authorName;
149
+ const actor = authorId ? { id: `git:${authorId}`, kind: "human" } : fallback;
150
+ const coAuthors = c.coAuthors.map((a) => ({
151
+ id: `git:${a.email || a.name}`,
152
+ kind: "human",
153
+ }));
154
+ const purpose = `${c.message.trimEnd()}\n\n` +
155
+ `[git ${c.sha}] ${c.authorName} <${c.authorEmail}> ${c.authorDate}`;
156
+ // Anchor this commit's ops on the current frontier — the same shape
157
+ // commitWorkingTree produces, so downstream tooling sees familiar graphs.
158
+ const res = await repo.materialize(opts.line ?? "main");
159
+ const deps = res.headOps;
160
+ const intentOid = await repo.createIntent({ title: c.subject || c.sha, owner: actor.id });
161
+ const sessionOid = await repo.startSession({ intentOid, actor });
162
+ intents += 1;
163
+ for (const change of c.changes) {
164
+ if (change.kind === "write") {
165
+ if (!change.read)
166
+ throw new Error(`GitFileChange for ${change.path} lacks read()`);
167
+ const blobOid = await repo.putBlob(await change.read());
168
+ await repo.proposeOperation({
169
+ sessionOid,
170
+ intentOid,
171
+ actor,
172
+ target: { entityKind: "file", entityId: change.path },
173
+ body: { kind: "put_file", path: change.path, blobOid },
174
+ declaredPurpose: purpose,
175
+ causalDeps: deps,
176
+ coAuthors,
177
+ line: opts.line,
178
+ });
179
+ }
180
+ else {
181
+ await repo.proposeOperation({
182
+ sessionOid,
183
+ intentOid,
184
+ actor,
185
+ target: { entityKind: "file", entityId: change.path },
186
+ body: { kind: "delete_file", path: change.path },
187
+ declaredPurpose: purpose,
188
+ causalDeps: deps,
189
+ coAuthors,
190
+ line: opts.line,
191
+ });
192
+ }
193
+ operations += 1;
194
+ }
195
+ opts.onCommit?.(commits, c.sha);
196
+ }
197
+ }
198
+ finally {
199
+ await src.close?.();
200
+ }
201
+ return { commits, operations, intents };
202
+ }
203
+ //# sourceMappingURL=gitHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitHistory.js","sourceRoot":"","sources":["../../src/importer/gitHistory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,4 +20,5 @@ export { Logger, consoleLogger, silentLogger } from "./observe/logger.ts";
20
20
  export type { LogEntry, LogLevel } from "./observe/logger.ts";
21
21
  export { Metrics } from "./observe/metrics.ts";
22
22
  export type { Timing } from "./observe/metrics.ts";
23
+ export { importGitHistory, gitCliSource, type GitHistorySource, type GitCommitRecord, type GitFileChange, type GitCliTarget, type ImportGitHistoryOptions, type ImportGitHistoryResult, } from "./importer/gitHistory.ts";
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAO9E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzJ,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAO9E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzJ,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -33,4 +33,6 @@ export { Keyring, generateKeypair, signMessage, verifyMessage } from "./core/ide
33
33
  // Observability seams (avcshub wires these to OTel / a real collector)
34
34
  export { Logger, consoleLogger, silentLogger } from "./observe/logger.js";
35
35
  export { Metrics } from "./observe/metrics.js";
36
+ // Programmatic git-history import (issue #63) — also at `@izagood/avcs/importer`.
37
+ export { importGitHistory, gitCliSource, } from "./importer/gitHistory.js";
36
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,mFAAmF;AACnF,yFAAyF;AACzF,wFAAwF;AACxF,iFAAiF;AAEjF,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,mFAAmF;AACnF,uFAAuF;AACvF,sFAAsF;AACtF,wFAAwF;AACxF,6EAA6E;AAC7E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE1E,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG7H,iFAAiF;AACjF,qFAAqF;AACrF,yDAAyD;AACzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGzE,kFAAkF;AAClF,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,yFAAyF;AACzF,4FAA4F;AAC5F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGzJ,8DAA8D;AAC9D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG1F,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,mFAAmF;AACnF,yFAAyF;AACzF,wFAAwF;AACxF,iFAAiF;AAEjF,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,mFAAmF;AACnF,uFAAuF;AACvF,sFAAsF;AACtF,wFAAwF;AACxF,6EAA6E;AAC7E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE1E,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG7H,iFAAiF;AACjF,qFAAqF;AACrF,yDAAyD;AACzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGzE,kFAAkF;AAClF,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,yFAAyF;AACzF,4FAA4F;AAC5F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGzJ,8DAA8D;AAC9D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG1F,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,kFAAkF;AAClF,OAAO,EACL,gBAAgB,EAChB,YAAY,GAOb,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izagood/avcs",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "type": "module",
5
5
  "description": "Agentic Version Control System — an AI-native VCS where intent, session, operation, evidence and decision are first-class objects and code is a materialized projection of an operation graph.",
6
6
  "license": "Apache-2.0",
@@ -38,6 +38,10 @@
38
38
  "types": "./dist/hub/hubClient.d.ts",
39
39
  "default": "./dist/hub/hubClient.js"
40
40
  },
41
+ "./importer": {
42
+ "types": "./dist/importer/gitHistory.d.ts",
43
+ "default": "./dist/importer/gitHistory.js"
44
+ },
41
45
  "./store": {
42
46
  "types": "./dist/store/objectStore.d.ts",
43
47
  "default": "./dist/store/objectStore.js"