claude-launchpad 0.10.1-dev.6 → 0.10.1-dev.7
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/dist/{chunk-6E7Z4DS7.js → chunk-3XTGG4KG.js} +4 -6
- package/dist/chunk-3XTGG4KG.js.map +1 -0
- package/dist/{chunk-ZMSHFAZQ.js → chunk-JTKRLIEV.js} +1 -2
- package/dist/{chunk-YEGOHLE7.js → chunk-LRJW32ZW.js} +2 -2
- package/dist/cli.js +8 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/memory/server.js +1 -1
- package/dist/{context-SGPGEJV4.js → context-HB6EK2LE.js} +3 -3
- package/dist/{extract-T32FMLN5.js → extract-SRE5TBS2.js} +3 -3
- package/dist/{install-OKLYDFBJ.js → install-PSSMUGLO.js} +2 -2
- package/dist/{pull-RECEBTUE.js → pull-5JV46G3P.js} +4 -4
- package/dist/{push-FEAWYBV7.js → push-4G77PZMT.js} +4 -4
- package/dist/{stats-77WLARNA.js → stats-W3BHM3WF.js} +3 -3
- package/dist/{tui-YV7AFJFR.js → tui-R6XSBUKS.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-6E7Z4DS7.js.map +0 -1
- /package/dist/{chunk-ZMSHFAZQ.js.map → chunk-JTKRLIEV.js.map} +0 -0
- /package/dist/{chunk-YEGOHLE7.js.map → chunk-LRJW32ZW.js.map} +0 -0
- /package/dist/{context-SGPGEJV4.js.map → context-HB6EK2LE.js.map} +0 -0
- /package/dist/{extract-T32FMLN5.js.map → extract-SRE5TBS2.js.map} +0 -0
- /package/dist/{install-OKLYDFBJ.js.map → install-PSSMUGLO.js.map} +0 -0
- /package/dist/{pull-RECEBTUE.js.map → pull-5JV46G3P.js.map} +0 -0
- /package/dist/{push-FEAWYBV7.js.map → push-4G77PZMT.js.map} +0 -0
- /package/dist/{stats-77WLARNA.js.map → stats-W3BHM3WF.js.map} +0 -0
- /package/dist/{tui-YV7AFJFR.js.map → tui-R6XSBUKS.js.map} +0 -0
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
import {
|
|
3
3
|
SyncPayloadSchema
|
|
4
4
|
} from "./chunk-J5NT4JGE.js";
|
|
5
|
-
import {
|
|
6
|
-
DEFAULT_CONFIG,
|
|
7
|
-
resolveDataDir
|
|
8
|
-
} from "./chunk-ZMSHFAZQ.js";
|
|
9
5
|
|
|
10
6
|
// src/commands/memory/utils/gist-transport.ts
|
|
11
7
|
import { execSync } from "child_process";
|
|
12
8
|
import { readFileSync, writeFileSync, unlinkSync, mkdirSync } from "fs";
|
|
13
9
|
import { join, dirname } from "path";
|
|
14
10
|
import { tmpdir } from "os";
|
|
11
|
+
import { homedir } from "os";
|
|
15
12
|
var EXEC_OPTS = { encoding: "utf-8", timeout: 3e4 };
|
|
16
13
|
var GIST_DESCRIPTION = "agentic-memory sync";
|
|
17
14
|
var SYNC_CONFIG_FILE = "sync-config.json";
|
|
15
|
+
var DATA_DIR = join(homedir(), ".agentic-memory");
|
|
18
16
|
function syncConfigPath() {
|
|
19
|
-
return join(
|
|
17
|
+
return join(DATA_DIR, SYNC_CONFIG_FILE);
|
|
20
18
|
}
|
|
21
19
|
function slugify(project) {
|
|
22
20
|
return project.replace(/[^a-zA-Z0-9._-]/g, "-");
|
|
@@ -218,4 +216,4 @@ export {
|
|
|
218
216
|
parsePayload,
|
|
219
217
|
mergeFromRemote
|
|
220
218
|
};
|
|
221
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-3XTGG4KG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/memory/utils/gist-transport.ts","../src/commands/memory/utils/sync-merge.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { readFileSync, writeFileSync, unlinkSync, mkdirSync } from 'node:fs';\nimport { join, dirname } from 'node:path';\nimport { tmpdir } from 'node:os';\nimport { homedir } from 'node:os';\n\ninterface SyncConfig {\n readonly gistId: string;\n}\n\nconst EXEC_OPTS = { encoding: 'utf-8' as const, timeout: 30_000 };\nconst GIST_DESCRIPTION = 'agentic-memory sync';\nconst SYNC_CONFIG_FILE = 'sync-config.json';\nconst DATA_DIR = join(homedir(), '.agentic-memory');\n\nfunction syncConfigPath(): string {\n return join(DATA_DIR, SYNC_CONFIG_FILE);\n}\n\nfunction slugify(project: string): string {\n return project.replace(/[^a-zA-Z0-9._-]/g, '-');\n}\n\nexport function projectToFilename(project: string): string {\n if (!project) throw new Error('Project name cannot be empty');\n return `memories-${slugify(project)}.json`;\n}\n\nexport function filenameToProject(filename: string): string | null {\n const match = filename.match(/^memories-(.+)\\.json$/);\n return match?.[1] ?? null;\n}\n\n\nexport function assertGhAvailable(): void {\n try {\n execSync('gh --version', { ...EXEC_OPTS, stdio: 'pipe' });\n } catch {\n throw new Error(\n 'Memory sync requires the GitHub CLI.\\n' +\n 'Install: https://cli.github.com/\\n' +\n 'Then run: gh auth login'\n );\n }\n try {\n execSync('gh auth status', { ...EXEC_OPTS, stdio: 'pipe' });\n } catch {\n throw new Error(\n 'gh is installed but not authenticated.\\n' +\n 'Run: gh auth login'\n );\n }\n}\n\nexport function loadSyncConfig(): SyncConfig | null {\n try {\n const raw = readFileSync(syncConfigPath(), 'utf-8');\n const parsed = JSON.parse(raw) as Record<string, unknown>;\n if (typeof parsed.gistId === 'string' && parsed.gistId.length > 0) {\n return { gistId: parsed.gistId };\n }\n } catch { /* no local config */ }\n\n const discovered = discoverSyncGist();\n if (discovered) {\n saveSyncConfig({ gistId: discovered });\n return { gistId: discovered };\n }\n return null;\n}\n\nfunction discoverSyncGist(): string | null {\n try {\n const output = execSync(\n 'gh gist list --limit 100',\n { ...EXEC_OPTS, stdio: ['pipe', 'pipe', 'pipe'] },\n );\n for (const line of output.split('\\n')) {\n const cols = line.split('\\t');\n if (cols[1]?.trim() === GIST_DESCRIPTION) {\n const gistId = cols[0]?.trim();\n if (gistId && /^[a-f0-9]+$/.test(gistId)) return gistId;\n }\n }\n } catch { /* gh list failed */ }\n return null;\n}\n\nexport function saveSyncConfig(config: SyncConfig): void {\n const filePath = syncConfigPath();\n mkdirSync(dirname(filePath), { recursive: true });\n writeFileSync(filePath, JSON.stringify(config, null, 2) + '\\n', 'utf-8');\n}\n\nexport function createGist(filename: string, content: string): string {\n const safeFilename = slugify(filename.replace(/\\.json$/, '')) + '.json';\n const tmpFile = join(tmpdir(), safeFilename);\n try {\n writeFileSync(tmpFile, content, 'utf-8');\n const result = execSync(\n `gh gist create \"${tmpFile}\" --desc \"${GIST_DESCRIPTION}\" --public=false`,\n { ...EXEC_OPTS, stdio: ['pipe', 'pipe', 'pipe'] },\n ).trim();\n const gistId = result.split('/').pop()?.trim() ?? '';\n if (!gistId || !/^[a-f0-9]+$/.test(gistId)) {\n throw new Error(`Failed to parse gist ID from: ${result}`);\n }\n saveSyncConfig({ gistId });\n return gistId;\n } finally {\n try { unlinkSync(tmpFile); } catch { /* ignore */ }\n }\n}\n\nexport function readGistFile(gistId: string, filename: string): string | null {\n try {\n const escapedFilename = JSON.stringify(filename);\n return execSync(\n `gh api \"/gists/${gistId}\" --jq '.files[${escapedFilename}].content'`,\n { ...EXEC_OPTS, stdio: ['pipe', 'pipe', 'pipe'] },\n ).trimEnd();\n } catch {\n return null;\n }\n}\n\nexport function listGistFiles(gistId: string): readonly string[] {\n try {\n const output = execSync(\n `gh api \"/gists/${gistId}\" --jq '.files | keys[]'`,\n { ...EXEC_OPTS, stdio: ['pipe', 'pipe', 'pipe'] },\n );\n return output.trim().split('\\n').filter(Boolean);\n } catch {\n return [];\n }\n}\n\nexport function updateGistFiles(\n gistId: string,\n files: Record<string, string>,\n): void {\n const payload = {\n files: Object.fromEntries(\n Object.entries(files).map(([name, content]) => [name, { content }]),\n ),\n };\n const tmpFile = join(tmpdir(), `gist-patch-${Date.now()}.json`);\n try {\n writeFileSync(tmpFile, JSON.stringify(payload), 'utf-8');\n execSync(\n `gh api --method PATCH \"/gists/${gistId}\" --input \"${tmpFile}\"`,\n { ...EXEC_OPTS, stdio: ['pipe', 'pipe', 'pipe'] },\n );\n } finally {\n try { unlinkSync(tmpFile); } catch { /* ignore */ }\n }\n}\n","import { SyncPayloadSchema } from '../types.js';\nimport type { Memory, SyncPayload, SyncMemoryRow, MergeResult, RelationType } from '../types.js';\nimport type { MemoryRepo } from '../storage/memory-repo.js';\nimport type { RelationRepo } from '../storage/relation-repo.js';\n\nfunction memoryToSyncRow(m: Memory): SyncMemoryRow {\n return {\n id: m.id,\n type: m.type,\n title: m.title,\n content: m.content,\n context: m.context,\n source: m.source,\n project: m.project,\n tags: [...m.tags],\n importance: m.importance,\n access_count: m.accessCount,\n injection_count: m.injectionCount,\n created_at: m.createdAt,\n updated_at: m.updatedAt,\n last_accessed: m.lastAccessed,\n };\n}\n\nexport { memoryToSyncRow };\n\nexport function parsePayload(raw: string | null): SyncPayload | null {\n if (!raw || raw === 'null') return null;\n try { return SyncPayloadSchema.parse(JSON.parse(raw)); }\n catch { return null; }\n}\n\nexport function mergeFromRemote(\n memoryRepo: MemoryRepo,\n relationRepo: RelationRepo,\n payload: SyncPayload,\n): MergeResult {\n let inserted = 0;\n let updated = 0;\n let relationsAdded = 0;\n\n const memories = payload.memories;\n\n for (const remote of memories) {\n const local = memoryRepo.getById(remote.id);\n if (!local) {\n memoryRepo.upsertFromSync(remote);\n inserted++;\n } else if (remote.updated_at > local.updatedAt) {\n memoryRepo.upsertFromSync(remote);\n updated++;\n }\n }\n\n const localIds = new Set(memoryRepo.getAll().map((m) => m.id));\n const relations = payload.relations.filter(\n (r) => localIds.has(r.source_id) && localIds.has(r.target_id),\n );\n\n for (const rel of relations) {\n const added = relationRepo.create(\n rel.source_id,\n rel.target_id,\n rel.relation_type as RelationType,\n );\n if (added) relationsAdded++;\n }\n\n return { inserted, updated, relationsAdded };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -278,7 +278,6 @@ function migrate(db) {
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
export {
|
|
281
|
-
DEFAULT_CONFIG,
|
|
282
281
|
DEFAULT_DECAY_PARAMS,
|
|
283
282
|
SCORING_WEIGHTS,
|
|
284
283
|
INJECTION_WEIGHTS,
|
|
@@ -294,4 +293,4 @@ export {
|
|
|
294
293
|
closeDatabase,
|
|
295
294
|
migrate
|
|
296
295
|
};
|
|
297
|
-
//# sourceMappingURL=chunk-
|
|
296
|
+
//# sourceMappingURL=chunk-JTKRLIEV.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
loadConfig,
|
|
11
11
|
migrate,
|
|
12
12
|
resolveDataDir
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JTKRLIEV.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/memory/subcommands/init-storage.ts
|
|
16
16
|
function initStorage(dbPath) {
|
|
@@ -32,4 +32,4 @@ function initStorage(dbPath) {
|
|
|
32
32
|
export {
|
|
33
33
|
initStorage
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-LRJW32ZW.js.map
|
package/dist/cli.js
CHANGED
|
@@ -2587,7 +2587,7 @@ function createMemoryCommand() {
|
|
|
2587
2587
|
}
|
|
2588
2588
|
const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
|
|
2589
2589
|
await requireMemoryDeps();
|
|
2590
|
-
const { startTui } = await import("./tui-
|
|
2590
|
+
const { startTui } = await import("./tui-R6XSBUKS.js");
|
|
2591
2591
|
await startTui();
|
|
2592
2592
|
return;
|
|
2593
2593
|
}
|
|
@@ -2609,25 +2609,25 @@ function createMemoryCommand() {
|
|
|
2609
2609
|
log.info("Skipped.");
|
|
2610
2610
|
return;
|
|
2611
2611
|
}
|
|
2612
|
-
const { runInstall } = await import("./install-
|
|
2612
|
+
const { runInstall } = await import("./install-PSSMUGLO.js");
|
|
2613
2613
|
await runInstall({});
|
|
2614
2614
|
} else {
|
|
2615
2615
|
const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
|
|
2616
2616
|
await requireMemoryDeps();
|
|
2617
|
-
const { runStats } = await import("./stats-
|
|
2617
|
+
const { runStats } = await import("./stats-W3BHM3WF.js");
|
|
2618
2618
|
await runStats({});
|
|
2619
2619
|
}
|
|
2620
2620
|
});
|
|
2621
2621
|
memory.addCommand(
|
|
2622
2622
|
new Command4("context").description("Load session context (hook handler)").option("--json", "JSON output").action(async (opts) => {
|
|
2623
|
-
const { runContext } = await import("./context-
|
|
2623
|
+
const { runContext } = await import("./context-HB6EK2LE.js");
|
|
2624
2624
|
await runContext(opts);
|
|
2625
2625
|
}).helpCommand(false),
|
|
2626
2626
|
{ hidden: true }
|
|
2627
2627
|
);
|
|
2628
2628
|
memory.addCommand(
|
|
2629
2629
|
new Command4("extract").description("Extract facts from transcript (hook handler)").action(async () => {
|
|
2630
|
-
const { runExtract } = await import("./extract-
|
|
2630
|
+
const { runExtract } = await import("./extract-SRE5TBS2.js");
|
|
2631
2631
|
await runExtract();
|
|
2632
2632
|
}).helpCommand(false),
|
|
2633
2633
|
{ hidden: true }
|
|
@@ -2641,13 +2641,13 @@ function createMemoryCommand() {
|
|
|
2641
2641
|
);
|
|
2642
2642
|
memory.addCommand(
|
|
2643
2643
|
new Command4("push").description("Push current project's memories to GitHub Gist").option("--all", "Push all projects").option("-y, --yes", "Skip confirmation prompt").action(async (opts) => {
|
|
2644
|
-
const { runPush } = await import("./push-
|
|
2644
|
+
const { runPush } = await import("./push-4G77PZMT.js");
|
|
2645
2645
|
await runPush(opts);
|
|
2646
2646
|
})
|
|
2647
2647
|
);
|
|
2648
2648
|
memory.addCommand(
|
|
2649
2649
|
new Command4("pull").description("Pull current project's memories from GitHub Gist").option("--all", "Pull all projects").action(async (opts) => {
|
|
2650
|
-
const { runPull } = await import("./pull-
|
|
2650
|
+
const { runPull } = await import("./pull-5JV46G3P.js");
|
|
2651
2651
|
await runPull(opts);
|
|
2652
2652
|
})
|
|
2653
2653
|
);
|
|
@@ -2655,7 +2655,7 @@ function createMemoryCommand() {
|
|
|
2655
2655
|
}
|
|
2656
2656
|
|
|
2657
2657
|
// src/cli.ts
|
|
2658
|
-
var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.10.1-dev.
|
|
2658
|
+
var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.10.1-dev.7", "-v, --version").action(async () => {
|
|
2659
2659
|
const hasConfig = await fileExists(join11(process.cwd(), "CLAUDE.md")) || await fileExists(join11(process.cwd(), ".claude", "settings.json"));
|
|
2660
2660
|
if (hasConfig) {
|
|
2661
2661
|
await program.commands.find((c) => c.name() === "doctor")?.parseAsync([], { from: "user" });
|