@coralai/nps-cli 0.1.4 → 0.1.5

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.
@@ -15,5 +15,8 @@ export declare class BindingsLoader extends EventEmitter {
15
15
  lookupMatrix(channelId: string): string | undefined;
16
16
  /** Snapshot of current bindings (read-only). */
17
17
  snapshot(): BindingsFile;
18
+ /** v0.1.5: explicit synchronous reload, used by IM /bind right after the
19
+ * daemon-side writer commits. Avoids waiting for chokidar's async fire. */
20
+ reloadSync(): void;
18
21
  }
19
22
  //# sourceMappingURL=bindings-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindings-loader.d.ts","sourceRoot":"","sources":["../../src/bindings/bindings-loader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,qBAAa,cAAe,SAAQ,YAAY;IAM5C,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAwB;gBAGpB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE,MAAM;IAMX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,MAAM;IA4Bd,0EAA0E;IAC1E,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD,gDAAgD;IAChD,QAAQ,IAAI,YAAY;CAGzB"}
1
+ {"version":3,"file":"bindings-loader.d.ts","sourceRoot":"","sources":["../../src/bindings/bindings-loader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,qBAAa,cAAe,SAAQ,YAAY;IAM5C,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAwB;gBAGpB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE,MAAM;IAMX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,MAAM;IA4Bd,0EAA0E;IAC1E,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD,gDAAgD;IAChD,QAAQ,IAAI,YAAY;IAIxB;gFAC4E;IAC5E,UAAU,IAAI,IAAI;CAGnB"}
@@ -80,5 +80,10 @@ export class BindingsLoader extends EventEmitter {
80
80
  snapshot() {
81
81
  return JSON.parse(JSON.stringify(this.bindings));
82
82
  }
83
+ /** v0.1.5: explicit synchronous reload, used by IM /bind right after the
84
+ * daemon-side writer commits. Avoids waiting for chokidar's async fire. */
85
+ reloadSync() {
86
+ this.reload();
87
+ }
83
88
  }
84
89
  //# sourceMappingURL=bindings-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindings-loader.js","sourceRoot":"","sources":["../../src/bindings/bindings-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings-loader.js","sourceRoot":"","sources":["../../src/bindings/bindings-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface BindingsShape {
2
+ matrix: Record<string, string>;
3
+ }
4
+ export interface BindingsWriterPaths {
5
+ bindingsFile: string;
6
+ lockFile: string;
7
+ }
8
+ /** Bind a channel to a profile. Idempotent — same args means same result. */
9
+ export declare function bindMatrix(paths: BindingsWriterPaths, channelId: string, profile: string): Promise<BindingsShape>;
10
+ /** Remove a binding. Returns the post-write state. No-op if absent. */
11
+ export declare function unbindMatrix(paths: BindingsWriterPaths, channelId: string): Promise<BindingsShape>;
12
+ /** Read-only snapshot (no lock — racy, intended for `bind list`). */
13
+ export declare function listBindings(paths: BindingsWriterPaths): BindingsShape;
14
+ //# sourceMappingURL=bindings-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings-writer.d.ts","sourceRoot":"","sources":["../../src/bindings/bindings-writer.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAoDD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,uEAAuE;AACvE,wBAAsB,YAAY,CAChC,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa,CAEtE"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * BindingsWriter — shared between `nps bind` CLI and IM /bind /unbind slash
3
+ * commands. Implements the file-lock + atomic-rename protocol from
4
+ * CEO plan rev 5 §6.4.
5
+ *
6
+ * The lock file `~/.nps/.bindings.lock` is created with O_CREAT|O_EXCL.
7
+ * Both writers race for it; whoever loses retries up to 60 × 50ms.
8
+ *
9
+ * If a writer crashes mid-lock, the lock persists — manual recovery is
10
+ * `rm ~/.nps/.bindings.lock`. Document this in operator hints.
11
+ */
12
+ import { existsSync, openSync, closeSync, readFileSync, writeFileSync, renameSync, unlinkSync, chmodSync, mkdirSync, } from 'node:fs';
13
+ import { dirname } from 'node:path';
14
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
15
+ import { NpsError } from '../errors.js';
16
+ const LOCK_RETRY_MS = 50;
17
+ const LOCK_MAX_RETRIES = 60; // 3 seconds total
18
+ async function sleep(ms) {
19
+ await new Promise(r => setTimeout(r, ms));
20
+ }
21
+ async function acquireLock(lockPath) {
22
+ for (let i = 0; i < LOCK_MAX_RETRIES; i++) {
23
+ try {
24
+ mkdirSync(dirname(lockPath), { recursive: true });
25
+ const fd = openSync(lockPath, 'wx', 0o600);
26
+ writeFileSync(lockPath, `${process.pid}\n`);
27
+ closeSync(fd);
28
+ return;
29
+ }
30
+ catch (e) {
31
+ const msg = e instanceof Error ? e.message : String(e);
32
+ if (msg.includes('EEXIST')) {
33
+ await sleep(LOCK_RETRY_MS);
34
+ continue;
35
+ }
36
+ throw new NpsError('BINDING_WRITE_FAILED', `unable to acquire bindings lock: ${msg}`);
37
+ }
38
+ }
39
+ throw new NpsError('BINDING_WRITE_FAILED', `could not acquire bindings lock at ${lockPath} after ${LOCK_MAX_RETRIES * LOCK_RETRY_MS}ms`);
40
+ }
41
+ function releaseLock(lockPath) {
42
+ try {
43
+ unlinkSync(lockPath);
44
+ }
45
+ catch { /* best-effort */ }
46
+ }
47
+ function readBindings(path) {
48
+ if (!existsSync(path))
49
+ return { matrix: {} };
50
+ const raw = readFileSync(path, 'utf8');
51
+ const parsed = parseYaml(raw);
52
+ if (!parsed)
53
+ return { matrix: {} };
54
+ return {
55
+ matrix: parsed.matrix ?? {},
56
+ };
57
+ }
58
+ function writeBindings(path, bindings) {
59
+ mkdirSync(dirname(path), { recursive: true });
60
+ const tmp = path + '.tmp';
61
+ const yaml = stringifyYaml(bindings, { sortMapEntries: true, lineWidth: 0 });
62
+ writeFileSync(tmp, yaml, { mode: 0o600 });
63
+ renameSync(tmp, path);
64
+ try {
65
+ chmodSync(path, 0o600);
66
+ }
67
+ catch { /* ignore */ }
68
+ }
69
+ /** Bind a channel to a profile. Idempotent — same args means same result. */
70
+ export async function bindMatrix(paths, channelId, profile) {
71
+ await acquireLock(paths.lockFile);
72
+ try {
73
+ const b = readBindings(paths.bindingsFile);
74
+ b.matrix[channelId] = profile;
75
+ writeBindings(paths.bindingsFile, b);
76
+ return b;
77
+ }
78
+ finally {
79
+ releaseLock(paths.lockFile);
80
+ }
81
+ }
82
+ /** Remove a binding. Returns the post-write state. No-op if absent. */
83
+ export async function unbindMatrix(paths, channelId) {
84
+ await acquireLock(paths.lockFile);
85
+ try {
86
+ const b = readBindings(paths.bindingsFile);
87
+ delete b.matrix[channelId];
88
+ writeBindings(paths.bindingsFile, b);
89
+ return b;
90
+ }
91
+ finally {
92
+ releaseLock(paths.lockFile);
93
+ }
94
+ }
95
+ /** Read-only snapshot (no lock — racy, intended for `bind list`). */
96
+ export function listBindings(paths) {
97
+ return readBindings(paths.bindingsFile);
98
+ }
99
+ //# sourceMappingURL=bindings-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings-writer.js","sourceRoot":"","sources":["../../src/bindings/bindings-writer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bind-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/bind-cmd.ts"],"names":[],"mappings":"AAcA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAUhE"}
1
+ {"version":3,"file":"bind-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/bind-cmd.ts"],"names":[],"mappings":"AAQA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAUhE"}
@@ -1,74 +1,22 @@
1
1
  /**
2
- * `nps bind` subcommand: add / remove / list.
3
- *
4
- * Uses a file-lock + atomic rename pattern to avoid races with the daemon
5
- * reader and concurrent CLI invocations.
2
+ * `nps bind` subcommand uses shared bindings-writer with file-lock + atomic
3
+ * rename protocol (CEO plan rev 5 §6.4). Same protocol used by IM /bind
4
+ * slash commands; both routes can run concurrently safely.
6
5
  */
