@hasna/recordings 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -1515,7 +1515,7 @@ function setAgentFocus(idOrName, projectId, db) {
1515
1515
  }
1516
1516
 
1517
1517
  // src/version.ts
1518
- var VERSION = "0.2.6";
1518
+ var VERSION = "0.2.8";
1519
1519
 
1520
1520
  // src/db/feedback.ts
1521
1521
  function saveFeedback(input) {
@@ -2376,6 +2376,50 @@ function applyEnhancementOptions(config, opts) {
2376
2376
  return config;
2377
2377
  }
2378
2378
 
2379
+ // src/cli/mcp-config.ts
2380
+ function escapeRegExp(value) {
2381
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2382
+ }
2383
+ function isTableHeader(line) {
2384
+ return /^\s*\[/.test(line);
2385
+ }
2386
+ function removeCodexServerBlock(content, name) {
2387
+ const headerRe = new RegExp(`^\\s*\\[mcp_servers\\.${escapeRegExp(name)}(\\..+)?\\]\\s*$`);
2388
+ const lines = content.split(`
2389
+ `);
2390
+ const out = [];
2391
+ let skipping = false;
2392
+ let removed = false;
2393
+ for (const line of lines) {
2394
+ if (isTableHeader(line)) {
2395
+ skipping = headerRe.test(line);
2396
+ if (skipping) {
2397
+ removed = true;
2398
+ continue;
2399
+ }
2400
+ }
2401
+ if (skipping)
2402
+ continue;
2403
+ out.push(line);
2404
+ }
2405
+ const normalized = out.join(`
2406
+ `).replace(/\n{3,}/g, `
2407
+
2408
+ `).replace(/^\n+/, "");
2409
+ return { content: normalized, removed };
2410
+ }
2411
+ function upsertCodexStdioBlock(content, name, mcpCmd) {
2412
+ const { content: cleaned } = removeCodexServerBlock(content, name);
2413
+ const trimmed = cleaned.replace(/\s+$/, "");
2414
+ const block = `[mcp_servers.${name}]
2415
+ command = "${mcpCmd}"
2416
+ args = []
2417
+ `;
2418
+ return trimmed.length > 0 ? `${trimmed}
2419
+
2420
+ ${block}` : block;
2421
+ }
2422
+
2379
2423
  // src/cli/index.ts
2380
2424
  var program = new Command;
2381
2425
  program.name("recordings").description("Speech-to-text recording tool \u2014 record, transcribe, and enhance with AI").version(VERSION).option("--json", "Output as JSON").option("--agent <name>", "Agent name or ID").option("--project <name>", "Project name or ID").option("--session <id>", "Session ID");
@@ -3204,19 +3248,16 @@ program.command("mcp").description("Install recordings MCP server into Claude Co
3204
3248
  if (target === "codex") {
3205
3249
  const configPath = pathJoin2(home, ".codex", "config.toml");
3206
3250
  if (fileExists(configPath)) {
3207
- let content = readFileSync3(configPath, "utf-8");
3251
+ const content = readFileSync3(configPath, "utf-8");
3208
3252
  if (opts.uninstall) {
3209
- content = content.replace(/\n\[mcp_servers\.recordings\]\ncommand = "[^"]*"\nargs = \[\]\n?/g, `
3210
- `);
3211
- } else if (!content.includes("[mcp_servers.recordings]")) {
3212
- content += `
3213
- [mcp_servers.recordings]
3214
- command = "${mcpCmd}"
3215
- args = []
3216
- `;
3253
+ const { content: next, removed } = removeCodexServerBlock(content, "recordings");
3254
+ writeFileSync(configPath, next, "utf-8");
3255
+ console.log(removed ? chalk.green(`Removed from Codex: ${configPath}`) : chalk.yellow(`Codex: no recordings MCP block found in ${configPath}`));
3256
+ } else {
3257
+ const next = upsertCodexStdioBlock(content, "recordings", mcpCmd);
3258
+ writeFileSync(configPath, next, "utf-8");
3259
+ console.log(chalk.green(`Installed into Codex: ${configPath}`));
3217
3260
  }
3218
- writeFileSync(configPath, content, "utf-8");
3219
- console.log(chalk.green(`${action} Codex: ${configPath}`));
3220
3261
  } else {
3221
3262
  console.log(chalk.yellow(`Codex config not found: ${configPath}`));
3222
3263
  }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Pure helpers for editing an agent's MCP server config.
3
+ *
4
+ * Codex stores MCP servers as TOML tables (`[mcp_servers.<name>]`). A server
5
+ * block can be written in several transport forms — stdio (`command`/`args`)
6
+ * or streamable-HTTP (`url`/`http`, optional `headers`/`env` subtables). The
7
+ * uninstall/upsert logic must treat the whole table (and any of its subtables)
8
+ * as one unit regardless of which keys it holds, instead of matching one
9
+ * hand-written key layout. These functions are exported so the round-trip is
10
+ * unit-tested without touching the real `~/.codex/config.toml`.
11
+ */
12
+ /**
13
+ * Remove the `[mcp_servers.<name>]` table AND any of its subtables
14
+ * (`[mcp_servers.<name>.env]`, `.headers`, …) with their bodies — whatever the
15
+ * transport form. A block runs from its header until the next table header or
16
+ * end of file. Returns the rewritten content and whether anything was removed.
17
+ */
18
+ export declare function removeCodexServerBlock(content: string, name: string): {
19
+ content: string;
20
+ removed: boolean;
21
+ };
22
+ /**
23
+ * Ensure exactly one stdio `[mcp_servers.<name>]` block exists, pointing at
24
+ * `mcpCmd`. Any pre-existing block (in any transport form) is replaced, so the
25
+ * install is authoritative and idempotent rather than a silent no-op.
26
+ */
27
+ export declare function upsertCodexStdioBlock(content: string, name: string, mcpCmd: string): string;
28
+ //# sourceMappingURL=mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA4BvC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAKR"}
@@ -12,4 +12,13 @@ export declare class ProjectNotFoundError extends Error {
12
12
  readonly ref: string;
13
13
  constructor(ref: string);
14
14
  }
15
+ /**
16
+ * Thrown for invalid client input (missing/blank required fields). Its message
17
+ * is safe to surface to the caller as a clean 400. This is distinct from an
18
+ * unexpected internal/DB error, whose raw text (e.g. a Postgres constraint name)
19
+ * must NEVER be returned to the client.
20
+ */
21
+ export declare class ValidationError extends Error {
22
+ constructor(message: string);
23
+ }
15
24
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/db/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM;CAKxB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/db/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM;CAKxB;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B"}
package/dist/index.js CHANGED
@@ -774,7 +774,7 @@ function setAgentFocus(idOrName, projectId, db) {
774
774
  }
775
775
 
776
776
  // src/version.ts
777
- var VERSION = "0.2.6";
777
+ var VERSION = "0.2.8";
778
778
 
779
779
  // src/db/feedback.ts
780
780
  function saveFeedback(input) {
package/dist/mcp/index.js CHANGED
@@ -4648,7 +4648,7 @@ function setAgentFocus(idOrName, projectId, db) {
4648
4648
  }
4649
4649
 
4650
4650
  // src/version.ts
4651
- var VERSION = "0.2.6";
4651
+ var VERSION = "0.2.8";
4652
4652
 
4653
4653
  // src/db/feedback.ts
4654
4654
  function saveFeedback(input) {
@@ -18,7 +18,7 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
18
18
  var __require = import.meta.require;
19
19
 
20
20
  // src/version.ts
21
- var VERSION = "0.2.6";
21
+ var VERSION = "0.2.8";
22
22
 
23
23
  // src/db/remote-storage.ts
24
24
  import pg from "pg";
@@ -262,7 +262,7 @@ var init_cloud = __esm(() => {
262
262
  });
263
263
 
264
264
  // src/db/errors.ts
265
- var ProjectNotFoundError;
265
+ var ProjectNotFoundError, ValidationError;
266
266
  var init_errors = __esm(() => {
267
267
  ProjectNotFoundError = class ProjectNotFoundError extends Error {
268
268
  ref;
@@ -272,6 +272,12 @@ var init_errors = __esm(() => {
272
272
  this.ref = ref;
273
273
  }
274
274
  };
275
+ ValidationError = class ValidationError extends Error {
276
+ constructor(message) {
277
+ super(message);
278
+ this.name = "ValidationError";
279
+ }
280
+ };
275
281
  });
276
282
 
277
283
  // src/server/repo.ts
@@ -335,7 +341,7 @@ function parseProject(row) {
335
341
  }
336
342
  async function createRecording(pg2, input) {
337
343
  if (typeof input.raw_text !== "string" || !input.raw_text) {
338
- throw new Error("raw_text is required");
344
+ throw new ValidationError("raw_text is required");
339
345
  }
340
346
  const id = shortUuid();
341
347
  await pg2.run(`INSERT INTO recordings (id, audio_path, raw_text, processed_text, processing_mode, model_used, enhancement_model, duration_ms, language, tags, agent_id, project_id, session_id, goal, role, task_list_id, machine_id, metadata)
@@ -423,7 +429,7 @@ async function getRecordingStats(pg2) {
423
429
  }
424
430
  async function registerAgent(pg2, name, description, role) {
425
431
  if (!name)
426
- throw new Error("name is required");
432
+ throw new ValidationError("name is required");
427
433
  const now = new Date().toISOString();
428
434
  const existing = await pg2.get("SELECT * FROM agents WHERE name = ?", name);
429
435
  if (existing) {
@@ -471,7 +477,7 @@ async function setAgentFocus(pg2, idOrName, projectId) {
471
477
  }
472
478
  async function registerProject(pg2, name, path, description) {
473
479
  if (!name || !path)
474
- throw new Error("name and path are required");
480
+ throw new ValidationError("name and path are required");
475
481
  const now = new Date().toISOString();
476
482
  const existing = await pg2.get("SELECT * FROM projects WHERE path = ?", path);
477
483
  if (existing) {
@@ -501,7 +507,7 @@ async function listProjects(pg2) {
501
507
  }
502
508
  async function saveFeedback(pg2, input) {
503
509
  if (typeof input.message !== "string" || !input.message.trim()) {
504
- throw new Error("message is required");
510
+ throw new ValidationError("message is required");
505
511
  }
506
512
  await pg2.run("INSERT INTO feedback (message, email, category, version) VALUES (?, ?, ?, ?)", input.message, input.email || null, input.category || "general", input.version || null);
507
513
  return { saved: true };
@@ -679,7 +685,11 @@ async function handleV1Request(req, url) {
679
685
  }
680
686
  return error(404, `unknown /v1 resource: ${resource ?? ""}`);
681
687
  } catch (e) {
682
- return error(500, e.message);
688
+ if (e instanceof ProjectNotFoundError || e instanceof ValidationError) {
689
+ return error(400, e.message);
690
+ }
691
+ console.error(`[recordings-serve] unhandled ${method} ${path} error:`, e);
692
+ return error(500, "internal server error");
683
693
  }
684
694
  }
685
695
  var JSON_HEADERS;
@@ -12,9 +12,9 @@
12
12
  * stubs — every operation executes real SQL.
13
13
  */
14
14
  import type { PgAdapterAsync } from "../db/remote-storage.js";
15
- import { ProjectNotFoundError } from "../db/errors.js";
15
+ import { ProjectNotFoundError, ValidationError } from "../db/errors.js";
16
16
  import type { Recording, CreateRecordingInput, RecordingFilter, Agent, Project } from "../types/index.js";
17
- export { ProjectNotFoundError };
17
+ export { ProjectNotFoundError, ValidationError };
18
18
  export declare function createRecording(pg: PgAdapterAsync, input: CreateRecordingInput): Promise<Recording>;
19
19
  export declare function getRecording(pg: PgAdapterAsync, id: string): Promise<Recording | null>;
20
20
  export declare function listRecordings(pg: PgAdapterAsync, filter?: RecordingFilter): Promise<Recording[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/server/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/server/repo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA6KtF"}
1
+ {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAsLtF"}
package/dist/storage.js CHANGED
@@ -613,7 +613,7 @@ function setAgentFocus(idOrName, projectId, db) {
613
613
  }
614
614
 
615
615
  // src/version.ts
616
- var VERSION = "0.2.6";
616
+ var VERSION = "0.2.8";
617
617
 
618
618
  // src/db/feedback.ts
619
619
  function saveFeedback(input) {
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.2.6";
1
+ export declare const VERSION = "0.2.8";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/recordings",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "type": "module",
5
5
  "description": "Speech-to-text recording tool with MCP and CLI — records, transcribes, and optionally enhances text using AI",
6
6
  "repository": {