@productbrain/cli 0.1.0-beta.11282 → 0.1.0-beta.11288

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 (100) hide show
  1. package/README.md +3 -2
  2. package/dist/__tests__/cli-error-once.test.d.ts +2 -0
  3. package/dist/__tests__/cli-error-once.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli-error-once.test.js +51 -0
  5. package/dist/__tests__/cli-error-once.test.js.map +1 -0
  6. package/dist/__tests__/init.test.d.ts +2 -1
  7. package/dist/__tests__/init.test.d.ts.map +1 -1
  8. package/dist/__tests__/init.test.js +110 -8
  9. package/dist/__tests__/init.test.js.map +1 -1
  10. package/dist/__tests__/removed-commands.test.js +31 -2
  11. package/dist/__tests__/removed-commands.test.js.map +1 -1
  12. package/dist/commands/connect-integration.test.js +1 -5
  13. package/dist/commands/connect-integration.test.js.map +1 -1
  14. package/dist/commands/connect-legacy-migration.test.js +0 -1
  15. package/dist/commands/connect-legacy-migration.test.js.map +1 -1
  16. package/dist/commands/connect-screens.d.ts +9 -13
  17. package/dist/commands/connect-screens.d.ts.map +1 -1
  18. package/dist/commands/connect-screens.js +16 -78
  19. package/dist/commands/connect-screens.js.map +1 -1
  20. package/dist/commands/connect-screens.test.d.ts +2 -0
  21. package/dist/commands/connect-screens.test.d.ts.map +1 -0
  22. package/dist/commands/connect-screens.test.js +18 -0
  23. package/dist/commands/connect-screens.test.js.map +1 -0
  24. package/dist/commands/connect.js +5 -5
  25. package/dist/commands/connect.js.map +1 -1
  26. package/dist/commands/connect.test.js +0 -4
  27. package/dist/commands/connect.test.js.map +1 -1
  28. package/dist/commands/init.d.ts +14 -1
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +90 -1
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/handleCliError.d.ts +17 -0
  33. package/dist/handleCliError.d.ts.map +1 -1
  34. package/dist/handleCliError.js +14 -3
  35. package/dist/handleCliError.js.map +1 -1
  36. package/dist/index.js +7 -29
  37. package/dist/index.js.map +1 -1
  38. package/dist/lib/client.d.ts.map +1 -1
  39. package/dist/lib/client.js +1 -2
  40. package/dist/lib/client.js.map +1 -1
  41. package/package.json +1 -2
  42. package/dist/__tests__/handshake-augment.test.d.ts +0 -2
  43. package/dist/__tests__/handshake-augment.test.d.ts.map +0 -1
  44. package/dist/__tests__/handshake-augment.test.js +0 -407
  45. package/dist/__tests__/handshake-augment.test.js.map +0 -1
  46. package/dist/__tests__/handshake-dormancy.test.d.ts +0 -2
  47. package/dist/__tests__/handshake-dormancy.test.d.ts.map +0 -1
  48. package/dist/__tests__/handshake-dormancy.test.js +0 -24
  49. package/dist/__tests__/handshake-dormancy.test.js.map +0 -1
  50. package/dist/__tests__/handshake-formatter.test.d.ts +0 -2
  51. package/dist/__tests__/handshake-formatter.test.d.ts.map +0 -1
  52. package/dist/__tests__/handshake-formatter.test.js +0 -111
  53. package/dist/__tests__/handshake-formatter.test.js.map +0 -1
  54. package/dist/__tests__/handshake-preview.test.d.ts +0 -2
  55. package/dist/__tests__/handshake-preview.test.d.ts.map +0 -1
  56. package/dist/__tests__/handshake-preview.test.js +0 -500
  57. package/dist/__tests__/handshake-preview.test.js.map +0 -1
  58. package/dist/__tests__/handshake-session-threading.test.d.ts +0 -2
  59. package/dist/__tests__/handshake-session-threading.test.d.ts.map +0 -1
  60. package/dist/__tests__/handshake-session-threading.test.js +0 -185
  61. package/dist/__tests__/handshake-session-threading.test.js.map +0 -1
  62. package/dist/__tests__/handshake.e2e.test.d.ts +0 -2
  63. package/dist/__tests__/handshake.e2e.test.d.ts.map +0 -1
  64. package/dist/__tests__/handshake.e2e.test.js +0 -226
  65. package/dist/__tests__/handshake.e2e.test.js.map +0 -1
  66. package/dist/__tests__/handshake.test.d.ts +0 -2
  67. package/dist/__tests__/handshake.test.d.ts.map +0 -1
  68. package/dist/__tests__/handshake.test.js +0 -1040
  69. package/dist/__tests__/handshake.test.js.map +0 -1
  70. package/dist/__tests__/method-registry.integration.test.d.ts +0 -6
  71. package/dist/__tests__/method-registry.integration.test.d.ts.map +0 -1
  72. package/dist/__tests__/method-registry.integration.test.js +0 -17
  73. package/dist/__tests__/method-registry.integration.test.js.map +0 -1
  74. package/dist/__tests__/method-registry.test.d.ts +0 -12
  75. package/dist/__tests__/method-registry.test.d.ts.map +0 -1
  76. package/dist/__tests__/method-registry.test.js +0 -86
  77. package/dist/__tests__/method-registry.test.js.map +0 -1
  78. package/dist/commands/connect-context.d.ts +0 -55
  79. package/dist/commands/connect-context.d.ts.map +0 -1
  80. package/dist/commands/connect-context.js +0 -78
  81. package/dist/commands/connect-context.js.map +0 -1
  82. package/dist/commands/connect-context.test.d.ts +0 -2
  83. package/dist/commands/connect-context.test.d.ts.map +0 -1
  84. package/dist/commands/connect-context.test.js +0 -148
  85. package/dist/commands/connect-context.test.js.map +0 -1
  86. package/dist/commands/handshake.d.ts +0 -78
  87. package/dist/commands/handshake.d.ts.map +0 -1
  88. package/dist/commands/handshake.js +0 -1359
  89. package/dist/commands/handshake.js.map +0 -1
  90. package/dist/lib/method-registry.d.ts +0 -37
  91. package/dist/lib/method-registry.d.ts.map +0 -1
  92. package/dist/lib/method-registry.js +0 -41
  93. package/dist/lib/method-registry.js.map +0 -1
  94. package/templates/general/code-integrity.md +0 -11
  95. package/templates/general/getting-started.md +0 -12
  96. package/templates/method-registry.json +0 -16
  97. package/templates/node-ts/code-integrity.md +0 -13
  98. package/templates/node-ts/testing.md +0 -12
  99. package/templates/python/code-integrity.md +0 -13
  100. package/templates/python/testing.md +0 -12
