@memstate/setup
Advanced tools
| export {}; | ||
| //# sourceMappingURL=agents.test.d.ts.map |
| {"version":3,"file":"agents.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/agents.test.ts"],"names":[],"mappings":""} |
| import { describe, it, beforeEach, afterEach } from "node:test"; | ||
| import assert from "node:assert/strict"; | ||
| import * as fs from "fs"; | ||
| import * as path from "path"; | ||
| import * as os from "os"; | ||
| import { getAgents, writeMcpConfig, appendInstructionBlock, safeParseJson, mcpServerStanza, detectProjectId, } from "../agents.js"; | ||
| /** Create a temporary directory for each test */ | ||
| function makeTmpDir() { | ||
| return fs.mkdtempSync(path.join(os.tmpdir(), "memstate-test-")); | ||
| } | ||
| function cleanup(dir) { | ||
| fs.rmSync(dir, { recursive: true, force: true }); | ||
| } | ||
| // ─── safeParseJson ────────────────────────────────────────────────────────── | ||
| describe("safeParseJson", () => { | ||
| it("parses valid JSON object", () => { | ||
| const result = safeParseJson('{"key": "value"}'); | ||
| assert.deepEqual(result, { key: "value" }); | ||
| }); | ||
| it("returns null for invalid JSON", () => { | ||
| assert.equal(safeParseJson("{broken"), null); | ||
| assert.equal(safeParseJson(""), null); | ||
| assert.equal(safeParseJson("null"), null); | ||
| assert.equal(safeParseJson('"string"'), null); | ||
| assert.equal(safeParseJson("[1,2,3]"), null); | ||
| }); | ||
| it("parses nested objects", () => { | ||
| const result = safeParseJson('{"mcpServers": {"memstate": {"command": "npx"}}}'); | ||
| assert.ok(result); | ||
| assert.ok("mcpServers" in result); | ||
| }); | ||
| }); | ||
| // ─── mcpServerStanza ──────────────────────────────────────────────────────── | ||
| describe("mcpServerStanza", () => { | ||
| it("returns valid stanza with default key", () => { | ||
| const stanza = mcpServerStanza(); | ||
| assert.equal(stanza.command, "npx"); | ||
| assert.deepEqual(stanza.args, ["-y", "@memstate/mcp"]); | ||
| assert.deepEqual(stanza.env, { MEMSTATE_API_KEY: "YOUR_API_KEY_HERE" }); | ||
| }); | ||
| it("uses provided API key", () => { | ||
| const stanza = mcpServerStanza("mst_test123"); | ||
| assert.deepEqual(stanza.env, { MEMSTATE_API_KEY: "mst_test123" }); | ||
| }); | ||
| }); | ||
| // ─── getAgents ────────────────────────────────────────────────────────────── | ||
| describe("getAgents", () => { | ||
| it("returns at least 12 agent configurations", () => { | ||
| const agents = getAgents("/tmp/fake-project"); | ||
| assert.ok(agents.length >= 12, `Expected >= 12 agents, got ${agents.length}`); | ||
| }); | ||
| it("includes all major agents", () => { | ||
| const agents = getAgents("/tmp/fake-project"); | ||
| const ids = agents.map((a) => a.id); | ||
| const required = [ | ||
| "claude-code", "claude-desktop", "cursor", "windsurf", "cline", | ||
| "kilo", "copilot", "gemini", "roo", "amazon-q", "zed", "agents-md", "other", | ||
| ]; | ||
| for (const id of required) { | ||
| assert.ok(ids.includes(id), `Missing agent: ${id}`); | ||
| } | ||
| }); | ||
| it("each agent has required fields", () => { | ||
| const agents = getAgents("/tmp/fake-project"); | ||
| for (const agent of agents) { | ||
| assert.ok(agent.id, `Agent missing id`); | ||
| assert.ok(agent.name, `Agent ${agent.id} missing name`); | ||
| assert.ok(agent.mcpConfigPath, `Agent ${agent.id} missing mcpConfigPath`); | ||
| assert.ok(agent.mcpKey === "mcpServers" || agent.mcpKey === "servers", `Agent ${agent.id} has invalid mcpKey: ${agent.mcpKey}`); | ||
| } | ||
| }); | ||
| it("copilot uses 'servers' key", () => { | ||
| const agents = getAgents("/tmp/fake-project"); | ||
| const copilot = agents.find((a) => a.id === "copilot"); | ||
| assert.ok(copilot); | ||
| assert.equal(copilot.mcpKey, "servers"); | ||
| }); | ||
| it("claude-code uses correct config path", () => { | ||
| const agents = getAgents("/tmp/fake-project"); | ||
| const claude = agents.find((a) => a.id === "claude-code"); | ||
| assert.ok(claude); | ||
| assert.ok(claude.mcpConfigPath.endsWith(".claude.json"), `Expected .claude.json, got ${claude.mcpConfigPath}`); | ||
| assert.ok(!claude.mcpConfigPath.includes("claude_desktop_config"), `Claude Code should NOT use claude_desktop_config.json`); | ||
| }); | ||
| it("detects agents based on filesystem", () => { | ||
| const tmp = makeTmpDir(); | ||
| try { | ||
| // Create .cursor directory to simulate Cursor being installed | ||
| fs.mkdirSync(path.join(tmp, ".cursor")); | ||
| const agents = getAgents(tmp); | ||
| const cursor = agents.find((a) => a.id === "cursor"); | ||
| assert.ok(cursor?.detected, "Cursor should be detected when .cursor exists"); | ||
| // Agent without directory should not be detected | ||
| const roo = agents.find((a) => a.id === "roo"); | ||
| assert.ok(!roo?.detected, "Roo should not be detected without .roo directory"); | ||
| } | ||
| finally { | ||
| cleanup(tmp); | ||
| } | ||
| }); | ||
| }); | ||
| // ─── writeMcpConfig ───────────────────────────────────────────────────────── | ||
| describe("writeMcpConfig", () => { | ||
| let tmp; | ||
| beforeEach(() => { | ||
| tmp = makeTmpDir(); | ||
| }); | ||
| afterEach(() => { | ||
| cleanup(tmp); | ||
| }); | ||
| it("creates new config file from scratch", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| const result = writeMcpConfig(configPath, "mst_test123"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.created); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.mcpServers.memstate); | ||
| assert.equal(content.mcpServers.memstate.env.MEMSTATE_API_KEY, "mst_test123"); | ||
| }); | ||
| it("creates nested directories if needed", () => { | ||
| const configPath = path.join(tmp, "deep", "nested", "mcp.json"); | ||
| const result = writeMcpConfig(configPath, "mst_test"); | ||
| assert.ok(result.success); | ||
| assert.ok(fs.existsSync(configPath)); | ||
| }); | ||
| it("preserves existing servers", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| const existing = { | ||
| mcpServers: { | ||
| "other-server": { command: "node", args: ["server.js"] }, | ||
| }, | ||
| }; | ||
| fs.writeFileSync(configPath, JSON.stringify(existing)); | ||
| const result = writeMcpConfig(configPath, "mst_key"); | ||
| assert.ok(result.success); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.mcpServers["other-server"], "Existing server should be preserved"); | ||
| assert.ok(content.mcpServers.memstate, "Memstate should be added"); | ||
| }); | ||
| it("updates existing memstate entry", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| const existing = { | ||
| mcpServers: { | ||
| memstate: { command: "npx", args: ["-y", "@memstate/mcp"], env: { MEMSTATE_API_KEY: "old_key" } }, | ||
| }, | ||
| }; | ||
| fs.writeFileSync(configPath, JSON.stringify(existing)); | ||
| const result = writeMcpConfig(configPath, "new_key"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.message.includes("replaced"), `Expected 'replaced' in message, got: ${result.message}`); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.equal(content.mcpServers.memstate.env.MEMSTATE_API_KEY, "new_key"); | ||
| }); | ||
| it("uses 'servers' key when specified", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| const result = writeMcpConfig(configPath, "mst_test", "servers"); | ||
| assert.ok(result.success); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.servers.memstate, "Should use 'servers' key"); | ||
| assert.ok(!content.mcpServers, "Should NOT have 'mcpServers' key"); | ||
| }); | ||
| it("respects existing key format (servers vs mcpServers)", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| // Pre-existing file using "servers" key | ||
| fs.writeFileSync(configPath, JSON.stringify({ servers: { "other": { command: "node" } } })); | ||
| // Even if agent says mcpServers, should use existing "servers" key | ||
| const result = writeMcpConfig(configPath, "mst_test", "mcpServers"); | ||
| assert.ok(result.success); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.servers.memstate, "Should use existing 'servers' key"); | ||
| assert.ok(content.servers.other, "Should preserve existing 'other' server"); | ||
| }); | ||
| it("handles malformed JSON with backup", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| fs.writeFileSync(configPath, "{broken json here!!!}"); | ||
| const result = writeMcpConfig(configPath, "mst_test"); | ||
| assert.ok(result.success); | ||
| // Verify backup was created | ||
| const files = fs.readdirSync(tmp); | ||
| const backups = files.filter((f) => f.includes(".bak.")); | ||
| assert.ok(backups.length > 0, "Should create backup of malformed file"); | ||
| // Verify new valid config | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.mcpServers.memstate); | ||
| }); | ||
| it("handles empty file", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| fs.writeFileSync(configPath, ""); | ||
| const result = writeMcpConfig(configPath, "mst_test"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.created, "Empty file should be treated as new"); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.ok(content.mcpServers.memstate); | ||
| }); | ||
| it("output is always valid JSON", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| // Write complex existing config | ||
| const complex = { | ||
| mcpServers: { | ||
| "server-1": { command: "node", args: ["--flag", "value with spaces"] }, | ||
| "server-2": { command: "python3", env: { KEY: "val\"ue" } }, | ||
| }, | ||
| someOtherConfig: true, | ||
| }; | ||
| fs.writeFileSync(configPath, JSON.stringify(complex)); | ||
| writeMcpConfig(configPath, "mst_test"); | ||
| const raw = fs.readFileSync(configPath, "utf-8"); | ||
| assert.doesNotThrow(() => JSON.parse(raw), "Output must be valid JSON"); | ||
| }); | ||
| it("is idempotent — running twice produces same result", () => { | ||
| const configPath = path.join(tmp, "mcp.json"); | ||
| writeMcpConfig(configPath, "mst_test"); | ||
| const first = fs.readFileSync(configPath, "utf-8"); | ||
| writeMcpConfig(configPath, "mst_test"); | ||
| const second = fs.readFileSync(configPath, "utf-8"); | ||
| assert.equal(first, second, "Running twice should produce identical output"); | ||
| }); | ||
| it("preserves non-MCP config keys", () => { | ||
| const configPath = path.join(tmp, "settings.json"); | ||
| fs.writeFileSync(configPath, JSON.stringify({ | ||
| theme: "dark", | ||
| fontSize: 14, | ||
| mcpServers: {}, | ||
| })); | ||
| writeMcpConfig(configPath, "mst_test"); | ||
| const content = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| assert.equal(content.theme, "dark"); | ||
| assert.equal(content.fontSize, 14); | ||
| assert.ok(content.mcpServers.memstate); | ||
| }); | ||
| }); | ||
| // ─── appendInstructionBlock ───────────────────────────────────────────────── | ||
| describe("appendInstructionBlock", () => { | ||
| let tmp; | ||
| beforeEach(() => { | ||
| tmp = makeTmpDir(); | ||
| }); | ||
| afterEach(() => { | ||
| cleanup(tmp); | ||
| }); | ||
| it("creates new instruction file", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.equal(result.message, "Created"); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.includes("BEGIN MEMSTATE-AI INSTRUCTIONS")); | ||
| assert.ok(content.includes("END MEMSTATE-AI INSTRUCTIONS")); | ||
| assert.ok(content.includes("my_app")); | ||
| assert.ok(content.includes("memstate_get")); | ||
| }); | ||
| it("creates nested directories", () => { | ||
| const filePath = path.join(tmp, ".cursor", "rules", "memstate.mdc"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.ok(fs.existsSync(filePath)); | ||
| }); | ||
| it("appends to existing file without memstate content", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| fs.writeFileSync(filePath, "# My Project\n\nExisting content here.\n"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.equal(result.message, "Appended"); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.startsWith("# My Project"), "Original content should be preserved"); | ||
| assert.ok(content.includes("BEGIN MEMSTATE-AI INSTRUCTIONS")); | ||
| }); | ||
| it("updates existing instruction block in place", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| // First install | ||
| appendInstructionBlock(filePath, "old_project"); | ||
| const firstContent = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(firstContent.includes("old_project")); | ||
| // Second install — should update, not append | ||
| const result = appendInstructionBlock(filePath, "new_project"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.message.includes("Updated"), `Expected 'Updated', got: ${result.message}`); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.includes("new_project")); | ||
| assert.ok(!content.includes("old_project"), "Old project ID should be replaced"); | ||
| // Should only have one set of markers | ||
| const beginCount = (content.match(/BEGIN MEMSTATE-AI INSTRUCTIONS/g) || []).length; | ||
| assert.equal(beginCount, 1, "Should only have one instruction block"); | ||
| }); | ||
| it("skips files that already have manual memstate content", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| fs.writeFileSync(filePath, "# Project\n\nUse memstate_get before tasks.\n"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.message.includes("already present")); | ||
| }); | ||
| it("replaces legacy marker content", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| fs.writeFileSync(filePath, "# Project\n\n<!-- memstate-ai -->\nOld stuff\n"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.ok(result.message.includes("legacy")); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.includes("BEGIN MEMSTATE-AI INSTRUCTIONS")); | ||
| }); | ||
| it("is idempotent — running twice is a no-op", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| appendInstructionBlock(filePath, "my_app"); | ||
| const first = fs.readFileSync(filePath, "utf-8"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.equal(result.message, "Already up to date"); | ||
| const second = fs.readFileSync(filePath, "utf-8"); | ||
| assert.equal(first, second); | ||
| }); | ||
| it("adds MDC frontmatter for .mdc files", () => { | ||
| const filePath = path.join(tmp, "memstate.mdc"); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.startsWith("---\nalwaysApply: true\n---"), "MDC files should have frontmatter"); | ||
| }); | ||
| it("does NOT add MDC frontmatter for .md files", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| appendInstructionBlock(filePath, "my_app"); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(!content.includes("alwaysApply"), "MD files should not have MDC frontmatter"); | ||
| }); | ||
| it("replaces project ID placeholders in custom content", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| const customContent = 'Call memstate_get(project_id="<your_project>") before tasks.'; | ||
| appendInstructionBlock(filePath, "acme_api", customContent); | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| assert.ok(content.includes("acme_api")); | ||
| assert.ok(!content.includes("<your_project>")); | ||
| }); | ||
| it("handles file with only whitespace", () => { | ||
| const filePath = path.join(tmp, "CLAUDE.md"); | ||
| fs.writeFileSync(filePath, " \n\n "); | ||
| const result = appendInstructionBlock(filePath, "my_app"); | ||
| assert.ok(result.success); | ||
| assert.equal(result.message, "Appended"); | ||
| }); | ||
| }); | ||
| // ─── detectProjectId ──────────────────────────────────────────────────────── | ||
| describe("detectProjectId", () => { | ||
| it("returns null for non-git directories", () => { | ||
| const tmp = makeTmpDir(); | ||
| try { | ||
| const result = detectProjectId(tmp); | ||
| assert.equal(result, null); | ||
| } | ||
| finally { | ||
| cleanup(tmp); | ||
| } | ||
| }); | ||
| it("normalizes names to snake_case", () => { | ||
| // Test the normalization logic directly | ||
| const normalize = (s) => s.toLowerCase().replace(/[^a-z0-9_]/g, "_"); | ||
| assert.equal(normalize("My-App"), "my_app"); | ||
| assert.equal(normalize("UPPER_CASE"), "upper_case"); | ||
| assert.equal(normalize("special!chars@here"), "special_chars_here"); | ||
| }); | ||
| }); | ||
| //# sourceMappingURL=agents.test.js.map |
| {"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../src/__tests__/agents.test.ts"],"names":[],"mappings":"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"} |
+20
-3
@@ -0,1 +1,5 @@ | ||
| /** Canonical instruction content URL — single source of truth */ | ||
| export declare const INSTRUCTIONS_URL = "https://memstate.ai/files/use-memstate-memory.md"; | ||
| /** Version embedded in instruction blocks — bump when format changes */ | ||
| export declare const INSTRUCTION_VERSION = "v2"; | ||
| export interface Agent { | ||
@@ -12,2 +16,4 @@ id: string; | ||
| mcpConfigLabel: string; | ||
| /** JSON key for MCP servers — "mcpServers" or "servers" */ | ||
| mcpKey: "mcpServers" | "servers"; | ||
| /** Absolute path to the agent instruction file (CLAUDE.md, .clinerules, etc.) */ | ||
@@ -26,7 +32,13 @@ instructionPath?: string; | ||
| /** | ||
| * Safely parse JSON with detailed error reporting. | ||
| * Returns the parsed object or null if invalid. | ||
| */ | ||
| export declare function safeParseJson(content: string): Record<string, unknown> | null; | ||
| /** | ||
| * Write or update an MCP config file to include the memstate server. | ||
| * Handles both `{ mcpServers: {...} }` and `{ servers: {...} }` shapes. | ||
| * Preserves existing servers. Validates JSON output before writing. | ||
| * Returns { success, message, created } | ||
| */ | ||
| export declare function writeMcpConfig(configPath: string, apiKey: string): { | ||
| export declare function writeMcpConfig(configPath: string, apiKey: string, mcpKey?: "mcpServers" | "servers"): { | ||
| success: boolean; | ||
@@ -41,4 +53,9 @@ message: string; | ||
| }; | ||
| /** Append the Memstate workflow block to an agent instruction file */ | ||
| export declare function appendInstructionBlock(filePath: string, projectId: string): { | ||
| /** | ||
| * Fetch the latest instructions from the hosted URL. | ||
| * Falls back to the bundled version if network is unavailable. | ||
| */ | ||
| export declare function fetchInstructions(): Promise<string>; | ||
| /** Append or update the Memstate instruction block in an agent file */ | ||
| export declare function appendInstructionBlock(filePath: string, projectId: string, instructionContent?: string): { | ||
| success: boolean; | ||
@@ -45,0 +62,0 @@ message: string; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAqH/C;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa1D;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,MAAM,SAAsB,GAAG,MAAM,CAQpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAwCzD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBvC;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiEvC"} | ||
| {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAKA,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,qDAAqD,CAAC;AAEnF,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAgM/C;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa1D;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,MAAM,SAAsB,GAAG,MAAM,CAQpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,YAAY,GAAG,SAAwB,GAC9C;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAkEzD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkBvC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAWzD;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuEvC"} |
+263
-96
@@ -5,2 +5,6 @@ import * as fs from "fs"; | ||
| import { execSync } from "child_process"; | ||
| /** Canonical instruction content URL — single source of truth */ | ||
| export const INSTRUCTIONS_URL = "https://memstate.ai/files/use-memstate-memory.md"; | ||
| /** Version embedded in instruction blocks — bump when format changes */ | ||
| export const INSTRUCTION_VERSION = "v2"; | ||
| export function getAgents(root) { | ||
@@ -10,3 +14,2 @@ const home = os.homedir(); | ||
| const isWin = process.platform === "win32"; | ||
| // Claude Desktop config path varies by OS | ||
| const claudeDesktopConfig = isMac | ||
@@ -17,2 +20,14 @@ ? path.join(home, "Library", "Application Support", "Claude", "claude_desktop_config.json") | ||
| : path.join(home, ".config", "Claude", "claude_desktop_config.json"); | ||
| // Cline stores MCP settings deep in VS Code extension storage | ||
| const clineConfigPath = isMac | ||
| ? path.join(home, "Library", "Application Support", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json") | ||
| : isWin | ||
| ? path.join(home, "AppData", "Roaming", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json") | ||
| : path.join(home, ".config", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json"); | ||
| // VS Code global MCP config (used by Copilot, Roo Code, etc.) | ||
| const vscodeGlobalMcp = isMac | ||
| ? path.join(home, "Library", "Application Support", "Code", "User", "mcp.json") | ||
| : isWin | ||
| ? path.join(home, "AppData", "Roaming", "Code", "User", "mcp.json") | ||
| : path.join(home, ".config", "Code", "User", "mcp.json"); | ||
| return [ | ||
@@ -25,29 +40,19 @@ // ── Claude Code ────────────────────────────────────────────────────────── | ||
| skillPath: path.join(root, ".claude", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: path.join(home, ".claude", "claude_desktop_config.json"), | ||
| mcpConfigLabel: "~/.claude/claude_desktop_config.json", | ||
| mcpConfigPath: path.join(home, ".claude.json"), | ||
| mcpConfigLabel: "~/.claude.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, "CLAUDE.md"), | ||
| instructionLabel: "CLAUDE.md", | ||
| }, | ||
| // ── AGENTS.md (Generic standard) ───────────────────────────────────────── | ||
| // ── Claude Desktop ─────────────────────────────────────────────────────── | ||
| { | ||
| id: "agents-md", | ||
| name: "AGENTS.md (Generic)", | ||
| detected: fs.existsSync(path.join(root, "AGENTS.md")), | ||
| skillPath: path.join(root, ".agents", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: path.join(root, "mcp.json"), | ||
| mcpConfigLabel: "mcp.json", | ||
| instructionPath: path.join(root, "AGENTS.md"), | ||
| instructionLabel: "AGENTS.md", | ||
| id: "claude-desktop", | ||
| name: "Claude Desktop", | ||
| detected: fs.existsSync(claudeDesktopConfig) || fs.existsSync(path.dirname(claudeDesktopConfig)), | ||
| skillPath: path.join(home, ".claude", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: claudeDesktopConfig, | ||
| mcpConfigLabel: claudeDesktopConfig.replace(home, "~"), | ||
| mcpKey: "mcpServers", | ||
| isGlobal: true, | ||
| }, | ||
| // ── GEMINI.md ──────────────────────────────────────────────────────────── | ||
| { | ||
| id: "gemini-md", | ||
| name: "GEMINI.md", | ||
| detected: fs.existsSync(path.join(root, "GEMINI.md")), | ||
| skillPath: path.join(root, ".gemini", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: path.join(root, "mcp.json"), | ||
| mcpConfigLabel: "mcp.json", | ||
| instructionPath: path.join(root, "GEMINI.md"), | ||
| instructionLabel: "GEMINI.md", | ||
| }, | ||
| // ── Cursor ─────────────────────────────────────────────────────────────── | ||
@@ -62,17 +67,6 @@ { | ||
| mcpConfigLabel: ".cursor/mcp.json", | ||
| // For MCP installs, we just want a standard markdown rule, not an MDC skill file | ||
| instructionPath: path.join(root, ".cursor", "rules", "memstate-ai-mcp.mdc"), | ||
| instructionLabel: ".cursor/rules/memstate-ai-mcp.mdc", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".cursor", "rules", "use-memstate-memory.mdc"), | ||
| instructionLabel: ".cursor/rules/use-memstate-memory.mdc", | ||
| }, | ||
| // ── Cline ──────────────────────────────────────────────────────────────── | ||
| { | ||
| id: "cline", | ||
| name: "Cline (VS Code)", | ||
| detected: fs.existsSync(path.join(root, ".clinerules")), | ||
| skillPath: path.join(root, ".clinerules", "memstate-ai.md"), | ||
| mcpConfigPath: path.join(home, ".vscode", "cline_mcp_settings.json"), | ||
| mcpConfigLabel: "~/.vscode/cline_mcp_settings.json", | ||
| instructionPath: path.join(root, ".clinerules", "memstate-ai.md"), | ||
| instructionLabel: ".clinerules/memstate-ai.md", | ||
| }, | ||
| // ── Windsurf ───────────────────────────────────────────────────────────── | ||
@@ -87,5 +81,19 @@ { | ||
| mcpConfigLabel: "~/.codeium/windsurf/mcp_config.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".windsurf", "rules", "memstate-ai.md"), | ||
| instructionLabel: ".windsurf/rules/memstate-ai.md", | ||
| }, | ||
| // ── Cline ──────────────────────────────────────────────────────────────── | ||
| { | ||
| id: "cline", | ||
| name: "Cline (VS Code)", | ||
| detected: fs.existsSync(path.join(root, ".clinerules")) || | ||
| fs.existsSync(path.dirname(clineConfigPath)), | ||
| skillPath: path.join(root, ".clinerules", "memstate-ai.md"), | ||
| mcpConfigPath: clineConfigPath, | ||
| mcpConfigLabel: clineConfigPath.replace(home, "~"), | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".clinerules", "memstate-ai.md"), | ||
| instructionLabel: ".clinerules/memstate-ai.md", | ||
| }, | ||
| // ── Kilo Code ──────────────────────────────────────────────────────────── | ||
@@ -100,15 +108,81 @@ { | ||
| mcpConfigLabel: ".kilocode/mcp.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".kilocode", "rules", "memstate-ai.md"), | ||
| instructionLabel: ".kilocode/rules/memstate-ai.md", | ||
| }, | ||
| // ── Claude Desktop ─────────────────────────────────────────────────────── | ||
| // ── GitHub Copilot ─────────────────────────────────────────────────────── | ||
| { | ||
| id: "claude-desktop", | ||
| name: "Claude Desktop", | ||
| detected: fs.existsSync(claudeDesktopConfig), | ||
| skillPath: path.join(home, ".claude", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: claudeDesktopConfig, | ||
| mcpConfigLabel: claudeDesktopConfig.replace(home, "~"), | ||
| isGlobal: true, | ||
| id: "copilot", | ||
| name: "GitHub Copilot", | ||
| detected: fs.existsSync(path.join(root, ".vscode")) || | ||
| fs.existsSync(path.join(root, ".github", "copilot-instructions.md")), | ||
| skillPath: path.join(root, ".github", "memstate-ai-skill.md"), | ||
| mcpConfigPath: path.join(root, ".vscode", "mcp.json"), | ||
| mcpConfigLabel: ".vscode/mcp.json", | ||
| mcpKey: "servers", | ||
| instructionPath: path.join(root, ".github", "copilot-instructions.md"), | ||
| instructionLabel: ".github/copilot-instructions.md", | ||
| }, | ||
| // ── Gemini CLI ─────────────────────────────────────────────────────────── | ||
| { | ||
| id: "gemini", | ||
| name: "Gemini CLI", | ||
| detected: fs.existsSync(path.join(home, ".gemini")), | ||
| skillPath: path.join(root, ".gemini", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: path.join(home, ".gemini", "settings.json"), | ||
| mcpConfigLabel: "~/.gemini/settings.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, "GEMINI.md"), | ||
| instructionLabel: "GEMINI.md", | ||
| }, | ||
| // ── Roo Code ───────────────────────────────────────────────────────────── | ||
| { | ||
| id: "roo", | ||
| name: "Roo Code", | ||
| detected: fs.existsSync(path.join(root, ".roo")) || | ||
| fs.existsSync(path.join(root, ".roomodes")), | ||
| skillPath: path.join(root, ".roo", "rules", "memstate-ai.md"), | ||
| mcpConfigPath: path.join(root, ".roo", "mcp.json"), | ||
| mcpConfigLabel: ".roo/mcp.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".roo", "rules", "memstate-ai.md"), | ||
| instructionLabel: ".roo/rules/memstate-ai.md", | ||
| }, | ||
| // ── Amazon Q Developer ─────────────────────────────────────────────────── | ||
| { | ||
| id: "amazon-q", | ||
| name: "Amazon Q Developer", | ||
| detected: fs.existsSync(path.join(home, ".aws", "amazonq")), | ||
| skillPath: path.join(root, ".amazonq", "rules", "memstate-ai.md"), | ||
| mcpConfigPath: path.join(home, ".aws", "amazonq", "mcp.json"), | ||
| mcpConfigLabel: "~/.aws/amazonq/mcp.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".amazonq", "rules", "memstate-ai.md"), | ||
| instructionLabel: ".amazonq/rules/memstate-ai.md", | ||
| }, | ||
| // ── Zed ────────────────────────────────────────────────────────────────── | ||
| { | ||
| id: "zed", | ||
| name: "Zed", | ||
| detected: fs.existsSync(path.join(home, ".config", "zed")) || | ||
| fs.existsSync(path.join(root, ".zed")), | ||
| skillPath: path.join(root, ".zed", "memstate-ai.md"), | ||
| mcpConfigPath: path.join(root, ".zed", "settings.json"), | ||
| mcpConfigLabel: ".zed/settings.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, ".zed", "rules", "memstate-ai.md"), | ||
| instructionLabel: ".zed/rules/memstate-ai.md", | ||
| }, | ||
| // ── AGENTS.md (Generic standard) ───────────────────────────────────────── | ||
| { | ||
| id: "agents-md", | ||
| name: "AGENTS.md (Codex / Other)", | ||
| detected: fs.existsSync(path.join(root, "AGENTS.md")), | ||
| skillPath: path.join(root, ".agents", "skills", "memstate-ai", "SKILL.md"), | ||
| mcpConfigPath: path.join(root, "mcp.json"), | ||
| mcpConfigLabel: "mcp.json", | ||
| mcpKey: "mcpServers", | ||
| instructionPath: path.join(root, "AGENTS.md"), | ||
| instructionLabel: "AGENTS.md", | ||
| }, | ||
| // ── Generic / Other ────────────────────────────────────────────────────── | ||
@@ -122,2 +196,3 @@ { | ||
| mcpConfigLabel: "mcp.json", | ||
| mcpKey: "mcpServers", | ||
| }, | ||
@@ -153,23 +228,52 @@ ]; | ||
| /** | ||
| * Safely parse JSON with detailed error reporting. | ||
| * Returns the parsed object or null if invalid. | ||
| */ | ||
| export function safeParseJson(content) { | ||
| try { | ||
| const parsed = JSON.parse(content); | ||
| if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) { | ||
| return null; | ||
| } | ||
| return parsed; | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| } | ||
| /** | ||
| * Write or update an MCP config file to include the memstate server. | ||
| * Handles both `{ mcpServers: {...} }` and `{ servers: {...} }` shapes. | ||
| * Preserves existing servers. Validates JSON output before writing. | ||
| * Returns { success, message, created } | ||
| */ | ||
| export function writeMcpConfig(configPath, apiKey) { | ||
| export function writeMcpConfig(configPath, apiKey, mcpKey = "mcpServers") { | ||
| try { | ||
| const dir = path.dirname(configPath); | ||
| fs.mkdirSync(dir, { recursive: true }); | ||
| // Resolve symlinks if the file exists to ensure we're editing the real target | ||
| // Resolve symlinks to avoid writing to the wrong file | ||
| let resolvedPath = configPath; | ||
| if (fs.existsSync(configPath)) { | ||
| configPath = fs.realpathSync(configPath); | ||
| resolvedPath = fs.realpathSync(configPath); | ||
| } | ||
| let config = {}; | ||
| let created = false; | ||
| if (fs.existsSync(configPath)) { | ||
| try { | ||
| config = JSON.parse(fs.readFileSync(configPath, "utf-8")); | ||
| let hadExistingMemstate = false; | ||
| if (fs.existsSync(resolvedPath)) { | ||
| const rawContent = fs.readFileSync(resolvedPath, "utf-8").trim(); | ||
| if (rawContent === "") { | ||
| // Empty file — treat as new | ||
| created = true; | ||
| } | ||
| catch { | ||
| // Malformed JSON — start fresh but keep a backup | ||
| fs.copyFileSync(configPath, configPath + ".bak"); | ||
| else { | ||
| const parsed = safeParseJson(rawContent); | ||
| if (parsed === null) { | ||
| // Malformed JSON — backup and start fresh | ||
| const backupPath = resolvedPath + ".bak." + Date.now(); | ||
| fs.copyFileSync(resolvedPath, backupPath); | ||
| created = true; | ||
| } | ||
| else { | ||
| config = parsed; | ||
| } | ||
| } | ||
@@ -180,10 +284,20 @@ } | ||
| } | ||
| // Support both common MCP config shapes | ||
| const key = "mcpServers" in config ? "mcpServers" : "mcpServers"; | ||
| // Detect which key the file already uses | ||
| const existingKey = "servers" in config ? "servers" : "mcpServers" in config ? "mcpServers" : mcpKey; | ||
| const key = existingKey; | ||
| if (!config[key] || typeof config[key] !== "object") { | ||
| config[key] = {}; | ||
| } | ||
| config[key]["memstate"] = mcpServerStanza(apiKey); | ||
| fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8"); | ||
| return { success: true, message: created ? "Created" : "Updated", created }; | ||
| const servers = config[key]; | ||
| hadExistingMemstate = "memstate" in servers; | ||
| servers["memstate"] = mcpServerStanza(apiKey); | ||
| // Validate output JSON before writing | ||
| const output = JSON.stringify(config, null, 2) + "\n"; | ||
| const reparse = safeParseJson(output); | ||
| if (reparse === null) { | ||
| return { success: false, message: "Internal error: generated invalid JSON", created: false }; | ||
| } | ||
| fs.writeFileSync(resolvedPath, output, "utf-8"); | ||
| const message = created ? "Created" : hadExistingMemstate ? "Updated (replaced existing memstate entry)" : "Updated (added memstate)"; | ||
| return { success: true, message, created }; | ||
| } | ||
@@ -203,6 +317,7 @@ catch (err) { | ||
| fs.mkdirSync(dir, { recursive: true }); | ||
| let resolvedPath = skillPath; | ||
| if (fs.existsSync(skillPath)) { | ||
| skillPath = fs.realpathSync(skillPath); | ||
| resolvedPath = fs.realpathSync(skillPath); | ||
| } | ||
| fs.writeFileSync(skillPath, content, "utf-8"); | ||
| fs.writeFileSync(resolvedPath, content, "utf-8"); | ||
| return { success: true, message: "Installed" }; | ||
@@ -217,34 +332,46 @@ } | ||
| } | ||
| /** Append the Memstate workflow block to an agent instruction file */ | ||
| export function appendInstructionBlock(filePath, projectId) { | ||
| /** | ||
| * Fetch the latest instructions from the hosted URL. | ||
| * Falls back to the bundled version if network is unavailable. | ||
| */ | ||
| export async function fetchInstructions() { | ||
| try { | ||
| const res = await fetch(INSTRUCTIONS_URL, { signal: AbortSignal.timeout(5000) }); | ||
| if (res.ok) { | ||
| const text = await res.text(); | ||
| if (text.includes("memstate_get")) | ||
| return text; | ||
| } | ||
| } | ||
| catch { | ||
| // Network unavailable — use fallback | ||
| } | ||
| return FALLBACK_INSTRUCTIONS; | ||
| } | ||
| /** Append or update the Memstate instruction block in an agent file */ | ||
| export function appendInstructionBlock(filePath, projectId, instructionContent) { | ||
| const BEGIN_MARKER = "<!-- BEGIN MEMSTATE-AI INSTRUCTIONS -->"; | ||
| const END_MARKER = "<!-- END MEMSTATE-AI INSTRUCTIONS -->"; | ||
| const VERSION = "v1"; // Used to track instruction block versions in the future if needed | ||
| const block = `${BEGIN_MARKER} | ||
| ## Memory (Memstate AI) | ||
| This project uses [Memstate AI](https://memstate.ai) for persistent, versioned memory. | ||
| ### Before each task | ||
| \`\`\` | ||
| memstate_get(project_id="${projectId}") | ||
| \`\`\` | ||
| ### After each task | ||
| \`\`\` | ||
| memstate_remember( | ||
| project_id="${projectId}", | ||
| content="## Task Summary\\n- What was done\\n- Key decisions\\n- Files modified", | ||
| source="agent" | ||
| ) | ||
| \`\`\` | ||
| ${END_MARKER}`; | ||
| // Build the instruction content, replacing placeholders with actual project ID | ||
| let content = instructionContent || FALLBACK_INSTRUCTIONS; | ||
| content = content | ||
| .replace(/<your_project>/g, projectId) | ||
| .replace(/my_project/g, projectId); | ||
| // For Cursor .mdc files, prepend the frontmatter | ||
| const isMdc = filePath.endsWith(".mdc"); | ||
| const mdcFrontmatter = "---\nalwaysApply: true\n---\n\n"; | ||
| const block = `${BEGIN_MARKER}\n${content}\n${END_MARKER}`; | ||
| const fullBlock = isMdc ? mdcFrontmatter + block : block; | ||
| try { | ||
| const dir = path.dirname(filePath); | ||
| fs.mkdirSync(dir, { recursive: true }); | ||
| let resolvedPath = filePath; | ||
| if (fs.existsSync(filePath)) { | ||
| filePath = fs.realpathSync(filePath); | ||
| const existing = fs.readFileSync(filePath, "utf-8"); | ||
| // If the block exists, replace it | ||
| resolvedPath = fs.realpathSync(filePath); | ||
| } | ||
| if (fs.existsSync(resolvedPath)) { | ||
| const existing = fs.readFileSync(resolvedPath, "utf-8"); | ||
| // If our markers exist, replace the block (update in place) | ||
| if (existing.includes(BEGIN_MARKER) && existing.includes(END_MARKER)) { | ||
| const regex = new RegExp(`${BEGIN_MARKER}[\\s\\S]*?${END_MARKER}`, "g"); | ||
| const regex = new RegExp(`${escapeRegex(BEGIN_MARKER)}[\\s\\S]*?${escapeRegex(END_MARKER)}`, "g"); | ||
| const updated = existing.replace(regex, block); | ||
@@ -254,19 +381,24 @@ if (existing === updated) { | ||
| } | ||
| fs.writeFileSync(filePath, updated, "utf-8"); | ||
| return { success: true, message: "Updated" }; | ||
| fs.writeFileSync(resolvedPath, updated, "utf-8"); | ||
| return { success: true, message: "Updated to latest instructions" }; | ||
| } | ||
| // Handle legacy marker | ||
| // Handle legacy marker from older versions | ||
| const LEGACY_MARKER = "<!-- memstate-ai -->"; | ||
| if (existing.includes(LEGACY_MARKER)) { | ||
| // We can't safely regex the legacy block since it had no end marker, | ||
| // but we can append the new one and warn the user. | ||
| fs.appendFileSync(filePath, "\n" + block + "\n", "utf-8"); | ||
| return { success: true, message: "Appended (legacy block detected)" }; | ||
| const legacy = existing.replace(LEGACY_MARKER, ""); | ||
| fs.writeFileSync(resolvedPath, legacy.trimEnd() + "\n\n" + block + "\n", "utf-8"); | ||
| return { success: true, message: "Replaced legacy instructions" }; | ||
| } | ||
| // Otherwise, just append | ||
| fs.appendFileSync(filePath, "\n" + block + "\n", "utf-8"); | ||
| // Check for existing memstate content without markers | ||
| if (existing.includes("memstate_get") || existing.includes("Memstate MCP")) { | ||
| // Don't double-add — wrap existing content in markers on next run | ||
| return { success: true, message: "Memstate instructions already present (manual)" }; | ||
| } | ||
| // Append to existing file | ||
| fs.appendFileSync(resolvedPath, "\n\n" + block + "\n", "utf-8"); | ||
| return { success: true, message: "Appended" }; | ||
| } | ||
| else { | ||
| fs.writeFileSync(filePath, block + "\n", "utf-8"); | ||
| // Create new file | ||
| fs.writeFileSync(resolvedPath, fullBlock + "\n", "utf-8"); | ||
| return { success: true, message: "Created" }; | ||
@@ -282,2 +414,37 @@ } | ||
| } | ||
| function escapeRegex(s) { | ||
| return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); | ||
| } | ||
| /** Bundled fallback instructions — used when network is unavailable */ | ||
| const FALLBACK_INSTRUCTIONS = `# Memstate MCP - Memory Storage | ||
| This project uses Memstate MCP for persistent, versioned memory across sessions. | ||
| ## REQUIRED: Start and end every task with memory | ||
| **BEFORE starting any task**, load existing context so you don't redo past work or revert intentional decisions: | ||
| \`\`\` | ||
| memstate_get(project_id="<your_project>") | ||
| \`\`\` | ||
| **AFTER completing any task**, save what you did so the next session has context: | ||
| \`\`\` | ||
| memstate_remember(project_id="<your_project>", content="## Task Summary\\n- What was done\\n- Key decisions made\\n- Files modified", source="agent") | ||
| \`\`\` | ||
| These two calls are mandatory. Skipping them means the next session starts blind. | ||
| ## Tool reference | ||
| | Tool | When to use | | ||
| |------|-------------| | ||
| | memstate_get | **Start of every task.** Browse project tree or fetch content at a keypath. | | ||
| | memstate_remember | **End of every task.** Save markdown summaries, notes, decisions. | | ||
| | memstate_search | Find memories by meaning when you don't know the exact keypath. | | ||
| | memstate_set | Store a single key=value fact (e.g. config.port). Not for summaries. | | ||
| | memstate_history | View version history of a keypath. | | ||
| | memstate_delete | Soft-delete a keypath (history preserved). | | ||
| ## Project naming | ||
| Use a short snake_case name matching your repo or topic (e.g. my_app, api_service). All related memories should share the same project_id.`; | ||
| //# sourceMappingURL=agents.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqBzC,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,mBAAmB,GAAG,KAAK;QAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;QAC3F,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC;YAC/E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAEvE,OAAO;QACL,4EAA4E;QAC5E;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;YAC1E,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,4BAA4B,CAAC;YACvE,cAAc,EAAE,sCAAsC;YACtD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAC7C,gBAAgB,EAAE,WAAW;SAC9B;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;YAC1E,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1C,cAAc,EAAE,UAAU;YAC1B,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAC7C,gBAAgB,EAAE,WAAW;SAC9B;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;YAC1E,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1C,cAAc,EAAE,UAAU;YAC1B,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;YAC7C,gBAAgB,EAAE,WAAW;SAC9B;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACzC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC;YACjE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;YACrD,cAAc,EAAE,kBAAkB;YAClC,iFAAiF;YACjF,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,CAAC;YAC3E,gBAAgB,EAAE,mCAAmC;SACtD;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACvD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC;YAC3D,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,yBAAyB,CAAC;YACpE,cAAc,EAAE,mCAAmC;YACnD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC;YACjE,gBAAgB,EAAE,4BAA4B;SAC/C;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EACN,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACxD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;YAClE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;YACzE,cAAc,EAAE,qCAAqC;YACrD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;YACxE,gBAAgB,EAAE,gCAAgC;SACnD;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,WAAW;YACjB,QAAQ,EACN,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;YAC5E,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;YACvD,cAAc,EAAE,oBAAoB;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;YACxE,gBAAgB,EAAE,gCAAgC;SACnD;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;YAC1E,aAAa,EAAE,mBAAmB;YAClC,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YACtD,QAAQ,EAAE,IAAI;SACf;QACD,4EAA4E;QAC5E;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC;YACrD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1C,cAAc,EAAE,UAAU;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,2BAA2B,EAAE;YACnD,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,eAAe,CAAC,MAAM,GAAG,mBAAmB;IAC1D,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;QAC7B,GAAG,EAAE;YACH,gBAAgB,EAAE,MAAM;SACzB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,8EAA8E;QAC9E,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;gBACjD,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAG,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QACA,MAAM,CAAC,GAAG,CAA6B,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE/E,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACzD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,SAAiB;IAEjB,MAAM,YAAY,GAAG,yCAAyC,CAAC;IAC/D,MAAM,UAAU,GAAG,uCAAuC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,mEAAmE;IAEzF,MAAM,KAAK,GAAG,GAAG,YAAY;;;;;;2BAMJ,SAAS;;;;;;gBAMpB,SAAS;;;;;EAKvB,UAAU,EAAE,CAAC;IAEb,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEpD,kCAAkC;YAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,aAAa,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;gBACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC/C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;gBAC1D,CAAC;gBACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC/C,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,sBAAsB,CAAC;YAC7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,qEAAqE;gBACrE,mDAAmD;gBACnD,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;YACxE,CAAC;YAED,yBAAyB;YACzB,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1D,CAAC;IACJ,CAAC;AACH,CAAC"} | ||
| {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"} |
+4
-1
@@ -11,2 +11,3 @@ #!/usr/bin/env node | ||
| */ | ||
| import * as fs from "fs"; | ||
| import minimist from "minimist"; | ||
@@ -88,3 +89,5 @@ import { c, LOGO_COMPACT, hr } from "./theme.js"; | ||
| function showVersion() { | ||
| console.log("1.0.2"); | ||
| // eslint-disable-next-line @typescript-eslint/no-require-imports | ||
| const pkg = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf-8")); | ||
| console.log(pkg.version); | ||
| } | ||
@@ -91,0 +94,0 @@ async function main() { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"} |
+1
-1
@@ -7,4 +7,4 @@ /** | ||
| export { runSetup, type SetupOptions } from "./setup.js"; | ||
| export { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, mcpServerStanza, type Agent, } from "./agents.js"; | ||
| export { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, fetchInstructions, mcpServerStanza, safeParseJson, INSTRUCTIONS_URL, INSTRUCTION_VERSION, type Agent, } from "./agents.js"; | ||
| export { SKILL_MD_CONTENT } from "./skill-content.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,KAAK,KAAK,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,KAAK,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} |
+1
-1
@@ -7,4 +7,4 @@ /** | ||
| export { runSetup } from "./setup.js"; | ||
| export { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, mcpServerStanza, } from "./agents.js"; | ||
| export { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, fetchInstructions, mcpServerStanza, safeParseJson, INSTRUCTIONS_URL, INSTRUCTION_VERSION, } from "./agents.js"; | ||
| export { SKILL_MD_CONTENT } from "./skill-content.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,GAAG,EAAE,OAAO,CAAC;IACb,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAC;CACd;AAoBD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuUhE"} | ||
| {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,GAAG,EAAE,OAAO,CAAC;IACb,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAC;CACd;AAoBD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgShE"} |
+28
-45
@@ -7,3 +7,3 @@ import * as fs from "fs"; | ||
| import { ask, multiSelect, closeReadline } from "./prompt.js"; | ||
| import { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, } from "./agents.js"; | ||
| import { getAgents, detectProjectId, writeMcpConfig, writeSkillFile, appendInstructionBlock, fetchInstructions, } from "./agents.js"; | ||
| import { SKILL_MD_CONTENT } from "./skill-content.js"; | ||
@@ -44,3 +44,2 @@ function openBrowser(url) { | ||
| let installSkill = opts.skill; | ||
| // If explicit flags were passed via CLI, skip the interactive selection step | ||
| const skipInstallStep = opts.mcp || opts.skill; | ||
@@ -50,3 +49,2 @@ if (!skipInstallStep && !opts.yes) { | ||
| console.log(); | ||
| // Default: MCP is on, Skill is off (MCP is the recommended path) | ||
| const choices = [ | ||
@@ -56,3 +54,3 @@ "MCP server config " + c.muted("(recommended — works with all agents)"), | ||
| ]; | ||
| const defaults = [0]; // MCP selected by default | ||
| const defaults = [0]; | ||
| if (installSkill) | ||
@@ -65,3 +63,2 @@ defaults.push(1); | ||
| else if (!skipInstallStep && opts.yes) { | ||
| // --yes with no explicit flags: default to MCP only | ||
| installMcp = true; | ||
@@ -80,3 +77,3 @@ } | ||
| if (detectedAgents.length > 0) { | ||
| console.log(info(`Found ${c.bold(String(detectedAgents.length))} agent environment(s) for ${c.code(root)}:`)); | ||
| console.log(info(`Found ${c.bold(String(detectedAgents.length))} agent environment(s):`)); | ||
| detectedAgents.forEach((a) => { | ||
@@ -99,3 +96,2 @@ console.log(tick(a.name)); | ||
| console.log(); | ||
| // Build selection list | ||
| const agentOptions = allAgents.map((a) => { | ||
@@ -106,3 +102,2 @@ const detected = a.detected ? c.success(" ✓ detected") : ""; | ||
| }); | ||
| // Default: all detected agents (or first if none detected) | ||
| const defaultAgentIndices = detectedAgents.length > 0 | ||
@@ -133,5 +128,3 @@ ? detectedAgents.map((a) => allAgents.findIndex((x) => x.id === a.id)) | ||
| console.log(info(`You are not inside a git repository (${c.code(root)}).`)); | ||
| console.log(hint(" For best results, Memstate should be installed at the root of a project.")); | ||
| console.log(hint(" If you want to install for a specific project, exit and run:")); | ||
| console.log(hint(" npx @memstate/setup --path /path/to/your/project")); | ||
| console.log(hint(" For best results, run this from the root of a project.")); | ||
| console.log(); | ||
@@ -171,13 +164,23 @@ } | ||
| else { | ||
| console.log(hint(" You can add it later by editing the MCP config file.")); | ||
| console.log(hint(" You can add it later by editing the MCP config file(s).")); | ||
| } | ||
| } | ||
| } | ||
| // ── Step 5: Install ─────────────────────────────────────────────────────── | ||
| console.log(step(5, "Installing")); | ||
| // ── Step 5: Fetch latest instructions ───────────────────────────────────── | ||
| console.log(step(5, "Fetching latest agent instructions")); | ||
| console.log(); | ||
| const instructions = await fetchInstructions(); | ||
| if (instructions.includes("REQUIRED")) { | ||
| console.log(tick("Fetched latest instructions from memstate.ai")); | ||
| } | ||
| else { | ||
| console.log(info("Using bundled instructions (offline mode)")); | ||
| } | ||
| // ── Step 6: Install ─────────────────────────────────────────────────────── | ||
| console.log(step(6, "Installing")); | ||
| console.log(); | ||
| const mcpResults = []; | ||
| const skillResults = []; | ||
| const instructionResults = []; | ||
| // Track already-written paths to avoid duplicates (using realpath to handle symlinks) | ||
| // Track already-written paths to avoid duplicates | ||
| const writtenMcpPaths = new Set(); | ||
@@ -187,3 +190,3 @@ const writtenSkillPaths = new Set(); | ||
| for (const agent of selectedAgents) { | ||
| // ── MCP config ──────────────────────────────────────────────────────────────── | ||
| // ── MCP config ────────────────────────────────────────────────────────── | ||
| const realMcpPath = fs.existsSync(agent.mcpConfigPath) | ||
@@ -194,14 +197,9 @@ ? fs.realpathSync(agent.mcpConfigPath) | ||
| writtenMcpPaths.add(realMcpPath); | ||
| const result = writeMcpConfig(agent.mcpConfigPath, apiKey); | ||
| const result = writeMcpConfig(agent.mcpConfigPath, apiKey, agent.mcpKey); | ||
| const label = result.success ? tick : cross; | ||
| console.log(label(`${c.bold(agent.name)} MCP config ${c.muted(result.message)}`)); | ||
| console.log(arrow(agent.mcpConfigLabel)); | ||
| mcpResults.push({ | ||
| agent, | ||
| configPath: agent.mcpConfigPath, | ||
| success: result.success, | ||
| message: result.message, | ||
| }); | ||
| mcpResults.push({ agent, success: result.success, message: result.message }); | ||
| } | ||
| // ── Skill file ──────────────────────────────────────────────────────────────── | ||
| // ── Skill file ────────────────────────────────────────────────────────── | ||
| const realSkillPath = fs.existsSync(agent.skillPath) | ||
@@ -216,12 +214,5 @@ ? fs.realpathSync(agent.skillPath) | ||
| console.log(arrow(agent.skillPath.replace(os.homedir(), "~"))); | ||
| skillResults.push({ | ||
| agent, | ||
| skillPath: agent.skillPath, | ||
| success: result.success, | ||
| message: result.message, | ||
| }); | ||
| skillResults.push({ agent, success: result.success, message: result.message }); | ||
| } | ||
| // ── Instruction file ────────────────────────────────────────────────────────── | ||
| // Always write instruction rules when installing MCP or Skill — the agent | ||
| // needs to know to call memstate_get/memstate_remember before/after tasks. | ||
| // ── Instruction file ──────────────────────────────────────────────────── | ||
| const realInstructionPath = agent.instructionPath && fs.existsSync(agent.instructionPath) | ||
@@ -236,3 +227,3 @@ ? fs.realpathSync(agent.instructionPath) | ||
| writtenInstructionPaths.add(realInstructionPath); | ||
| const iResult = appendInstructionBlock(agent.instructionPath, projectId); | ||
| const iResult = appendInstructionBlock(agent.instructionPath, projectId, instructions); | ||
| const iLabel = iResult.success ? tick : cross; | ||
@@ -243,16 +234,8 @@ console.log(iLabel(`${c.bold(agent.name)} instructions ${c.muted(iResult.message)}`)); | ||
| } | ||
| instructionResults.push({ | ||
| agent, | ||
| filePath: agent.instructionPath, | ||
| success: iResult.success, | ||
| message: iResult.message, | ||
| }); | ||
| instructionResults.push({ agent, success: iResult.success, message: iResult.message }); | ||
| } | ||
| } | ||
| // ── Summary ─────────────────────────────────────────────────────────────── | ||
| const allSucceeded = [ | ||
| ...mcpResults, | ||
| ...skillResults, | ||
| ...instructionResults, | ||
| ].every((r) => r.success); | ||
| const allResults = [...mcpResults, ...skillResults, ...instructionResults]; | ||
| const allSucceeded = allResults.every((r) => r.success); | ||
| console.log("\n" + hr("═")); | ||
@@ -259,0 +242,0 @@ if (allSucceeded) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"} |
+8
-2
| { | ||
| "name": "@memstate/setup", | ||
| "version": "1.0.2", | ||
| "version": "2.0.0", | ||
| "description": "Set up Memstate AI persistent memory for your AI coding agent in seconds", | ||
@@ -16,2 +16,7 @@ "keywords": [ | ||
| "kilo", | ||
| "copilot", | ||
| "gemini", | ||
| "roo-code", | ||
| "amazon-q", | ||
| "zed", | ||
| "setup", | ||
@@ -41,3 +46,4 @@ "install" | ||
| "dev": "tsx src/cli.ts", | ||
| "prepublishOnly": "npm run build" | ||
| "test": "node --import tsx --test src/__tests__/*.test.ts", | ||
| "prepublishOnly": "npm run build && npm test" | ||
| }, | ||
@@ -44,0 +50,0 @@ "dependencies": { |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
143963
55.74%34
13.33%1590
49.16%8
60%3
50%