axgram 0.2.0 → 0.3.0

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.
@@ -4,68 +4,15 @@
4
4
  * Slim hook entrypoint — no commander, optimized for cold-start latency.
5
5
  *
6
6
  * Subcommands:
7
- * axgram-hook stop --transcript <path> [--project <id>] [--threshold <n>]
8
- * axgram-hook session-start [--project <id>]
7
+ * axgram-hook stop --source <tool> --transcript <path> [--project <id>] [--threshold <n>]
8
+ * axgram-hook session-start --source <tool> [--project <id>]
9
+ *
10
+ * --source defaults to "claude". Sources without a transcript parser yet
11
+ * (cursor, codex, gemini) no-op cleanly so a wired host agent is never blocked.
9
12
  */
10
13
  Object.defineProperty(exports, "__esModule", { value: true });
11
- const hook_session_start_1 = require("../commands/hook-session-start");
12
- const hook_stop_1 = require("../commands/hook-stop");
13
- function parseArgs(argv) {
14
- const flags = {};
15
- let command;
16
- let i = 0;
17
- while (i < argv.length) {
18
- const arg = argv[i];
19
- if (!command && !arg.startsWith("--")) {
20
- command = arg;
21
- i++;
22
- continue;
23
- }
24
- if (arg.startsWith("--")) {
25
- const key = arg.slice(2);
26
- const next = argv[i + 1];
27
- if (next !== undefined && !next.startsWith("--")) {
28
- flags[key] = next;
29
- i += 2;
30
- }
31
- else {
32
- flags[key] = "true";
33
- i++;
34
- }
35
- continue;
36
- }
37
- i++;
38
- }
39
- return { command, flags };
40
- }
41
- async function main() {
42
- const { command, flags } = parseArgs(process.argv.slice(2));
43
- if (!command) {
44
- process.stderr.write("axgram-hook: usage: axgram-hook <stop|session-start> [--flags]\n");
45
- return 1;
46
- }
47
- if (command === "stop") {
48
- const transcript = flags.transcript;
49
- if (!transcript) {
50
- process.stderr.write("axgram-hook stop: --transcript <path> is required\n");
51
- return 1;
52
- }
53
- return await (0, hook_stop_1.hookStopCommand)({
54
- transcript,
55
- ...(flags.project ? { project: flags.project } : {}),
56
- ...(flags.threshold ? { threshold: parseInt(flags.threshold, 10) } : {}),
57
- ...(flags["worker-url"] ? { workerUrl: flags["worker-url"] } : {}),
58
- });
59
- }
60
- if (command === "session-start") {
61
- return await (0, hook_session_start_1.hookSessionStartCommand)({
62
- ...(flags.project ? { project: flags.project } : {}),
63
- });
64
- }
65
- process.stderr.write(`axgram-hook: unknown command "${command}"\n`);
66
- return 1;
67
- }
68
- main()
14
+ const hook_dispatch_1 = require("../commands/hook-dispatch");
15
+ (0, hook_dispatch_1.runHook)(process.argv.slice(2))
69
16
  .then((code) => {
70
17
  if (code !== 0)
71
18
  process.exit(code);
@@ -1 +1 @@
1
- {"version":3,"file":"axgram-hook.js","sourceRoot":"","sources":["../../src/bin/axgram-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axgram-hook.js","sourceRoot":"","sources":["../../src/bin/axgram-hook.ts"],"names":[],"mappings":";;AACA;;;;;;;;;GASG;;AAEH,6DAAoD;AAEpD,IAAA,uBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC3B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAiB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -14,14 +14,43 @@ const orgs_1 = require("../commands/orgs");
14
14
  const projects_1 = require("../commands/projects");
15
15
  const teams_1 = require("../commands/teams");
16
16
  const whoami_1 = require("../commands/whoami");
17
+ const init_1 = require("../commands/init");
18
+ const prompt_1 = require("../lib/prompt");
19
+ const first_run_1 = require("../lib/first-run");
20
+ const global_config_1 = require("../lib/global-config");
21
+ const auth_email_1 = require("../lib/auth-email");
22
+ const agent_config_1 = require("../lib/agent-config");
17
23
  const remote_url_1 = require("../lib/remote-url");
18
24
  const pkg = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.resolve)(__dirname, "..", "..", "package.json"), "utf8"));
19
25
  const DEFAULT_WORKER_URL = (0, remote_url_1.resolveRemoteUrl)();
26
+ function realInitDeps() {
27
+ return {
28
+ adapters: agent_config_1.adapters,
29
+ currentEmail: auth_email_1.currentEmail,
30
+ runLogin: (workerUrl) => (0, login_1.loginCommand)({ workerUrl }),
31
+ confirm: prompt_1.confirmPrompt,
32
+ select: prompt_1.selectPrompt,
33
+ multiselect: prompt_1.multiSelectPrompt,
34
+ markCompleted: global_config_1.markInitCompleted,
35
+ log: (m) => process.stdout.write(`${m}\n`),
36
+ isTty: Boolean(process.stdin.isTTY && process.stdout.isTTY),
37
+ };
38
+ }
20
39
  const program = new commander_1.Command();
21
40
  program
22
41
  .name("axgram")
23
42
  .description("Axgram CLI — mine codebases, import conversation history, and run Claude Code hooks.")
24
43
  .version(pkg.version);
44
+ program.hook("preAction", async (_thisCommand, actionCommand) => {
45
+ const deps = realInitDeps();
46
+ await (0, first_run_1.maybeOfferInit)({
47
+ isTty: deps.isTty,
48
+ command: actionCommand.name(),
49
+ confirm: deps.confirm,
50
+ runInit: () => (0, init_1.initCommand)({ mcp: true, login: true, yes: false, workerUrl: DEFAULT_WORKER_URL }, deps),
51
+ log: deps.log,
52
+ });
53
+ });
25
54
  program
26
55
  .command("login")
27
56
  .description("Authenticate with Axgram via the worker-bridged login page.")
@@ -35,6 +64,28 @@ program
35
64
  .action(async () => {
36
65
  await (0, logout_1.logoutCommand)();
37
66
  });
67
+ program
68
+ .command("init")
69
+ .description("Set up Axgram hooks (and optionally MCP) for your AI coding tools.")
70
+ .option("--agent <ids>", "Comma-separated tools: claude,cursor,codex,gemini")
71
+ .option("--scope <scope>", "Default scope: local | global")
72
+ .option("--no-mcp", "Skip MCP server registration")
73
+ .option("--no-login", "Skip the login offer")
74
+ .option("-y, --yes", "Accept defaults, no prompts")
75
+ .option("--worker-url <url>", "Override the worker base URL (defaults to AXGRAM_REMOTE_URL or https://mcp.axgram.dev).", DEFAULT_WORKER_URL)
76
+ .action(async (opts) => {
77
+ const initOpts = {
78
+ ...(opts.agent ? { agent: opts.agent } : {}),
79
+ ...(opts.scope ? { scope: opts.scope } : {}),
80
+ mcp: opts.mcp,
81
+ login: opts.login,
82
+ yes: Boolean(opts.yes),
83
+ workerUrl: opts.workerUrl,
84
+ };
85
+ const code = await (0, init_1.initCommand)(initOpts, realInitDeps());
86
+ if (code !== 0)
87
+ process.exit(code);
88
+ });
38
89
  program
39
90
  .command("whoami")
40
91
  .description("Show the email + user id of the active Axgram session.")
@@ -1 +1 @@
1
- {"version":3,"file":"axgram.js","sourceRoot":"","sources":["../../src/bin/axgram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axgram.js","sourceRoot":"","sources":["../../src/bin/axgram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runHook = runHook;
4
+ const hook_session_start_1 = require("./hook-session-start");
5
+ const hook_stop_1 = require("./hook-stop");
6
+ function parseArgs(argv) {
7
+ const flags = {};
8
+ let command;
9
+ let i = 0;
10
+ while (i < argv.length) {
11
+ const arg = argv[i];
12
+ if (!command && !arg.startsWith("--")) {
13
+ command = arg;
14
+ i++;
15
+ continue;
16
+ }
17
+ if (arg.startsWith("--")) {
18
+ const key = arg.slice(2);
19
+ const next = argv[i + 1];
20
+ if (next !== undefined && !next.startsWith("--")) {
21
+ flags[key] = next;
22
+ i += 2;
23
+ }
24
+ else {
25
+ flags[key] = "true";
26
+ i++;
27
+ }
28
+ continue;
29
+ }
30
+ i++;
31
+ }
32
+ return { command, flags };
33
+ }
34
+ const DEFAULT_DEPS = {
35
+ hookStop: hook_stop_1.hookStopCommand,
36
+ hookSessionStart: hook_session_start_1.hookSessionStartCommand,
37
+ };
38
+ /** Tools whose transcript format axgram-hook can parse today. Others are
39
+ * wired but pending: the hook is configured, but mining no-ops cleanly. */
40
+ const SUPPORTED_SOURCES = new Set(["claude"]);
41
+ async function runHook(argv, deps = DEFAULT_DEPS) {
42
+ const { command, flags } = parseArgs(argv);
43
+ if (!command) {
44
+ process.stderr.write("axgram-hook: usage: axgram-hook <stop|session-start> [--flags]\n");
45
+ return 1;
46
+ }
47
+ // Default source is claude for back-compat with hooks written before --source.
48
+ const source = flags.source ?? "claude";
49
+ if (!SUPPORTED_SOURCES.has(source)) {
50
+ // Wired but pending: do nothing, succeed, never block the host agent.
51
+ return 0;
52
+ }
53
+ if (command === "stop") {
54
+ const transcript = flags.transcript;
55
+ if (!transcript) {
56
+ process.stderr.write("axgram-hook stop: --transcript <path> is required\n");
57
+ return 1;
58
+ }
59
+ return await deps.hookStop({
60
+ transcript,
61
+ ...(flags.project ? { project: flags.project } : {}),
62
+ ...(flags.threshold ? { threshold: parseInt(flags.threshold, 10) } : {}),
63
+ ...(flags["worker-url"] ? { workerUrl: flags["worker-url"] } : {}),
64
+ });
65
+ }
66
+ if (command === "session-start") {
67
+ return await deps.hookSessionStart({
68
+ ...(flags.project ? { project: flags.project } : {}),
69
+ });
70
+ }
71
+ process.stderr.write(`axgram-hook: unknown command "${command}"\n`);
72
+ return 1;
73
+ }
74
+ //# sourceMappingURL=hook-dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-dispatch.js","sourceRoot":"","sources":["../../src/commands/hook-dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initCommand = initCommand;
4
+ const node_os_1 = require("node:os");
5
+ async function initCommand(opts, deps) {
6
+ const ctx = {
7
+ cwd: opts.cwd ?? process.cwd(),
8
+ home: opts.home ?? (0, node_os_1.homedir)(),
9
+ workerUrl: opts.workerUrl,
10
+ };
11
+ const nonInteractive = opts.yes || !deps.isTty;
12
+ if (opts.scope && opts.scope !== "local" && opts.scope !== "global") {
13
+ deps.log(`Error: --scope must be "local" or "global" (got "${opts.scope}").`);
14
+ return 1;
15
+ }
16
+ // 1. Auth.
17
+ const email = await deps.currentEmail();
18
+ if (email) {
19
+ deps.log(`Logged in as ${email}.`);
20
+ }
21
+ else if (opts.login && !nonInteractive) {
22
+ const wantsLogin = await deps.confirm("Not logged in. Log in now?", true);
23
+ if (wantsLogin)
24
+ await deps.runLogin(opts.workerUrl);
25
+ }
26
+ else {
27
+ deps.log("Warning: not logged in. Hooks won't fire until you run `axgram login`.");
28
+ }
29
+ // 2. Select tools.
30
+ let selected;
31
+ if (nonInteractive) {
32
+ if (!opts.agent) {
33
+ deps.log("Error: --agent is required in non-interactive mode (e.g. --agent claude,cursor).");
34
+ return 1;
35
+ }
36
+ selected = parseAgents(opts.agent, deps);
37
+ }
38
+ else if (opts.agent) {
39
+ selected = parseAgents(opts.agent, deps);
40
+ }
41
+ else {
42
+ const choices = deps.adapters.map((a) => ({
43
+ value: a.id,
44
+ label: a.displayName,
45
+ checked: a.isInstalled(ctx),
46
+ }));
47
+ selected = (await deps.multiselect("Which tools should Axgram set up?", choices));
48
+ }
49
+ if (selected.length === 0) {
50
+ deps.log("No tools selected. Nothing to do.");
51
+ return 0;
52
+ }
53
+ // 3. Per-tool scope + MCP, then apply.
54
+ for (const id of selected) {
55
+ const adapter = deps.adapters.find((a) => a.id === id);
56
+ if (!adapter)
57
+ continue;
58
+ let scope;
59
+ if (opts.scope || nonInteractive) {
60
+ scope = opts.scope ?? "local";
61
+ }
62
+ else {
63
+ scope = (await deps.select(`Scope for ${adapter.displayName}?`, [
64
+ { value: "local", label: "This folder only (local)" },
65
+ { value: "global", label: "All projects (global)" },
66
+ ]));
67
+ }
68
+ const doMcp = opts.mcp && (nonInteractive ? true : await deps.confirm(`Register the Axgram MCP server for ${adapter.displayName}?`, true));
69
+ const hookResult = await adapter.writeHooks(scope, ctx);
70
+ deps.log(`${adapter.displayName} hooks: ${hookResult.action} ${hookResult.path}`);
71
+ if (id !== "claude") {
72
+ deps.log(` (${adapter.displayName} mining is wired but pending transcript support.)`);
73
+ }
74
+ if (doMcp) {
75
+ const mcpResult = await adapter.writeMcp(scope, ctx);
76
+ if (mcpResult.action === "manual") {
77
+ deps.log(`${adapter.displayName} MCP: run → ${mcpResult.note}`);
78
+ }
79
+ else {
80
+ deps.log(`${adapter.displayName} MCP: ${mcpResult.action} ${mcpResult.path}`);
81
+ }
82
+ }
83
+ }
84
+ await deps.markCompleted();
85
+ deps.log("Done. Restart your AI tool to pick up the changes.");
86
+ return 0;
87
+ }
88
+ function parseAgents(csv, deps) {
89
+ const validIds = new Set(deps.adapters.map((a) => a.id));
90
+ const ids = csv.split(",").map((s) => s.trim().toLowerCase());
91
+ const out = [];
92
+ for (const id of ids) {
93
+ if (!id)
94
+ continue;
95
+ if (validIds.has(id)) {
96
+ if (!out.includes(id))
97
+ out.push(id);
98
+ }
99
+ else {
100
+ deps.log(`Ignoring unknown tool: ${id}`);
101
+ }
102
+ }
103
+ return out;
104
+ }
105
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.claudeAdapter = void 0;
4
+ exports.mergeClaudeHooks = mergeClaudeHooks;
5
+ exports.mergeClaudeMcp = mergeClaudeMcp;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const fs_io_1 = require("./fs-io");
9
+ const types_1 = require("./types");
10
+ function hookCommand(event) {
11
+ const base = `axgram-hook ${event} --source claude`;
12
+ return event === "stop" ? `${base} --transcript \${CLAUDE_TRANSCRIPT_PATH}` : base;
13
+ }
14
+ /** Replace any existing axgram group under `event` (matched by a command
15
+ * containing "axgram-hook"); append a fresh group otherwise. Returns true
16
+ * if anything changed. */
17
+ function upsertGroupHook(hooks, event, command) {
18
+ const groups = hooks[event] ?? (hooks[event] = []);
19
+ for (const group of groups) {
20
+ for (const h of group.hooks ?? []) {
21
+ if (typeof h.command === "string" && h.command.includes("axgram-hook")) {
22
+ if (h.command === command)
23
+ return false;
24
+ h.command = command;
25
+ return true;
26
+ }
27
+ }
28
+ }
29
+ groups.push({ matcher: "", hooks: [{ type: "command", command }] });
30
+ return true;
31
+ }
32
+ function mergeClaudeHooks(existing, _ctx) {
33
+ const settings = (existing && typeof existing === "object" ? existing : {});
34
+ const hooks = (settings.hooks && typeof settings.hooks === "object" ? settings.hooks : {});
35
+ settings.hooks = hooks;
36
+ const a = upsertGroupHook(hooks, "SessionStart", hookCommand("session-start"));
37
+ const b = upsertGroupHook(hooks, "Stop", hookCommand("stop"));
38
+ return { value: settings, changed: a || b };
39
+ }
40
+ function mergeClaudeMcp(existing, ctx) {
41
+ const root = (existing && typeof existing === "object" ? existing : {});
42
+ const servers = (root.mcpServers && typeof root.mcpServers === "object" ? root.mcpServers : {});
43
+ root.mcpServers = servers;
44
+ const entry = { type: "http", url: (0, types_1.mcpEndpoint)(ctx) };
45
+ const changed = JSON.stringify(servers.axgram) !== JSON.stringify(entry);
46
+ servers.axgram = entry;
47
+ return { value: root, changed };
48
+ }
49
+ exports.claudeAdapter = {
50
+ id: "claude",
51
+ displayName: "Claude Code",
52
+ isInstalled(ctx) {
53
+ return (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.home, ".claude")) || (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.cwd, ".claude"));
54
+ },
55
+ hooksPath(scope, ctx) {
56
+ const base = scope === "global" ? ctx.home : ctx.cwd;
57
+ return (0, node_path_1.resolve)(base, ".claude", "settings.json");
58
+ },
59
+ mcpPath(scope, ctx) {
60
+ // Claude reads project MCP from .mcp.json; user-scope MCP lives in an
61
+ // undocumented file, so global MCP is surfaced as a manual command.
62
+ return (0, node_path_1.resolve)(ctx.cwd, ".mcp.json");
63
+ },
64
+ async writeHooks(scope, ctx) {
65
+ const path = this.hooksPath(scope, ctx);
66
+ const existed = (0, node_fs_1.existsSync)(path);
67
+ if (scope === "global" && existed)
68
+ (0, fs_io_1.backupOnce)(path);
69
+ const { value, changed } = mergeClaudeHooks((0, fs_io_1.readJsonFile)(path), ctx);
70
+ if (!existed || changed)
71
+ (0, fs_io_1.writeJsonFile)(path, value);
72
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
73
+ },
74
+ async writeMcp(scope, ctx) {
75
+ if (scope === "global") {
76
+ return {
77
+ path: "(claude user scope)",
78
+ action: "manual",
79
+ note: `claude mcp add axgram -s user --transport http ${(0, types_1.mcpEndpoint)(ctx)}`,
80
+ };
81
+ }
82
+ const path = this.mcpPath(scope, ctx);
83
+ const existed = (0, node_fs_1.existsSync)(path);
84
+ const { value, changed } = mergeClaudeMcp((0, fs_io_1.readJsonFile)(path), ctx);
85
+ if (!existed || changed)
86
+ (0, fs_io_1.writeJsonFile)(path, value);
87
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
88
+ },
89
+ };
90
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/lib/agent-config/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.codexAdapter = void 0;
4
+ exports.mergeCodexHooks = mergeCodexHooks;
5
+ exports.mergeCodexMcpToml = mergeCodexMcpToml;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const smol_toml_1 = require("smol-toml");
9
+ const fs_io_1 = require("./fs-io");
10
+ const types_1 = require("./types");
11
+ function upsertGroupHook(hooks, event, command) {
12
+ const groups = hooks[event] ?? (hooks[event] = []);
13
+ for (const group of groups) {
14
+ for (const h of group.hooks ?? []) {
15
+ if (typeof h.command === "string" && h.command.includes("axgram-hook")) {
16
+ if (h.command === command)
17
+ return false;
18
+ h.command = command;
19
+ return true;
20
+ }
21
+ }
22
+ }
23
+ groups.push({ hooks: [{ type: "command", command }] });
24
+ return true;
25
+ }
26
+ function mergeCodexHooks(existing, _ctx) {
27
+ const root = (existing && typeof existing === "object" ? existing : {});
28
+ const a = upsertGroupHook(root, "SessionStart", "axgram-hook session-start --source codex");
29
+ const b = upsertGroupHook(root, "Stop", "axgram-hook stop --source codex");
30
+ return { value: root, changed: a || b };
31
+ }
32
+ function mergeCodexMcpToml(existingToml, ctx) {
33
+ const data = (existingToml.trim() ? (0, smol_toml_1.parse)(existingToml) : {});
34
+ const url = (0, types_1.mcpEndpoint)(ctx);
35
+ const servers = (data.mcp_servers && typeof data.mcp_servers === "object" ? data.mcp_servers : {});
36
+ data.mcp_servers = servers;
37
+ const urlMatches = servers.axgram?.url === url;
38
+ const flagSet = data.experimental_use_rmcp_client === true;
39
+ if (urlMatches && flagSet)
40
+ return { text: existingToml, changed: false };
41
+ servers.axgram = { ...(servers.axgram ?? {}), url };
42
+ data.experimental_use_rmcp_client = true;
43
+ return { text: (0, smol_toml_1.stringify)(data), changed: true };
44
+ }
45
+ exports.codexAdapter = {
46
+ id: "codex",
47
+ displayName: "Codex CLI",
48
+ isInstalled(ctx) {
49
+ return (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.home, ".codex"));
50
+ },
51
+ hooksPath(scope, ctx) {
52
+ return (0, node_path_1.resolve)(scope === "global" ? ctx.home : ctx.cwd, ".codex", "hooks.json");
53
+ },
54
+ mcpPath(scope, ctx) {
55
+ return (0, node_path_1.resolve)(scope === "global" ? ctx.home : ctx.cwd, ".codex", "config.toml");
56
+ },
57
+ async writeHooks(scope, ctx) {
58
+ const path = this.hooksPath(scope, ctx);
59
+ const existed = (0, node_fs_1.existsSync)(path);
60
+ if (scope === "global" && existed)
61
+ (0, fs_io_1.backupOnce)(path);
62
+ const { value, changed } = mergeCodexHooks((0, fs_io_1.readJsonFile)(path), ctx);
63
+ if (!existed || changed)
64
+ (0, fs_io_1.writeJsonFile)(path, value);
65
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
66
+ },
67
+ async writeMcp(scope, ctx) {
68
+ const path = this.mcpPath(scope, ctx);
69
+ const existed = (0, node_fs_1.existsSync)(path);
70
+ if (scope === "global" && existed)
71
+ (0, fs_io_1.backupOnce)(path);
72
+ const existingToml = existed ? (0, node_fs_1.readFileSync)(path, "utf8") : "";
73
+ const { text, changed } = mergeCodexMcpToml(existingToml, ctx);
74
+ if (!existed || changed) {
75
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
76
+ (0, node_fs_1.writeFileSync)(path, text.endsWith("\n") ? text : text + "\n", "utf8");
77
+ }
78
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
79
+ },
80
+ };
81
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/lib/agent-config/codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cursorAdapter = void 0;
4
+ exports.mergeCursorHooks = mergeCursorHooks;
5
+ exports.mergeCursorMcp = mergeCursorMcp;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const fs_io_1 = require("./fs-io");
9
+ const types_1 = require("./types");
10
+ function upsertFlat(hooks, event, command) {
11
+ const list = hooks[event] ?? (hooks[event] = []);
12
+ for (const h of list) {
13
+ if (typeof h.command === "string" && h.command.includes("axgram-hook")) {
14
+ if (h.command === command)
15
+ return false;
16
+ h.command = command;
17
+ return true;
18
+ }
19
+ }
20
+ list.push({ command });
21
+ return true;
22
+ }
23
+ function mergeCursorHooks(existing, _ctx) {
24
+ const root = (existing && typeof existing === "object" ? existing : {});
25
+ const versionChanged = root.version !== 1;
26
+ root.version = 1;
27
+ const hooks = (root.hooks && typeof root.hooks === "object" ? root.hooks : {});
28
+ root.hooks = hooks;
29
+ const a = upsertFlat(hooks, "sessionStart", "axgram-hook session-start --source cursor");
30
+ const b = upsertFlat(hooks, "stop", "axgram-hook stop --source cursor");
31
+ return { value: root, changed: versionChanged || a || b };
32
+ }
33
+ function mergeCursorMcp(existing, ctx) {
34
+ const root = (existing && typeof existing === "object" ? existing : {});
35
+ const servers = (root.mcpServers && typeof root.mcpServers === "object" ? root.mcpServers : {});
36
+ root.mcpServers = servers;
37
+ const entry = { url: (0, types_1.mcpEndpoint)(ctx) };
38
+ const changed = JSON.stringify(servers.axgram) !== JSON.stringify(entry);
39
+ servers.axgram = entry;
40
+ return { value: root, changed };
41
+ }
42
+ exports.cursorAdapter = {
43
+ id: "cursor",
44
+ displayName: "Cursor CLI",
45
+ isInstalled(ctx) {
46
+ return (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.home, ".cursor")) || (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.cwd, ".cursor"));
47
+ },
48
+ hooksPath(scope, ctx) {
49
+ return (0, node_path_1.resolve)(scope === "global" ? ctx.home : ctx.cwd, ".cursor", "hooks.json");
50
+ },
51
+ mcpPath(scope, ctx) {
52
+ return (0, node_path_1.resolve)(scope === "global" ? ctx.home : ctx.cwd, ".cursor", "mcp.json");
53
+ },
54
+ async writeHooks(scope, ctx) {
55
+ const path = this.hooksPath(scope, ctx);
56
+ const existed = (0, node_fs_1.existsSync)(path);
57
+ if (scope === "global" && existed)
58
+ (0, fs_io_1.backupOnce)(path);
59
+ const { value, changed } = mergeCursorHooks((0, fs_io_1.readJsonFile)(path), ctx);
60
+ if (!existed || changed)
61
+ (0, fs_io_1.writeJsonFile)(path, value);
62
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
63
+ },
64
+ async writeMcp(scope, ctx) {
65
+ const path = this.mcpPath(scope, ctx);
66
+ const existed = (0, node_fs_1.existsSync)(path);
67
+ if (scope === "global" && existed)
68
+ (0, fs_io_1.backupOnce)(path);
69
+ const { value, changed } = mergeCursorMcp((0, fs_io_1.readJsonFile)(path), ctx);
70
+ if (!existed || changed)
71
+ (0, fs_io_1.writeJsonFile)(path, value);
72
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
73
+ },
74
+ };
75
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/lib/agent-config/cursor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readJsonFile = readJsonFile;
4
+ exports.writeJsonFile = writeJsonFile;
5
+ exports.backupOnce = backupOnce;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ /** Parse a JSON file. Returns null if missing or malformed (callers treat
9
+ * null as "start fresh" — we never throw on a user's hand-edited config). */
10
+ function readJsonFile(path) {
11
+ let raw;
12
+ try {
13
+ raw = (0, node_fs_1.readFileSync)(path, "utf8");
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ try {
19
+ return JSON.parse(raw);
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ function writeJsonFile(path, value) {
26
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
27
+ (0, node_fs_1.writeFileSync)(path, JSON.stringify(value, null, 2) + "\n", "utf8");
28
+ }
29
+ /** Copy `path` to `path.bak` if the file exists and no `.bak` exists yet.
30
+ * Returns the backup path on success, else null. One-time insurance for
31
+ * user-global files that aren't under version control. */
32
+ function backupOnce(path) {
33
+ if (!(0, node_fs_1.existsSync)(path))
34
+ return null;
35
+ const bak = `${path}.bak`;
36
+ if ((0, node_fs_1.existsSync)(bak))
37
+ return null;
38
+ (0, node_fs_1.copyFileSync)(path, bak);
39
+ return bak;
40
+ }
41
+ //# sourceMappingURL=fs-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-io.js","sourceRoot":"","sources":["../../../src/lib/agent-config/fs-io.ts"],"names":[],"mappings":";;AAWA,oCAYC;AAED,sCAGC;AAKD,gCAMC;AAvCD,qCAMiB;AACjB,yCAAoC;AAEpC;8EAC8E;AAC9E,SAAgB,YAAY,CAAc,IAAY;IACpD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY,EAAE,KAAc;IACxD,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAA,uBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED;;2DAE2D;AAC3D,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;IAC1B,IAAI,IAAA,oBAAU,EAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAA,sBAAY,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.geminiAdapter = void 0;
4
+ exports.mergeGeminiHooks = mergeGeminiHooks;
5
+ exports.mergeGeminiMcp = mergeGeminiMcp;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const fs_io_1 = require("./fs-io");
9
+ const types_1 = require("./types");
10
+ function upsertGroupHook(hooks, event, command) {
11
+ const groups = hooks[event] ?? (hooks[event] = []);
12
+ for (const group of groups) {
13
+ for (const h of group.hooks ?? []) {
14
+ if (typeof h.command === "string" && h.command.includes("axgram-hook")) {
15
+ if (h.command === command)
16
+ return false;
17
+ h.command = command;
18
+ return true;
19
+ }
20
+ }
21
+ }
22
+ groups.push({ hooks: [{ type: "command", command }] });
23
+ return true;
24
+ }
25
+ function mergeGeminiHooks(existing, _ctx) {
26
+ const settings = (existing && typeof existing === "object" ? existing : {});
27
+ const hooks = (settings.hooks && typeof settings.hooks === "object" ? settings.hooks : {});
28
+ settings.hooks = hooks;
29
+ const a = upsertGroupHook(hooks, "SessionStart", "axgram-hook session-start --source gemini");
30
+ const b = upsertGroupHook(hooks, "SessionEnd", "axgram-hook stop --source gemini");
31
+ return { value: settings, changed: a || b };
32
+ }
33
+ function mergeGeminiMcp(existing, ctx) {
34
+ const root = (existing && typeof existing === "object" ? existing : {});
35
+ const servers = (root.mcpServers && typeof root.mcpServers === "object" ? root.mcpServers : {});
36
+ root.mcpServers = servers;
37
+ const entry = { httpUrl: (0, types_1.mcpEndpoint)(ctx) };
38
+ const changed = JSON.stringify(servers.axgram) !== JSON.stringify(entry);
39
+ servers.axgram = entry;
40
+ return { value: root, changed };
41
+ }
42
+ exports.geminiAdapter = {
43
+ id: "gemini",
44
+ displayName: "Gemini CLI",
45
+ isInstalled(ctx) {
46
+ return (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.home, ".gemini")) || (0, node_fs_1.existsSync)((0, node_path_1.resolve)(ctx.cwd, ".gemini"));
47
+ },
48
+ hooksPath(scope, ctx) {
49
+ return (0, node_path_1.resolve)(scope === "global" ? ctx.home : ctx.cwd, ".gemini", "settings.json");
50
+ },
51
+ mcpPath(scope, ctx) {
52
+ // Same file as hooks — Gemini keeps both in settings.json.
53
+ return this.hooksPath(scope, ctx);
54
+ },
55
+ async writeHooks(scope, ctx) {
56
+ const path = this.hooksPath(scope, ctx);
57
+ const existed = (0, node_fs_1.existsSync)(path);
58
+ if (scope === "global" && existed)
59
+ (0, fs_io_1.backupOnce)(path);
60
+ const { value, changed } = mergeGeminiHooks((0, fs_io_1.readJsonFile)(path), ctx);
61
+ if (!existed || changed)
62
+ (0, fs_io_1.writeJsonFile)(path, value);
63
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
64
+ },
65
+ async writeMcp(scope, ctx) {
66
+ const path = this.mcpPath(scope, ctx);
67
+ const existed = (0, node_fs_1.existsSync)(path);
68
+ if (scope === "global" && existed)
69
+ (0, fs_io_1.backupOnce)(path);
70
+ const { value, changed } = mergeGeminiMcp((0, fs_io_1.readJsonFile)(path), ctx);
71
+ if (!existed || changed)
72
+ (0, fs_io_1.writeJsonFile)(path, value);
73
+ return { path, action: !existed ? "created" : changed ? "updated" : "unchanged" };
74
+ },
75
+ };
76
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/lib/agent-config/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.adapters = void 0;
18
+ exports.getAdapter = getAdapter;
19
+ const claude_1 = require("./claude");
20
+ const codex_1 = require("./codex");
21
+ const cursor_1 = require("./cursor");
22
+ const gemini_1 = require("./gemini");
23
+ exports.adapters = [claude_1.claudeAdapter, cursor_1.cursorAdapter, codex_1.codexAdapter, gemini_1.geminiAdapter];
24
+ function getAdapter(id) {
25
+ return exports.adapters.find((a) => a.id === id);
26
+ }
27
+ __exportStar(require("./types"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/agent-config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,gCAEC;AAVD,qCAAyC;AACzC,mCAAuC;AACvC,qCAAyC;AACzC,qCAAyC;AAG5B,QAAA,QAAQ,GAAmB,CAAC,sBAAa,EAAE,sBAAa,EAAE,oBAAY,EAAE,sBAAa,CAAC,CAAC;AAEpG,SAAgB,UAAU,CAAC,EAAW;IACpC,OAAO,gBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,0CAAwB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mcpEndpoint = mcpEndpoint;
4
+ /** Full URL Claude/Cursor/Gemini/Codex connect to. */
5
+ function mcpEndpoint(ctx) {
6
+ return `${ctx.workerUrl.replace(/\/+$/, "")}/mcp`;
7
+ }
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/agent-config/types.ts"],"names":[],"mappings":";;AAqCA,kCAEC;AAHD,sDAAsD;AACtD,SAAgB,WAAW,CAAC,GAAa;IACvC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;AACpD,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.currentEmail = currentEmail;
4
+ const auth_1 = require("./auth");
5
+ /** The signed-in user's email, or null if not logged in / undecodable. */
6
+ async function currentEmail() {
7
+ const creds = await (0, auth_1.loadCredentials)();
8
+ if (!creds)
9
+ return null;
10
+ try {
11
+ const claims = (0, auth_1.decodeJwtPayload)(creds.access_token);
12
+ return claims.email ?? null;
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ }
18
+ //# sourceMappingURL=auth-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-email.js","sourceRoot":"","sources":["../../src/lib/auth-email.ts"],"names":[],"mappings":";;AAGA,oCASC;AAZD,iCAA2D;AAE3D,0EAA0E;AACnE,KAAK,UAAU,YAAY;IAChC,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAe,GAAE,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpD,OAAQ,MAAM,CAAC,KAA4B,IAAI,IAAI,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldOfferInit = shouldOfferInit;
4
+ exports.maybeOfferInit = maybeOfferInit;
5
+ const global_config_1 = require("./global-config");
6
+ const SKIP_COMMANDS = new Set(["init", "login", "logout"]);
7
+ function shouldOfferInit(s) {
8
+ if (!s.isTty)
9
+ return false;
10
+ if (s.completed)
11
+ return false;
12
+ if (SKIP_COMMANDS.has(s.command))
13
+ return false;
14
+ return true;
15
+ }
16
+ /** Called once before a normal command runs. If conditions hold, offers to
17
+ * run init; marks completed either way so the offer fires at most once. */
18
+ async function maybeOfferInit(deps) {
19
+ const completed = await (0, global_config_1.isInitCompleted)();
20
+ if (!shouldOfferInit({ isTty: deps.isTty, completed, command: deps.command }))
21
+ return;
22
+ deps.log("Axgram isn't set up for your AI tools yet.");
23
+ const yes = await deps.confirm("Run `axgram init` now?", true);
24
+ // One-time nudge: once the user has engaged with the offer, don't nag again
25
+ // on every subsequent command. They can re-run `axgram init` manually.
26
+ await (0, global_config_1.markInitCompleted)();
27
+ if (yes) {
28
+ await deps.runInit();
29
+ }
30
+ else {
31
+ deps.log("Skipped. Run `axgram init` anytime.");
32
+ }
33
+ }
34
+ //# sourceMappingURL=first-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-run.js","sourceRoot":"","sources":["../../src/lib/first-run.ts"],"names":[],"mappings":";;AAIA,0CAKC;AAYD,wCAcC;AAnCD,mDAAqE;AAErE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3D,SAAgB,eAAe,CAAC,CAA0D;IACxF,IAAI,CAAC,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAUD;4EAC4E;AACrE,KAAK,UAAU,cAAc,CAAC,IAAe;IAClD,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAe,GAAE,CAAC;IAC1C,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO;IAEtF,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,IAAA,iCAAiB,GAAE,CAAC;IAC1B,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadGlobalConfig = loadGlobalConfig;
4
4
  exports.setDefaultProject = setDefaultProject;
5
5
  exports.clearDefaultProject = clearDefaultProject;
6
+ exports.markInitCompleted = markInitCompleted;
7
+ exports.isInitCompleted = isInitCompleted;
6
8
  const promises_1 = require("node:fs/promises");
7
9
  const config_dir_1 = require("./config-dir");
8
10
  function emptyConfig() {
@@ -17,6 +19,7 @@ async function loadGlobalConfig() {
17
19
  ...(typeof parsed.default_project_id === "string"
18
20
  ? { default_project_id: parsed.default_project_id }
19
21
  : {}),
22
+ ...(parsed.init_completed === true ? { init_completed: true } : {}),
20
23
  };
21
24
  }
22
25
  catch (err) {
@@ -35,6 +38,14 @@ async function clearDefaultProject() {
35
38
  delete cfg.default_project_id;
36
39
  await persist(cfg);
37
40
  }
41
+ async function markInitCompleted() {
42
+ const cfg = await loadGlobalConfig();
43
+ cfg.init_completed = true;
44
+ await persist(cfg);
45
+ }
46
+ async function isInitCompleted() {
47
+ return (await loadGlobalConfig()).init_completed === true;
48
+ }
38
49
  async function persist(cfg) {
39
50
  await (0, promises_1.mkdir)((0, config_dir_1.configDir)(), { recursive: true, mode: 0o700 });
40
51
  await (0, promises_1.writeFile)((0, config_dir_1.configPath)(), JSON.stringify(cfg, null, 2), { encoding: "utf8", mode: 0o644 });
@@ -1 +1 @@
1
- {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/lib/global-config.ts"],"names":[],"mappings":";;AAYA,4CAcC;AAED,8CAIC;AAED,kDAIC;AAtCD,+CAA8D;AAC9D,6CAAqD;AAOrD,SAAS,WAAW;IAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,uBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;gBAC/C,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,WAAW,EAAE,CAAC;QAC3E,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACnC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,mBAAmB;IACvC,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,OAAO,GAAG,CAAC,kBAAkB,CAAC;IAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAiB;IACtC,MAAM,IAAA,gBAAK,EAAC,IAAA,sBAAS,GAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAA,oBAAS,EACb,IAAA,uBAAU,GAAE,EACZ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5B,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/lib/global-config.ts"],"names":[],"mappings":";;AAaA,4CAeC;AAED,8CAIC;AAED,kDAIC;AAED,8CAIC;AAED,0CAEC;AAlDD,+CAA8D;AAC9D,6CAAqD;AAQrD,SAAS,WAAW;IAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,uBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;gBAC/C,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,WAAW,EAAE,CAAC;QAC3E,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACnC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,mBAAmB;IACvC,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,OAAO,GAAG,CAAC,kBAAkB,CAAC;IAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,OAAO,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAiB;IACtC,MAAM,IAAA,gBAAK,EAAC,IAAA,sBAAS,GAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAA,oBAAS,EACb,IAAA,uBAAU,GAAE,EACZ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5B,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseConfirm = parseConfirm;
4
+ exports.parseMultiSelect = parseMultiSelect;
5
+ exports.confirmPrompt = confirmPrompt;
6
+ exports.selectPrompt = selectPrompt;
7
+ exports.multiSelectPrompt = multiSelectPrompt;
8
+ const promises_1 = require("node:readline/promises");
9
+ function parseConfirm(input, def) {
10
+ const v = input.trim().toLowerCase();
11
+ if (v === "")
12
+ return def;
13
+ if (v === "y" || v === "yes")
14
+ return true;
15
+ if (v === "n" || v === "no")
16
+ return false;
17
+ return def;
18
+ }
19
+ function parseMultiSelect(input, count) {
20
+ const v = input.trim().toLowerCase();
21
+ if (v === "")
22
+ return [];
23
+ if (v === "all" || v === "a")
24
+ return Array.from({ length: count }, (_, i) => i);
25
+ const out = [];
26
+ for (const tok of v.split(/[\s,]+/)) {
27
+ const n = Number.parseInt(tok, 10);
28
+ if (Number.isInteger(n) && n >= 1 && n <= count && !out.includes(n - 1)) {
29
+ out.push(n - 1);
30
+ }
31
+ }
32
+ return out.sort((a, b) => a - b);
33
+ }
34
+ async function ask(question) {
35
+ const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });
36
+ try {
37
+ return await rl.question(question);
38
+ }
39
+ finally {
40
+ rl.close();
41
+ }
42
+ }
43
+ async function confirmPrompt(question, def) {
44
+ const suffix = def ? " [Y/n] " : " [y/N] ";
45
+ return parseConfirm(await ask(question + suffix), def);
46
+ }
47
+ async function selectPrompt(question, choices) {
48
+ const lines = choices.map((c, i) => ` ${i + 1}) ${c.label}`).join("\n");
49
+ const answer = await ask(`${question}\n${lines}\nChoose [1]: `);
50
+ const n = Number.parseInt(answer.trim(), 10);
51
+ const idx = Number.isInteger(n) && n >= 1 && n <= choices.length ? n - 1 : 0;
52
+ return choices[idx].value;
53
+ }
54
+ async function multiSelectPrompt(question, choices) {
55
+ const preset = choices.map((c, i) => (c.checked ? i + 1 : null)).filter((n) => n !== null);
56
+ const lines = choices
57
+ .map((c, i) => ` ${i + 1}) [${c.checked ? "x" : " "}] ${c.label}`)
58
+ .join("\n");
59
+ const hint = preset.length ? preset.join(",") : "all";
60
+ const answer = await ask(`${question}\n${lines}\nSelect (e.g. 1,3 or 'all') [${hint}]: `);
61
+ const trimmed = answer.trim();
62
+ const indices = trimmed === "" ? preset.map((n) => n - 1) : parseMultiSelect(trimmed, choices.length);
63
+ return indices.map((i) => choices[i].value);
64
+ }
65
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axgram",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Axgram CLI — mine codebases, import conversation history, and run the auto-save hook for Claude Code.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,6 +19,7 @@
19
19
  "test:watch": "vitest",
20
20
  "typecheck": "tsc --noEmit",
21
21
  "clean": "rm -rf dist",
22
+ "postinstall": "node postinstall.cjs",
22
23
  "prepublishOnly": "npm run clean && npm run typecheck && npm test && npm run build"
23
24
  },
24
25
  "engines": {
@@ -26,6 +27,7 @@
26
27
  },
27
28
  "files": [
28
29
  "dist",
30
+ "postinstall.cjs",
29
31
  "README.md"
30
32
  ],
31
33
  "dependencies": {
@@ -36,7 +38,8 @@
36
38
  "commander": "^12.1.0",
37
39
  "gray-matter": "^4.0.3",
38
40
  "open": "^8.4.2",
39
- "ora": "^5.4.1"
41
+ "ora": "^5.4.1",
42
+ "smol-toml": "^1.6.1"
40
43
  },
41
44
  "devDependencies": {
42
45
  "@types/node": "^20.14.0",
@@ -0,0 +1,14 @@
1
+ // Install-time nudge. Must NEVER fail an install: everything is wrapped and
2
+ // we always exit 0. Runs for global, local, and transitive installs alike;
3
+ // printing a single hint is harmless in all of them.
4
+ try {
5
+ // Skip noise during the package's own CI install.
6
+ if (!process.env.CI) {
7
+ process.stdout.write(
8
+ "\nAxgram installed. Run `axgram init` to connect it to your AI tools (Claude Code, Cursor, Codex, Gemini).\n\n",
9
+ );
10
+ }
11
+ } catch {
12
+ // ignore
13
+ }
14
+ process.exit(0);