@productbrain/cli 0.1.0-beta.6581 → 0.1.0-beta.6596

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.
Files changed (37) hide show
  1. package/dist/__tests__/entryAccept-batch.test.d.ts +2 -0
  2. package/dist/__tests__/entryAccept-batch.test.d.ts.map +1 -0
  3. package/dist/__tests__/{promote-batch.test.js → entryAccept-batch.test.js} +23 -23
  4. package/dist/__tests__/entryAccept-batch.test.js.map +1 -0
  5. package/dist/__tests__/entryAccept.test.d.ts +2 -0
  6. package/dist/__tests__/entryAccept.test.d.ts.map +1 -0
  7. package/dist/__tests__/{promote.test.js → entryAccept.test.js} +30 -30
  8. package/dist/__tests__/entryAccept.test.js.map +1 -0
  9. package/dist/__tests__/workspaceNotice.test.js +9 -9
  10. package/dist/__tests__/workspaceNotice.test.js.map +1 -1
  11. package/dist/commands/{promote.d.ts → entryAccept.d.ts} +6 -5
  12. package/dist/commands/entryAccept.d.ts.map +1 -0
  13. package/dist/commands/{promote.js → entryAccept.js} +16 -15
  14. package/dist/commands/entryAccept.js.map +1 -0
  15. package/dist/commands/orient.js +1 -1
  16. package/dist/commands/orient.js.map +1 -1
  17. package/dist/formatters/{promote.d.ts → entryAccept.d.ts} +4 -4
  18. package/dist/formatters/entryAccept.d.ts.map +1 -0
  19. package/dist/formatters/{promote.js → entryAccept.js} +8 -7
  20. package/dist/formatters/entryAccept.js.map +1 -0
  21. package/dist/generators/chain-rules.js +1 -1
  22. package/dist/generators/chain-rules.js.map +1 -1
  23. package/dist/lib/client.js +2 -2
  24. package/dist/lib/client.js.map +1 -1
  25. package/dist/registerEntryCommands.js +2 -2
  26. package/dist/registerEntryCommands.js.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/__tests__/promote-batch.test.d.ts +0 -2
  29. package/dist/__tests__/promote-batch.test.d.ts.map +0 -1
  30. package/dist/__tests__/promote-batch.test.js.map +0 -1
  31. package/dist/__tests__/promote.test.d.ts +0 -2
  32. package/dist/__tests__/promote.test.d.ts.map +0 -1
  33. package/dist/__tests__/promote.test.js.map +0 -1
  34. package/dist/commands/promote.d.ts.map +0 -1
  35. package/dist/commands/promote.js.map +0 -1
  36. package/dist/formatters/promote.d.ts.map +0 -1
  37. package/dist/formatters/promote.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entryAccept-batch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entryAccept-batch.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/entryAccept-batch.test.ts"],"names":[],"mappings":""}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * pb promote — batch (multi-ID) promotion (INS-1813).
3
- * Accepts multiple entry IDs, promotes each independently, and a single failure
2
+ * pb entry accept (formerly pb promote, DEC-1578) — batch (multi-ID) accept (INS-1813).
3
+ * Accepts multiple entry IDs, accepts each independently, and a single failure
4
4
  * does NOT abort the rest of the batch. Reports per-entry results and exits
5
5
  * non-zero when any entry failed.
6
6
  */
7
7
  import { beforeEach, describe, expect, it, vi } from 'vitest';
8
- import { runPromote } from '../commands/promote.js';
8
+ import { runEntryAccept } from '../commands/entryAccept.js';
9
9
  import { CLIError, ErrorCode } from '../lib/errors.js';
10
10
  const kernelCallWithSessionMock = vi.fn();
