@signetai/connector-codex 0.182.9 → 0.183.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.
package/dist/index.d.ts CHANGED
@@ -25,6 +25,21 @@ export declare function writeCodexPluginBundle(input: {
25
25
  readonly mcp?: SignetMcpConfig;
26
26
  readonly remoteDaemonUrl?: string | null;
27
27
  }): CodexPluginBundleResult;
28
+ interface MatcherGroup {
29
+ matcher?: string;
30
+ hooks: HandlerConfig[];
31
+ }
32
+ interface HandlerConfig {
33
+ type: "command";
34
+ command: string;
35
+ timeout?: number;
36
+ }
37
+ interface HooksFile {
38
+ description?: string;
39
+ hooks?: Record<string, MatcherGroup[]>;
40
+ [key: string]: unknown;
41
+ }
42
+ export declare function buildHooksFile(signetArgs: string[], remoteDaemonUrl?: string | null): HooksFile;
28
43
  export declare function buildMcpBlock(mcp: SignetMcpConfig): string;
29
44
  export declare class CodexConnector extends BaseConnector {
30
45
  readonly name = "Codex";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,eAAe,EAOpB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC9D;IACA,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD,CAAC;AAWL,UAAU,uBAAuB;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,UAAU,yBAAyB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAgFD,wBAAgB,uBAAuB,CACtC,QAAQ,GAAE,SAAS,MAAM,EAA4B,EACrD,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAA6B,GACvD,MAAM,GAAG,IAAI,CAQf;AAkJD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,GAAG,uBAAuB,CAe1B;AA6ZD,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAuB1D;AA8HD,qBAAa,cAAe,SAAQ,aAAa;IAChD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,SAAS,WAAW;IAE7B,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,uBAAuB,IAAI,SAAS,MAAM,EAAE;IAItD,SAAS,CAAC,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAIlD,SAAS,CAAC,2BAA2B,IAAI,OAAO;IAShD,SAAS,CAAC,yBAAyB,IAAI,OAAO;IAI9C,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB;IAoB3E,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOrD,OAAO,CAAC,gBAAgB;IAIxB,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,wBAAwB;IAkC1B,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAqGjD,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IA2D3C,WAAW,IAAI,OAAO;CAgBtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10450,6 +10450,55 @@ function up114(db) {
10450
10450
  ON entity_attributes(memory_id, agent_id, status, importance);
10451
10451
  `);
10452
10452
  }
10453
+ function up115(db) {
10454
+ db.exec(`
10455
+ CREATE TABLE IF NOT EXISTS cross_agent_messages (
10456
+ id TEXT PRIMARY KEY,
10457
+ from_agent_id TEXT NOT NULL,
10458
+ from_session_key TEXT,
10459
+ to_agent_id TEXT,
10460
+ to_session_key TEXT,
10461
+ to_session_agent_id TEXT,
10462
+ broadcast INTEGER NOT NULL DEFAULT 0 CHECK(broadcast IN (0, 1)),
10463
+ message_type TEXT NOT NULL CHECK(message_type IN ('assist_request', 'decision_update', 'info', 'question')),
10464
+ content TEXT NOT NULL,
10465
+ delivery_path TEXT NOT NULL CHECK(delivery_path IN ('local', 'acp')),
10466
+ delivery_status TEXT NOT NULL CHECK(delivery_status IN ('queued', 'delivered', 'failed')),
10467
+ delivery_error TEXT,
10468
+ delivery_receipt_json TEXT,
10469
+ created_at TEXT NOT NULL,
10470
+ expires_at TEXT NOT NULL,
10471
+ CHECK(
10472
+ delivery_path = 'acp'
10473
+ OR (
10474
+ CAST(to_agent_id IS NOT NULL AS INTEGER)
10475
+ + CAST(to_session_key IS NOT NULL AS INTEGER)
10476
+ + broadcast = 1
10477
+ )
10478
+ )
10479
+ );
10480
+
10481
+ CREATE TABLE IF NOT EXISTS cross_agent_message_receipts (
10482
+ message_id TEXT NOT NULL REFERENCES cross_agent_messages(id) ON DELETE CASCADE,
10483
+ agent_id TEXT NOT NULL,
10484
+ acknowledged_at TEXT NOT NULL,
10485
+ PRIMARY KEY (message_id, agent_id)
10486
+ );
10487
+
10488
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_agent
10489
+ ON cross_agent_messages(to_agent_id, expires_at, created_at, id);
10490
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_session
10491
+ ON cross_agent_messages(to_session_key, expires_at, created_at, id);
10492
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_session_agent
10493
+ ON cross_agent_messages(to_session_agent_id, expires_at, created_at, id);
10494
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_broadcast
10495
+ ON cross_agent_messages(broadcast, expires_at, created_at, id);
10496
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_sender
10497
+ ON cross_agent_messages(from_agent_id, expires_at, created_at, id);
10498
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_receipts_agent
10499
+ ON cross_agent_message_receipts(agent_id, acknowledged_at, message_id);
10500
+ `);
10501
+ }
10453
10502
  var MIGRATIONS = [
10454
10503
  {
10455
10504
  version: 1,
@@ -11367,6 +11416,14 @@ var MIGRATIONS = [
11367
11416
  version: 114,
11368
11417
  name: "memory-traversal-hydration-index",
11369
11418
  up: up114
11419
+ },
11420
+ {
11421
+ version: 115,
11422
+ name: "cross-agent-message-notifications",
11423
+ up: up115,
11424
+ artifacts: {
11425
+ tables: ["cross_agent_messages", "cross_agent_message_receipts"]
11426
+ }
11370
11427
  }
11371
11428
  ];
11372
11429
  var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
@@ -18749,7 +18806,7 @@ function memoriesFtsNeedsTokenizerRepair2(sql) {
18749
18806
  return true;
18750
18807
  return !normalized.includes(`tokenize='${MEMORIES_FTS_TOKENIZER2}'`);
18751
18808
  }
18752
- function up115(db) {
18809
+ function up116(db) {
18753
18810
  db.exec(`
18754
18811
  CREATE TABLE IF NOT EXISTS schema_migrations (
18755
18812
  version INTEGER PRIMARY KEY,
@@ -19172,7 +19229,7 @@ function up1010(db) {
19172
19229
  )
19173
19230
  `);
19174
19231
  }
19175
- function up116(db) {
19232
+ function up117(db) {
19176
19233
  db.exec(`
19177
19234
  CREATE TABLE IF NOT EXISTS session_scores (
19178
19235
  id TEXT PRIMARY KEY,
@@ -22232,11 +22289,60 @@ function up1142(db) {
22232
22289
  ON entity_attributes(memory_id, agent_id, status, importance);
22233
22290
  `);
22234
22291
  }
22292
+ function up1152(db) {
22293
+ db.exec(`
22294
+ CREATE TABLE IF NOT EXISTS cross_agent_messages (
22295
+ id TEXT PRIMARY KEY,
22296
+ from_agent_id TEXT NOT NULL,
22297
+ from_session_key TEXT,
22298
+ to_agent_id TEXT,
22299
+ to_session_key TEXT,
22300
+ to_session_agent_id TEXT,
22301
+ broadcast INTEGER NOT NULL DEFAULT 0 CHECK(broadcast IN (0, 1)),
22302
+ message_type TEXT NOT NULL CHECK(message_type IN ('assist_request', 'decision_update', 'info', 'question')),
22303
+ content TEXT NOT NULL,
22304
+ delivery_path TEXT NOT NULL CHECK(delivery_path IN ('local', 'acp')),
22305
+ delivery_status TEXT NOT NULL CHECK(delivery_status IN ('queued', 'delivered', 'failed')),
22306
+ delivery_error TEXT,
22307
+ delivery_receipt_json TEXT,
22308
+ created_at TEXT NOT NULL,
22309
+ expires_at TEXT NOT NULL,
22310
+ CHECK(
22311
+ delivery_path = 'acp'
22312
+ OR (
22313
+ CAST(to_agent_id IS NOT NULL AS INTEGER)
22314
+ + CAST(to_session_key IS NOT NULL AS INTEGER)
22315
+ + broadcast = 1
22316
+ )
22317
+ )
22318
+ );
22319
+
22320
+ CREATE TABLE IF NOT EXISTS cross_agent_message_receipts (
22321
+ message_id TEXT NOT NULL REFERENCES cross_agent_messages(id) ON DELETE CASCADE,
22322
+ agent_id TEXT NOT NULL,
22323
+ acknowledged_at TEXT NOT NULL,
22324
+ PRIMARY KEY (message_id, agent_id)
22325
+ );
22326
+
22327
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_agent
22328
+ ON cross_agent_messages(to_agent_id, expires_at, created_at, id);
22329
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_session
22330
+ ON cross_agent_messages(to_session_key, expires_at, created_at, id);
22331
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_session_agent
22332
+ ON cross_agent_messages(to_session_agent_id, expires_at, created_at, id);
22333
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_broadcast
22334
+ ON cross_agent_messages(broadcast, expires_at, created_at, id);
22335
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_messages_sender
22336
+ ON cross_agent_messages(from_agent_id, expires_at, created_at, id);
22337
+ CREATE INDEX IF NOT EXISTS idx_cross_agent_receipts_agent
22338
+ ON cross_agent_message_receipts(agent_id, acknowledged_at, message_id);
22339
+ `);
22340
+ }
22235
22341
  var MIGRATIONS2 = [
22236
22342
  {
22237
22343
  version: 1,
22238
22344
  name: "baseline",
22239
- up: up115,
22345
+ up: up116,
22240
22346
  artifacts: { tables: ["memories", "conversations", "embeddings"] }
22241
22347
  },
22242
22348
  {
@@ -22302,7 +22408,7 @@ var MIGRATIONS2 = [
22302
22408
  {
22303
22409
  version: 11,
22304
22410
  name: "session-scores",
22305
- up: up116,
22411
+ up: up117,
22306
22412
  artifacts: { tables: ["session_scores"] }
22307
22413
  },
22308
22414
  {
@@ -23149,6 +23255,14 @@ var MIGRATIONS2 = [
23149
23255
  version: 114,
23150
23256
  name: "memory-traversal-hydration-index",
23151
23257
  up: up1142
23258
+ },
23259
+ {
23260
+ version: 115,
23261
+ name: "cross-agent-message-notifications",
23262
+ up: up1152,
23263
+ artifacts: {
23264
+ tables: ["cross_agent_messages", "cross_agent_message_receipts"]
23265
+ }
23152
23266
  }
23153
23267
  ];
23154
23268
  var LATEST_SCHEMA_VERSION2 = MIGRATIONS2[MIGRATIONS2.length - 1]?.version ?? 0;
@@ -23544,10 +23658,11 @@ function writeCodexPluginBundle(input) {
23544
23658
  }
23545
23659
  return { marketplaceRoot, pluginRoot, filesWritten };
23546
23660
  }
23547
- var HOOK_EVENT_KEYS = ["SessionStart", "UserPromptSubmit", "Stop"];
23661
+ var HOOK_EVENT_KEYS = ["SessionStart", "UserPromptSubmit", "PreToolUse", "Stop"];
23548
23662
  var CODEX_SESSION_START_GRACE_SECONDS = 5;
23549
23663
  var CODEX_PROMPT_SUBMIT_GRACE_SECONDS = 2;
23550
23664
  var SESSION_END_TIMEOUT_SECONDS = 30;
23665
+ var NOTIFICATION_HOOK_TIMEOUT_SECONDS = 5;
23551
23666
  function readTimeoutEnv(name) {
23552
23667
  const value = process.env[name];
23553
23668
  return typeof value === "string" ? value.trim() : "";
@@ -23586,11 +23701,11 @@ function withRemoteDaemonEnv(command, remoteDaemonUrl) {
23586
23701
  ].join(" ");
23587
23702
  }
23588
23703
  function buildHooksFile(signetArgs, remoteDaemonUrl = resolveRemoteDaemonUrl()) {
23589
- const cmd = (subcommand, secs, codexJson = true) => ({
23704
+ const cmd = (subcommand, secs, codexJson = true, extraArgs = []) => ({
23590
23705
  hooks: [
23591
23706
  {
23592
23707
  type: "command",
23593
- command: withRemoteDaemonEnv([...signetArgs, "hook", subcommand, "-H", "codex", ...codexJson ? ["--codex-json"] : []].join(" "), remoteDaemonUrl),
23708
+ command: withRemoteDaemonEnv([...signetArgs, "hook", subcommand, "-H", "codex", ...extraArgs, ...codexJson ? ["--codex-json"] : []].join(" "), remoteDaemonUrl),
23594
23709
  timeout: secs
23595
23710
  }
23596
23711
  ]
@@ -23599,6 +23714,7 @@ function buildHooksFile(signetArgs, remoteDaemonUrl = resolveRemoteDaemonUrl())
23599
23714
  hooks: {
23600
23715
  SessionStart: [cmd("session-start", resolveCodexSessionStartTimeoutSeconds())],
23601
23716
  UserPromptSubmit: [cmd("user-prompt-submit", resolveCodexPromptSubmitTimeoutSeconds())],
23717
+ PreToolUse: [cmd("notifications", NOTIFICATION_HOOK_TIMEOUT_SECONDS, true, ["--hook", "PreToolUse"])],
23602
23718
  Stop: [cmd("session-end", SESSION_END_TIMEOUT_SECONDS, false)]
23603
23719
  }
23604
23720
  };
@@ -23747,6 +23863,7 @@ function removeSignetEntries(file) {
23747
23863
  var CODEX_HOOK_EVENT_LABELS = {
23748
23864
  SessionStart: "session_start",
23749
23865
  UserPromptSubmit: "user_prompt_submit",
23866
+ PreToolUse: "pre_tool_use",
23750
23867
  Stop: "stop"
23751
23868
  };
23752
23869
  function canonicalJson(value) {
@@ -24295,5 +24412,6 @@ export {
24295
24412
  writeCodexPluginBundle,
24296
24413
  resolveCodexDesktopNode,
24297
24414
  buildMcpBlock,
24415
+ buildHooksFile,
24298
24416
  CodexConnector
24299
24417
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signetai/connector-codex",
3
- "version": "0.182.9",
3
+ "version": "0.183.0",
4
4
  "description": "Signet connector for Codex CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,8 +24,8 @@
24
24
  "typecheck": "tsc --noEmit"
25
25
  },
26
26
  "dependencies": {
27
- "@signetai/connector-base": "0.182.9",
28
- "@signetai/core": "0.182.9"
27
+ "@signetai/connector-base": "0.183.0",
28
+ "@signetai/core": "0.183.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^22.0.0",