@memnexus-ai/mx-agent-cli 0.1.179 → 0.1.180

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.
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Client-side project-slug validation (KI-COORDMT-CLIENT-SLUG-VALIDATION).
3
+ *
4
+ * Two concerns:
5
+ * 1. isValidProjectSlug mirrors the coordination service's isValidSlug rules
6
+ * (base regex, no '--', not reserved 'all').
7
+ * 2. resolveCoordinationToken enforces it as a FAIL-CLOSED typed result: an
8
+ * invalid explicitly-set PROJECT slug returns status 'misconfigured' and
9
+ * NEVER reaches a KV-name build / az call (fetchSecret is never invoked),
10
+ * and is NOT coerced to memnexus. The default 'memnexus' path is untouched.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=slug-validation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-validation.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/slug-validation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Client-side project-slug validation (KI-COORDMT-CLIENT-SLUG-VALIDATION).
3
+ *
4
+ * Two concerns:
5
+ * 1. isValidProjectSlug mirrors the coordination service's isValidSlug rules
6
+ * (base regex, no '--', not reserved 'all').
7
+ * 2. resolveCoordinationToken enforces it as a FAIL-CLOSED typed result: an
8
+ * invalid explicitly-set PROJECT slug returns status 'misconfigured' and
9
+ * NEVER reaches a KV-name build / az call (fetchSecret is never invoked),
10
+ * and is NOT coerced to memnexus. The default 'memnexus' path is untouched.
11
+ */
12
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
13
+ import { mkdtempSync, rmSync, readFileSync } from 'fs';
14
+ import { dirname, join } from 'path';
15
+ import { fileURLToPath } from 'url';
16
+ import { tmpdir } from 'os';
17
+ vi.mock('../lib/config.js', () => ({ getConfigValue: vi.fn(() => undefined) }));
18
+ import { isValidProjectSlug, PROJECT_SLUG_RE, RESERVED_PROJECT_SLUGS } from '../lib/slug.js';
19
+ import { resolveCoordinationToken } from '../lib/coordination-token.js';
20
+ const __dirname = dirname(fileURLToPath(import.meta.url));
21
+ /**
22
+ * Read the REAL coordination-service rule from disk (not a hand-copy) so a
23
+ * cross-package change to the service's slug rule breaks this test in CI. The
24
+ * CLI is a separate package (service source is out of tsconfig rootDir, so it
25
+ * cannot be imported), hence we parse the source text.
26
+ */
27
+ function readServiceSlugRule() {
28
+ const typesPath = join(__dirname, '..', '..', '..', 'coordination-service', 'src', 'types.ts');
29
+ const src = readFileSync(typesPath, 'utf-8');
30
+ // TEAM_NAME_RE = /^.../; — capture the regex literal body (between the slashes).
31
+ const reMatch = src.match(/TEAM_NAME_RE\s*=\s*\/(.+?)\/\s*;/);
32
+ if (!reMatch)
33
+ throw new Error('could not extract TEAM_NAME_RE from coordination-service/src/types.ts');
34
+ // RESERVED_SLUGS ... = new Set([ ... ]) — capture the array contents.
35
+ const setMatch = src.match(/RESERVED_SLUGS[^=]*=\s*new Set\(\[([^\]]*)\]\)/);
36
+ if (!setMatch)
37
+ throw new Error('could not extract RESERVED_SLUGS from coordination-service/src/types.ts');
38
+ const reserved = new Set([...setMatch[1].matchAll(/['"]([^'"]+)['"]/g)].map((m) => m[1]));
39
+ return { regexSource: reMatch[1], reserved };
40
+ }
41
+ let dir;
42
+ beforeEach(() => {
43
+ dir = mkdtempSync(join(tmpdir(), 'slug-val-'));
44
+ });
45
+ afterEach(() => {
46
+ rmSync(dir, { recursive: true, force: true });
47
+ vi.restoreAllMocks();
48
+ });
49
+ function reader(files) {
50
+ return (p) => (p in files ? files[p] : undefined);
51
+ }
52
+ describe('isValidProjectSlug', () => {
53
+ const valid = ['memnexus', 'spearmint-private', 'ai-agents', 'import-export', 'team-builder', 'product'];
54
+ for (const s of valid) {
55
+ it(`accepts valid slug "${s}"`, () => {
56
+ expect(isValidProjectSlug(s)).toBe(true);
57
+ });
58
+ }
59
+ const invalid = [
60
+ ['Spearmint', 'uppercase'],
61
+ ['-x', 'leading hyphen'],
62
+ ['x-', 'trailing hyphen'],
63
+ ['a--b', "contains '--'"],
64
+ ['all', 'reserved'],
65
+ ['a'.repeat(51), 'too long (>50)'],
66
+ ['', 'empty'],
67
+ [' ', 'whitespace-only'],
68
+ ['a;b', 'shell metachar ;'],
69
+ ['a b', 'space'],
70
+ ['a`b', 'backtick'],
71
+ ['a$b', 'dollar'],
72
+ ['a/b', 'slash'],
73
+ ['a:b', 'colon'],
74
+ ];
75
+ for (const [s, why] of invalid) {
76
+ it(`rejects invalid slug (${why})`, () => {
77
+ expect(isValidProjectSlug(s)).toBe(false);
78
+ });
79
+ }
80
+ it('DRIFT GUARD: slug.ts matches the rule in coordination-service/src/types.ts', () => {
81
+ const { regexSource, reserved } = readServiceSlugRule();
82
+ // The client regex source string must equal the service's regex literal body.
83
+ expect(PROJECT_SLUG_RE.source).toBe(regexSource);
84
+ // The client reserved set must equal the service's RESERVED_SLUGS contents.
85
+ expect([...RESERVED_PROJECT_SLUGS].sort()).toEqual([...reserved].sort());
86
+ // And a behavioral probe: the client verdict must equal a rule reconstructed
87
+ // live from the service source, so a real rule change fails here.
88
+ const serviceRe = new RegExp(regexSource);
89
+ const serviceIsValid = (s) => serviceRe.test(s) && !s.includes('--') && !reserved.has(s);
90
+ const probes = [...valid, ...invalid.map(([s]) => s), 'a', 'ab', 'a-b-c', 'x--', '--x', 'ALL'];
91
+ for (const p of probes) {
92
+ expect(isValidProjectSlug(p)).toBe(serviceIsValid(p));
93
+ }
94
+ });
95
+ it('accepts a 50-char slug but rejects a 51-char slug (boundary)', () => {
96
+ expect(isValidProjectSlug('a'.repeat(50))).toBe(true);
97
+ expect(isValidProjectSlug('a'.repeat(51))).toBe(false);
98
+ });
99
+ });
100
+ describe('resolveCoordinationToken project-slug enforcement', () => {
101
+ it('default (no explicit project) resolves memnexus and does NOT fail closed', () => {
102
+ // deps.project unset → resolveProductSlug() default memnexus (env has no
103
+ // MX_PRODUCT_SLUG). A valid marker reaches the KV fetch normally.
104
+ const marker = join(dir, '.mx-coordination-team');
105
+ const fetchSecret = vi.fn(() => 'kv-tok');
106
+ const res = resolveCoordinationToken({
107
+ env: { CLAUDE_WORKTREE_PATH: dir },
108
+ readFileText: reader({ [marker]: 'eval\n' }),
109
+ fetchSecret,
110
+ });
111
+ expect(res.status).toBe('resolved');
112
+ expect(res.project).toBe('memnexus');
113
+ expect(fetchSecret).toHaveBeenCalledWith(expect.any(String), 'coordination-token--memnexus--eval');
114
+ });
115
+ it('accepts a valid explicitly-set project slug (spearmint-private)', () => {
116
+ const marker = join(dir, '.mx-coordination-team');
117
+ const roster = join(dir, 'roster.json');
118
+ const fetchSecret = vi.fn(() => 'sp-tok');
119
+ const res = resolveCoordinationToken({
120
+ project: 'spearmint-private',
121
+ env: { CLAUDE_WORKTREE_PATH: dir, MX_COORD_ROSTER_FILE: roster },
122
+ readFileText: reader({
123
+ [marker]: 'eval\n',
124
+ [roster]: JSON.stringify({ projects: { 'spearmint-private': ['eval'] } }),
125
+ }),
126
+ fetchSecret,
127
+ });
128
+ expect(res.status).toBe('resolved');
129
+ expect(res.project).toBe('spearmint-private');
130
+ expect(fetchSecret).toHaveBeenCalledWith(expect.any(String), 'coordination-token--spearmint-private--eval');
131
+ });
132
+ const badSlugs = [
133
+ ['Spearmint_Private', 'uppercase + underscore'],
134
+ ['-x', 'leading hyphen'],
135
+ ['x-', 'trailing hyphen'],
136
+ ['a--b', "contains '--'"],
137
+ ['all', 'reserved'],
138
+ ['a'.repeat(51), 'too long'],
139
+ ['a;b', 'shell metachar'],
140
+ ['a b', 'space'],
141
+ ];
142
+ for (const [slug, why] of badSlugs) {
143
+ it(`fails CLOSED (misconfigured) on an invalid explicitly-set slug — ${why} — and never builds a KV name`, () => {
144
+ const marker = join(dir, '.mx-coordination-team');
145
+ const fetchSecret = vi.fn();
146
+ const res = resolveCoordinationToken({
147
+ project: slug,
148
+ env: { CLAUDE_WORKTREE_PATH: dir },
149
+ readFileText: reader({ [marker]: 'eval\n' }),
150
+ fetchSecret,
151
+ });
152
+ expect(res.status).toBe('misconfigured');
153
+ // NOT coerced to memnexus — the offending value is echoed back.
154
+ expect(res.project).toBe(slug);
155
+ expect(res.token).toBeUndefined();
156
+ // The invariant that matters: no KV-name build / az call happened.
157
+ expect(fetchSecret).not.toHaveBeenCalled();
158
+ // Actionable message names the offending value and the rule.
159
+ expect(res.detail).toContain(`project slug "${slug}" is invalid`);
160
+ expect(res.detail).toContain('^[a-z][a-z0-9-]{0,48}[a-z0-9]$');
161
+ });
162
+ }
163
+ it('CWE-117: a slug with a newline/control char is rejected AND the message carries no raw control byte', () => {
164
+ const marker = join(dir, '.mx-coordination-team');
165
+ const evil = 'good\n\x1b[31mFAKE-LOG-LINE\x07';
166
+ const fetchSecret = vi.fn();
167
+ const res = resolveCoordinationToken({
168
+ project: evil,
169
+ env: { CLAUDE_WORKTREE_PATH: dir },
170
+ readFileText: reader({ [marker]: 'eval\n' }),
171
+ fetchSecret,
172
+ });
173
+ expect(res.status).toBe('misconfigured');
174
+ expect(fetchSecret).not.toHaveBeenCalled();
175
+ // The surfaced message must be a single safe line: no raw newline, ESC, or BEL.
176
+ expect(res.detail).toBeDefined();
177
+ expect(res.detail).not.toMatch(/[\n\r\x00-\x1f]/);
178
+ // The offending value survives in ESCAPED (JSON.stringify) form, so the
179
+ // operator still sees what was rejected without terminal/log spoofing.
180
+ expect(res.detail).toContain(JSON.stringify(evil));
181
+ });
182
+ it('never throws on an invalid explicitly-set slug (typed result only)', () => {
183
+ const marker = join(dir, '.mx-coordination-team');
184
+ let res;
185
+ expect(() => {
186
+ res = resolveCoordinationToken({
187
+ project: 'Bad--Slug',
188
+ env: { CLAUDE_WORKTREE_PATH: dir },
189
+ readFileText: reader({ [marker]: 'eval\n' }),
190
+ fetchSecret: vi.fn(),
191
+ });
192
+ }).not.toThrow();
193
+ expect(res?.status).toBe('misconfigured');
194
+ });
195
+ });
196
+ //# sourceMappingURL=slug-validation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-validation.test.js","sourceRoot":"","sources":["../../src/__tests__/slug-validation.test.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,16 @@
10
10
  "customer-portal",
