@digital-lake/lognexus 1.0.0-alpha.1 → 1.0.0-alpha.5

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.
Files changed (59) hide show
  1. package/README.md +46 -3
  2. package/dist/audit/audit.d.ts +19 -0
  3. package/dist/audit/audit.d.ts.map +1 -0
  4. package/dist/audit/audit.js +168 -0
  5. package/dist/audit/audit.js.map +1 -0
  6. package/dist/cli.js +281 -4
  7. package/dist/cli.js.map +1 -1
  8. package/dist/doctor.d.ts.map +1 -1
  9. package/dist/doctor.js +1 -1
  10. package/dist/doctor.js.map +1 -1
  11. package/dist/index.d.ts +12 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +12 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp/prompts.d.ts +30 -0
  16. package/dist/mcp/prompts.d.ts.map +1 -0
  17. package/dist/mcp/prompts.js +150 -0
  18. package/dist/mcp/prompts.js.map +1 -0
  19. package/dist/mcp/resources.d.ts +25 -0
  20. package/dist/mcp/resources.d.ts.map +1 -0
  21. package/dist/mcp/resources.js +75 -0
  22. package/dist/mcp/resources.js.map +1 -0
  23. package/dist/mcp/server.d.ts +22 -0
  24. package/dist/mcp/server.d.ts.map +1 -0
  25. package/dist/mcp/server.js +202 -0
  26. package/dist/mcp/server.js.map +1 -0
  27. package/dist/mcp/tools.d.ts +26 -0
  28. package/dist/mcp/tools.d.ts.map +1 -0
  29. package/dist/mcp/tools.js +260 -0
  30. package/dist/mcp/tools.js.map +1 -0
  31. package/dist/notes/attach.d.ts +20 -0
  32. package/dist/notes/attach.d.ts.map +1 -0
  33. package/dist/notes/attach.js +27 -0
  34. package/dist/notes/attach.js.map +1 -0
  35. package/dist/notes/notes.d.ts +14 -0
  36. package/dist/notes/notes.d.ts.map +1 -0
  37. package/dist/notes/notes.js +82 -0
  38. package/dist/notes/notes.js.map +1 -0
  39. package/dist/scaffold.d.ts +1 -0
  40. package/dist/scaffold.d.ts.map +1 -1
  41. package/dist/scaffold.js +11 -11
  42. package/dist/scaffold.js.map +1 -1
  43. package/dist/state/manager.d.ts +9 -0
  44. package/dist/state/manager.d.ts.map +1 -0
  45. package/dist/state/manager.js +72 -0
  46. package/dist/state/manager.js.map +1 -0
  47. package/dist/state/schema.d.ts +111 -0
  48. package/dist/state/schema.d.ts.map +1 -0
  49. package/dist/state/schema.js +31 -0
  50. package/dist/state/schema.js.map +1 -0
  51. package/dist/state/sync.d.ts +8 -0
  52. package/dist/state/sync.d.ts.map +1 -0
  53. package/dist/state/sync.js +79 -0
  54. package/dist/state/sync.js.map +1 -0
  55. package/dist/timeline/timeline.d.ts +23 -0
  56. package/dist/timeline/timeline.d.ts.map +1 -0
  57. package/dist/timeline/timeline.js +257 -0
  58. package/dist/timeline/timeline.js.map +1 -0
  59. package/package.json +1 -1
package/README.md CHANGED
@@ -117,9 +117,9 @@ An independent model inspects the PR diff, verifies task contracts, and signs of
117
117
 
118
118
  ## Installation & Setup
119
119
 
120
- ### 1. Scaffold Rules in Your Repository
121
- Initialize `.lognexus/` rules, templates, and routing configuration with the CLI:
120
+ ### 1. Scaffold Rules & Manage State with the CLI
122
121
 
122
+ Initialize `.lognexus/` rules, templates, and routing configuration:
123
123
  ```bash
124
124
  npx @digital-lake/lognexus init
125
125
  ```