7
- import { existsSync, openSync, closeSync, readFileSync, writeFileSync, renameSync, unlinkSync, chmodSync, mkdirSync } from 'node:fs';
8
- import { dirname } from 'node:path';
9
- import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
10
6
  import { PATHS } from '../config/paths.js';
11
- const LOCK_RETRY_MS = 50;
12
- const LOCK_MAX_RETRIES = 60; // 3 seconds total
7
+ import { bindMatrix, unbindMatrix, listBindings } from '../bindings/bindings-writer.js';
13
8
  export async function runBindCmd(args) {
14
9
  const sub = args[0] ?? '';
15
10
  switch (sub) {
16
- case 'add': return cmdAdd(args[1], args[2]);
17
- case 'remove': return cmdRemove(args[1]);
11
+ case 'add': return await cmdAdd(args[1], args[2]);
12
+ case 'remove': return await cmdRemove(args[1]);
18
13
  case 'list': return cmdList();
19
14
  default:
20
15
  console.error('nps bind: subcommand required (add|remove|list)');
21
16
  return 1;
22
17
  }
23
18
  }
24
- async function acquireLock(lockPath) {
25
- for (let i = 0; i < LOCK_MAX_RETRIES; i++) {
26
- try {
27
- const fd = openSync(lockPath, 'wx', 0o600);
28
- writeFileSync(lockPath, `${process.pid}\n`);
29
- closeSync(fd);
30
- return;
31
- }
32
- catch (e) {
33
- const msg = e instanceof Error ? e.message : String(e);
34
- if (msg.includes('EEXIST')) {
35
- await new Promise(r => setTimeout(r, LOCK_RETRY_MS));
36
- continue;
37
- }
38
- throw e;
39
- }
40
- }
41
- throw new Error(`could not acquire bindings lock after ${LOCK_MAX_RETRIES * LOCK_RETRY_MS}ms`);
42
- }
43
- function releaseLock(lockPath) {
44
- try {
45
- unlinkSync(lockPath);
46
- }
47
- catch { /* ignore */ }
48
- }
49
- function readBindings() {
50
- if (!existsSync(PATHS.bindingsFile)) {
51
- return { matrix: {} };
52
- }
53
- const raw = readFileSync(PATHS.bindingsFile, 'utf8');
54
- const parsed = parseYaml(raw);
55
- if (!parsed)
56
- return { matrix: {} };
57
- return {
58
- matrix: parsed.matrix ?? {},
59
- };
60
- }
61
- function writeBindings(bindings) {
62
- mkdirSync(dirname(PATHS.bindingsFile), { recursive: true });
63
- const tmp = PATHS.bindingsFile + '.tmp';
64
- const yaml = stringifyYaml(bindings, { sortMapEntries: true, lineWidth: 0 });
65
- writeFileSync(tmp, yaml, { mode: 0o600 });
66
- renameSync(tmp, PATHS.bindingsFile);
67
- try {
68
- chmodSync(PATHS.bindingsFile, 0o600);
69
- }
70
- catch { /* ignore */ }
71
- }
19
+ const PATHS_OBJ = { bindingsFile: PATHS.bindingsFile, lockFile: PATHS.bindingsLock };
72
20
  async function cmdAdd(channelId, profile) {
73
21
  if (!channelId || !profile) {
74
22
  console.error('nps bind add: usage: nps bind add <channel-id> <profile>');
@@ -78,16 +26,8 @@ async function cmdAdd(channelId, profile) {
78
26
  console.error('nps bind add: profile must be [a-zA-Z0-9_-]+');
79
27
  return 1;
80
28
  }
81
- await acquireLock(PATHS.bindingsLock);
82
- try {
83
- const b = readBindings();
84
- b.matrix[channelId] = profile;
85
- writeBindings(b);
86
- console.log(`✅ bound ${channelId} → ${profile}`);
87
- }
88
- finally {
89
- releaseLock(PATHS.bindingsLock);
90
- }
29
+ await bindMatrix(PATHS_OBJ, channelId, profile);
30
+ console.log(`✅ bound ${channelId} → ${profile}`);
91
31
  return 0;
92
32
  }
93
33
  async function cmdRemove(channelId) {
@@ -95,24 +35,17 @@ async function cmdRemove(channelId) {
95
35
  console.error('nps bind remove: channel id required');
96
36
  return 1;
97
37
  }
98
- await acquireLock(PATHS.bindingsLock);
99
- try {
100
- const b = readBindings();
101
- if (!(channelId in b.matrix)) {
102
- console.log(`(no binding for ${channelId})`);
103
- return 0;
104
- }
105
- delete b.matrix[channelId];
106
- writeBindings(b);
107
- console.log(`✅ removed binding for ${channelId}`);
108
- }
109
- finally {
110
- releaseLock(PATHS.bindingsLock);
38
+ const before = listBindings(PATHS_OBJ);
39
+ if (!(channelId in before.matrix)) {
40
+ console.log(`(no binding for ${channelId})`);
41
+ return 0;
111
42
  }
43
+ await unbindMatrix(PATHS_OBJ, channelId);
44
+ console.log(`✅ removed binding for ${channelId}`);
112
45
  return 0;
113
46
  }
114
47
  function cmdList() {
115
- const b = readBindings();
48
+ const b = listBindings(PATHS_OBJ);
116
49
  const keys = Object.keys(b.matrix);
117
50
  if (keys.length === 0) {
118
51
  console.log('(no bindings)');
@@ -1 +1 @@
1
- {"version":3,"file":"bind-cmd.js","sourceRoot":"","sources":["../../src/cli/bind-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bind-cmd.js","sourceRoot":"","sources":["../../src/cli/bind-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD,wBAAsB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CA2GxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhD"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD,wBAAsB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CA4GxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhD"}
@@ -72,6 +72,7 @@ export async function startDaemon() {
72
72
  audit,
73
73
  adminUserIds: adminSet,
74
74
  runtime: { ...runtimeVersions, agentPkgVersion },
75
+ bindingsPaths: { bindingsFile: PATHS.bindingsFile, lockFile: PATHS.bindingsLock },
75
76
  });
76
77
  // 8. control socket + RPC methods
77
78
  const controlSocket = new ControlSocket(PATHS.daemonSocket, PATHS.daemonPid);
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,IAAI,YAAqC,CAAC;AAE1C,SAAS,mBAAmB;IAC1B,0DAA0D;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,oGAAoG;QACpG,KAAK,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;YAClG,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,2BAA2B;IAC3B,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,wBAAwB;IACxB,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtB,wBAAwB;IACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,UAAU,kDAAkD,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElD,eAAe;IACf,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5C,gBAAgB;IAChB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,0EAA0E;IAC1E,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAC/C,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,eAAe,EAAE,EAAE,wCAAwC,CAAC,CAAC;IAE/F,cAAc;IACd,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC;QACpC,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,eAAe,EAAE;QAChD,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE;KAClF,CAAC,CAAC;IAEH,kCAAkC;IAClC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC5D,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM;QACpC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM;QAC5D,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;KAChC,CAAC,CAAC,CAAC;IACJ,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACxC,qDAAqD;QACrD,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAChI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC7C,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,eAAe,CAAC,aAAa;QACrC,IAAI,EAAE,eAAe,CAAC,WAAW;KAClC,CAAC,CAAC,CAAC;IACJ,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,KAAK,GAAgB;QACzB,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,aAAa;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,oCAAoC;IACpC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B;YACE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU;YACvC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;YAC7B,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;SAC1C,EACD,QAAQ,CACT,CAAC;QACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACpG,CAAC;IAED,YAAY,GAAG,KAAK,CAAC;IAErB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,MAAM,CAAC,GAAG,YAAY,CAAC;IACvB,YAAY,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC;QAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAAC,CAAC;IACxH,IAAI,CAAC;QAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAAC,CAAC;IAC3H,IAAI,CAAC;QAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAAC,CAAC;IAC3H,IAAI,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAAC,CAAC;IACtI,IAAI,CAAC;QAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAAC,CAAC;IACjH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC9C,CAAC"}
@@ -34,6 +34,13 @@ export interface PipelineDeps {
34
34
  shimVersion: string;
35
35
  agentPkgVersion: string;
36
36
  };
37
+ /** v0.1.5: where the daemon-side IM /bind /unbind slash handlers will write.
38
+ * Optional — when absent (e.g. in unit tests), /bind /unbind return
39
+ * "not configured" replies. */
40
+ bindingsPaths?: {
41
+ bindingsFile: string;
42
+ lockFile: string;
43
+ };
37
44
  }
38
45
  export declare class DispatchPipeline {
39
46
  private readonly deps;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-pipeline.d.ts","sourceRoot":"","sources":["../../src/dispatch/dispatch-pipeline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;gCAG4B;IAC5B,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,wBAAwB;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CAClF;AAED,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,MAAM,CAAS;gBACM,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM;IAI1D,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA2OxE"}
1
+ {"version":3,"file":"dispatch-pipeline.d.ts","sourceRoot":"","sources":["../../src/dispatch/dispatch-pipeline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;gCAG4B;IAC5B,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,wBAAwB;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF;;oCAEgC;IAChC,aAAa,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,MAAM,CAAS;gBACM,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM;IAI1D,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAgRxE"}
@@ -18,6 +18,7 @@ import { ClaudeCodeAgent, isAgentError } from '@coralai/claude-code-agent';
18
18
  import { getLogger } from '../logger.js';
19
19
  import { computeCompatHash } from '../session/compat-hash.js';
20
20
  import { isSlashCommand, handleSlash, defaultHelpText } from './slash-commands.js';
21
+ import { bindMatrix, unbindMatrix } from '../bindings/bindings-writer.js';
21
22
  export class DispatchPipeline {
22
23
  deps;
23
24
  logger;
@@ -60,13 +61,51 @@ export class DispatchPipeline {
60
61
  status: async (c) => {
61
62
  const stored = this.deps.sessions.get(c.channelId);
62
63
  if (!binding)
63
- return 'status: unbound. Run `nps bind add` on the host.';
64
+ return 'status: unbound. Run `/bind <profile>` here (admin) or `nps bind add` on the host.';
64
65
  return [
65
66
  `status: bound to '${binding}'`,
66
67
  `session: ${stored ? `present (id ${stored.sessionId.slice(0, 8)}...)` : 'fresh'}`,
67
68
  `lastSeen: ${stored?.lastSeenAt ?? '—'}`,
68
69
  ].join('\n');
69
70
  },
71
+ bind: async (c, profile) => {
72
+ if (!this.deps.bindingsPaths) {
73
+ throw new Error('daemon not configured with bindingsPaths');
74
+ }
75
+ // Validate profile exists
76
+ if (!this.deps.registry.get(profile)) {
77
+ const names = this.deps.registry.list().map(p => p.name).join(', ');
78
+ return `unknown profile '${profile}'. Available: ${names || '(none — run \`nps agent init\`)'}.`;
79
+ }
80
+ await bindMatrix(this.deps.bindingsPaths, c.channelId, profile);
81
+ // Trigger immediate reload so subsequent messages see the binding
82
+ this.deps.bindings.reloadSync();
83
+ // Also drop any stored session that points to an older profile
84
+ const prev = this.deps.sessions.get(c.channelId);
85
+ if (prev && prev.profile !== profile) {
86
+ this.deps.sessions.delete(c.channelId);
87
+ }
88
+ return `✅ bound this DM to profile '${profile}'. Send a message to start.`;
89
+ },
90
+ unbind: async (c) => {
91
+ if (!this.deps.bindingsPaths) {
92
+ throw new Error('daemon not configured with bindingsPaths');
93
+ }
94
+ if (!this.deps.bindings.lookupMatrix(c.channelId)) {
95
+ return '(this DM was not bound)';
96
+ }
97
+ await unbindMatrix(this.deps.bindingsPaths, c.channelId);
98
+ this.deps.bindings.reloadSync();
99
+ this.deps.sessions.delete(c.channelId);
100
+ return '✅ unbound. This DM will receive `/help` on next message until rebound.';
101
+ },
102
+ reset: async (c) => {
103
+ const stored = this.deps.sessions.get(c.channelId);
104
+ if (!stored)
105
+ return '(no session to reset — next message starts fresh anyway)';
106
+ this.deps.sessions.delete(c.channelId);
107
+ return `✅ session dropped (was ${stored.sessionId.slice(0, 8)}...). Next message starts fresh.`;
108
+ },
70
109
  };
71
110
  const result = await handleSlash(msg.text, ctx, handlers, this.deps.audit);
72
111
  if (result.text)
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-pipeline.js","sourceRoot":"","sources":["../../src/dispatch/dispatch-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch-pipeline.js","sourceRoot":"","sources":["../../src/dispatch/dispatch-pipeline.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,12 @@ export interface SlashResult {
28
28
  export interface SlashHandlers {
29
29
  status: (ctx: SlashContext) => Promise<string>;
30
30
  help: (ctx: SlashContext) => Promise<string>;
31
+ /** v0.1.5: bind <profile> — admin only */
32
+ bind?: (ctx: SlashContext, profile: string) => Promise<string>;
33
+ /** v0.1.5: unbind — admin only */
34
+ unbind?: (ctx: SlashContext) => Promise<string>;
35
+ /** v0.1.5: reset — drop sessionId; admin only */
36
+ reset?: (ctx: SlashContext) => Promise<string>;
31
37
  }
32
38
  export declare function isSlashCommand(text: string): boolean;
33
39
  export declare function handleSlash(text: string, ctx: SlashContext, handlers: SlashHandlers, audit?: AuditLog): Promise<SlashResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/dispatch/slash-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,aAAa,EACvB,KAAK,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CAmDtB;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAU1D"}
1
+ {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/dispatch/slash-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,kCAAkC;IAClC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,iDAAiD;IACjD,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,aAAa,EACvB,KAAK,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,WAAW,CAAC,CA6FtB;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAe1D"}
@@ -3,40 +3,92 @@ export function isSlashCommand(text) {
3
3
  }
4
4
  export async function handleSlash(text, ctx, handlers, audit) {
5
5
  const trimmed = text.trim();
6
- const [cmd] = trimmed.split(/\s+/);
7
- switch (cmd) {
8
- case '/help': {
9
- // Open to any sender — codex F12 fix
10
- const reply = await handlers.help(ctx);
6
+ const parts = trimmed.split(/\s+/);
7
+ const cmd = parts[0];
8
+ const args = parts.slice(1);
9
+ // Helper for admin-gated commands
10
+ const requireAdmin = (commandName) => {
11
+ if (!ctx.adminUserIds.has(ctx.sender)) {
11
12
  audit?.append({
12
13
  sender: ctx.sender,
13
14
  transport: ctx.transport,
14
15
  channel: ctx.channelId,
15
- command_or_event: '/help',
16
- decision: 'accepted',
16
+ command_or_event: commandName,
17
+ decision: 'denied',
17
18
  });
18
- return { handled: true, text: reply };
19
+ return { handled: true, text: `denied: ${commandName} requires admin privileges` };
20
+ }
21
+ return undefined;
22
+ };
23
+ const ok = (commandName, replyText) => {
24
+ audit?.append({
25
+ sender: ctx.sender,
26
+ transport: ctx.transport,
27
+ channel: ctx.channelId,
28
+ command_or_event: commandName,
29
+ decision: 'accepted',
30
+ });
31
+ return { handled: true, text: replyText };
32
+ };
33
+ switch (cmd) {
34
+ case '/help': {
35
+ const reply = await handlers.help(ctx);
36
+ return ok('/help', reply);
19
37
  }
20
38
  case '/status': {
21
- if (!ctx.adminUserIds.has(ctx.sender)) {
22
- audit?.append({
23
- sender: ctx.sender,
24
- transport: ctx.transport,
25
- channel: ctx.channelId,
26
- command_or_event: '/status',
27
- decision: 'denied',
28
- });
29
- return { handled: true, text: 'denied: /status requires admin privileges' };
30
- }
39
+ const denied = requireAdmin('/status');
40
+ if (denied)
41
+ return denied;
31
42
  const reply = await handlers.status(ctx);
32
- audit?.append({
33
- sender: ctx.sender,
34
- transport: ctx.transport,
35
- channel: ctx.channelId,
36
- command_or_event: '/status',
37
- decision: 'accepted',
38
- });
39
- return { handled: true, text: reply };
43
+ return ok('/status', reply);
44
+ }
45
+ case '/bind': {
46
+ const denied = requireAdmin('/bind');
47
+ if (denied)
48
+ return denied;
49
+ const profile = args[0];
50
+ if (!profile)
51
+ return { handled: true, text: 'usage: /bind <profile>' };
52
+ if (!/^[a-zA-Z0-9_-]+$/.test(profile)) {
53
+ return { handled: true, text: 'profile name must match [a-zA-Z0-9_-]+' };
54
+ }
55
+ if (!handlers.bind)
56
+ return { handled: true, text: '/bind handler not configured on this transport' };
57
+ try {
58
+ const reply = await handlers.bind(ctx, profile);
59
+ return ok('/bind', reply);
60
+ }
61
+ catch (e) {
62
+ return { handled: true, text: `bind failed: ${e instanceof Error ? e.message : String(e)}` };
63
+ }
64
+ }
65
+ case '/unbind': {
66
+ const denied = requireAdmin('/unbind');
67
+ if (denied)
68
+ return denied;
69
+ if (!handlers.unbind)
70
+ return { handled: true, text: '/unbind handler not configured' };
71
+ try {
72
+ const reply = await handlers.unbind(ctx);
73
+ return ok('/unbind', reply);
74
+ }
75
+ catch (e) {
76
+ return { handled: true, text: `unbind failed: ${e instanceof Error ? e.message : String(e)}` };
77
+ }
78
+ }
79
+ case '/reset': {
80
+ const denied = requireAdmin('/reset');
81
+ if (denied)
82
+ return denied;
83
+ if (!handlers.reset)
84
+ return { handled: true, text: '/reset handler not configured' };
85
+ try {
86
+ const reply = await handlers.reset(ctx);
87
+ return ok('/reset', reply);
88
+ }
89
+ catch (e) {
90
+ return { handled: true, text: `reset failed: ${e instanceof Error ? e.message : String(e)}` };
91
+ }
40
92
  }
41
93
  default: {
42
94
  audit?.append({
@@ -47,21 +99,26 @@ export async function handleSlash(text, ctx, handlers, audit) {
47
99
  decision: 'dropped',
48
100
  detail: 'unknown command',
49
101
  });
50
- // Show help to anyone — open
51
102
  const reply = await handlers.help(ctx);
52
103
  return { handled: true, text: `Unknown command: ${cmd ?? '?'}\n\n${reply}` };
53
104
  }
54
105
  }
55
106
  }
56
107
  export function defaultHelpText(adminMode) {
57
- const base = [
108
+ const lines = [
58
109
  'nps DM commands:',
59
- ' /help show this message (open)',
60
- ' /status show current binding (admin only)',
61
- ].join('\n');
110
+ ' /help show this message (open)',
111
+ ' /status show current binding (admin only)',
112
+ ' /bind <profile> bind this DM to a profile (admin only)',
113
+ ' /unbind remove binding for this DM (admin only)',
114
+ ' /reset drop session — next message starts fresh (admin only)',
115
+ ];
62
116
  if (adminMode) {
63
- return base + '\n\nManage bindings via host CLI:\n nps bind add <channel-id> <profile>\n nps bind list';
117
+ lines.push('', 'Run `nps agent list` on the host to see available profile names.');
118
+ }
119
+ else {
120
+ lines.push('', 'You are not an admin in this daemon. Only admins can `/bind` / `/unbind` / `/reset`.');
64
121
  }
65
- return base + '\n\nDM is not yet bound. The admin must run `nps bind add` on the host.';
122
+ return lines.join('\n');
66
123
  }
67
124
  //# sourceMappingURL=slash-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/dispatch/slash-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/dispatch/slash-commands.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const NPS_VERSION = "0.1.4";
1
+ export declare const NPS_VERSION = "0.1.5";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const NPS_VERSION = '0.1.4';
1
+ export const NPS_VERSION = '0.1.5';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/nps-cli",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Local Linux daemon hosting per-DM Claude Code agents accessible via Matrix",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",