@itznexus/itznexus-cli 1.2.0 → 1.4.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.
@@ -16,14 +16,14 @@ async function prompt(question) {
16
16
  const loginCommand = new Command("login")
17
17
  .description("Configure API key authentication")
18
18
  .option("--api-url <url>", "API base URL (for local testing)")
19
- .option("--api-key <key>", "API key (sk-itznx_...)")
19
+ .option("--api-key <key>", "API key (itznx_...)")
20
20
  .action(async (opts) => {
21
21
  // Save custom API URL if provided (for local testing)
22
22
  if (opts.apiUrl) {
23
23
  saveConfig({ apiUrl: opts.apiUrl });
24
24
  }
25
25
  // API Key — prompt only if not passed as flag
26
- const apiKey = opts.apiKey ?? (await prompt("API Key (sk-itznx_...): "));
26
+ const apiKey = opts.apiKey ?? (await prompt("API Key (itznx_...): "));
27
27
  if (!apiKey) {
28
28
  console.error(chalk.red("✗"), "API key is required");
29
29
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const claudeCommand: Command;
@@ -0,0 +1,142 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { api } from "../lib/api.js";
4
+ import { printList, handleError } from "../lib/format.js";
5
+ import { normalizeClaudeEvents, } from "../lib/claude/normalize-events.js";
6
+ const BATCH_SIZE = 500;
7
+ // --- ingest ---
8
+ const ingestCommand = new Command("ingest")
9
+ .description("Ingest local Claude Code chat history into Nexus")
10
+ .option("--since <when>", "ISO date, duration like '24h', '7d', or 'last' (default). 'last' queries Nexus for the most recent event.", "last")
11
+ .option("--dry-run", "Normalize and count, do not push to API")
12
+ .option("--json", "Output as JSON")
13
+ .action(async (opts) => {
14
+ try {
15
+ const since = await resolveSince(opts.since);
16
+ if (!opts.json) {
17
+ console.log(chalk.dim(`Ingesting Claude Code events${since ? ` since ${since.toISOString()}` : " (full history)"}${opts.dryRun ? " [dry-run]" : ""}`));
18
+ }
19
+ let inserted = 0;
20
+ let skipped = 0;
21
+ let total = 0;
22
+ let batch = [];
23
+ const flush = async () => {
24
+ if (batch.length === 0)
25
+ return;
26
+ if (opts.dryRun) {
27
+ inserted += batch.length;
28
+ batch = [];
29
+ return;
30
+ }
31
+ const result = await api.post("/claude-events", { events: batch });
32
+ inserted += result.inserted;
33
+ skipped += result.skipped;
34
+ batch = [];
35
+ };
36
+ for await (const event of normalizeClaudeEvents({ since })) {
37
+ batch.push(event);
38
+ total++;
39
+ if (batch.length >= BATCH_SIZE) {
40
+ await flush();
41
+ if (!opts.json) {
42
+ process.stdout.write(chalk.dim(` pushed ${inserted}/${total}\r`));
43
+ }
44
+ }
45
+ }
46
+ await flush();
47
+ const result = {
48
+ total,
49
+ inserted,
50
+ skipped,
51
+ dryRun: !!opts.dryRun,
52
+ since: since?.toISOString() ?? null,
53
+ };
54
+ if (opts.json) {
55
+ console.log(JSON.stringify(result, null, 2));
56
+ }
57
+ else {
58
+ console.log(chalk.green("✓"), `${total} events normalized, ${inserted} inserted, ${skipped} skipped${opts.dryRun ? " (dry-run)" : ""}`);
59
+ }
60
+ }
61
+ catch (err) {
62
+ handleError(err);
63
+ }
64
+ });
65
+ // --- events list ---
66
+ const eventsListCommand = new Command("list")
67
+ .description("List ingested Claude events")
68
+ .option("--session <claudeSessionId>", "Filter by Claude session ID")
69
+ .option("--project <projectTag>", "Filter by project tag")
70
+ .option("--since <iso>", "Filter to events occurred after this ISO date")
71
+ .option("--until <iso>", "Filter to events occurred before this ISO date")
72
+ .option("--limit <n>", "Max results (default 50, max 5000)", "50")
73
+ .option("--json", "Output as JSON")
74
+ .action(async (opts) => {
75
+ try {
76
+ const params = new URLSearchParams();
77
+ if (opts.session)
78
+ params.set("claudeSessionId", opts.session);
79
+ if (opts.project)
80
+ params.set("projectTag", opts.project);
81
+ if (opts.since)
82
+ params.set("since", opts.since);
83
+ if (opts.until)
84
+ params.set("until", opts.until);
85
+ params.set("limit", opts.limit);
86
+ const data = await api.get(`/claude-events?${params.toString()}`);
87
+ printList(data, [
88
+ { key: "occurredAt", label: "When", width: 24 },
89
+ { key: "eventType", label: "Type", width: 24 },
90
+ { key: "projectTag", label: "Project", width: 18 },
91
+ { key: "gitBranch", label: "Branch", width: 16 },
92
+ { key: "claudeSessionId", label: "Session", width: 36 },
93
+ ], opts);
94
+ }
95
+ catch (err) {
96
+ handleError(err);
97
+ }
98
+ });
99
+ const eventsGetCommand = new Command("get")
100
+ .description("Get a single Claude event")
101
+ .argument("<id>", "Claude event ID")
102
+ .option("--json", "Output as JSON")
103
+ .action(async (id, opts) => {
104
+ try {
105
+ const data = await api.get(`/claude-events/${id}`);
106
+ console.log(JSON.stringify(data, null, 2));
107
+ void opts;
108
+ }
109
+ catch (err) {
110
+ handleError(err);
111
+ }
112
+ });
113
+ const eventsCommand = new Command("events")
114
+ .description("Query ingested Claude events")
115
+ .addCommand(eventsListCommand)
116
+ .addCommand(eventsGetCommand);
117
+ // --- parent ---
118
+ export const claudeCommand = new Command("claude")
119
+ .description("Ingest and query Claude Code chat history")
120
+ .addCommand(ingestCommand)
121
+ .addCommand(eventsCommand);
122
+ // --- helpers ---
123
+ async function resolveSince(raw) {
124
+ if (raw === "last") {
125
+ // Ask Nexus for the most recent event we've already ingested.
126
+ const rows = await api.get("/claude-events?limit=1");
127
+ return rows.length > 0 ? new Date(rows[0].occurredAt) : undefined;
128
+ }
129
+ const durationMatch = raw.match(/^(\d+)([hdw])$/);
130
+ if (durationMatch) {
131
+ const n = Number(durationMatch[1]);
132
+ const unit = durationMatch[2];
133
+ const ms = unit === "h" ? 3600_000 : unit === "d" ? 86400_000 : 604800_000;
134
+ return new Date(Date.now() - n * ms);
135
+ }
136
+ const d = new Date(raw);
137
+ if (Number.isNaN(d.getTime())) {
138
+ throw new Error(`Invalid --since value: ${raw}. Use ISO date, '24h', '7d', or 'last'.`);
139
+ }
140
+ return d;
141
+ }
142
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ import { pipelineCommand } from "./commands/pipeline.js";
21
21
  import { userCommand } from "./commands/user.js";
22
22
  import { schemaCommand } from "./commands/schema.js";
23
23
  import { upworkCommand } from "./commands/agents/upwork.js";
24
+ import { claudeCommand } from "./commands/claude.js";
24
25
  checkForUpdates();
25
26
  const helpText = `ITzNexus CLI — operational commands for ITzAgency
26
27
 
@@ -39,6 +40,7 @@ CORE DOMAINS
39
40
  page Manage pages (docs/notes)
40
41
  pipeline View pipeline definitions
41
42
  user Manage users
43
+ claude Ingest and query Claude Code chat history
42
44
 
43
45
  AGENT DOMAINS
44
46
  upwork Upwork agent commands
@@ -74,6 +76,7 @@ program.addCommand(interactionCommand);
74
76
  program.addCommand(pageCommand);
75
77
  program.addCommand(pipelineCommand);
76
78
  program.addCommand(userCommand);
79
+ program.addCommand(claudeCommand);
77
80
  // Agent domains
78
81
  program.addCommand(upworkCommand);
79
82
  // Base commands
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACxE,CAAC;AACF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAe,EAAE,CAAC;AAElB,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoChB,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,UAAU,CAAC;KAChB,OAAO,CAAC,GAAG,CAAC,OAAiB,EAAE,eAAe,CAAC;KAC/C,aAAa,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEjD,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,gBAAgB;AAChB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,gBAAgB;AAChB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type ClaudeEventInput = {
2
+ externalId: string;
3
+ eventType: "chat-message-user" | "chat-message-assistant" | "compact-boundary";
4
+ occurredAt: string;
5
+ projectTag: string | null;
6
+ cwd: string | null;
7
+ gitBranch: string | null;
8
+ claudeSessionId: string | null;
9
+ payload: unknown;
10
+ metadata: Record<string, unknown>;
11
+ };
12
+ export type NormalizeOptions = {
13
+ since?: Date;
14
+ onProgress?: (info: {
15
+ file: string;
16
+ events: number;
17
+ }) => void;
18
+ };
19
+ export declare function normalizeClaudeEvents(opts?: NormalizeOptions): AsyncGenerator<ClaudeEventInput>;
@@ -0,0 +1,158 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import os from "node:os";
4
+ import readline from "node:readline";
5
+ const CLAUDE_PROJECTS_DIR = path.join(os.homedir(), ".claude", "projects");
6
+ const SLASH_CLEAR_PATTERN = /<command-name>\/clear<\/command-name>/;
7
+ function isSlashClearMessage(message) {
8
+ if (typeof message === "string")
9
+ return SLASH_CLEAR_PATTERN.test(message);
10
+ if (!message || typeof message !== "object")
11
+ return false;
12
+ const content = message.content;
13
+ if (typeof content === "string")
14
+ return SLASH_CLEAR_PATTERN.test(content);
15
+ if (Array.isArray(content)) {
16
+ return content.some((b) => {
17
+ if (typeof b === "string")
18
+ return SLASH_CLEAR_PATTERN.test(b);
19
+ if (b &&
20
+ typeof b === "object" &&
21
+ typeof b.text === "string") {
22
+ return SLASH_CLEAR_PATTERN.test(b.text);
23
+ }
24
+ return false;
25
+ });
26
+ }
27
+ return false;
28
+ }
29
+ function* walkJsonlFiles(dir) {
30
+ let entries;
31
+ try {
32
+ entries = fs.readdirSync(dir, { withFileTypes: true });
33
+ }
34
+ catch {
35
+ return;
36
+ }
37
+ for (const entry of entries) {
38
+ const full = path.join(dir, entry.name);
39
+ if (entry.isDirectory()) {
40
+ yield* walkJsonlFiles(full);
41
+ }
42
+ else if (entry.isFile() && entry.name.endsWith(".jsonl")) {
43
+ yield full;
44
+ }
45
+ }
46
+ }
47
+ export async function* normalizeClaudeEvents(opts = {}) {
48
+ if (!fs.existsSync(CLAUDE_PROJECTS_DIR))
49
+ return;
50
+ for (const file of walkJsonlFiles(CLAUDE_PROJECTS_DIR)) {
51
+ let count = 0;
52
+ for await (const event of readJsonlFile(file, opts.since)) {
53
+ count++;
54
+ yield event;
55
+ }
56
+ if (opts.onProgress && count > 0) {
57
+ opts.onProgress({ file, events: count });
58
+ }
59
+ }
60
+ }
61
+ async function* readJsonlFile(file, since) {
62
+ const stream = fs.createReadStream(file, { encoding: "utf-8" });
63
+ const rl = readline.createInterface({ input: stream, crlfDelay: Infinity });
64
+ let yieldedAnyForSession = false;
65
+ for await (const line of rl) {
66
+ if (!line.trim())
67
+ continue;
68
+ let parsed;
69
+ try {
70
+ parsed = JSON.parse(line);
71
+ }
72
+ catch {
73
+ continue;
74
+ }
75
+ const isCompactBoundary = parsed.type === "system" && parsed.subtype === "compact_boundary";
76
+ const isChat = parsed.type === "user" || parsed.type === "assistant";
77
+ if (!isChat && !isCompactBoundary)
78
+ continue;
79
+ if (parsed.isMeta && !isCompactBoundary)
80
+ continue;
81
+ if (!parsed.uuid || !parsed.sessionId || !parsed.timestamp)
82
+ continue;
83
+ if (since && new Date(parsed.timestamp) < since)
84
+ continue;
85
+ if (!yieldedAnyForSession &&
86
+ parsed.type === "user" &&
87
+ isSlashClearMessage(parsed.message)) {
88
+ continue;
89
+ }
90
+ const eventType = isCompactBoundary
91
+ ? "compact-boundary"
92
+ : parsed.type === "user"
93
+ ? "chat-message-user"
94
+ : "chat-message-assistant";
95
+ const payload = isCompactBoundary
96
+ ? {
97
+ content: parsed.content ?? null,
98
+ logicalParentUuid: parsed.logicalParentUuid ?? null,
99
+ }
100
+ : {
101
+ message: parsed.message,
102
+ parentUuid: parsed.parentUuid ?? null,
103
+ promptId: parsed.promptId ?? null,
104
+ };
105
+ yieldedAnyForSession = true;
106
+ yield {
107
+ externalId: `claude:${parsed.sessionId}:${parsed.uuid}`,
108
+ eventType,
109
+ occurredAt: parsed.timestamp,
110
+ projectTag: deriveProjectTag(parsed.cwd),
111
+ cwd: parsed.cwd ?? null,
112
+ gitBranch: parsed.gitBranch && parsed.gitBranch !== "HEAD"
113
+ ? parsed.gitBranch
114
+ : null,
115
+ claudeSessionId: parsed.sessionId,
116
+ payload: stripInvalidUnicode(payload),
117
+ metadata: stripInvalidUnicode({
118
+ version: parsed.version,
119
+ isSidechain: parsed.isSidechain ?? false,
120
+ userType: parsed.userType,
121
+ entrypoint: parsed.entrypoint,
122
+ sourceFile: path.basename(file),
123
+ }),
124
+ };
125
+ }
126
+ }
127
+ function deriveProjectTag(cwd) {
128
+ if (!cwd)
129
+ return null;
130
+ return path.basename(cwd) || null;
131
+ }
132
+ // Postgres jsonb cannot store NULL bytes (U+0000) in text — they cause
133
+ // "unsupported Unicode escape sequence" (22P05). Lone surrogates also break
134
+ // jsonb encoding. Strip both recursively before sending.
135
+ const NULL_BYTE = String.fromCharCode(0);
136
+ const NULL_BYTE_RE = new RegExp(NULL_BYTE, "g");
137
+ const LONE_HIGH_SURROGATE = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])/g;
138
+ const LONE_LOW_SURROGATE = /(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g;
139
+ function stripInvalidUnicode(value) {
140
+ if (typeof value === "string") {
141
+ return value
142
+ .replace(NULL_BYTE_RE, "")
143
+ .replace(LONE_HIGH_SURROGATE, "")
144
+ .replace(LONE_LOW_SURROGATE, "");
145
+ }
146
+ if (Array.isArray(value)) {
147
+ return value.map(stripInvalidUnicode);
148
+ }
149
+ if (value && typeof value === "object") {
150
+ const out = {};
151
+ for (const [k, v] of Object.entries(value)) {
152
+ out[k] = stripInvalidUnicode(v);
153
+ }
154
+ return out;
155
+ }
156
+ return value;
157
+ }
158
+ //# sourceMappingURL=normalize-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-events.js","sourceRoot":"","sources":["../../../src/lib/claude/normalize-events.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itznexus/itznexus-cli",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "ITzNexus CLI — operational commands for ITzAgency",
5
5
  "type": "module",
6
6
  "publishConfig": {