11
11
  const { MockMcpError } = vi.hoisted(() => {
@@ -24,7 +24,7 @@ const { MockMcpError } = vi.hoisted(() => {
24
24
  vi.mock('../lib/client.js', async () => ({
25
25
  kernelCallWithSession: (...args) => kernelCallWithSessionMock(...args),
26
26
  McpError: MockMcpError,
27
- // WP-753 O5a fix round 2: real implementation, not a stub — promote.ts's abort predicate
27
+ // WP-753 O5a fix round 2: real implementation, not a stub — entryAccept.ts's abort predicate
28
28
  // depends on its actual per-entry-code classification, not a mocked always-true/false.
29
29
  isPerEntryAuthorizationRefusal: (await vi.importActual('../lib/client.js')).isPerEntryAuthorizationRefusal,
30
30
  }));
@@ -63,7 +63,7 @@ function installRoutes(opts = {}) {
63
63
  function commitCallsFor(id) {
64
64
  return kernelCallWithSessionMock.mock.calls.filter((c) => c[0] === 'chain.commitEntry' && c[1]?.entryId === id).length;
65
65
  }
66
- describe('runPromote — batch promotion (INS-1813)', () => {
66
+ describe('runEntryAccept — batch promotion (INS-1813)', () => {
67
67
  beforeEach(() => {
68
68
  vi.clearAllMocks();
69
69
  mockSession = { sessionId: 'sess-test' };
@@ -71,22 +71,22 @@ describe('runPromote — batch promotion (INS-1813)', () => {
71
71
  it('promotes every ID in the batch and prints a receipt for each', async () => {
72
72
  installRoutes();
73
73
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
74
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
74
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
75
75
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
76
76
  writeSpy.mockRestore();
77
77
  expect(commitCallsFor('TEN-2')).toBe(1);
78
78
  expect(commitCallsFor('INS-3')).toBe(1);
79
79
  expect(commitCallsFor('DEC-4')).toBe(1);
80
- expect(output).toContain('Promoted TEN-2');
81
- expect(output).toContain('Promoted INS-3');
82
- expect(output).toContain('Promoted DEC-4');
80
+ expect(output).toContain('Accepted TEN-2');
81
+ expect(output).toContain('Accepted INS-3');
82
+ expect(output).toContain('Accepted DEC-4');
83
83
  });
84
84
  it('does not abort the batch when one entry fails — the rest still promote', async () => {
85
85
  installRoutes({ failIds: ['INS-3'] });
86
86
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
87
87
  let caught;
88
88
  try {
89
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
89
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
90
90
  }
91
91
  catch (err) {
92
92
  caught = err;
@@ -98,8 +98,8 @@ describe('runPromote — batch promotion (INS-1813)', () => {
98
98
  expect(commitCallsFor('INS-3')).toBe(1);
99
99
  expect(commitCallsFor('DEC-4')).toBe(1);
100
100
  // The successful ones still got promoted.
101
- expect(output).toContain('Promoted TEN-2');
102
- expect(output).toContain('Promoted DEC-4');
101
+ expect(output).toContain('Accepted TEN-2');
102
+ expect(output).toContain('Accepted DEC-4');
103
103
  // The failure is surfaced per-entry...
104
104
  expect(output).toContain('INS-3');
105
105
  // ...and the batch exits non-zero so automation knows.
@@ -108,11 +108,11 @@ describe('runPromote — batch promotion (INS-1813)', () => {
108
108
  it('still works for a single ID passed via entryIds', async () => {
109
109
  installRoutes();
110
110
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
111
- await runPromote({ entryIds: ['TEN-2'] });
111
+ await runEntryAccept({ entryIds: ['TEN-2'] });
112
112
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
113
113
  writeSpy.mockRestore();
114
114
  expect(commitCallsFor('TEN-2')).toBe(1);
115
- expect(output).toContain('Promoted TEN-2');
115
+ expect(output).toContain('Accepted TEN-2');
116
116
  });
117
117
  it('fails fast and preserves the category when a global precondition (auth) fails the batch', async () => {
118
118
  // An expired/invalid key fails every id identically. The batch must NOT retry each id
@@ -136,7 +136,7 @@ describe('runPromote — batch promotion (INS-1813)', () => {
136
136
  });
137
137
  let caught;
138
138
  try {
139
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
139
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
140
140
  }
141
141
  catch (err) {
142
142
  caught = err;
@@ -179,7 +179,7 @@ describe('runPromote — batch promotion (INS-1813)', () => {
179
179
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
180
180
  let caught;
181
181
  try {
182
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
182
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
183
183
  }
184
184
  catch (err) {
185
185
  caught = err;
@@ -190,8 +190,8 @@ describe('runPromote — batch promotion (INS-1813)', () => {
190
190
  expect(commitCallsFor('TEN-2')).toBe(1);
191
191
  expect(commitCallsFor('INS-3')).toBe(1);
192
192
  expect(commitCallsFor('DEC-4')).toBe(1);
193
- expect(output).toContain('Promoted TEN-2');
194
- expect(output).toContain('Promoted DEC-4');
193
+ expect(output).toContain('Accepted TEN-2');
194
+ expect(output).toContain('Accepted DEC-4');
195
195
  // The refusal is surfaced per-entry, with the server's own reason text...
196
196
  expect(output).toContain('INS-3');
197
197
  expect(output).toContain('not the current owning role');
@@ -217,7 +217,7 @@ describe('runPromote — batch promotion (INS-1813)', () => {
217
217
  });
218
218
  let caught;
219
219
  try {
220
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
220
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
221
221
  }
222
222
  catch (err) {
223
223
  caught = err;
@@ -254,7 +254,7 @@ describe('runPromote — batch promotion (INS-1813)', () => {
254
254
  });
255
255
  let caught;
256
256
  try {
257
- await runPromote({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
257
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3', 'DEC-4'] });
258
258
  }
259
259
  catch (err) {
260
260
  caught = err;
@@ -286,7 +286,7 @@ describe('runPromote — batch promotion (INS-1813)', () => {
286
286
  });
287
287
  let caught;
288
288
  try {
289
- await runPromote({ entryIds: ['TEN-2', 'INS-3'] });
289
+ await runEntryAccept({ entryIds: ['TEN-2', 'INS-3'] });
290
290
  }
291
291
  catch (err) {
292
292
  caught = err;
@@ -298,8 +298,8 @@ describe('runPromote — batch promotion (INS-1813)', () => {
298
298
  });
299
299
  it('rejects when the batch is empty after trimming', async () => {
300
300
  installRoutes();
301
- await expect(runPromote({ entryIds: [' ', ''] })).rejects.toThrow('Entry ID is required');
301
+ await expect(runEntryAccept({ entryIds: [' ', ''] })).rejects.toThrow('Entry ID is required');
302
302
  expect(kernelCallWithSessionMock).not.toHaveBeenCalled();
303
303
  });
304
304
  });
305
- //# sourceMappingURL=promote-batch.test.js.map
305
+ //# sourceMappingURL=entryAccept-batch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entryAccept-batch.test.js","sourceRoot":"","sources":["../../src/__tests__/entryAccept-batch.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAE5E,MAAM,yBAAyB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE1C,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IACvC,MAAM,YAAa,SAAQ,KAAK;QAC9B,IAAI,CAAU;QACd,OAAO,CAAa;QACpB,YAAY,OAAe,EAAE,IAAa,EAAE,OAAmB;YAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;KACF;IACD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACvC,qBAAqB,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IACjF,QAAQ,EAAE,YAAY;IACtB,6FAA6F;IAC7F,uFAAuF;IACvF,8BAA8B,EAAE,CAAC,MAAM,EAAE,CAAC,YAAY,CAAoC,kBAAkB,CAAC,CAAC,CAAC,8BAA8B;CAC9I,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;CAC9G,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;IACvB,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAK,EAAE,EAAE,EAAE,YAAY,EAA4D,EAAE,EAAE;QAC/G,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,IAAI,WAAW,GAAiC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC3E,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW;CAC/B,CAAC,CAAC,CAAC;AAEJ,sEAAsE;AACtE,SAAS,aAAa,CAAC,OAA+B,EAAE;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC5C,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;QACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,EAAE,KAAK,+BAA+B;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;YACjF,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,mBAAmB,IAAK,CAAC,CAAC,CAAC,CAA0B,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnJ,CAAC;AAED,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,WAAW,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElF,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElF,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,mEAAmE;QACnE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,uCAAuC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,uDAAuD;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElF,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,sFAAsF;QACtF,oFAAoF;QACpF,iEAAiE;QACjE,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;YACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,QAAQ,CAAC,kBAAkB,EAAE;oBAC/B,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,oCAAoC;iBAC/C,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAE,MAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAE,MAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxE,uFAAuF;QACvF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iHAAiH,EAAE,KAAK,IAAI,EAAE;QAC/H,0FAA0F;QAC1F,yFAAyF;QACzF,mFAAmF;QACnF,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;YACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/B,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBACnB,OAAO,OAAO,CAAC,MAAM;oBACnB,kFAAkF;oBAClF,uEAAuE;oBACvE,IAAI,QAAQ,CAAC,6DAA6D,EAAE;wBAC1E,IAAI,EAAE,gBAA6C;wBACnD,QAAQ,EAAE,MAAM;wBAChB,QAAQ,EAAE,+CAA+C;qBAC1D,CAAC,CACH,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElF,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,8EAA8E;QAC9E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACxD,gFAAgF;QAChF,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;QAC9G,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;YACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,QAAQ,CAAC,0BAA0B,EAAE;oBACvC,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,oCAAoC;iBAC/C,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAE,MAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAE,MAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxE,uEAAuE;QACvE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iHAAiH,EAAE,KAAK,IAAI,EAAE;QAC/H,8EAA8E;QAC9E,wFAAwF;QACxF,mFAAmF;QACnF,0FAA0F;QAC1F,4EAA4E;QAC5E,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;YACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,QAAQ,CAAC,6CAA6C,EAAE;oBAC1D,IAAI,EAAE,gBAA6C;oBACnD,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,0DAA0D;iBACrE,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAE,MAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAE,MAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClE,0FAA0F;QAC1F,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,IAA0B,EAAE,EAAE;YACtF,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,EAAE,KAAK,+BAA+B;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,QAAQ,CAAC,kBAAkB,EAAE;oBAC/B,IAAI,EAAE,SAAS,CAAC,gBAAgB;oBAChC,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,yBAAyB;iBACpC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QAED,MAAM,CAAE,MAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAE,MAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,aAAa,EAAE,CAAC;QAChB,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/F,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entryAccept.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entryAccept.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/entryAccept.test.ts"],"names":[],"mappings":""}
@@ -1,15 +1,15 @@
1
1
  /**
2
- * pb promote — verify kernelCallWithSession sequence and args.
2
+ * pb entry accept (formerly pb promote, DEC-1578) — verify kernelCallWithSession sequence and args.
3
3
  * Covers: happy path (direct commit), governance proposal, no session, empty entryId,
4
4
  * and the SERVER-side auto-verify receipt (WP-B, attestation-model spec §4.3 — the
5
5
  * old client-side verify-then-retry on QUALITY_GATE_BLOCKED is deleted dead code).
6
6
  */
7
7
  import { beforeEach, describe, expect, it, vi } from 'vitest';
8
- import { runPromote } from '../commands/promote.js';
8
+ import { runEntryAccept } from '../commands/entryAccept.js';
9
9
  const kernelCallWithSessionMock = vi.fn();
10
10
  // Hoist McpError so it's available both in the mock factory and in test bodies.
11
11
  // The client mock must export the same class other lib consumers import; the
12
- // tests use it to shape server-thrown errors (WP-B deleted promote.ts's own
12
+ // tests use it to shape server-thrown errors (WP-B deleted entryAccept.ts's own
13
13
  // McpError-instanceof retry, so only the mock factory needs the class now).
14
14
  const { MockMcpError } = vi.hoisted(() => {
15
15
  class MockMcpError extends Error {
@@ -27,7 +27,7 @@ const { MockMcpError } = vi.hoisted(() => {
27
27
  vi.mock('../lib/client.js', async () => ({
28
28
  kernelCallWithSession: (...args) => kernelCallWithSessionMock(...args),
29
29
  McpError: MockMcpError,
30
- // WP-753 O5a fix round 2: real implementation, not a stub — promote.ts's abort predicate
30
+ // WP-753 O5a fix round 2: real implementation, not a stub — entryAccept.ts's abort predicate
31
31
  // depends on its actual per-entry-code classification, not a mocked always-true/false.
32
32
  isPerEntryAuthorizationRefusal: (await vi.importActual('../lib/client.js')).isPerEntryAuthorizationRefusal,
33
33
  }));
@@ -35,7 +35,7 @@ vi.mock('../lib/config.js', () => ({
35
35
  getConfigOrGuide: vi.fn(() => Promise.resolve({ apiKey: 'pb_sk_test', siteUrl: 'https://test.convex.site' })),
36
36
  }));
37
37
  // Output mode is controllable per-test via runnerState.jsonMode (defaults to pretty,
38
- // so existing formatPromoteReceipt assertions keep working). The mock runCliCommand
38
+ // so existing formatEntryAcceptReceipt assertions keep working). The mock runCliCommand
39
39
  // mirrors the real one: JSON.stringify in json mode, formatPretty otherwise.
40
40
  const { runnerState } = vi.hoisted(() => ({ runnerState: { jsonMode: false } }));
41
41
  vi.mock('../lib/runner.js', () => ({
@@ -54,7 +54,7 @@ let mockSession = { sessionId: 'sess-test' };
54
54
  vi.mock('../lib/session.js', () => ({
55
55
  readSession: () => mockSession,
56
56
  }));
57
- describe('runPromote', () => {
57
+ describe('runEntryAccept', () => {
58
58
  beforeEach(() => {
59
59
  vi.clearAllMocks();
60
60
  mockSession = { sessionId: 'sess-test' };
@@ -71,7 +71,7 @@ describe('runPromote', () => {
71
71
  version: 1,
72
72
  });
73
73
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
74
- await runPromote({ entryId: 'TEN-951' });
74
+ await runEntryAccept({ entryId: 'TEN-951' });
75
75
  writeSpy.mockRestore();
76
76
  expect(kernelCallWithSessionMock).toHaveBeenCalledWith('chain.commitEntry', {
77
77
  entryId: 'TEN-951',
@@ -90,7 +90,7 @@ describe('runPromote', () => {
90
90
  version: 1,
91
91
  });
92
92
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
93
- await runPromote({ entryId: 'TEN-951', message: 'Validated and ready' });
93
+ await runEntryAccept({ entryId: 'TEN-951', message: 'Validated and ready' });
94
94
  writeSpy.mockRestore();
95
95
  expect(kernelCallWithSessionMock).toHaveBeenCalledWith('chain.commitEntry', {
96
96
  entryId: 'TEN-951',
@@ -111,10 +111,10 @@ describe('runPromote', () => {
111
111
  version: 1,
112
112
  });
113
113
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
114
- await runPromote({ entryId: 'TEN-951' });
114
+ await runEntryAccept({ entryId: 'TEN-951' });
115
115
  const output = writeSpy.mock.calls.map(c => String(c[0])).join('');
116
116
  writeSpy.mockRestore();
117
- expect(output).toContain('Promoted TEN-951');
117
+ expect(output).toContain('Accepted TEN-951');
118
118
  expect(output).toContain('draft');
119
119
  expect(output).toContain('active');
120
120
  expect(output).toContain('v1');
@@ -131,7 +131,7 @@ describe('runPromote', () => {
131
131
  name: 'Some governed decision',
132
132
  });
133
133
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
134
- await runPromote({ entryId: 'DEC-100' });
134
+ await runEntryAccept({ entryId: 'DEC-100' });
135
135
  const output = writeSpy.mock.calls.map(c => String(c[0])).join('');
136
136
  writeSpy.mockRestore();
137
137
  expect(output).toContain('Created proposal');
@@ -154,7 +154,7 @@ describe('runPromote', () => {
154
154
  },
155
155
  });
156
156
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
157
- await runPromote({ entryId: 'BET-151' });
157
+ await runEntryAccept({ entryId: 'BET-151' });
158
158
  const output = writeSpy.mock.calls.map(c => String(c[0])).join('');
159
159
  writeSpy.mockRestore();
160
160
  expect(output).toContain('Quality warnings');
@@ -163,16 +163,16 @@ describe('runPromote', () => {
163
163
  });
164
164
  it('throws CLIError with no active session', async () => {
165
165
  mockSession = null;
166
- await expect(runPromote({ entryId: 'TEN-951' })).rejects.toThrow('No active session');
166
+ await expect(runEntryAccept({ entryId: 'TEN-951' })).rejects.toThrow('No active session');
167
167
  expect(kernelCallWithSessionMock).not.toHaveBeenCalled();
168
168
  });
169
169
  it('throws CLIError with empty entryId', async () => {
170
- await expect(runPromote({ entryId: ' ' })).rejects.toThrow('Entry ID is required');
170
+ await expect(runEntryAccept({ entryId: ' ' })).rejects.toThrow('Entry ID is required');
171
171
  expect(kernelCallWithSessionMock).not.toHaveBeenCalled();
172
172
  });
173
173
  it('handles server errors thrown during commit', async () => {
174
174
  kernelCallWithSessionMock.mockRejectedValue(new Error('Entry not found.'));
175
- await expect(runPromote({ entryId: 'TEN-999' })).rejects.toThrow('Entry not found.');
175
+ await expect(runEntryAccept({ entryId: 'TEN-999' })).rejects.toThrow('Entry not found.');
176
176
  });
177
177
  // WP-485 Slice 2b (R2, FEAT-1370): the client no longer decides — it discovers and hands
178
178
  // the candidates to commitEntry as evidence. The enforcement decision (Slice 2a) lives
@@ -195,7 +195,7 @@ describe('runPromote', () => {
195
195
  version: 1,
196
196
  });
197
197
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
198
- await runPromote({ entryId: 'DEC-100' });
198
+ await runEntryAccept({ entryId: 'DEC-100' });
199
199
  writeSpy.mockRestore();
200
200
  expect(kernelCallWithSessionMock).toHaveBeenCalledWith('chain.commitEntry', {
201
201
  entryId: 'DEC-100',
@@ -220,7 +220,7 @@ describe('runPromote', () => {
220
220
  },
221
221
  ])
222
222
  .mockRejectedValueOnce(new MockMcpError('Blocked by contradiction with DEC-42.', 'CONTRADICTION_BLOCKED'));
223
- await expect(runPromote({ entryId: 'DEC-100' })).rejects.toThrow('Blocked by contradiction with DEC-42.');
223
+ await expect(runEntryAccept({ entryId: 'DEC-100' })).rejects.toThrow('Blocked by contradiction with DEC-42.');
224
224
  const commitCalls = kernelCallWithSessionMock.mock.calls.filter((c) => c[0] === 'chain.commitEntry');
225
225
  expect(commitCalls).toHaveLength(1);
226
226
  });
@@ -259,10 +259,10 @@ describe('runPromote', () => {
259
259
  },
260
260
  });
261
261
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
262
- await runPromote({ entryId: 'DEC-100' });
262
+ await runEntryAccept({ entryId: 'DEC-100' });
263
263
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
264
264
  writeSpy.mockRestore();
265
- expect(output).toContain('Promoted DEC-100');
265
+ expect(output).toContain('Accepted DEC-100');
266
266
  expect(output).toContain('Contradiction advisory');
267
267
  expect(output).toContain('Advisory only — not yet graduated to blocking.');
268
268
  expect(output).toContain('DEC-42');
@@ -281,12 +281,12 @@ describe('runPromote', () => {
281
281
  autoVerified: { strength: 'delegated', basis: 'attested', context: 'promote-gate', verifiedBy: 'agent for Randy Test' },
282
282
  });
283
283
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
284
- await runPromote({ entryId: 'INS-100' });
284
+ await runEntryAccept({ entryId: 'INS-100' });
285
285
  const output = writeSpy.mock.calls.map(c => String(c[0])).join('');
286
286
  writeSpy.mockRestore();
287
287
  // THE RECEIPT SAYS SO (spec §4.3) — silence here is a structural regression.
288
- expect(output).toContain('Promoted INS-100');
289
- expect(output).toContain('Auto-verified as part of promote — delegated (agent for Randy Test)');
288
+ expect(output).toContain('Accepted INS-100');
289
+ expect(output).toContain('Auto-verified as part of accept — delegated (agent for Randy Test)');
290
290
  // The client-side verify-then-retry is dead code: verifyEntry never called,
291
291
  // commitEntry called exactly once.
292
292
  expect(kernelCallWithSessionMock).not.toHaveBeenCalledWith('chain.verifyEntry', expect.anything());
@@ -301,7 +301,7 @@ describe('runPromote', () => {
301
301
  .mockResolvedValueOnce([])
302
302
  // call 3: chain.commitEntry → an OLD server still throws the verification block
303
303
  .mockRejectedValueOnce(new MockMcpError('Agent-origin entry requires verification before commit', 'QUALITY_GATE_BLOCKED'));
304
- await expect(runPromote({ entryId: 'INS-100' })).rejects.toThrow('requires verification');
304
+ await expect(runEntryAccept({ entryId: 'INS-100' })).rejects.toThrow('requires verification');
305
305
  expect(kernelCallWithSessionMock).not.toHaveBeenCalledWith('chain.verifyEntry', expect.anything());
306
306
  const commitCalls = kernelCallWithSessionMock.mock.calls.filter(c => c[0] === 'chain.commitEntry');
307
307
  expect(commitCalls).toHaveLength(1);
@@ -314,7 +314,7 @@ describe('runPromote', () => {
314
314
  .mockResolvedValueOnce([])
315
315
  // call 3: chain.commitEntry → blocked for a different reason (missing fields)
316
316
  .mockRejectedValueOnce(new MockMcpError('Entry missing required fields', 'QUALITY_GATE_BLOCKED'));
317
- await expect(runPromote({ entryId: 'BET-200' })).rejects.toThrow('Entry missing required fields');
317
+ await expect(runEntryAccept({ entryId: 'BET-200' })).rejects.toThrow('Entry missing required fields');
318
318
  // verifyEntry must never have been called
319
319
  expect(kernelCallWithSessionMock).not.toHaveBeenCalledWith('chain.verifyEntry', expect.anything());
320
320
  });
@@ -350,7 +350,7 @@ describe('runPromote', () => {
350
350
  .mockResolvedValueOnce({ status: 'coherency_refused', refusal });
351
351
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
352
352
  // The throw carries the gate's own reason (so humans see the cause on stderr).
353
- await expect(runPromote({ entryId: 'DEC-500' })).rejects.toThrow(/Steering gate returned/);
353
+ await expect(runEntryAccept({ entryId: 'DEC-500' })).rejects.toThrow(/Steering gate returned/);
354
354
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
355
355
  writeSpy.mockRestore();
356
356
  // The structured { outcome: 'refused', refusal } envelope reached stdout (machine-readable),
@@ -371,7 +371,7 @@ describe('runPromote', () => {
371
371
  refusal: { reason: 'Refused by the coherency gate.' },
372
372
  });
373
373
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
374
- await expect(runPromote({ entryId: 'DEC-500' })).rejects.toThrow(/coherency/i);
374
+ await expect(runEntryAccept({ entryId: 'DEC-500' })).rejects.toThrow(/coherency/i);
375
375
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
376
376
  writeSpy.mockRestore();
377
377
  expect(output).not.toContain('"outcome":"refused"');
@@ -390,10 +390,10 @@ describe('runPromote', () => {
390
390
  steeringAdvisory: 'This decision is not linked to the strategic spine.',
391
391
  });
392
392
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
393
- await runPromote({ entryId: 'DEC-600' });
393
+ await runEntryAccept({ entryId: 'DEC-600' });
394
394
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
395
395
  writeSpy.mockRestore();
396
- expect(output).toContain('Promoted DEC-600');
396
+ expect(output).toContain('Accepted DEC-600');
397
397
  expect(output).toContain('Coherency advisory');
398
398
  expect(output).toContain('This decision is not linked to the strategic spine.');
399
399
  });
@@ -421,7 +421,7 @@ describe('runPromote', () => {
421
421
  .mockResolvedValueOnce([{ chainEntryId: 'DEC-42', chainEntryName: 'Existing decision', type: 'contradiction', confidence: 0.9, explanation: 'Directly contradicts the approved baseline.' }])
422
422
  .mockResolvedValueOnce({ _id: 'j2', entryId: 'DEC-100', versionId: 'v1', version: 1, contradictionAdvisory: advisory });
423
423
  const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
424
- await runPromote({ entryIds: ['TEN-951', 'DEC-100'] });
424
+ await runEntryAccept({ entryIds: ['TEN-951', 'DEC-100'] });
425
425
  const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
426
426
  writeSpy.mockRestore();
427
427
  const parsed = JSON.parse(output.trim());
@@ -430,4 +430,4 @@ describe('runPromote', () => {
430
430
  expect(parsed[1].contradictionAdvisory).toEqual(advisory);
431
431
  });
432
432
  });
433
- //# sourceMappingURL=promote.test.js.map
433
+ //# sourceMappingURL=entryAccept.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entryAccept.test.js","sourceRoot":"","sources":["../../src/__tests__/entryAccept.test.ts"],"names":[],"mappings":"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"}
@@ -59,8 +59,8 @@ vi.mock('../lib/client.js', async () => ({
59
59
  McpError: class McpError extends Error {
60
60
  },
61
61
  // WP-753 O5a fix round 3 (item 3): real implementation, not a stub — matches the pattern in
62
- // promote.test.ts/promote-batch.test.ts. Passes today only because this suite never hits
63
- // promote.ts's batch catch, but an undefined export here is a latent break waiting to happen.
62
+ // entryAccept.test.ts/entryAccept-batch.test.ts. Passes today only because this suite never hits
63
+ // entryAccept.ts's batch catch, but an undefined export here is a latent break waiting to happen.
64
64
  isPerEntryAuthorizationRefusal: (await vi.importActual('../lib/client.js')).isPerEntryAuthorizationRefusal,
65
65
  }));
66
66
  let mockSession = { sessionId: 'sess-test' };
@@ -85,9 +85,9 @@ import { formatEffectiveTenantNotice, emitEffectiveTenantNotice, resetEffectiveT
85
85
  import { runCapture } from '../commands/capture.js';
86
86
  import { runRelate, runUnrelate } from '../commands/relate.js';
87
87
  import { runUpdate } from '../commands/update.js';
88
- import { runPromote } from '../commands/promote.js';
88
+ import { runEntryAccept } from '../commands/entryAccept.js';
89
89
  import { formatRelateReceipt } from '../formatters/relate.js';
90
- import { formatPromoteReceipt } from '../formatters/promote.js';
90
+ import { formatEntryAcceptReceipt } from '../formatters/entryAccept.js';
91
91
  // ---------------------------------------------------------------------------
92
92
  // (1) Pure formatter — labels from the profile slug only.
93
93
  // ---------------------------------------------------------------------------
@@ -450,7 +450,7 @@ describe('write commands: --json stdout never carries the notice', () => {
450
450
  expect(JSON.parse(lines[0])).toMatchObject({ id: 'DEC-1' });
451
451
  expect(stdout.join('')).not.toContain('→');
452
452
  });
453
- it('promote --json: strict object on stdout, no "→" notice', async () => {
453
+ it('entry accept --json: strict object on stdout, no "→" notice', async () => {
454
454
  kernelWS.mockImplementation((fn) => {
455
455
  if (fn === 'chain.getEntry')
456
456
  return Promise.resolve({ name: 'A decision' });
@@ -460,7 +460,7 @@ describe('write commands: --json stdout never carries the notice', () => {
460
460
  return Promise.resolve({ entryId: 'DEC-1', name: 'A decision', status: 'active' });
461
461
  return Promise.resolve({});
462
462
  });
463
- await runPromote({ entryId: 'DEC-1' });
463
+ await runEntryAccept({ entryId: 'DEC-1' });
464
464
  const lines = jsonLines();
465
465
  expect(lines).toHaveLength(1);
466
466
  expect(JSON.parse(lines[0])).toMatchObject({ entryId: 'DEC-1' });
@@ -546,7 +546,7 @@ describe('write commands (pretty): notice → stderr, receipt → stdout', () =>
546
546
  expect(out).toContain('Updated DEC-1: done');
547
547
  expect(out).not.toContain('→ funcode');
548
548
  });
549
- it('promote (pretty, global): qualified notice on stderr, exact receipt on stdout', async () => {
549
+ it('entry accept (pretty, global): qualified notice on stderr, exact receipt on stdout', async () => {
550
550
  effectiveState.value = { profile: 'product-brain', source: 'global' };
551
551
  kernelWS.mockImplementation((fn) => {
552
552
  if (fn === 'chain.getEntry')
@@ -557,9 +557,9 @@ describe('write commands (pretty): notice → stderr, receipt → stdout', () =>
557
557
  return Promise.resolve({ entryId: 'DEC-1', name: 'A decision', status: 'active' });
558
558
  return Promise.resolve({});
559
559
  });
560
- await runPromote({ entryId: 'DEC-1' });
560
+ await runEntryAccept({ entryId: 'DEC-1' });
561
561
  expect(stderr.join('')).toContain('→ product-brain (global default');
562
- const expected = formatPromoteReceipt({
562
+ const expected = formatEntryAcceptReceipt({
563
563
  entryId: 'DEC-1',
564
564
  name: 'A decision',
565
565
  result: { entryId: 'DEC-1', name: 'A decision', status: 'active' },