@@ -134,7 +134,50 @@ Inspect active branch and tier advisory:
134
134
  npx @digital-lake/lognexus status
135
135
  ```
136
136
 
137
- ### 2. Install Rules in Your Agent Environment
137
+ Manage persistent agent state (`.lognexus/state.json`) and session recovery:
138
+ ```bash
139
+ npx @digital-lake/lognexus state sync
140
+ npx @digital-lake/lognexus state show
141
+ npx @digital-lake/lognexus state set-task T1 "Add user schema"
142
+ npx @digital-lake/lognexus state finish-task T1
143
+ ```
144
+
145
+ Quiet Mode with Git Notes (`refs/notes/lognexus`, standard `git-ai` v3):
146
+ ```bash
147
+ npx @digital-lake/lognexus note attach HEAD
148
+ npx @digital-lake/lognexus note show HEAD
149
+ npx @digital-lake/lognexus note push origin
150
+ ```
151
+
152
+ Journey Timeline reconstruction and Review Gate audit:
153
+ ```bash
154
+ npx @digital-lake/lognexus timeline main
155
+ npx @digital-lake/lognexus timeline main --pr-body
156
+ npx @digital-lake/lognexus audit main
157
+ ```
158
+
159
+ ### 2. Connect via Model Context Protocol (MCP)
160
+
161
+ LogNexus includes a native, lightweight JSON-RPC 2.0 stdio server (`lognexus mcp`) with zero external SDK dependencies. Connect it to Claude Desktop, Cursor, Google Antigravity, or any MCP-compliant client:
162
+
163
+ **`claude_desktop_config.json` or Cursor MCP settings:**
164
+ ```json
165
+ {
166
+ "mcpServers": {
167
+ "lognexus": {
168
+ "command": "npx",
169
+ "args": ["-y", "@digital-lake/lognexus", "mcp"]
170
+ }
171
+ }
172
+ }
173
+ ```
174
+
175
+ **Exposed Capabilities:**
176
+ - **Tools:** `lognexus_status`, `lognexus_state_get`, `lognexus_state_sync`, `lognexus_state_set_task`, `lognexus_state_finish_task`, `lognexus_state_clear`, `lognexus_note_show`, `lognexus_note_attach`, `lognexus_timeline`, `lognexus_audit`
177
+ - **Resources:** `lognexus://state`, `lognexus://routing`
178
+ - **Prompts:** `lognexus-plan`, `lognexus-review`
179
+
180
+ ### 3. Install Rules in Your Agent Environment
138
181
 
139
182
  - **Claude Code:**
