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

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 (48) hide show
  1. package/README.md +39 -3
  2. package/dist/cli.js +208 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +10 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +10 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp/prompts.d.ts +30 -0
  9. package/dist/mcp/prompts.d.ts.map +1 -0
  10. package/dist/mcp/prompts.js +150 -0
  11. package/dist/mcp/prompts.js.map +1 -0
  12. package/dist/mcp/resources.d.ts +25 -0
  13. package/dist/mcp/resources.d.ts.map +1 -0
  14. package/dist/mcp/resources.js +75 -0
  15. package/dist/mcp/resources.js.map +1 -0
  16. package/dist/mcp/server.d.ts +22 -0
  17. package/dist/mcp/server.d.ts.map +1 -0
  18. package/dist/mcp/server.js +202 -0
  19. package/dist/mcp/server.js.map +1 -0
  20. package/dist/mcp/tools.d.ts +26 -0
  21. package/dist/mcp/tools.d.ts.map +1 -0
  22. package/dist/mcp/tools.js +197 -0
  23. package/dist/mcp/tools.js.map +1 -0
  24. package/dist/notes/attach.d.ts +20 -0
  25. package/dist/notes/attach.d.ts.map +1 -0
  26. package/dist/notes/attach.js +27 -0
  27. package/dist/notes/attach.js.map +1 -0
  28. package/dist/notes/notes.d.ts +14 -0
  29. package/dist/notes/notes.d.ts.map +1 -0
  30. package/dist/notes/notes.js +82 -0
  31. package/dist/notes/notes.js.map +1 -0
  32. package/dist/scaffold.d.ts +1 -0
  33. package/dist/scaffold.d.ts.map +1 -1
  34. package/dist/scaffold.js +11 -11
  35. package/dist/scaffold.js.map +1 -1
  36. package/dist/state/manager.d.ts +9 -0
  37. package/dist/state/manager.d.ts.map +1 -0
  38. package/dist/state/manager.js +72 -0
  39. package/dist/state/manager.js.map +1 -0
  40. package/dist/state/schema.d.ts +111 -0
  41. package/dist/state/schema.d.ts.map +1 -0
  42. package/dist/state/schema.js +31 -0
  43. package/dist/state/schema.js.map +1 -0
  44. package/dist/state/sync.d.ts +8 -0
  45. package/dist/state/sync.d.ts.map +1 -0
  46. package/dist/state/sync.js +79 -0
  47. package/dist/state/sync.js.map +1 -0
  48. 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,43 @@ 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
+ ### 2. Connect via Model Context Protocol (MCP)
153
+
154
+ 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:
155
+
156
+ **`claude_desktop_config.json` or Cursor MCP settings:**
157
+ ```json
158
+ {
159
+ "mcpServers": {
160
+ "lognexus": {
161
+ "command": "npx",
162
+ "args": ["-y", "@digital-lake/lognexus", "mcp"]
163
+ }
164
+ }
165
+ }
166
+ ```
167
+
168
+ **Exposed Capabilities:**
169
+ - **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`
170
+ - **Resources:** `lognexus://state`, `lognexus://routing`
171
+ - **Prompts:** `lognexus-plan`, `lognexus-review`
172
+
173
+ ### 3. Install Rules in Your Agent Environment
138
174
 
139
175
  - **Claude Code:**
140
176
  ```bash
package/dist/cli.js CHANGED
@@ -1,26 +1,58 @@
1
1
  #!/usr/bin/env node
2
2
  import { runDiagnostics } from "./doctor.js";
3
+ import { startMcpServer } from "./mcp/server.js";
4
+ import { attachCurrentStateToCommit } from "./notes/attach.js";
5
+ import { fetchNotes, getNote, listNotes, pushNotes } from "./notes/notes.js";
3
6
  import { initProject } from "./scaffold.js";
7
+ import { clearState, finishSubtask, loadState, setSubtask } from "./state/manager.js";
8
+ import { syncStateFromGit } from "./state/sync.js";
4
9
  import { getProjectStatus } from "./status.js";
5
10
  function printHeader() {
6
11
  console.log("\n🔷 LogNexus CLI — Digital Lake");
7
- console.log(" The Git-Powered Context & Rules Framework for Native AI Agents\n");
12
+ console.log(" The Universal Git-Powered Context & Rules Framework for Native AI Agents\n");
8
13
  }
9
14
  function printUsage() {
10
15
  printHeader();
11
16
  console.log(`Usage:
12
- lognexus <command> [options]
17
+ lognexus <command> [subcommand] [options]
13
18
 
14
19
  Commands:
15
20
  init Scaffold .lognexus/ configuration and rules in current repository
16
21
  doctor Check Git, GitHub CLI authentication, and repository rules health
17
22
  status Inspect current branch, active issue, and recommended tier
23
+ state Manage persistent agent state (.lognexus/state.json)
24
+ note Manage Git Notes under refs/notes/lognexus (git-ai standard)
25
+ mcp Start the LogNexus MCP server (stdio JSON-RPC 2.0) for native AI agents
18
26
  help Display this help message
19
27
 
28
+ State Subcommands:
29
+ lognexus state [show] Display current active issue and task state
30
+ lognexus state sync Sync state from current Git branch & GitHub
31
+ lognexus state set-task <id> [t] Set active subtask (e.g. lognexus state set-task T1 "Add schema")
32
+ lognexus state finish-task <id> Mark subtask as completed (e.g. lognexus state finish-task T1)
33
+ lognexus state clear Reset persistent state to empty
34
+
35
+ Note Subcommands:
36
+ lognexus note [show] [commit] Display LogNexus Git Note for commit (default: HEAD)
37
+ lognexus note attach [commit] Attach current session state as Git Note to commit
38
+ lognexus note list List all commits with LogNexus Git Notes
39
+ lognexus note push [remote] Push refs/notes/lognexus to remote (default: origin)
40
+ lognexus note fetch [remote] Fetch refs/notes/lognexus from remote
41
+
42
+ MCP Server:
43
+ lognexus mcp Start MCP server on stdio (JSON-RPC 2.0) for Claude Code,
44
+ Cursor, VS Code, Antigravity or any MCP-compatible client
45
+ Tools: lognexus_status, lognexus_state_get, lognexus_state_sync, lognexus_state_set_task,
46
+ lognexus_state_finish_task, lognexus_state_clear, lognexus_note_show, lognexus_note_attach
47
+ Resources: lognexus://state, lognexus://routing
48
+ Prompts: lognexus-plan, lognexus-review
49
+
20
50
  Examples:
21
51
  npx @digital-lake/lognexus init
