@fingerskier/augment 0.1.5 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -4
- package/dist/cli.d.ts +7 -1
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -1
- package/dist/daemon/client.d.ts +1 -0
- package/dist/daemon/client.js +4 -4
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/http.js +38 -14
- package/dist/daemon/http.js.map +1 -1
- package/dist/dashboard/assets.d.ts +18 -0
- package/dist/dashboard/assets.js +349 -0
- package/dist/dashboard/assets.js.map +1 -0
- package/dist/db.d.ts +1 -0
- package/dist/db.js +4 -0
- package/dist/db.js.map +1 -1
- package/dist/install.js +5 -1
- package/dist/install.js.map +1 -1
- package/dist/memory/files.d.ts +1 -0
- package/dist/memory/files.js +5 -1
- package/dist/memory/files.js.map +1 -1
- package/dist/service.d.ts +11 -1
- package/dist/service.js +50 -1
- package/dist/service.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/docs/FEATURES.md +1 -1
- package/integrations/claude/CLAUDE.md +58 -56
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,17 +2,86 @@
|
|
|
2
2
|
|
|
3
3
|
Local RAG memory for coding agents.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
## Quickstart
|
|
6
|
+
|
|
7
|
+
One command wires Augment into your agent. No clone, no build.
|
|
8
|
+
|
|
9
|
+
**Claude Code:**
|
|
10
|
+
|
|
11
|
+
```powershell
|
|
12
|
+
npx -y @fingerskier/augment install claude --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Codex:**
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
npx -y @fingerskier/augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Both at once:**
|
|
22
|
+
|
|
23
|
+
```powershell
|
|
24
|
+
npx -y @fingerskier/augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Restart the agent and the `augment` memory tools appear. Swap `--scope user`
|
|
28
|
+
(your home dir) for `--scope repo` to install into the current project. Add
|
|
29
|
+
`--dry-run` to preview every file write first. Details:
|
|
30
|
+
[Install Agent Integrations](#install-agent-integrations).
|
|
31
|
+
|
|
32
|
+
## CLI Commands
|
|
33
|
+
|
|
34
|
+
Run any command without a clone via `npx -y @fingerskier/augment <command>`:
|
|
35
|
+
|
|
36
|
+
| Command | What it does |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `status` | Print the resolved config (memory root, state dir, daemon). Default command; `config` is an alias. |
|
|
39
|
+
| `dashboard` | Start the daemon (if needed) and open the memory graph web UI. `--no-open` just prints the URL. |
|
|
40
|
+
| `install <codex\|claude\|all>` | Wire Augment into an agent. See [Quickstart](#quickstart). |
|
|
41
|
+
| `recall "<task>"` | Print the memory that would be recalled for a task (what the hooks auto-inject). |
|
|
42
|
+
| `hook <event>` | Run a lifecycle hook over stdin JSON. Host-wired by `install`; you rarely call it directly. |
|
|
43
|
+
| `help` | Show full usage (also `--help`, `-h`). |
|
|
44
|
+
|
|
45
|
+
Examples:
|
|
46
|
+
|
|
47
|
+
```powershell
|
|
48
|
+
npx -y @fingerskier/augment status
|
|
49
|
+
npx -y @fingerskier/augment dashboard
|
|
50
|
+
npx -y @fingerskier/augment dashboard --no-open
|
|
51
|
+
npx -y @fingerskier/augment recall "fix the daemon reconnect bug" --project fingerskier/augment --limit 5
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`status`, `dashboard`, and `recall` honor `AUGMENT_MEMORY_ROOT` /
|
|
55
|
+
`~/.augment/config.json`; `dashboard` also honors `AUGMENT_DAEMON_PORT`. Inside
|
|
56
|
+
this repo use the compiled bin instead — see
|
|
57
|
+
[Run Locally](#run-locally).
|
|
58
|
+
|
|
59
|
+
## Overview
|
|
60
|
+
|
|
61
|
+
Augment is durable, local, project-scoped memory for coding agents.
|
|
62
|
+
It stores memories as plain markdown files, maintains a rebuildable local index, and serves them over an MCP server backed by a shared local daemon —
|
|
63
|
+
so several agents can share one memory folder without each running its own watcher/indexer.
|
|
64
|
+
Your memories stay on disk; nothing leaves the machine.
|
|
65
|
+
|
|
66
|
+
The point is to close the loop on every coding session:
|
|
67
|
+
1. **You prompt.** The agent starts a task and searches Augment for relevant prior context.
|
|
68
|
+
2. **Memories retrieved.** Governing specs, architecture decisions, known issues, and past work surface as direct context — no re-explaining what was already decided.
|
|
69
|
+
3. **Work done.** The agent implements against that context instead of guessing.
|
|
70
|
+
4. **Memories updated.** Durable outcomes — requirements (`SPEC`), decisions (`ARCH`), bugs (`ISSUE`), deferred work (`TODO`), milestones (`WORK`) — are written back and linked, ready for the next session.
|
|
71
|
+
|
|
72
|
+
Over time the memory folder becomes a project's institutional knowledge:
|
|
73
|
+
queryable by semantic search, browsable as a graph in the [dashboard](#dashboard), and portable across machines via relative paths.
|
|
74
|
+
For example, you could set your memory-root at a Dropbox folder and use them on multiple machines-
|
|
75
|
+
paths and linkages are relative to that path so the search index is rebuildable and useable on multiple systems at once.
|
|
7
76
|
|
|
8
77
|
Feature details live in [docs/FEATURES.md](docs/FEATURES.md).
|
|
9
78
|
The implementation plan lives in [PLAN.md](PLAN.md).
|
|
10
79
|
|
|
11
80
|
----
|
|
12
81
|
|
|
13
|
-
## Install
|
|
82
|
+
## Install From Source
|
|
14
83
|
|
|
15
|
-
|
|
84
|
+
For development inside this repo:
|
|
16
85
|
|
|
17
86
|
```powershell
|
|
18
87
|
npm install
|
|
@@ -196,6 +265,28 @@ under `~/.augment/npm-exec` so they work even when launched from this repository
|
|
|
196
265
|
Run these package commands from outside this repository. When developing inside
|
|
197
266
|
this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
|
|
198
267
|
|
|
268
|
+
## Dashboard
|
|
269
|
+
|
|
270
|
+
A local web UI for browsing and editing memories as a graph:
|
|
271
|
+
|
|
272
|
+
```powershell
|
|
273
|
+
npx -y @fingerskier/augment dashboard
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
This starts the shared daemon (if needed) and opens the dashboard in your browser.
|
|
277
|
+
It shows a graph of all projects; click a project to drill into its memory
|
|
278
|
+
subgraph (nodes colored by kind, edges labeled by link type). You can run an ad
|
|
279
|
+
hoc semantic search, create/edit/delete memories, and create/delete links — all
|
|
280
|
+
against the daemon's localhost API.
|
|
281
|
+
|
|
282
|
+
- `augment dashboard` — start the daemon and open the UI.
|
|
283
|
+
- `augment dashboard --no-open` — just print the URL (honors `AUGMENT_DAEMON_PORT`).
|
|
284
|
+
|
|
285
|
+
The daemon binds `127.0.0.1` only and serves the dashboard and its API without
|
|
286
|
+
auth — anyone who needs to expose it beyond localhost should front it with their
|
|
287
|
+
own gateway. Developing inside this repo, use `node .\dist\bin\augment.js
|
|
288
|
+
dashboard` after `npm run build`.
|
|
289
|
+
|
|
199
290
|
## Package Check
|
|
200
291
|
|
|
201
292
|
Before publishing:
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { type RecallOptions } from "./recall.js";
|
|
2
|
-
/**
|
|
2
|
+
/** Endpoint the dashboard page needs to reach the daemon's API (loopback, no auth). */
|
|
3
|
+
export interface DashboardDaemon {
|
|
4
|
+
endpoint: string;
|
|
5
|
+
}
|
|
6
|
+
/** Injectable seams so `recall`/`hook`/`dashboard` are testable without touching the daemon, browser, or real stdin. */
|
|
3
7
|
export interface RunCliDeps {
|
|
4
8
|
recall?: (options: RecallOptions) => Promise<string>;
|
|
5
9
|
readStdin?: () => Promise<string>;
|
|
10
|
+
connectDashboardDaemon?: () => Promise<DashboardDaemon>;
|
|
11
|
+
openUrl?: (url: string) => Promise<void>;
|
|
6
12
|
}
|
|
7
13
|
export declare function runCli(args: string[], deps?: RunCliDeps): Promise<void>;
|
|
8
14
|
/** Human-readable usage shown by `augment help`, `--help`, `-h`, and on unknown commands. */
|
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
1
2
|
import { loadConfig } from "./config.js";
|
|
3
|
+
import { connectOrStartDaemon } from "./daemon/client.js";
|
|
2
4
|
import { runHook } from "./hooks.js";
|
|
3
5
|
import { defaultClaudeRunner, installIntegration } from "./install.js";
|
|
4
6
|
import { recall as defaultRecall } from "./recall.js";
|
|
@@ -24,6 +26,17 @@ export async function runCli(args, deps = {}) {
|
|
|
24
26
|
}
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
29
|
+
if (command === "dashboard") {
|
|
30
|
+
const { open } = parseDashboardArgs(args.slice(1));
|
|
31
|
+
const connect = deps.connectDashboardDaemon ?? defaultConnectDashboardDaemon;
|
|
32
|
+
const { endpoint } = await connect();
|
|
33
|
+
const url = `${endpoint}/dashboard`;
|
|
34
|
+
console.log(`Augment dashboard: ${url}`);
|
|
35
|
+
if (open) {
|
|
36
|
+
await (deps.openUrl ?? defaultOpenUrl)(url);
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
27
40
|
if (command === "recall") {
|
|
28
41
|
const recall = deps.recall ?? defaultRecall;
|
|
29
42
|
const text = await recall(parseRecallArgs(args.slice(1)));
|
|
@@ -59,10 +72,15 @@ export function helpText() {
|
|
|
59
72
|
" status Print the resolved configuration (default command).",
|
|
60
73
|
" config Alias for status.",
|
|
61
74
|
" install <target> Install an agent integration (see below).",
|
|
75
|
+
" dashboard Open the memory dashboard (project/memory graph + search + CRUD).",
|
|
62
76
|
" recall <query> Print memory recalled for a task (auto-injected by hooks).",
|
|
63
77
|
" hook <event> Run a lifecycle hook over stdin JSON (host-wired; see below).",
|
|
64
78
|
" help Show this help (also --help, -h).",
|
|
65
79
|
"",
|
|
80
|
+
"DASHBOARD",
|
|
81
|
+
" augment dashboard [--no-open] Start the daemon (if needed) and open the web UI.",
|
|
82
|
+
" Honors AUGMENT_DAEMON_PORT; --no-open just prints the URL.",
|
|
83
|
+
"",
|
|
66
84
|
"RECALL",
|
|
67
85
|
" augment recall \"<task text>\" [--project ORG/REPO] [--cwd PATH]",
|
|
68
86
|
" [--limit N] [--max-chars N] [--min-score F]",
|
|
@@ -90,6 +108,30 @@ export function helpText() {
|
|
|
90
108
|
"Docs: https://www.npmjs.com/package/@fingerskier/augment",
|
|
91
109
|
].join("\n");
|
|
92
110
|
}
|
|
111
|
+
function parseDashboardArgs(args) {
|
|
112
|
+
let open = true;
|
|
113
|
+
for (const arg of args) {
|
|
114
|
+
if (arg === "--no-open") {
|
|
115
|
+
open = false;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
throw new Error(`Unknown dashboard option: ${arg}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { open };
|
|
122
|
+
}
|
|
123
|
+
async function defaultConnectDashboardDaemon() {
|
|
124
|
+
const client = await connectOrStartDaemon();
|
|
125
|
+
return { endpoint: client.endpoint };
|
|
126
|
+
}
|
|
127
|
+
async function defaultOpenUrl(url) {
|
|
128
|
+
const platform = process.platform;
|
|
129
|
+
const command = platform === "win32" ? "cmd" : platform === "darwin" ? "open" : "xdg-open";
|
|
130
|
+
// On Windows, `start` treats the first quoted arg as the window title, so pass an empty one.
|
|
131
|
+
const commandArgs = platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
132
|
+
const child = spawn(command, commandArgs, { detached: true, stdio: "ignore" });
|
|
133
|
+
child.unref();
|
|
134
|
+
}
|
|
93
135
|
function parseRecallArgs(args) {
|
|
94
136
|
const queryParts = [];
|
|
95
137
|
const options = { query: "" };
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAyC,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,MAAM,IAAI,aAAa,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/client.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { DaemonInfo } from "../types.js";
|
|
|
3
3
|
export declare class DaemonClient {
|
|
4
4
|
private readonly info;
|
|
5
5
|
constructor(info: DaemonInfo);
|
|
6
|
+
get endpoint(): string;
|
|
6
7
|
initProject(input: unknown): Promise<unknown>;
|
|
7
8
|
listProjects(name?: string): Promise<unknown>;
|
|
8
9
|
search(input: unknown): Promise<unknown>;
|
package/dist/daemon/client.js
CHANGED
|
@@ -9,6 +9,9 @@ export class DaemonClient {
|
|
|
9
9
|
constructor(info) {
|
|
10
10
|
this.info = info;
|
|
11
11
|
}
|
|
12
|
+
get endpoint() {
|
|
13
|
+
return this.info.endpoint;
|
|
14
|
+
}
|
|
12
15
|
async initProject(input) {
|
|
13
16
|
return this.post("/projects/init", input);
|
|
14
17
|
}
|
|
@@ -46,10 +49,7 @@ export class DaemonClient {
|
|
|
46
49
|
async request(method, pathname, body) {
|
|
47
50
|
const response = await fetch(new URL(pathname, this.info.endpoint), {
|
|
48
51
|
method,
|
|
49
|
-
headers: {
|
|
50
|
-
authorization: `Bearer ${this.info.token}`,
|
|
51
|
-
"content-type": "application/json",
|
|
52
|
-
},
|
|
52
|
+
headers: { "content-type": "application/json" },
|
|
53
53
|
body: body === undefined ? undefined : JSON.stringify(body),
|
|
54
54
|
});
|
|
55
55
|
const payload = (await response.json().catch(() => ({})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAGhF,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAa;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAc;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,IAAa;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAc;QACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClE,MAAM;YACN,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/http.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
1
|
import { writeFile } from "node:fs/promises";
|
|
3
2
|
import http from "node:http";
|
|
4
3
|
import chokidar from "chokidar";
|
|
5
4
|
import { EMBEDDING_MODEL_ID } from "../constants.js";
|
|
5
|
+
import { cytoscapeBundleJs, dashboardAsset } from "../dashboard/assets.js";
|
|
6
6
|
export async function startHttpDaemon(config, service) {
|
|
7
7
|
await service.init();
|
|
8
|
-
const token = randomBytes(32).toString("hex");
|
|
9
8
|
const server = http.createServer((request, response) => {
|
|
10
|
-
handleRequest(service,
|
|
9
|
+
handleRequest(service, request, response).catch((error) => {
|
|
11
10
|
sendJson(response, 500, { error: errorMessage(error) });
|
|
12
11
|
});
|
|
13
12
|
});
|
|
@@ -26,7 +25,6 @@ export async function startHttpDaemon(config, service) {
|
|
|
26
25
|
const info = {
|
|
27
26
|
pid: process.pid,
|
|
28
27
|
endpoint: `http://127.0.0.1:${address.port}`,
|
|
29
|
-
token,
|
|
30
28
|
memoryRoot: config.memoryRoot,
|
|
31
29
|
model: EMBEDDING_MODEL_ID,
|
|
32
30
|
startedAt: new Date().toISOString(),
|
|
@@ -61,16 +59,26 @@ export async function startHttpDaemon(config, service) {
|
|
|
61
59
|
},
|
|
62
60
|
};
|
|
63
61
|
}
|
|
64
|
-
async function handleRequest(service,
|
|
62
|
+
async function handleRequest(service, request, response) {
|
|
65
63
|
const url = new URL(request.url ?? "/", "http://127.0.0.1");
|
|
66
64
|
if (request.method === "GET" && url.pathname === "/health") {
|
|
67
65
|
sendJson(response, 200, { ok: true, pid: process.pid, title: process.title });
|
|
68
66
|
return;
|
|
69
67
|
}
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
// The daemon binds 127.0.0.1 only, so every route — UI shell and data alike —
|
|
69
|
+
// is served straight off the loopback interface with no auth. Anyone wanting to
|
|
70
|
+
// expose this beyond localhost is expected to put their own gateway in front.
|
|
71
|
+
if (request.method === "GET" && url.pathname === "/dashboard/cytoscape.min.js") {
|
|
72
|
+
sendText(response, 200, "application/javascript; charset=utf-8", await cytoscapeBundleJs());
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
75
|
+
if (request.method === "GET") {
|
|
76
|
+
const asset = dashboardAsset(url.pathname);
|
|
77
|
+
if (asset) {
|
|
78
|
+
sendText(response, 200, asset.contentType, asset.body);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
74
82
|
if (request.method === "POST" && url.pathname === "/projects/init") {
|
|
75
83
|
sendJson(response, 200, await service.initProject(await readJson(request)));
|
|
76
84
|
return;
|
|
@@ -79,6 +87,21 @@ async function handleRequest(service, token, request, response) {
|
|
|
79
87
|
sendJson(response, 200, await service.listProjects(url.searchParams.get("name") ?? undefined));
|
|
80
88
|
return;
|
|
81
89
|
}
|
|
90
|
+
const graphMatch = /^\/projects\/(\d+)\/graph$/.exec(url.pathname);
|
|
91
|
+
if (request.method === "GET" && graphMatch) {
|
|
92
|
+
sendJson(response, 200, await service.projectGraph(Number(graphMatch[1])));
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (request.method === "GET" && url.pathname === "/memories") {
|
|
96
|
+
const raw = url.searchParams.get("project_id");
|
|
97
|
+
const projectId = Number(raw);
|
|
98
|
+
if (raw === null || !Number.isInteger(projectId) || projectId <= 0) {
|
|
99
|
+
sendJson(response, 400, { error: "project_id query parameter must be a positive integer" });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
sendJson(response, 200, await service.listMemoriesByProject(projectId));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
82
105
|
if (request.method === "POST" && url.pathname === "/memories/search") {
|
|
83
106
|
sendJson(response, 200, await service.search(await readJson(request)));
|
|
84
107
|
return;
|
|
@@ -92,6 +115,10 @@ async function handleRequest(service, token, request, response) {
|
|
|
92
115
|
sendJson(response, 200, await service.read(Number(memoryMatch[1])));
|
|
93
116
|
return;
|
|
94
117
|
}
|
|
118
|
+
if (request.method === "DELETE" && memoryMatch) {
|
|
119
|
+
sendJson(response, 200, await service.deleteMemory(Number(memoryMatch[1])));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
95
122
|
if (request.method === "POST" && url.pathname === "/links") {
|
|
96
123
|
const body = (await readJson(request));
|
|
97
124
|
sendJson(response, 200, await service.link(body.from_memory_id, body.to_memory_id, body.type));
|
|
@@ -117,13 +144,6 @@ async function handleRequest(service, token, request, response) {
|
|
|
117
144
|
}
|
|
118
145
|
sendJson(response, 404, { error: "not found" });
|
|
119
146
|
}
|
|
120
|
-
function authorized(request, token) {
|
|
121
|
-
const authorization = request.headers.authorization;
|
|
122
|
-
if (authorization === `Bearer ${token}`) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
return request.headers["x-augment-token"] === token;
|
|
126
|
-
}
|
|
127
147
|
async function readJson(request) {
|
|
128
148
|
const chunks = [];
|
|
129
149
|
for await (const chunk of request) {
|
|
@@ -136,6 +156,10 @@ function sendJson(response, status, body) {
|
|
|
136
156
|
response.writeHead(status, { "content-type": "application/json; charset=utf-8" });
|
|
137
157
|
response.end(JSON.stringify(body));
|
|
138
158
|
}
|
|
159
|
+
function sendText(response, status, contentType, body) {
|
|
160
|
+
response.writeHead(status, { "content-type": contentType });
|
|
161
|
+
response.end(body);
|
|
162
|
+
}
|
|
139
163
|
function errorMessage(error) {
|
|
140
164
|
return error instanceof Error ? error.message : String(error);
|
|
141
165
|
}
|
package/dist/daemon/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/daemon/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/daemon/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dashboard is a single static page (served by the daemon) that talks to the
|
|
3
|
+
* daemon's JSON API. Assets are embedded as string constants so `tsc` compiles them
|
|
4
|
+
* straight into `dist/` — no asset-copy step, matching the project's no-frontend-build
|
|
5
|
+
* approach. The only external file is Cytoscape, resolved from node_modules at runtime
|
|
6
|
+
* (works offline; ships as a normal dependency of the published package).
|
|
7
|
+
*/
|
|
8
|
+
export interface DashboardAsset {
|
|
9
|
+
contentType: string;
|
|
10
|
+
body: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const DASHBOARD_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>Augment \u2014 Memory Dashboard</title>\n <link rel=\"stylesheet\" href=\"/dashboard/styles.css\" />\n <script src=\"/dashboard/cytoscape.min.js\"></script>\n</head>\n<body>\n <header>\n <div class=\"brand\">augment</div>\n <nav id=\"breadcrumb\"><a href=\"#\" data-nav=\"projects\">Projects</a></nav>\n <form id=\"search-form\" autocomplete=\"off\">\n <input id=\"search-input\" type=\"search\" placeholder=\"Search memories\u2026\" />\n <button type=\"submit\">Search</button>\n </form>\n <button id=\"new-memory-btn\" type=\"button\" title=\"New memory\">+ Memory</button>\n </header>\n <main>\n <div id=\"cy\"></div>\n <aside id=\"inspector\">\n <div id=\"inspector-body\" class=\"muted\">Select a project to explore its memories.</div>\n </aside>\n </main>\n <div id=\"toast\" hidden></div>\n <script src=\"/dashboard/app.js\"></script>\n</body>\n</html>\n";
|
|
13
|
+
export declare const DASHBOARD_CSS = ":root {\n --bg: #0f1419; --panel: #161b22; --line: #2a313c; --fg: #e6edf3; --muted: #8b949e;\n --accent: #58a6ff; --danger: #f85149; --ok: #3fb950;\n --spec: #58a6ff; --arch: #bc8cff; --issue: #f85149; --todo: #d29922; --work: #3fb950;\n}\n* { box-sizing: border-box; }\nhtml, body { margin: 0; height: 100%; background: var(--bg); color: var(--fg);\n font: 14px/1.5 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }\nheader { display: flex; align-items: center; gap: 12px; padding: 8px 14px;\n background: var(--panel); border-bottom: 1px solid var(--line); }\n.brand { font-weight: 700; letter-spacing: .5px; color: var(--accent); }\n#breadcrumb { flex: 0 0 auto; color: var(--muted); }\n#breadcrumb a { color: var(--accent); text-decoration: none; }\n#breadcrumb span.sep { color: var(--muted); margin: 0 6px; }\n#search-form { margin-left: auto; display: flex; gap: 6px; }\ninput, select, textarea, button { font: inherit; color: var(--fg);\n background: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 6px 9px; }\ninput:focus, select:focus, textarea:focus { outline: 1px solid var(--accent); }\nbutton { background: #21262d; cursor: pointer; }\nbutton:hover { border-color: var(--accent); }\nbutton.primary { background: var(--accent); color: #04121f; border-color: var(--accent); font-weight: 600; }\nbutton.danger { color: var(--danger); border-color: var(--danger); }\nmain { display: flex; height: calc(100% - 49px); }\n#cy { flex: 1; height: 100%; }\n#inspector { width: 360px; flex: 0 0 360px; height: 100%; overflow-y: auto;\n background: var(--panel); border-left: 1px solid var(--line); padding: 14px; }\n#inspector h2 { font-size: 15px; margin: 0 0 4px; }\n#inspector .meta { color: var(--muted); font-size: 12px; margin-bottom: 10px; word-break: break-all; }\n#inspector label { display: block; color: var(--muted); font-size: 12px; margin: 10px 0 3px; }\n#inspector input, #inspector select, #inspector textarea { width: 100%; }\n#inspector textarea { min-height: 180px; resize: vertical; font-family: ui-monospace, monospace; }\n.row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }\n.row button { flex: 1 1 auto; }\n.muted { color: var(--muted); }\n.kind-pill { display: inline-block; padding: 1px 7px; border-radius: 10px; font-size: 11px;\n font-weight: 600; color: #04121f; }\n.result { padding: 8px; border: 1px solid var(--line); border-radius: 6px; margin-bottom: 6px; cursor: pointer; }\n.result:hover { border-color: var(--accent); }\n.result .name { font-weight: 600; }\n.result .sub { color: var(--muted); font-size: 12px; }\n#toast { position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);\n background: #21262d; border: 1px solid var(--line); border-radius: 6px; padding: 8px 14px; }\n#toast.err { border-color: var(--danger); color: var(--danger); }\n#toast.ok { border-color: var(--ok); color: var(--ok); }\n";
|
|
14
|
+
export declare const DASHBOARD_JS: string;
|
|
15
|
+
/** Static dashboard asset for a pathname, or undefined if the path is not a dashboard asset. */
|
|
16
|
+
export declare function dashboardAsset(pathname: string): DashboardAsset | undefined;
|
|
17
|
+
/** The bundled Cytoscape UMD build (resolved from node_modules), cached after first read. */
|
|
18
|
+
export declare function cytoscapeBundleJs(): Promise<string>;
|