140
183
  ```bash
@@ -0,0 +1,19 @@
1
+ export interface AuditViolation {
2
+ commitSha: string;
3
+ shortSha: string;
4
+ rule: "commit-format" | "authored-by-trailer" | "git-note-presence" | "contract-files" | "review-gate-separation";
5
+ message: string;
6
+ severity: "error" | "warn";
7
+ }
8
+ export interface AuditResult {
9
+ passed: boolean;
10
+ commitCount: number;
11
+ violations: AuditViolation[];
12
+ summary: {
13
+ errors: number;
14
+ warnings: number;
15
+ };
16
+ }
17
+ export declare function auditBranch(baseBranch?: string, targetDir?: string): AuditResult;
18
+ export declare function formatAuditResult(result: AuditResult): string;
19
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/audit/audit.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EACA,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,wBAAwB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAgLD,wBAAgB,WAAW,CACzB,UAAU,GAAE,MAAe,EAC3B,SAAS,GAAE,MAAsB,GAChC,WAAW,CAab;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAW7D"}
@@ -0,0 +1,168 @@
1
+ import { execSync } from "node:child_process";
2
+ import { getNote } from "../notes/notes.js";
3
+ import { getJourneyTimeline } from "../timeline/timeline.js";
4
+ const VALID_TYPES = "feat, fix, docs, refactor, test, chore, style, perf";
5
+ const COMMIT_FORMAT_PATTERN = /^(feat|fix|docs|refactor|test|chore|style|perf)\(#\d+(\/T\d+(?:-T?\d+)?)?\): \S+/;
6
+ const SUBJECT_TASK_PATTERN = /\(#\d+\/(T\d+(?:-T?\d+)?)\)/i;
7
+ const IDENTITY_PATTERN = /(\S+\/\S+)/;
8
+ function parseIdentity(value) {
9
+ if (value === null)
10
+ return null;
11
+ const match = value.match(IDENTITY_PATTERN);
12
+ if (!match) {
13
+ const trimmed = value.trim().toLowerCase();
14
+ return trimmed === "" ? null : { full: trimmed, family: trimmed };
15
+ }
16
+ return { full: value.trim().toLowerCase(), family: match[1].toLowerCase() };
17
+ }
18
+ function normalizePath(value) {
19
+ return value.replace(/\\/g, "/").replace(/^\.\//, "").trim();
20
+ }
21
+ function toStringList(value) {
22
+ if (!Array.isArray(value))
23
+ return [];
24
+ return value.filter((entry) => typeof entry === "string").map(normalizePath);
25
+ }
26
+ function matchesPath(file, rule) {
27
+ if (rule === "")
28
+ return false;
29
+ if (rule.endsWith("/"))
30
+ return file.startsWith(rule);
31
+ if (rule.includes("*")) {
32
+ const pattern = new RegExp(`^${rule
33
+ .split("*")
34
+ .map((part) => part.replace(/[.+?^${}()|[\]\\]/g, "\\$&"))
35
+ .join(".*")}$`);
36
+ return pattern.test(file);
37
+ }
38
+ return file === rule;
39
+ }
40
+ function listCommitFiles(sha, targetDir) {
41
+ try {
42
+ const output = execSync(`git diff-tree --no-commit-id --name-only -r ${sha}`, {
43
+ cwd: targetDir,
44
+ encoding: "utf8",
45
+ stdio: ["pipe", "pipe", "pipe"],
46
+ });
47
+ return output
48
+ .replace(/\r\n/g, "\n")
49
+ .split("\n")
50
+ .map((line) => normalizePath(line))
51
+ .filter((line) => line !== "");
52
+ }
53
+ catch {
54
+ return [];
55
+ }
56
+ }
57
+ function readContract(note) {
58
+ if (note === null)
59
+ return null;
60
+ try {
61
+ const parsed = JSON.parse(note);
62
+ return parsed?.subtask?.contract ?? null;
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ function auditCommit(item, targetDir) {
69
+ const violations = [];
70
+ const base = { commitSha: item.sha, shortSha: item.shortSha };
71
+ if (item.author === null) {
72
+ violations.push({
73
+ ...base,
74
+ rule: "authored-by-trailer",
75
+ message: `Missing 'Authored-by:' trailer in commit body (got: ${item.subject}).`,
76
+ severity: "error",
77
+ });
78
+ }
79
+ const authorIdentity = parseIdentity(item.author);
80
+ const reviewerIdentity = parseIdentity(item.reviewer);
81
+ if (authorIdentity !== null && reviewerIdentity !== null) {
82
+ if (authorIdentity.full === reviewerIdentity.full ||
83
+ authorIdentity.family === reviewerIdentity.family) {
84
+ violations.push({
85
+ ...base,
86
+ rule: "review-gate-separation",
87
+ message: `Self-approval detected: author '${item.author}' and reviewer '${item.reviewer}' share the same identity.`,
88
+ severity: "error",
89
+ });
90
+ }
91
+ }
92
+ const note = getNote(item.sha, { cwd: targetDir });
93
+ if (note === null) {
94
+ violations.push({
95
+ ...base,
96
+ rule: "git-note-presence",
97
+ message: "No Git Note found under refs/notes/lognexus (run 'lognexus note attach <sha>').",
98
+ severity: "warn",
99
+ });
100
+ }
101
+ if (!COMMIT_FORMAT_PATTERN.test(item.subject)) {
102
+ violations.push({
103
+ ...base,
104
+ rule: "commit-format",
105
+ message: `Subject does not match '<type>(#<issue>/T<n>): <description>' with a valid type (${VALID_TYPES}).`,
106
+ severity: "warn",
107
+ });
108
+ }
109
+ else if (!SUBJECT_TASK_PATTERN.test(item.subject)) {
110
+ violations.push({
111
+ ...base,
112
+ rule: "commit-format",
113
+ message: "Subject lacks a subtask tag 'T<n>' (e.g. 'feat(#9/T1): ...').",
114
+ severity: "warn",
115
+ });
116
+ }
117
+ const contract = readContract(note);
118
+ if (contract !== null) {
119
+ const allowedFiles = toStringList(contract.allowedFiles);
120
+ const forbiddenFiles = toStringList(contract.forbiddenFiles);
121
+ const changedFiles = listCommitFiles(item.sha, targetDir);
122
+ const forbidden = changedFiles.filter((file) => forbiddenFiles.some((rule) => matchesPath(file, rule)));
123
+ if (forbidden.length > 0) {
124
+ violations.push({
125
+ ...base,
126
+ rule: "contract-files",
127
+ message: `Commit touches forbidden file(s): ${forbidden.join(", ")}.`,
128
+ severity: "error",
129
+ });
130
+ }
131
+ if (allowedFiles.length > 0) {
132
+ const outside = changedFiles.filter((file) => !allowedFiles.some((rule) => matchesPath(file, rule)));
133
+ if (outside.length > 0) {
134
+ violations.push({
135
+ ...base,
136
+ rule: "contract-files",
137
+ message: `Commit touches file(s) outside the allowed set: ${outside.join(", ")}.`,
138
+ severity: "error",
139
+ });
140
+ }
141
+ }
142
+ }
143
+ return violations;
144
+ }
145
+ export function auditBranch(baseBranch = "main", targetDir = process.cwd()) {
146
+ const timeline = getJourneyTimeline(baseBranch, targetDir);
147
+ const violations = timeline.items.flatMap((item) => auditCommit(item, targetDir));
148
+ const errors = violations.filter((violation) => violation.severity === "error").length;
149
+ const warnings = violations.length - errors;
150
+ return {
151
+ passed: errors === 0,
152
+ commitCount: timeline.commitCount,
153
+ violations,
154
+ summary: { errors, warnings },
155
+ };
156
+ }
157
+ export function formatAuditResult(result) {
158
+ if (result.violations.length === 0) {
159
+ return "[PASS] All traceability checks passed";
160
+ }
161
+ return result.violations
162
+ .map((violation) => {
163
+ const tag = violation.severity === "error" ? "[ERROR]" : "[WARN] ";
164
+ return `${tag} ${violation.shortSha} ${violation.rule}: ${violation.message}`;
165
+ })
166
+ .join("\n");
167
+ }
168
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/audit/audit.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,26 +1,73 @@
1
1
  #!/usr/bin/env node
2
+ import { auditBranch, formatAuditResult } from "./audit/audit.js";
2
3
  import { runDiagnostics } from "./doctor.js";
4
+ import { startMcpServer } from "./mcp/server.js";
5
+ import { attachCurrentStateToCommit } from "./notes/attach.js";
6
+ import { fetchNotes, getNote, listNotes, pushNotes } from "./notes/notes.js";
3
7
  import { initProject } from "./scaffold.js";
8
+ import { clearState, finishSubtask, loadState, setSubtask } from "./state/manager.js";
9
+ import { syncStateFromGit } from "./state/sync.js";
4
10
  import { getProjectStatus } from "./status.js";
11
+ import { getJourneyTimeline } from "./timeline/timeline.js";
5
12
  function printHeader() {
6
13
  console.log("\n🔷 LogNexus CLI — Digital Lake");
7
- console.log(" The Git-Powered Context & Rules Framework for Native AI Agents\n");
14
+ console.log(" The Universal Git-Powered Context & Rules Framework for Native AI Agents\n");
8
15
  }
9
16
  function printUsage() {
10
17
  printHeader();
11
18
  console.log(`Usage:
12
- lognexus <command> [options]
19
+ lognexus <command> [subcommand] [options]
13
20
 
14
21
  Commands:
15
22
  init Scaffold .lognexus/ configuration and rules in current repository
16
23
  doctor Check Git, GitHub CLI authentication, and repository rules health
17
24
  status Inspect current branch, active issue, and recommended tier
25
+ state Manage persistent agent state (.lognexus/state.json)
26
+ note Manage Git Notes under refs/notes/lognexus (git-ai standard)
27
+ timeline Reconstruct the branch Journey Timeline and draft a PR body
28
+ audit Audit commit conventions, authorship trailers and review gate
29
+ mcp Start the LogNexus MCP server (stdio JSON-RPC 2.0) for native AI agents
18
30
  help Display this help message
19
31
 
32
+ State Subcommands:
33
+ lognexus state [show] Display current active issue and task state
34
+ lognexus state sync Sync state from current Git branch & GitHub
35
+ lognexus state set-task <id> [t] Set active subtask (e.g. lognexus state set-task T1 "Add schema")
36
+ lognexus state finish-task <id> Mark subtask as completed (e.g. lognexus state finish-task T1)
37
+ lognexus state clear Reset persistent state to empty
38
+
39
+ Note Subcommands:
40
+ lognexus note [show] [commit] Display LogNexus Git Note for commit (default: HEAD)
41
+ lognexus note attach [commit] Attach current session state as Git Note to commit
42
+ lognexus note list List all commits with LogNexus Git Notes
43
+ lognexus note push [remote] Push refs/notes/lognexus to remote (default: origin)
44
+ lognexus note fetch [remote] Fetch refs/notes/lognexus from remote
45
+
46
+ Timeline & Audit:
47
+ lognexus timeline [base] [flags] Print the Journey Timeline of the branch vs. base branch
48
+ --json Emit the full JourneyTimelineResult JSON (no banner)
49
+ --pr-body Emit the ready-to-use PR body draft
50
+ lognexus audit [base] Audit commit format, Authored-by trailer, Git Notes,
51
+ subtask file contracts and reviewer separation
52
+ (exits with code 1 on errors)
53
+
54
+ MCP Server:
55
+ lognexus mcp Start MCP server on stdio (JSON-RPC 2.0) for Claude Code,
56
+ Cursor, VS Code, Antigravity or any MCP-compatible client
57
+ Tools: lognexus_status, lognexus_state_get, lognexus_state_sync, lognexus_state_set_task,
58
+ lognexus_state_finish_task, lognexus_state_clear, lognexus_note_show,
59
+ lognexus_note_attach, lognexus_timeline, lognexus_audit
60
+ Resources: lognexus://state, lognexus://routing
61
+ Prompts: lognexus-plan, lognexus-review
62
+
20
63
  Examples:
21
64
  npx @digital-lake/lognexus init
22
- npx @digital-lake/lognexus doctor
23
- npx @digital-lake/lognexus status
65
+ npx @digital-lake/lognexus state sync
66
+ npx @digital-lake/lognexus note attach HEAD
67
+ npx @digital-lake/lognexus note show HEAD
68
+ npx @digital-lake/lognexus timeline main --pr-body
69
+ npx @digital-lake/lognexus audit main
70
+ npx @digital-lake/lognexus mcp
24
71
  `);
25
72
  }
26
73
  async function handleInit() {
@@ -63,6 +110,220 @@ async function handleStatus() {
63
110
  console.log(`Rules Routing Mode: ${st.routingMode}`);
64
111
  console.log(`Recommended Tier: ${st.recommendedTier}\n`);
65
112
  }
113
+ async function handleState(args) {
114
+ const sub = args[0]?.toLowerCase() || "show";
115
+ switch (sub) {
116
+ case "show": {
117
+ printHeader();
118
+ const state = loadState();
119
+ console.log("Persistent Agent State (.lognexus/state.json):\n");
120
+ if (state.activeIssue) {
121
+ console.log(`Active Issue: #${state.activeIssue.id} — ${state.activeIssue.title}`);
122
+ console.log(`Branch: ${state.activeIssue.branch}`);
123
+ console.log(`Phase: ${state.activeIssue.phase}`);
124
+ console.log(`Tier: ${state.activeIssue.tier}`);
125
+ console.log(`Readiness: ${state.activeIssue.readiness}`);
126
+ }
127
+ else {
128
+ console.log("Active Issue: (none)");
129
+ }
130
+ console.log("");
131
+ if (state.currentSubtask) {
132
+ console.log(`Current Subtask: ${state.currentSubtask.id} (${state.currentSubtask.status})`);
133
+ if (state.currentSubtask.title) {
134
+ console.log(` Title: ${state.currentSubtask.title}`);
135
+ }
136
+ if (state.currentSubtask.contract) {
137
+ console.log(` Allowed Files: ${state.currentSubtask.contract.allowedFiles.join(", ") || "(all)"}`);
138
+ console.log(` Decision Budget: ${state.currentSubtask.contract.decisionBudget}`);
139
+ if (state.currentSubtask.contract.verificationCmd) {
140
+ console.log(` Verify Command: ${state.currentSubtask.contract.verificationCmd}`);
141
+ }
142
+ }
143
+ }
144
+ else {
145
+ console.log("Current Subtask: (none)");
146
+ }
147
+ console.log(`Completed Tasks: ${state.completedSubtasks.length > 0 ? state.completedSubtasks.join(", ") : "(none)"}`);
148
+ console.log(`Last Synchronized: ${state.lastSync}\n`);
149
+ break;
150
+ }
151
+ case "sync": {
152
+ printHeader();
153
+ console.log("Synchronizing state from current Git branch and GitHub...\n");
154
+ const synced = syncStateFromGit();
155
+ if (synced.activeIssue) {
156
+ console.log(`[OK] Synchronized with Issue #${synced.activeIssue.id} (${synced.activeIssue.title})`);
157
+ console.log(` Branch: ${synced.activeIssue.branch}`);
158
+ }
159
+ else {
160
+ console.log("[OK] Synchronized. No active issue detected on current branch.");
161
+ }
162
+ console.log("");
163
+ break;
164
+ }
165
+ case "set-task": {
166
+ const taskId = args[1];
167
+ const title = args.slice(2).join(" ");
168
+ if (!taskId) {
169
+ console.error("Error: Subtask ID is required (e.g. lognexus state set-task T1 'Add schema')\n");
170
+ process.exit(1);
171
+ }
172
+ printHeader();
173
+ setSubtask(taskId, title);
174
+ console.log(`[OK] Active subtask set to: ${taskId}${title ? ` — ${title}` : ""}\n`);
175
+ break;
176
+ }
177
+ case "finish-task": {
178
+ const taskId = args[1];
179
+ if (!taskId) {
180
+ console.error("Error: Subtask ID is required (e.g. lognexus state finish-task T1)\n");
181
+ process.exit(1);
182
+ }
183
+ printHeader();
184
+ finishSubtask(taskId);
185
+ console.log(`[OK] Subtask ${taskId} marked as completed.\n`);
186
+ break;
187
+ }
188
+ case "clear": {
189
+ printHeader();
190
+ clearState();
191
+ console.log("[OK] Persistent state cleared.\n");
192
+ break;
193
+ }
194
+ default:
195
+ console.error(`Unknown state subcommand: ${sub}\n`);
196
+ printUsage();
197
+ process.exit(1);
198
+ }
199
+ }
200
+ async function handleNote(args) {
201
+ const sub = args[0]?.toLowerCase() || "show";
202
+ switch (sub) {
203
+ case "show": {
204
+ const commit = args[1] || "HEAD";
205
+ printHeader();
206
+ const note = getNote(commit);
207
+ if (note) {
208
+ console.log(`Git Note for commit [${commit}] (refs/notes/lognexus):\n`);
209
+ console.log(note);
210
+ }
211
+ else {
212
+ console.log(`No LogNexus note found attached to commit [${commit}].`);
213
+ console.log("Tip: Run 'lognexus note attach' to attach current state to this commit.");
214
+ }
215
+ console.log("");
216
+ break;
217
+ }
218
+ case "attach": {
219
+ const commit = args[1] || "HEAD";
220
+ printHeader();
221
+ const payload = attachCurrentStateToCommit(commit);
222
+ console.log(`[OK] Attached LogNexus note to commit [${commit}] (refs/notes/lognexus):`);
223
+ console.log(` Issue: ${payload.issue ? `#${payload.issue.id} — ${payload.issue.title}` : "(none)"}`);
224
+ console.log(` Subtask: ${payload.subtask ? `${payload.subtask.id} (${payload.subtask.title})` : "(none)"}`);
225
+ console.log(` Tier: ${payload.tier}\n`);
226
+ break;
227
+ }
228
+ case "list": {
229
+ printHeader();
230
+ const notes = listNotes();
231
+ console.log(`LogNexus Notes (refs/notes/lognexus) — ${notes.length} note(s):\n`);
232
+ if (notes.length === 0) {
233
+ console.log("No notes recorded yet.");
234
+ }
235
+ else {
236
+ for (const n of notes) {
237
+ console.log(` • Commit: ${n.commitSha} (blob: ${n.noteBlob})`);
238
+ }
239
+ }
240
+ console.log("");
241
+ break;
242
+ }
243
+ case "push": {
244
+ const remote = args[1] || "origin";
245
+ printHeader();
246
+ console.log(`Pushing refs/notes/lognexus to ${remote}...`);
247
+ const ok = pushNotes(remote);
248
+ if (ok) {
249
+ console.log(`[OK] Notes pushed to ${remote} successfully.\n`);
250
+ }
251
+ else {
252
+ console.error(`[FAIL] Could not push notes to ${remote}.\n`);
253
+ }
254
+ break;
255
+ }
256
+ case "fetch": {
257
+ const remote = args[1] || "origin";
258
+ printHeader();
259
+ console.log(`Fetching refs/notes/lognexus from ${remote}...`);
260
+ const ok = fetchNotes(remote);
261
+ if (ok) {
262
+ console.log(`[OK] Notes fetched from ${remote} successfully.\n`);
263
+ }
264
+ else {
265
+ console.error(`[FAIL] Could not fetch notes from ${remote}.\n`);
266
+ }
267
+ break;
268
+ }
269
+ default:
270
+ console.error(`Unknown note subcommand: ${sub}\n`);
271
+ printUsage();
272
+ process.exit(1);
273
+ }
274
+ }
275
+ async function handleTimeline(args) {
276
+ const flags = args.filter((arg) => arg.startsWith("-"));
277
+ const positional = args.filter((arg) => !arg.startsWith("-"));
278
+ const baseBranch = positional[0] || "main";
279
+ const known = ["--json", "--pr-body"];
280
+ const unknown = flags.filter((flag) => !known.includes(flag));
281
+ if (unknown.length > 0) {
282
+ console.error(`Unknown option(s) for timeline: ${unknown.join(", ")}\n`);
283
+ printUsage();
284
+ process.exit(1);
285
+ }
286
+ const asJson = flags.includes("--json");
287
+ const asPrBody = flags.includes("--pr-body");
288
+ const timeline = getJourneyTimeline(baseBranch);
289
+ // --json / --pr-body are machine-consumable: keep stdout free of banners.
290
+ if (asJson) {
291
+ console.log(JSON.stringify(timeline, null, 2));
292
+ return;
293
+ }
294
+ if (asPrBody) {
295
+ console.log(timeline.prBodyDraft);
296
+ return;
297
+ }
298
+ printHeader();
299
+ console.log(`Branch: ${timeline.branch}`);
300
+ console.log(`Base Branch: ${timeline.baseBranch}`);
301
+ console.log(`Commits: ${timeline.commitCount}\n`);
302
+ if (timeline.commitCount === 0) {
303
+ console.log("No commits ahead of the base branch.\n");
304
+ return;
305
+ }
306
+ console.log(timeline.markdownTable);
307
+ console.log("");
308
+ }
309
+ async function handleAudit(args) {
310
+ const baseBranch = args.find((arg) => !arg.startsWith("-")) || "main";
311
+ const result = auditBranch(baseBranch);
312
+ printHeader();
313
+ console.log(`Auditing ${result.commitCount} commit(s) against base branch '${baseBranch}'...\n`);
314
+ if (result.passed && result.violations.length === 0) {
315
+ console.log(`${formatAuditResult(result)}\n`);
316
+ return;
317
+ }
318
+ for (const violation of result.violations) {
319
+ const tag = violation.severity === "error" ? "[ERROR]" : "[WARN] ";
320
+ console.log(`${tag} ${violation.shortSha} ${violation.rule}: ${violation.message}`);
321
+ }
322
+ console.log(`\n${result.summary.errors} error(s), ${result.summary.warnings} warning(s) — ${result.passed ? "[PASS] No blocking violations" : "[FAIL] Review gate blocked"}\n`);
323
+ if (!result.passed) {
324
+ process.exit(1);
325
+ }
326
+ }
66
327
  async function main() {
67
328
  const args = process.argv.slice(2);
68
329
  const command = args[0]?.toLowerCase();
@@ -76,6 +337,22 @@ async function main() {
76
337
  case "status":
77
338
  await handleStatus();
78
339
  break;
340
+ case "state":
341
+ await handleState(args.slice(1));
342
+ break;
343
+ case "note":
344
+ await handleNote(args.slice(1));
345
+ break;
346
+ case "timeline":
347
+ await handleTimeline(args.slice(1));
348
+ break;
349
+ case "audit":
350
+ await handleAudit(args.slice(1));
351
+ break;
352
+ case "mcp":
353
+ // stdout is reserved for JSON-RPC frames: never print the banner here.
354
+ await startMcpServer();
355
+ break;
79
356
  case "help":
80
357
  case "--help":
81
358
  case "-h":
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,CAsC3E;AAED,wBAAgB,cAAc,IAAI,eAAe,CA2BhD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,CAsCnF;AAED,wBAAgB,cAAc,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,EAAE,CAEnF"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,CAsC3E;AAED,wBAAgB,cAAc,IAAI,eAAe,CA2BhD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,CAqCnF;AAED,wBAAgB,cAAc,CAAC,SAAS,GAAE,MAAsB,GAAG,eAAe,EAAE,CAEnF"}
package/dist/doctor.js CHANGED
@@ -94,7 +94,7 @@ export function checkRulesConfig(targetDir = process.cwd()) {
94
94
  return {
95
95
  name: "LogNexus Rules",
96
96
  status: "warn",
97
- message: "Found legacy .shiplog/ directory — consider migrating to .lognexus/ (see docs/MIGRATING_FROM_SHIPLOG.md)",
97
+ message: "Found legacy .shiplog/ directory — run 'lognexus init' to scaffold .lognexus/",
98
98
  };
99
99
  }
100
100
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}