11
11
  "eval",
12
12
  "product"
13
+ ],
14
+ "spearmint-private": [
15
+ "accounts",
16
+ "ai-agents",
17
+ "analysis",
18
+ "dashboard",
19
+ "import-export",
20
+ "marketing",
21
+ "product",
22
+ "team-builder"
13
23
  ]
14
24
  }
15
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../../src/commands/coordination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,kBAAkB,EAExB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAiCvC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,GAAG,kBAAkB,GAAG,IAAI,CAqC/F;AAkCD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AASD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkDD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC/F;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzF;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,YAAiB,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9F;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,kFAAkF;AAClF,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,GAAE,YAAiB,EACvB,IAAI,CAAC,EAAE,gBAAgB,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAClE,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,gBAAgB;AAChB,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAKD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,cAAmB,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG"}
1
+ {"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../../src/commands/coordination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,kBAAkB,EAExB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAkDvC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,GAAG,kBAAkB,GAAG,IAAI,CA4C/F;AAkCD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AASD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkDD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC/F;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzF;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,YAAiB,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9F;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,kFAAkF;AAClF,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,GAAE,YAAiB,EACvB,IAAI,CAAC,EAAE,gBAAgB,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAClE,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,gBAAgB;AAChB,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAKD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,cAAmB,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { HttpCoordinationClient, resolveClientConfig, resolveCoordinationMode, ServiceUnreachableError, ServiceHttpError, } from '../lib/coordination-client.js';
13
13
  import { resolveCoordinationToken } from '../lib/coordination-token.js';
14
+ import { isValidProjectSlug, invalidProjectSlugMessage } from '../lib/slug.js';
14
15
  import { appendFallbackEntry, flushFallback } from '../lib/coordination-fallback.js';
15
16
  import { renderMessages } from '../lib/coordination-render.js';
16
17
  import { escalateToOutbox, readEscalationsForTeam, renderEscalationBlocks, resolveMemoryTeam, resolveProductSlug, } from '../lib/coordination-memory.js';
@@ -22,6 +23,22 @@ const WATCH_BACKOFF_CAP_MS = 5 * 60 * 1000;
22
23
  function resolveTeam(explicit) {
23
24
  return explicit || process.env.CLAUDE_WORKTREE_NAME || 'unknown';
24
25
  }
26
+ /**
27
+ * Resolve the memory-mode product slug, failing CLOSED on an invalid
28
+ * explicitly-set value (KI-COORDMT-CLIENT-SLUG-VALIDATION). The default
29
+ * 'memnexus' is known-valid so the unset path never trips; an explicitly-set
30
+ * invalid slug prints the offending value + rule and exits non-zero rather than
31
+ * building an outbox/shared-doc name under it (which would write into another
32
+ * tenant's memory channel). Returns the validated slug on success.
33
+ */
34
+ function resolveMemoryProductSlugOrExit() {
35
+ const slug = resolveProductSlug();
36
+ if (!isValidProjectSlug(slug)) {
37
+ console.error(`Error: ${invalidProjectSlugMessage(slug)}`);
38
+ process.exit(1);
39
+ }
40
+ return slug;
41
+ }
25
42
  function envInt(name, fallback) {
26
43
  const raw = process.env[name];
27
44
  if (!raw)
@@ -88,6 +105,12 @@ export function prepareClient(deps) {
88
105
  if (res.status === 'not-on-roster') {
89
106
  process.stderr.write(`coordination: team "${res.slug}" is not on the coordination roster — falling back to the manual channel\n`);
90
107
  }
108
+ else if (res.status === 'misconfigured') {
109
+ // Fail-CLOSED on an invalid explicitly-set project slug: name the offending
110
+ // value + rule (res.detail) so the operator can fix the config. We do NOT
111
+ // silently route into the memnexus tenant.
112
+ process.stderr.write(`coordination: ${res.detail} — falling back to the manual channel\n`);
113
+ }
91
114
  else {
92
115
  const why = res.detail ?? (err instanceof Error ? err.message : String(err));
93
116
  process.stderr.write(`coordination: could not provision a service token (${why}) — falling back to the manual channel\n`);
@@ -139,7 +162,7 @@ function memoryModeQueueOnlyNote(subcommand) {
139
162
  */
140
163
  async function runEscalateMemory(opts, deps) {
141
164
  const team = resolveMemoryTeam(opts.team);
142
- const slug = resolveProductSlug();
165
+ const slug = resolveMemoryProductSlugOrExit();
143
166
  let res;
144
167
  try {
145
168
  res = escalateToOutbox({ fromTeam: team, to: opts.to, priority: opts.priority, body: opts.body, productSlug: slug }, deps?.memoryStore);
@@ -165,7 +188,7 @@ async function runEscalateMemory(opts, deps) {
165
188
  */
166
189
  async function runBriefMemory(opts, deps) {
167
190
  const team = opts.expectedTeam ?? resolveMemoryTeam();
168
- const slug = resolveProductSlug();
191
+ const slug = resolveMemoryProductSlugOrExit();
169
192
  const { present, entries } = readEscalationsForTeam(team, slug, deps?.memoryStore);
170
193
  if (!present || entries.length === 0) {
171
194
  console.log('no cross-team coordination pending');
@@ -1 +1 @@
1
- {"version":3,"file":"coordination.js","sourceRoot":"","sources":["../../src/commands/coordination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordination.js","sourceRoot":"","sources":["../../src/commands/coordination.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,14 @@ export type TokenResolveStatus =
59
59
  | 'resolved'
60
60
  /** Fail-CLOSED: the marker slug is not on the roster — no fetch performed. */
61
61
  | 'not-on-roster'
62
+ /**
63
+ * Fail-CLOSED: the explicitly-configured PROJECT slug is invalid (fails the
64
+ * client slug rules). No roster lookup and no `az`/KV call is attempted — a
65
+ * misconfigured project must never route its traffic into another tenant's
66
+ * secrets (KI-COORDMT-CLIENT-SLUG-VALIDATION). Typed (not thrown) so the
67
+ * never-throws provisioning contract holds and the caller degrades cleanly.
68
+ */
69
+ | 'misconfigured'
62
70
  /** Fail-OPEN: no marker, az not logged in, KV unreachable, or empty secret. */
63
71
  | 'unprovisioned';
64
72
  export interface TokenResolveResult {
@@ -1 +1 @@
1
- {"version":3,"file":"coordination-token.d.ts","sourceRoot":"","sources":["../../src/lib/coordination-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AASH;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0GASf,CAAC;AAMX,eAAO,MAAM,aAAa,0BAA0B,CAAC;AAErD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAM1D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAYD,MAAM,MAAM,kBAAkB;AAC5B,sFAAsF;AACpF,oBAAoB;AACtB,iFAAiF;GAC/E,UAAU;AACZ,8EAA8E;GAC5E,eAAe;AACjB,+EAA+E;GAC7E,eAAe,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACjD,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,oFAAoF;IACpF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACpD,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8CD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACjD,SAAS,MAAM,EAAE,CAkBnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,gBAAqB,GAAG,kBAAkB,CAqExF"}
1
+ {"version":3,"file":"coordination-token.d.ts","sourceRoot":"","sources":["../../src/lib/coordination-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAUH;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0GASf,CAAC;AAMX,eAAO,MAAM,aAAa,0BAA0B,CAAC;AAErD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAM1D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAYD,MAAM,MAAM,kBAAkB;AAC5B,sFAAsF;AACpF,oBAAoB;AACtB,iFAAiF;GAC/E,UAAU;AACZ,8EAA8E;GAC5E,eAAe;AACjB;;;;;;GAMG;GACD,eAAe;AACjB,+EAA+E;GAC7E,eAAe,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACjD,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,oFAAoF;IACpF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACpD,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8CD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACjD,SAAS,MAAM,EAAE,CAkBnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,gBAAqB,GAAG,kBAAkB,CA+ExF"}
@@ -41,6 +41,7 @@ import { join } from 'node:path';
41
41
  import { getConfigValue } from './config.js';
42
42
  import { CONFIG_KEY_TOKEN } from './coordination-client.js';
43
43
  import { resolveProductSlug, DEFAULT_PRODUCT_SLUG } from './coordination-memory.js';
44
+ import { isValidProjectSlug, invalidProjectSlugMessage } from './slug.js';
44
45
  /**
45
46
  * BUILTIN memnexus provisioned-team roster — the OFFLINE fallback used only when
46
47
  * the generated roster file cannot be read. Mirrors PROVISIONED_ROSTERS in
@@ -177,6 +178,15 @@ export function resolveCoordinationToken(deps = {}) {
177
178
  return { status: 'already-configured', token: configToken, source: 'config' };
178
179
  // 2. Resolve the PROJECT (config-derived, default memnexus). Never throws.
179
180
  const project = deps.project ?? resolveProductSlug();
181
+ // 2a. Validate the resolved project slug BEFORE any roster lookup or az/KV
182
+ // call (KI-COORDMT-CLIENT-SLUG-VALIDATION). The default 'memnexus' is
183
+ // known-valid so this never trips the unset path; an explicitly-set
184
+ // invalid slug fails CLOSED as a typed result — it is NOT coerced to
185
+ // memnexus (that would bleed the misconfigured project's traffic into the
186
+ // memnexus tenant). No KV-name is built for an invalid slug.
187
+ if (!isValidProjectSlug(project)) {
188
+ return { status: 'misconfigured', project, detail: invalidProjectSlugMessage(project) };
189
+ }
180
190
  // 3. MF-2: read the authoritative team marker. No worktree/marker → fail-OPEN.
181
191
  const worktree = env.CLAUDE_WORKTREE_PATH;
182
192
  if (!worktree) {
@@ -1 +1 @@
1
- {"version":3,"file":"coordination-token.js","sourceRoot":"","sources":["../../src/lib/coordination-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordination-token.js","sourceRoot":"","sources":["../../src/lib/coordination-token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * slug -- client-side project/team slug validation.
3
+ *
4
+ * FAITHFUL COPY of the coordination SERVICE rules in
5
+ * coordination-service/src/types.ts (`isValidSlug`). The CLI is a separate
6
+ * package, so the rules are reproduced here rather than imported. If the service
7
+ * rules change, change these to match — the two MUST stay in sync:
8
+ *
9
+ * - base regex ^[a-z][a-z0-9-]{0,48}[a-z0-9]$ (TEAM_NAME_RE / PROJECT_NAME_RE)
10
+ * - no '--' substring (KV name `coordination-token--<project>--<team>`
11
+ * parse-safety, MINOR-5)
12
+ * - not a RESERVED slug ('all') (the broadcast address, MINOR-6)
13
+ *
14
+ * Rationale (KI-COORDMT-CLIENT-SLUG-VALIDATION): the resolved project slug flows
15
+ * into Key Vault secret-name construction, per-project roster lookups, and
16
+ * memory-outbox names. Until multi-tenant onboarding, only the known-valid
17
+ * literal 'memnexus' reached the client; arbitrary configured slugs
18
+ * (first real tenant: 'spearmint-private') now do, so the client must validate
19
+ * before a bad slug reaches a KV-name build, roster lookup, enqueue, or `az` call.
20
+ */
21
+ /** Base slug regex — byte-identical to TEAM_NAME_RE in the service. */
22
+ export declare const PROJECT_SLUG_RE: RegExp;
23
+ /** Human-readable source of the base rule, for actionable error messages. */
24
+ export declare const PROJECT_SLUG_RE_SOURCE = "^[a-z][a-z0-9-]{0,48}[a-z0-9]$";
25
+ /** Reserved slugs a project/team may NOT use — mirrors RESERVED_SLUGS in the service. */
26
+ export declare const RESERVED_PROJECT_SLUGS: ReadonlySet<string>;
27
+ /**
28
+ * True when `s` is valid as a project (or team) slug: matches the base regex,
29
+ * contains no '--' substring, and is not a reserved word. Mirrors the service's
30
+ * `isValidSlug` exactly.
31
+ */
32
+ export declare function isValidProjectSlug(s: string): boolean;
33
+ /**
34
+ * A one-line, operator-actionable message naming the offending value and the
35
+ * rule it violated. Used by every enforcement point so the failure is uniform.
36
+ *
37
+ * The offending value is passed through JSON.stringify (CWE-117 log/terminal
38
+ * injection defense): `resolveProductSlug` only trims, so an invalid slug can
39
+ * carry interior newlines, ANSI escapes, or control bytes that would otherwise
40
+ * flow verbatim to stderr/logs. JSON.stringify quotes the value and escapes
41
+ * those bytes (`\n`, ``, etc.), so the message is a single safe line.
42
+ */
43
+ export declare function invalidProjectSlugMessage(s: string): string;
44
+ //# sourceMappingURL=slug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../src/lib/slug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,uEAAuE;AACvE,eAAO,MAAM,eAAe,QAAmC,CAAC;AAEhE,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,mCAAmC,CAAC;AAEvE,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAoB,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * slug -- client-side project/team slug validation.
3
+ *
4
+ * FAITHFUL COPY of the coordination SERVICE rules in
5
+ * coordination-service/src/types.ts (`isValidSlug`). The CLI is a separate
6
+ * package, so the rules are reproduced here rather than imported. If the service
7
+ * rules change, change these to match — the two MUST stay in sync:
8
+ *
9
+ * - base regex ^[a-z][a-z0-9-]{0,48}[a-z0-9]$ (TEAM_NAME_RE / PROJECT_NAME_RE)
10
+ * - no '--' substring (KV name `coordination-token--<project>--<team>`
11
+ * parse-safety, MINOR-5)
12
+ * - not a RESERVED slug ('all') (the broadcast address, MINOR-6)
13
+ *
14
+ * Rationale (KI-COORDMT-CLIENT-SLUG-VALIDATION): the resolved project slug flows
15
+ * into Key Vault secret-name construction, per-project roster lookups, and
16
+ * memory-outbox names. Until multi-tenant onboarding, only the known-valid
17
+ * literal 'memnexus' reached the client; arbitrary configured slugs
18
+ * (first real tenant: 'spearmint-private') now do, so the client must validate
19
+ * before a bad slug reaches a KV-name build, roster lookup, enqueue, or `az` call.
20
+ */
21
+ /** Base slug regex — byte-identical to TEAM_NAME_RE in the service. */
22
+ export const PROJECT_SLUG_RE = /^[a-z][a-z0-9-]{0,48}[a-z0-9]$/;
23
+ /** Human-readable source of the base rule, for actionable error messages. */
24
+ export const PROJECT_SLUG_RE_SOURCE = '^[a-z][a-z0-9-]{0,48}[a-z0-9]$';
25
+ /** Reserved slugs a project/team may NOT use — mirrors RESERVED_SLUGS in the service. */
26
+ export const RESERVED_PROJECT_SLUGS = new Set(['all']);
27
+ /**
28
+ * True when `s` is valid as a project (or team) slug: matches the base regex,
29
+ * contains no '--' substring, and is not a reserved word. Mirrors the service's
30
+ * `isValidSlug` exactly.
31
+ */
32
+ export function isValidProjectSlug(s) {
33
+ return PROJECT_SLUG_RE.test(s) && !s.includes('--') && !RESERVED_PROJECT_SLUGS.has(s);
34
+ }
35
+ /**
36
+ * A one-line, operator-actionable message naming the offending value and the
37
+ * rule it violated. Used by every enforcement point so the failure is uniform.
38
+ *
39
+ * The offending value is passed through JSON.stringify (CWE-117 log/terminal
40
+ * injection defense): `resolveProductSlug` only trims, so an invalid slug can
41
+ * carry interior newlines, ANSI escapes, or control bytes that would otherwise
42
+ * flow verbatim to stderr/logs. JSON.stringify quotes the value and escapes
43
+ * those bytes (`\n`, ``, etc.), so the message is a single safe line.
44
+ */
45
+ export function invalidProjectSlugMessage(s) {
46
+ return `project slug ${JSON.stringify(s)} is invalid: must match ${PROJECT_SLUG_RE_SOURCE}, no '--', not reserved`;
47
+ }
48
+ //# sourceMappingURL=slug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug.js","sourceRoot":"","sources":["../../src/lib/slug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEhE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAEvE,yFAAyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,CAAS;IACjD,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,sBAAsB,yBAAyB,CAAC;AACrH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memnexus-ai/mx-agent-cli",
3
- "version": "0.1.179",
3
+ "version": "0.1.180",
4
4
  "description": "CLI for creating and managing AI agent teams",
5
5
  "type": "module",
6
6
  "bin": {