22
- npx @digital-lake/lognexus doctor
23
- npx @digital-lake/lognexus status
52
+ npx @digital-lake/lognexus state sync
53
+ npx @digital-lake/lognexus note attach HEAD
54
+ npx @digital-lake/lognexus note show HEAD
55
+ npx @digital-lake/lognexus mcp
24
56
  `);
25
57
  }
26
58
  async function handleInit() {
@@ -63,6 +95,168 @@ async function handleStatus() {
63
95
  console.log(`Rules Routing Mode: ${st.routingMode}`);
64
96
  console.log(`Recommended Tier: ${st.recommendedTier}\n`);
65
97
  }
98
+ async function handleState(args) {
99
+ const sub = args[0]?.toLowerCase() || "show";
100
+ switch (sub) {
101
+ case "show": {
102
+ printHeader();
103
+ const state = loadState();
104
+ console.log("Persistent Agent State (.lognexus/state.json):\n");
105
+ if (state.activeIssue) {
106
+ console.log(`Active Issue: #${state.activeIssue.id} — ${state.activeIssue.title}`);
107
+ console.log(`Branch: ${state.activeIssue.branch}`);
108
+ console.log(`Phase: ${state.activeIssue.phase}`);
109
+ console.log(`Tier: ${state.activeIssue.tier}`);
110
+ console.log(`Readiness: ${state.activeIssue.readiness}`);
111
+ }
112
+ else {
113
+ console.log("Active Issue: (none)");
114
+ }
115
+ console.log("");
116
+ if (state.currentSubtask) {
117
+ console.log(`Current Subtask: ${state.currentSubtask.id} (${state.currentSubtask.status})`);
118
+ if (state.currentSubtask.title) {
119
+ console.log(` Title: ${state.currentSubtask.title}`);
120
+ }
121
+ if (state.currentSubtask.contract) {
122
+ console.log(` Allowed Files: ${state.currentSubtask.contract.allowedFiles.join(", ") || "(all)"}`);
123
+ console.log(` Decision Budget: ${state.currentSubtask.contract.decisionBudget}`);
124
+ if (state.currentSubtask.contract.verificationCmd) {
125
+ console.log(` Verify Command: ${state.currentSubtask.contract.verificationCmd}`);
126
+ }
127
+ }
128
+ }
129
+ else {
130
+ console.log("Current Subtask: (none)");
131
+ }
132
+ console.log(`Completed Tasks: ${state.completedSubtasks.length > 0 ? state.completedSubtasks.join(", ") : "(none)"}`);
133
+ console.log(`Last Synchronized: ${state.lastSync}\n`);
134
+ break;
135
+ }
136
+ case "sync": {
137
+ printHeader();
138
+ console.log("Synchronizing state from current Git branch and GitHub...\n");
139
+ const synced = syncStateFromGit();
140
+ if (synced.activeIssue) {
141
+ console.log(`[OK] Synchronized with Issue #${synced.activeIssue.id} (${synced.activeIssue.title})`);
142
+ console.log(` Branch: ${synced.activeIssue.branch}`);
143
+ }
144
+ else {
145
+ console.log("[OK] Synchronized. No active issue detected on current branch.");
146
+ }
147
+ console.log("");
148
+ break;
149
+ }
150
+ case "set-task": {
151
+ const taskId = args[1];
152
+ const title = args.slice(2).join(" ");
153
+ if (!taskId) {
154
+ console.error("Error: Subtask ID is required (e.g. lognexus state set-task T1 'Add schema')\n");
155
+ process.exit(1);
156
+ }
157
+ printHeader();
158
+ setSubtask(taskId, title);
159
+ console.log(`[OK] Active subtask set to: ${taskId}${title ? ` — ${title}` : ""}\n`);
160
+ break;
161
+ }
162
+ case "finish-task": {
163
+ const taskId = args[1];
164
+ if (!taskId) {
165
+ console.error("Error: Subtask ID is required (e.g. lognexus state finish-task T1)\n");
166
+ process.exit(1);
167
+ }
168
+ printHeader();
169
+ finishSubtask(taskId);
170
+ console.log(`[OK] Subtask ${taskId} marked as completed.\n`);
171
+ break;
172
+ }
173
+ case "clear": {
174
+ printHeader();
175
+ clearState();
176
+ console.log("[OK] Persistent state cleared.\n");
177
+ break;
178
+ }
179
+ default:
180
+ console.error(`Unknown state subcommand: ${sub}\n`);
181
+ printUsage();
182
+ process.exit(1);
183
+ }
184
+ }
185
+ async function handleNote(args) {
186
+ const sub = args[0]?.toLowerCase() || "show";
187
+ switch (sub) {
188
+ case "show": {
189
+ const commit = args[1] || "HEAD";
190
+ printHeader();
191
+ const note = getNote(commit);
192
+ if (note) {
193
+ console.log(`Git Note for commit [${commit}] (refs/notes/lognexus):\n`);
194
+ console.log(note);
195
+ }
196
+ else {
197
+ console.log(`No LogNexus note found attached to commit [${commit}].`);
198
+ console.log("Tip: Run 'lognexus note attach' to attach current state to this commit.");
199
+ }
200
+ console.log("");
201
+ break;
202
+ }
203
+ case "attach": {
204
+ const commit = args[1] || "HEAD";
205
+ printHeader();
206
+ const payload = attachCurrentStateToCommit(commit);
207
+ console.log(`[OK] Attached LogNexus note to commit [${commit}] (refs/notes/lognexus):`);
208
+ console.log(` Issue: ${payload.issue ? `#${payload.issue.id} — ${payload.issue.title}` : "(none)"}`);
209
+ console.log(` Subtask: ${payload.subtask ? `${payload.subtask.id} (${payload.subtask.title})` : "(none)"}`);
210
+ console.log(` Tier: ${payload.tier}\n`);
211
+ break;
212
+ }
213
+ case "list": {
214
+ printHeader();
215
+ const notes = listNotes();
216
+ console.log(`LogNexus Notes (refs/notes/lognexus) — ${notes.length} note(s):\n`);
217
+ if (notes.length === 0) {
218
+ console.log("No notes recorded yet.");
219
+ }
220
+ else {
221
+ for (const n of notes) {
222
+ console.log(` • Commit: ${n.commitSha} (blob: ${n.noteBlob})`);
223
+ }
224
+ }
225
+ console.log("");
226
+ break;
227
+ }
228
+ case "push": {
229
+ const remote = args[1] || "origin";
230
+ printHeader();
231
+ console.log(`Pushing refs/notes/lognexus to ${remote}...`);
232
+ const ok = pushNotes(remote);
233
+ if (ok) {
234
+ console.log(`[OK] Notes pushed to ${remote} successfully.\n`);
235
+ }
236
+ else {
237
+ console.error(`[FAIL] Could not push notes to ${remote}.\n`);
238
+ }
239
+ break;
240
+ }
241
+ case "fetch": {
242
+ const remote = args[1] || "origin";
243
+ printHeader();
244
+ console.log(`Fetching refs/notes/lognexus from ${remote}...`);
245
+ const ok = fetchNotes(remote);
246
+ if (ok) {
247
+ console.log(`[OK] Notes fetched from ${remote} successfully.\n`);
248
+ }
249
+ else {
250
+ console.error(`[FAIL] Could not fetch notes from ${remote}.\n`);
251
+ }
252
+ break;
253
+ }
254
+ default:
255
+ console.error(`Unknown note subcommand: ${sub}\n`);
256
+ printUsage();
257
+ process.exit(1);
258
+ }
259
+ }
66
260
  async function main() {
67
261
  const args = process.argv.slice(2);
68
262
  const command = args[0]?.toLowerCase();
@@ -76,6 +270,16 @@ async function main() {
76
270
  case "status":
77
271
  await handleStatus();
78
272
  break;
273
+ case "state":
274
+ await handleState(args.slice(1));
275
+ break;
276
+ case "note":
277
+ await handleNote(args.slice(1));
278
+ break;
279
+ case "mcp":
280
+ // stdout is reserved for JSON-RPC frames: never print the banner here.
281
+ await startMcpServer();
282
+ break;
79
283
  case "help":
80
284
  case "--help":
81
285
  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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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
  export { checkGit, checkGitHubCli, checkRulesConfig, runDiagnostics } from "./doctor.js";
2
- export { initProject } from "./scaffold.js";
2
+ export { getMcpPrompt, listMcpPrompts, type PromptDefinition, type PromptMessage, type PromptResult, } from "./mcp/prompts.js";
3
+ export { listMcpResources, MCP_RESOURCE_PREFIX, type ResourceDefinition, readMcpResource, } from "./mcp/resources.js";
4
+ export { MCP_PROTOCOL_VERSION, MCP_SERVER_VERSION, processMcpMessage, startMcpServer, } from "./mcp/server.js";
5
+ export { callMcpTool, listMcpTools, MCP_SERVER_NAME, type ToolCallResult, type ToolDefinition, } from "./mcp/tools.js";
6
+ export { attachCurrentStateToCommit, buildStateNotePayload, type GitNotePayload, } from "./notes/attach.js";
7
+ export { attachNote, DEFAULT_NOTES_REF, fetchNotes, getNote, listNotes, type NoteOptions, pushNotes, } from "./notes/notes.js";
8
+ export { DEFAULT_ROUTING_TEMPLATE, initProject } from "./scaffold.js";
9
+ export { clearState, createEmptyState, finishSubtask, getStatePath, loadState, saveState, setSubtask, } from "./state/manager.js";
10
+ export * from "./state/schema.js";
11
+ export { fetchIssueMeta, getBranchName, syncStateFromGit } from "./state/sync.js";
3
12
  export { getProjectStatus } from "./status.js";
4
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,SAAS,EACT,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,13 @@
1
1
  export { checkGit, checkGitHubCli, checkRulesConfig, runDiagnostics } from "./doctor.js";
2
- export { initProject } from "./scaffold.js";
2
+ export { getMcpPrompt, listMcpPrompts, } from "./mcp/prompts.js";
3
+ export { listMcpResources, MCP_RESOURCE_PREFIX, readMcpResource, } from "./mcp/resources.js";
4
+ export { MCP_PROTOCOL_VERSION, MCP_SERVER_VERSION, processMcpMessage, startMcpServer, } from "./mcp/server.js";
5
+ export { callMcpTool, listMcpTools, MCP_SERVER_NAME, } from "./mcp/tools.js";
6
+ export { attachCurrentStateToCommit, buildStateNotePayload, } from "./notes/attach.js";
7
+ export { attachNote, DEFAULT_NOTES_REF, fetchNotes, getNote, listNotes, pushNotes, } from "./notes/notes.js";
8
+ export { DEFAULT_ROUTING_TEMPLATE, initProject } from "./scaffold.js";
9
+ export { clearState, createEmptyState, finishSubtask, getStatePath, loadState, saveState, setSubtask, } from "./state/manager.js";
10
+ export * from "./state/schema.js";
11
+ export { fetchIssueMeta, getBranchName, syncStateFromGit } from "./state/sync.js";
3
12
  export { getProjectStatus } from "./status.js";
4
13
  //# 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,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,YAAY,EACZ,cAAc,GAIf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EAEnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,GAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,SAAS,EAET,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ export declare const MCP_PROMPT_PLAN = "lognexus-plan";
2
+ export declare const MCP_PROMPT_REVIEW = "lognexus-review";
3
+ export interface PromptArgument {
4
+ name: string;
5
+ description: string;
6
+ required: boolean;
7
+ }
8
+ export interface PromptDefinition {
9
+ name: string;
10
+ title: string;
11
+ description: string;
12
+ arguments: PromptArgument[];
13
+ }
14
+ export interface PromptMessage {
15
+ role: "user" | "assistant";
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ };
20
+ }
21
+ export interface PromptResult {
22
+ description: string;
23
+ messages: PromptMessage[];
24
+ }
25
+ export declare class McpPromptError extends Error {
26
+ constructor(message: string);
27
+ }
28
+ export declare function listMcpPrompts(): PromptDefinition[];
29
+ export declare function getMcpPrompt(name: string, args?: Record<string, string>): PromptResult;
30
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAsDD,wBAAgB,cAAc,IAAI,gBAAgB,EAAE,CAEnD;AAyFD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,YAAY,CAc1F"}
@@ -0,0 +1,150 @@
1
+ export const MCP_PROMPT_PLAN = "lognexus-plan";
2
+ export const MCP_PROMPT_REVIEW = "lognexus-review";
3
+ export class McpPromptError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "McpPromptError";
7
+ }
8
+ }
9
+ const PROMPT_DEFINITIONS = [
10
+ {
11
+ name: MCP_PROMPT_PLAN,
12
+ title: "Plan an issue into tier-scoped subtasks",
13
+ description: "Break a LogNexus issue down into ordered, verifiable subtasks with strict closed-delegation contracts delegated to the appropriate model tier.",
14
+ arguments: [
15
+ {
16
+ name: "issue",
17
+ description: "Issue identifier or URL, e.g. '#7' or a GitHub issue link.",
18
+ required: false,
19
+ },
20
+ {
21
+ name: "context",
22
+ description: "Extra architectural context, constraints or acceptance criteria.",
23
+ required: false,
24
+ },
25
+ ],
26
+ },
27
+ {
28
+ name: MCP_PROMPT_REVIEW,
29
+ title: "Run the LogNexus review gate",
30
+ description: "Audit a diff or pull request against the LogNexus review gate before merging into main: contracts, verification, traceability and cross-model attribution.",
31
+ arguments: [
32
+ {
33
+ name: "target",
34
+ description: "Branch, pull request number or commit range under review.",
35
+ required: false,
36
+ },
37
+ {
38
+ name: "diff",
39
+ description: "The diff or changed-files summary to audit.",
40
+ required: false,
41
+ },
42
+ ],
43
+ },
44
+ ];
45
+ const CONTRACT_FORMAT = `### Contract
46
+ - **Allowed files:** \`path/to/file.ts\`, \`tests/file.test.ts\`
47
+ - **Must not change:** \`package.json\` dependencies, public interfaces
48
+ - **Stop and ask if:** the compiler requires new third-party dependencies
49
+ - **Verification required:** \`npm run build && npm run lint && npm test\` must pass
50
+ - **Decision budget:** \`none\``;
51
+ const TIER_TABLE = `| Tier | Role | Example models | Typical work |
52
+ | --- | --- | --- | --- |
53
+ | tier-1 | Reasoning, architecture, review | Claude Opus, OpenAI o3, Gemini Pro, DeepSeek R1 | Issue decomposition, architectural decisions, review gate |
54
+ | tier-2 | Large-context discovery and triage | Claude Sonnet, GPT-4.1, Gemini Pro (1M), DeepSeek V3 | Repository exploration, discovery triage |
55
+ | tier-3 | Scoped execution | Claude Haiku, GPT-4o-mini, Gemini Flash, DeepSeek Chat | Single-contract subtasks, atomic commits |`;
56
+ export function listMcpPrompts() {
57
+ return PROMPT_DEFINITIONS;
58
+ }
59
+ function textPrompt(description, text) {
60
+ return {
61
+ description,
62
+ messages: [
63
+ {
64
+ role: "user",
65
+ content: { type: "text", text },
66
+ },
67
+ ],
68
+ };
69
+ }
70
+ function buildPlanPrompt(issue, context) {
71
+ const issueLine = issue ? `Target issue: ${issue}` : "Target issue: (the issue currently open)";
72
+ const contextBlock = context ? `\nAdditional context provided by the user:\n\n${context}\n` : "";
73
+ const text = `You are the tier-1 orchestrator for a LogNexus-governed repository. Plan the work described below as small, independently verifiable subtasks that a cheaper execution model can complete without improvising.
74
+
75
+ ${issueLine}
76
+ ${contextBlock}
77
+ ## Rules
78
+
79
+ 1. Decompose the work into ordered subtasks, each named \`[tier-X]\` according to the model tier suited to it.
80
+ 2. Every subtask must carry a closed delegation contract. Never leave a subtask open-ended.
81
+ 3. Subtasks must not overlap in the files they touch. If they would, split further or sequence them.
82
+ 4. Each subtask must end in a state where the verification command passes.
83
+ 5. Prefer the lowest tier that can safely complete the subtask. Escalate to tier-1 only for decisions the executor must not make.
84
+ 6. Do not invent dependencies or APIs. If a capability is missing, the subtask must say "stop and ask".
85
+
86
+ ## Tier taxonomy
87
+
88
+ ${TIER_TABLE}
89
+
90
+ ## Contract format (mandatory)
91
+
92
+ ${CONTRACT_FORMAT}
93
+
94
+ ## Output format
95
+
96
+ For each subtask emit exactly:
97
+
98
+ ### [tier-X] <short imperative title>
99
+ - **Branch / commit:** \`feat(#<issue>/T<n>)\` or \`fix(#<issue>/T<n>)\`
100
+ - **Scope:** one or two sentences describing the exact change.
101
+
102
+ ${CONTRACT_FORMAT}
103
+
104
+ Finally, propose the single verification command that gates the whole issue.`;
105
+ return textPrompt("Breakdown of an issue into tier-scoped subtasks with strict closed-delegation contracts.", text);
106
+ }
107
+ function buildReviewPrompt(target, diff) {
108
+ const targetLine = target ? `Under review: ${target}` : "Under review: the current branch diff";
109
+ const diffBlock = diff ? `\nDiff to audit:\n\n\`\`\`diff\n${diff}\n\`\`\`\n` : "";
110
+ const text = `You are the LogNexus review gate (tier-1). Your job is to decide whether the change below may be merged into \`main\`. Be strict and evidence-driven.
111
+
112
+ ${targetLine}
113
+ ${diffBlock}
114
+ ## Gate checklist
115
+
116
+ 1. **Contract compliance**: every changed file is inside the subtask's allowed files, and no file listed as forbidden was touched.
117
+ 2. **Verification**: \`npm run build\`, \`npm run lint\` and \`npm test\` pass on the delivered code. Ask for the actual command output if it is missing.
118
+ 3. **Scope**: no unrelated refactor, no unrequested dependency in \`package.json\`, no dead code or commented-out blocks.
119
+ 4. **Correctness**: edge cases, error paths, encoding/line-ending handling and platform differences (Windows vs POSIX) are addressed.
120
+ 5. **Traceability**: commits follow \`feat(#N/Tk)\` / \`fix(#N/Tk)\`, and the PR links the issue and the subtask contracts.
121
+ 6. **Attribution**: authorship trailers (\`Authored-by\`, \`Reviewed-by\`, \`Last-code-by\`) are present and the reviewer differs from the code author.
122
+ 7. **Tests**: new behaviour is covered by tests that fail when the behaviour is reverted. Tests must not be weakened to make them pass.
123
+
124
+ ## Output format
125
+
126
+ Emit a verdict first, then the evidence:
127
+
128
+ - **Verdict:** APPROVE | REQUEST CHANGES
129
+ - **Blocking findings:** numbered list, each with \`path/to/file.ts:line\` and the concrete fix.
130
+ - **Non-blocking findings:** numbered list, or "none".
131
+ - **Verification observed:** which commands were run and their result.
132
+
133
+ Never approve on partial evidence. If a check cannot be verified from what you were given, list it as blocking.`;
134
+ return textPrompt("Review gate checklist for merging a branch into main.", text);
135
+ }
136
+ export function getMcpPrompt(name, args = {}) {
137
+ const issue = args.issue?.trim() || undefined;
138
+ const context = args.context?.trim() || undefined;
139
+ const target = args.target?.trim() || undefined;
140
+ const diff = args.diff?.trim() || undefined;
141
+ switch (name) {
142
+ case MCP_PROMPT_PLAN:
143
+ return buildPlanPrompt(issue, context);
144
+ case MCP_PROMPT_REVIEW:
145
+ return buildReviewPrompt(target, diff);
146
+ default:
147
+ throw new McpPromptError(`Unknown LogNexus prompt: '${name}'.`);
148
+ }
149
+ }
150
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const MCP_RESOURCE_PREFIX = "lognexus://";
2
+ export declare const STATE_RESOURCE_URI = "lognexus://state";
3
+ export declare const ROUTING_RESOURCE_URI = "lognexus://routing";
4
+ export interface ResourceDefinition {
5
+ uri: string;
6
+ name: string;
7
+ description: string;
8
+ mimeType: string;
9
+ }
10
+ export interface ResourceContent {
11
+ uri: string;
12
+ mimeType: string;
13
+ text: string;
14
+ }
15
+ export interface ResourceReadResult {
16
+ contents: ResourceContent[];
17
+ }
18
+ export declare class McpResourceError extends Error {
19
+ constructor(message: string);
20
+ }
21
+ export declare function listMcpResources(): ResourceDefinition[];
22
+ export declare function readStateResource(targetDir?: string): ResourceReadResult;
23
+ export declare function readRoutingResource(targetDir?: string): ResourceReadResult;
24
+ export declare function readMcpResource(uri: string, targetDir?: string): ResourceReadResult;
25
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,kBAAkB,qBAAgC,CAAC;AAChE,eAAO,MAAM,oBAAoB,uBAAkC,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAmBD,wBAAgB,gBAAgB,IAAI,kBAAkB,EAAE,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,MAAsB,GAAG,kBAAkB,CAUvF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAsB,GAAG,kBAAkB,CAwBzF;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAsB,GAChC,kBAAkB,CASpB"}