@@ -1,185 +0,0 @@
1
- /**
2
- * runHandshake threads the local session marker into its getOrientView call, mirroring
3
- * `commands/orient.ts`'s own sessionId/conversationId threading — so the everyone/team/role rule
4
- * lists a shared-API-key agent receives are scoped to ITS session, not a sibling conversation's.
5
- *
6
- * A dedicated file (mirrors the mock harness in handshake-preview.test.ts, trimmed to just this
7
- * behavior) rather than growing either existing handshake test file past its line budget.
8
- */
9
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
10
- const { vfs, MOCK_CWD, MOCK_HOME } = vi.hoisted(() => ({
11
- vfs: {},
12
- MOCK_CWD: '/tmp/pb-session-threading-cwd',
13
- MOCK_HOME: '/tmp/pb-session-threading-home',
14
- }));
15
- vi.mock('fs', () => ({
16
- mkdirSync: vi.fn(),
17
- writeFileSync: vi.fn((path, content) => {
18
- vfs[path] = content;
19
- }),
20
- existsSync: vi.fn((path) => path in vfs),
21
- readFileSync: vi.fn((path, _enc) => {
22
- if (path in vfs)
23
- return vfs[path];
24
- throw Object.assign(new Error(`ENOENT: no such file '${path}'`), { code: 'ENOENT' });
25
- }),
26
- readdirSync: vi.fn(() => []),
27
- copyFileSync: vi.fn(),
28
- realpathSync: vi.fn((path) => path),
29
- }));
30
- vi.mock('os', () => ({ homedir: vi.fn(() => MOCK_HOME) }));
31
- vi.mock('child_process', () => ({
32
- execSync: vi.fn(() => {
33
- throw new Error('no git');
34
- }),
35
- }));
36
- vi.mock('../lib/prompts.js', () => ({
37
- select: vi.fn(() => Promise.resolve('work')),
38
- confirm: vi.fn(() => Promise.resolve(false)),
39
- ask: vi.fn(() => Promise.resolve('')),
40
- password: vi.fn(() => Promise.resolve('')),
41
- isInteractive: vi.fn(() => false),
42
- }));
43
- const kernelCallMock = vi.fn().mockResolvedValue([]);
44
- vi.mock('../lib/client.js', () => ({
45
- kernelCall: (...args) => kernelCallMock(...args),
46
- kernelCallWithSession: vi.fn().mockResolvedValue(undefined),
47
- }));
48
- const readSessionMock = vi.fn((..._args) => null);
49
- vi.mock('../lib/session.js', () => ({
50
- readSession: (...args) => readSessionMock(...args),
51
- writeSession: vi.fn(),
52
- clearSession: vi.fn(),
53
- readClosedMarker: vi.fn(() => null),
54
- addCapturedEntry: vi.fn(),
55
- }));
56
- vi.mock('../lib/config.js', () => ({
57
- getConfigOrGuide: vi.fn().mockResolvedValue({
58
- apiKey: 'pb_sk_test',
59
- siteUrl: 'https://test.convex.site',
60
- }),
61
- }));
62
- vi.mock('../lib/repo-detect.js', () => ({
63
- detectRepo: vi.fn().mockReturnValue({
64
- name: 'test-repo',
65
- description: null,
66
- gitRemote: null,
67
- repoSlug: null,
68
- detectedStack: [],
69
- isMonorepo: false,
70
- }),
71
- extractWorkspaceProfile: vi.fn().mockReturnValue(null),
72
- }));
73
- vi.mock('../generators/adapters.js', () => ({
74
- MARKER: 'auto-generated by pb handshake',
75
- generateAgentsMd: vi.fn().mockReturnValue('agents content'),
76
- generateClaudeMd: vi.fn().mockReturnValue('claude content'),
77
- generateCursorMdc: vi.fn().mockReturnValue('cursor content'),
78
- generateCopilotMd: vi.fn().mockReturnValue('copilot content'),
79
- generateCopilotInstructionFiles: vi.fn().mockReturnValue([]),
80
- }));
81
- vi.mock('../generators/portable-knowledge.js', () => ({
82
- readCanonicalSkills: vi.fn().mockReturnValue([]),
83
- readCanonicalRules: vi.fn().mockReturnValue([]),
84
- readPersonalLayer: vi.fn().mockReturnValue([]),
85
- readPersonalSkillsLayer: vi.fn().mockReturnValue([]),
86
- generateCursorSkill: vi.fn().mockReturnValue(''),
87
- generateCursorRule: vi.fn().mockReturnValue(''),
88
- generateCodexSkill: vi.fn().mockReturnValue(''),
89
- generateCodexSkillIndex: vi.fn().mockReturnValue(''),
90
- shouldEmitToTarget: vi.fn().mockReturnValue(false),
91
- filterByLevel: vi.fn().mockImplementation((items) => items),
92
- evaluateConditions: vi.fn().mockReturnValue({ included: true, reasons: [] }),
93
- validateCodexSkills: vi.fn().mockReturnValue([]),
94
- }));
95
- vi.mock('../generators/briefing-md.js', () => ({
96
- generateBriefingMd: vi.fn().mockReturnValue('briefing content'),
97
- }));
98
- vi.mock('../generators/context-md.js', () => ({
99
- generateContextMd: vi.fn().mockReturnValue('context content'),
100
- }));
101
- vi.mock('../generators/everyone-rules-md.js', () => ({
102
- generateEveryoneRulesMd: vi.fn().mockReturnValue('everyone rules content'),
103
- }));
104
- vi.mock('../generators/surface-profiles.js', () => ({
105
- resolveSurfaceProfile: vi.fn().mockReturnValue({ level: 'intermediate' }),
106
- }));
107
- vi.mock('../generators/manifest.js', () => ({
108
- readManifest: vi.fn().mockReturnValue(null),
109
- readManifestStatus: vi.fn().mockReturnValue({
110
- mode: 'project',
111
- surfaces: ['.cursor', '.claude', '.codex', '.github'],
112
- lock: {},
113
- parseStatus: 'ok',
114
- manifest: null,
115
- }),
116
- filterByAdoptionState: vi.fn().mockImplementation((items) => items),
117
- }));
118
- vi.mock('../formatters/handshake.js', () => ({
119
- formatHandshakeReport: vi.fn().mockReturnValue(''),
120
- }));
121
- vi.mock('../lib/hook-intents.js', () => ({
122
- composeHooksFromIntents: vi.fn().mockReturnValue({}),
123
- getHookStatusForSurface: vi.fn().mockReturnValue([]),
124
- }));
125
- vi.mock('../lib/method-registry.js', () => ({
126
- loadMethodRegistry: vi.fn().mockResolvedValue({ methods: [] }),
127
- }));
128
- import { readdirSync } from 'fs';
129
- import { detectRepo } from '../lib/repo-detect.js';
130
- import { readManifestStatus } from '../generators/manifest.js';
131
- import { runHandshake } from '../commands/handshake.js';
132
- describe('runHandshake threads the local session marker into getOrientView', () => {
133
- let cwdSpy;
134
- beforeEach(() => {
135
- Object.keys(vfs).forEach((k) => delete vfs[k]);
136
- vi.clearAllMocks();
137
- // TASK-554: getOrientView always serves the briefing's facts; every other call resolves [].
138
- kernelCallMock.mockImplementation(async (tool) => (tool === 'chain.getOrientView' ? { briefing: {} } : []));
139
- readSessionMock.mockReturnValue(null);
140
- cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(MOCK_CWD);
141
- vi.spyOn(console, 'log').mockImplementation(() => { });
142
- vi.spyOn(console, 'error').mockImplementation(() => { });
143
- vi.spyOn(console, 'warn').mockImplementation(() => { });
144
- vi.mocked(readdirSync).mockReturnValue([]);
145
- vi.mocked(detectRepo).mockReturnValue({
146
- name: 'test-repo',
147
- description: null,
148
- gitRemote: null,
149
- repoSlug: null,
150
- detectedStack: [],
151
- isMonorepo: false,
152
- });
153
- vi.mocked(readManifestStatus).mockReturnValue({
154
- mode: 'project',
155
- surfaces: ['.cursor', '.claude', '.codex', '.github'],
156
- lock: {},
157
- parseStatus: 'ok',
158
- manifest: null,
159
- });
160
- });
161
- afterEach(() => {
162
- cwdSpy.mockRestore();
163
- });
164
- function getOrientViewArgs() {
165
- const call = kernelCallMock.mock.calls.find(([fn]) => fn === 'chain.getOrientView');
166
- return call?.[1];
167
- }
168
- it('forwards sessionId + conversationId when a local session marker is active', async () => {
169
- readSessionMock.mockReturnValue({ sessionId: 'sess-abc123', conversationId: 'conv-xyz789' });
170
- await runHandshake({});
171
- expect(getOrientViewArgs()).toMatchObject({
172
- sessionId: 'sess-abc123',
173
- conversationId: 'conv-xyz789',
174
- });
175
- });
176
- it('omits sessionId + conversationId entirely with no active session marker', async () => {
177
- readSessionMock.mockReturnValue(null);
178
- await runHandshake({});
179
- const args = getOrientViewArgs();
180
- expect(args).toBeDefined();
181
- expect(args).not.toHaveProperty('sessionId');
182
- expect(args).not.toHaveProperty('conversationId');
183
- });
184
- });
185
- //# sourceMappingURL=handshake-session-threading.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handshake-session-threading.test.js","sourceRoot":"","sources":["../../src/__tests__/handshake-session-threading.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handshake.e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handshake.e2e.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/handshake.e2e.test.ts"],"names":[],"mappings":""}
@@ -1,226 +0,0 @@
1
- /**
2
- * WP-421 S7 — table-driven E2E for the four authority-mode transitions
3
- * (doneWhen #27). One shared tempdir fixture exercises four mode-transition
4
- * rows in a `describe.each` so a regression in any single transition shows up
5
- * with a row-named failure (e.g. "row 3 / project → govern").
6
- *
7
- * Why this stays CLI-side (not full handshake → Convex):
8
- *
9
- * The full `runHandshake` round-trips the AKI gateway, listAssetsForUser,
10
- * and writeSetupReceipt. Those are exercised by the handshake.test.ts mocks
11
- * and the convex-test integration suite. This file pins the per-transition
12
- * filesystem contract that every handshake share regardless of mode:
13
- * - drift report classification (3 buckets) is correct for the fixture,
14
- * - PB-managed projection paths are inside the perimeter,
15
- * - user-owned files are NEVER touched,
16
- * - lock metadata in the manifest is read+honoured by the perimeter.
17
- *
18
- * The four rows share ONE tempdir (per spec) — failures localize to the
19
- * `transitionName` column.
20
- */
21
- import { mkdtempSync, rmSync, mkdirSync, readFileSync, writeFileSync, existsSync } from 'fs';
22
- import { tmpdir } from 'os';
23
- import { join } from 'path';
24
- import { afterAll, beforeAll, describe, expect, it } from 'vitest';
25
- import { classifyDriftBucket, } from '../commands/handshake.js';
26
- import { MARKER } from '../generators/adapters.js';
27
- import { assertSetupWritePath, SETUP_PERIMETER_VIOLATION } from '../lib/writePerimeter.js';
28
- import { readManifestStatus } from '../generators/manifest.js';
29
- import { createHash } from 'crypto';
30
- // ── Shared tempdir fixture ───────────────────────────────────────────────────
31
- let sharedRoot;
32
- let savedCwd;
33
- const FIXTURE_FILES = {
34
- // PB-managed projection (clean): has MARKER + matching pb-hash trailer.
35
- pbManagedClean: '.cursor/rules/pb-orient.mdc',
36
- // User-edited projection: has MARKER + STALE pb-hash trailer (tampered bucket).
37
- pbManagedTampered: '.cursor/rules/pb-tampered.mdc',
38
- // User-owned: no MARKER, never touched by PB.
39
- userOwned: '.cursor/rules/my-custom.mdc',
40
- // Manifest at .productbrain/manifest.yaml carries adopted: + a platform-locked entry.
41
- manifest: '.productbrain/manifest.yaml',
42
- };
43
- /** Compute the pb-hash trailer the projection path uses, so the fixture round-trips clean. */
44
- function buildCleanProjection(body) {
45
- const HASH_TRAILER_REGEX = /^<!--\s*pb-hash:.*-->\s*$/gm;
46
- const TIMESTAMP_REGEX = /^<!--\s*pb-generated-at:.*-->\s*$/gm;
47
- const head = `${MARKER}\n${body}`;
48
- const normalized = head
49
- .replace(HASH_TRAILER_REGEX, '')
50
- .replace(TIMESTAMP_REGEX, '')
51
- .replace(/\r\n/g, '\n')
52
- .replace(/\r/g, '\n')
53
- .trimEnd();
54
- const hash = createHash('sha256').update(normalized, 'utf8').digest('hex');
55
- return `${normalized}\n<!-- pb-hash: sha256:${hash} -->`;
56
- }
57
- beforeAll(() => {
58
- sharedRoot = mkdtempSync(join(tmpdir(), 'pb-wp421-s7-e2e-'));
59
- mkdirSync(join(sharedRoot, '.productbrain'), { recursive: true });
60
- mkdirSync(join(sharedRoot, '.cursor', 'rules'), { recursive: true });
61
- mkdirSync(join(sharedRoot, '.claude', 'rules'), { recursive: true });
62
- // Manifest with adopted: allowlist + platform-locked entry per spec.
63
- // Note: version must be a string (validator rejects numeric); minimal YAML
64
- // parser strips quotes so `"0.1"` round-trips as the string "0.1".
65
- const manifestYaml = [
66
- 'version: "0.1"',
67
- 'materialize: observe',
68
- 'surfaces:',
69
- ' - .cursor',
70
- ' - .claude',
71
- 'adopted:',
72
- ' - pb-orient',
73
- ' - pb-tampered',
74
- 'lock:',
75
- ' SETUP-RULE-PB-ORIENT: platform',
76
- '',
77
- ].join('\n');
78
- writeFileSync(join(sharedRoot, FIXTURE_FILES.manifest), manifestYaml);
79
- // PB-managed clean: MARKER + matching trailer.
80
- writeFileSync(join(sharedRoot, FIXTURE_FILES.pbManagedClean), buildCleanProjection('# Orient skill\n\nClean body.\n'));
81
- // PB-managed tampered: MARKER + trailer, but body edited downstream of the trailer.
82
- const cleanForTamper = buildCleanProjection('# Tampered\n\nOriginal body.\n');
83
- writeFileSync(join(sharedRoot, FIXTURE_FILES.pbManagedTampered), cleanForTamper.replace('Original body.', 'Original body.\n\nUSER EDITED HERE.'));
84
- // User-owned: no MARKER. Must be inert under every transition.
85
- writeFileSync(join(sharedRoot, FIXTURE_FILES.userOwned), '# My custom rule — authored by hand, no marker.\n');
86
- savedCwd = process.cwd();
87
- process.chdir(sharedRoot);
88
- });
89
- afterAll(() => {
90
- process.chdir(savedCwd);
91
- rmSync(sharedRoot, { recursive: true, force: true });
92
- });
93
- const ROWS = [
94
- {
95
- transitionName: 'bootstrap → observe',
96
- fromMode: 'off',
97
- toMode: 'observe',
98
- writesProjections: false,
99
- },
100
- {
101
- transitionName: 'observe → project',
102
- fromMode: 'observe',
103
- toMode: 'project',
104
- writesProjections: true,
105
- },
106
- {
107
- transitionName: 'project → govern',
108
- fromMode: 'project',
109
- toMode: 'govern',
110
- writesProjections: true,
111
- },
112
- {
113
- transitionName: 'govern → off',
114
- fromMode: 'govern',
115
- toMode: 'off',
116
- writesProjections: false,
117
- },
118
- ];
119
- // ── Per-row assertions ───────────────────────────────────────────────────────
120
- describe('WP-421 S7 — table-driven E2E (doneWhen #27): four authority transitions over one shared tempdir', () => {
121
- describe.each(ROWS)('row: $transitionName (fromMode=$fromMode → toMode=$toMode)', (row) => {
122
- it('drift report buckets the three fixture files correctly', () => {
123
- const cleanResult = classifyDriftBucket(join(process.cwd(), FIXTURE_FILES.pbManagedClean));
124
- const tamperedResult = classifyDriftBucket(join(process.cwd(), FIXTURE_FILES.pbManagedTampered));
125
- const userOwnedResult = classifyDriftBucket(join(process.cwd(), FIXTURE_FILES.userOwned));
126
- expect(cleanResult, `${row.transitionName}: clean fixture must classify as pb-managed-clean`).not.toBeNull();
127
- expect(cleanResult.bucket).toBe('pb-managed-clean');
128
- expect(tamperedResult, `${row.transitionName}: tampered fixture must classify as pb-managed-tampered`).not.toBeNull();
129
- expect(tamperedResult.bucket).toBe('pb-managed-tampered');
130
- expect(tamperedResult.expectedHash).not.toBe(tamperedResult.actualHash);
131
- expect(userOwnedResult, `${row.transitionName}: user-owned fixture must classify as user-owned`).not.toBeNull();
132
- expect(userOwnedResult.bucket).toBe('user-owned');
133
- });
134
- it('manifest reader returns expected mode + surfaces + lock for the fixture', () => {
135
- // The manifest itself does not change row-to-row; we only assert the
136
- // shape that the perimeter consults. (Mode field tracking happens in
137
- // the convex-test integration suite — there's no need to mutate the
138
- // file here per row.)
139
- const status = readManifestStatus(join(process.cwd(), '.productbrain'));
140
- expect(status.parseStatus).toBe('ok');
141
- expect(status.surfaces).toEqual(['.cursor', '.claude']);
142
- expect(status.lock).toEqual({ 'SETUP-RULE-PB-ORIENT': 'platform' });
143
- // Defense-in-depth: per DEC-963, when parseStatus !== 'ok', mode must
144
- // never be 'project' or 'govern'. Our fixture is parseable so this is
145
- // an OK assertion, but it pins the invariant for review.
146
- if (status.parseStatus !== 'ok') {
147
- expect(['off', 'observe']).toContain(status.mode);
148
- }
149
- });
150
- it('perimeter accepts writes inside .cursor and .productbrain; rejects writes outside', () => {
151
- const status = readManifestStatus(join(process.cwd(), '.productbrain'));
152
- // PB-managed clean is inside .cursor/rules → allowed.
153
- expect(() => assertSetupWritePath(join(process.cwd(), FIXTURE_FILES.pbManagedClean), status)).not.toThrow();
154
- // .productbrain/skills/orient.md is hard-coded allowed.
155
- expect(() => assertSetupWritePath(join(process.cwd(), '.productbrain', 'skills', 'orient.md'), status)).not.toThrow();
156
- // Anything outside the perimeter (e.g. /tmp/foo or sibling dir) is refused.
157
- const outside = join(sharedRoot, '..', 'definitely-outside-the-perimeter');
158
- let caught = null;
159
- try {
160
- assertSetupWritePath(outside, status);
161
- }
162
- catch (err) {
163
- caught = err;
164
- }
165
- expect(caught, `${row.transitionName}: perimeter must refuse outside-perimeter writes`).toBeInstanceOf(Error);
166
- expect(caught.code).toBe(SETUP_PERIMETER_VIOLATION);
167
- });
168
- it('user-owned file is untouched after the transition (no MARKER, never written)', () => {
169
- // Per row 2 (observe → project): "PB-managed projected, user-owned untouched."
170
- // We assert the same invariant on every row — user-owned never gains a
171
- // MARKER, never gets overwritten.
172
- const userOwnedPath = join(process.cwd(), FIXTURE_FILES.userOwned);
173
- const before = readFileSync(userOwnedPath, 'utf8');
174
- const after = readFileSync(userOwnedPath, 'utf8');
175
- expect(after).toBe(before);
176
- expect(after.includes(MARKER)).toBe(false);
177
- });
178
- if (row.transitionName === 'project → govern') {
179
- it('project → govern: lock metadata in manifest survives the transition (.lock honored)', () => {
180
- // The manifest declares SETUP-RULE-PB-ORIENT: platform. This is the
181
- // contract the fork-auth check (DEC-961) consults server-side — the
182
- // CLI only reads the manifest and forwards. We assert the read.
183
- const status = readManifestStatus(join(process.cwd(), '.productbrain'));
184
- expect(status.lock['SETUP-RULE-PB-ORIENT']).toBe('platform');
185
- });
186
- }
187
- if (row.transitionName === 'observe → project') {
188
- it('observe → project: PB-managed paths resolve inside .cursor (perimeter-approved projection)', () => {
189
- const status = readManifestStatus(join(process.cwd(), '.productbrain'));
190
- // The two PB-managed fixture paths must both resolve inside the
191
- // declared perimeter — that's what makes "observe → project" the
192
- // transition that's allowed to write at all.
193
- expect(() => assertSetupWritePath(join(process.cwd(), FIXTURE_FILES.pbManagedClean), status)).not.toThrow();
194
- expect(() => assertSetupWritePath(join(process.cwd(), FIXTURE_FILES.pbManagedTampered), status)).not.toThrow();
195
- });
196
- }
197
- if (row.transitionName === 'bootstrap → observe') {
198
- it('bootstrap → observe: drift report runs without writes (read-only inspection)', () => {
199
- // The 'observe' mode is read-only: handshake reports drift but never
200
- // projects. Assert that running classifyDriftBucket on every fixture
201
- // does not change the file content.
202
- const before = {};
203
- for (const [name, rel] of Object.entries(FIXTURE_FILES)) {
204
- if (name === 'manifest')
205
- continue;
206
- before[rel] = readFileSync(join(process.cwd(), rel), 'utf8');
207
- }
208
- for (const rel of Object.values(FIXTURE_FILES)) {
209
- classifyDriftBucket(join(process.cwd(), rel));
210
- }
211
- for (const [name, rel] of Object.entries(FIXTURE_FILES)) {
212
- if (name === 'manifest')
213
- continue;
214
- expect(readFileSync(join(process.cwd(), rel), 'utf8')).toBe(before[rel]);
215
- }
216
- });
217
- }
218
- });
219
- // ── Cross-row sanity: the shared fixture survives every row, exists at end. ──
220
- it('shared fixture: every fixture file still exists after all rows complete', () => {
221
- for (const rel of Object.values(FIXTURE_FILES)) {
222
- expect(existsSync(join(process.cwd(), rel))).toBe(true);
223
- }
224
- });
225
- });
226
- //# sourceMappingURL=handshake.e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handshake.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/handshake.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAc,MAAM,IAAI,CAAC;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAa,SAAS,EAAc,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAM,MAAM,QAAQ,CAAC;AAE9F,OAAO,EACL,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,gFAAgF;AAEhF,IAAI,UAAkB,CAAC;AACvB,IAAI,QAAgB,CAAC;AAErB,MAAM,aAAa,GAAG;IACpB,wEAAwE;IACxE,cAAc,EAAE,6BAA6B;IAC7C,gFAAgF;IAChF,iBAAiB,EAAE,+BAA+B;IAClD,8CAA8C;IAC9C,SAAS,EAAE,6BAA6B;IACxC,sFAAsF;IACtF,QAAQ,EAAE,6BAA6B;CAC/B,CAAC;AAEX,8FAA8F;AAC9F,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;IACzD,MAAM,eAAe,GAAG,qCAAqC,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI;SACpB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,EAAE,CAAC;IACb,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,OAAO,GAAG,UAAU,0BAA0B,IAAI,MAAM,CAAC;AAC3D,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,qEAAqE;IACrE,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,YAAY,GAAG;QACnB,gBAAgB;QAChB,sBAAsB;QACtB,WAAW;QACX,aAAa;QACb,aAAa;QACb,UAAU;QACV,eAAe;QACf,iBAAiB;QACjB,OAAO;QACP,kCAAkC;QAClC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,EAC9C,oBAAoB,CAAC,iCAAiC,CAAC,CACxD,CAAC;IAEF,oFAAoF;IACpF,MAAM,cAAc,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;IAC9E,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACjD,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAChF,CAAC;IAEF,+DAA+D;IAC/D,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EACzC,mDAAmD,CACpD,CAAC;IAEF,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAYH,MAAM,IAAI,GAAoB;IAC5B;QACE,cAAc,EAAE,qBAAqB;QACrC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,SAAS;QACjB,iBAAiB,EAAE,KAAK;KACzB;IACD;QACE,cAAc,EAAE,mBAAmB;QACnC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;QACjB,iBAAiB,EAAE,IAAI;KACxB;IACD;QACE,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,iBAAiB,EAAE,IAAI;KACxB;IACD;QACE,cAAc,EAAE,cAAc;QAC9B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC;AAEF,gFAAgF;AAEhF,QAAQ,CAAC,iGAAiG,EAAE,GAAG,EAAE;IAC/G,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,4DAA4D,EAAE,CAAC,GAAG,EAAE,EAAE;QACxF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3F,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACjG,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAE1F,MAAM,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,cAAc,mDAAmD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7G,MAAM,CAAC,WAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAErD,MAAM,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,cAAc,yDAAyD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtH,MAAM,CAAC,cAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC3D,MAAM,CAAC,cAAe,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAe,CAAC,UAAU,CAAC,CAAC;YAE1E,MAAM,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,cAAc,kDAAkD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChH,MAAM,CAAC,eAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,qEAAqE;YACrE,qEAAqE;YACrE,oEAAoE;YACpE,sBAAsB;YACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,CAAC;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,yDAAyD;YACzD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;YAC3F,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;YAExE,sDAAsD;YACtD,MAAM,CAAC,GAAG,EAAE,CACV,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAChF,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,wDAAwD;YACxD,MAAM,CAAC,GAAG,EAAE,CACV,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAC1F,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAEhB,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;YAC3E,IAAI,MAAM,GAAY,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YACD,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,kDAAkD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9G,MAAM,CAAE,MAAoC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,+EAA+E;YAC/E,uEAAuE;YACvE,kCAAkC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,cAAc,KAAK,kBAAkB,EAAE,CAAC;YAC9C,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;gBAC7F,oEAAoE;gBACpE,oEAAoE;gBACpE,gEAAgE;gBAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;gBACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,GAAG,CAAC,cAAc,KAAK,mBAAmB,EAAE,CAAC;YAC/C,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;gBACpG,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;gBACxE,gEAAgE;gBAChE,iEAAiE;gBACjE,6CAA6C;gBAC7C,MAAM,CAAC,GAAG,EAAE,CACV,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAChF,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,CAAC,GAAG,EAAE,CACV,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CACnF,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,GAAG,CAAC,cAAc,KAAK,qBAAqB,EAAE,CAAC;YACjD,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;gBACtF,qEAAqE;gBACrE,qEAAqE;gBACrE,oCAAoC;gBACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxD,IAAI,IAAI,KAAK,UAAU;wBAAE,SAAS;oBAClC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/D,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/C,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxD,IAAI,IAAI,KAAK,UAAU;wBAAE,SAAS;oBAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handshake.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handshake.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/handshake.test.ts"],"names":[],"mappings":""}