@productbrain/cli 0.1.0-beta.27 → 0.1.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/relate.test.js +15 -0
- package/dist/__tests__/relate.test.js.map +1 -1
- package/dist/commands/collections.d.ts +16 -0
- package/dist/commands/collections.d.ts.map +1 -0
- package/dist/commands/collections.js +59 -0
- package/dist/commands/collections.js.map +1 -0
- package/dist/commands/handshake.d.ts +2 -0
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +37 -1
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +10 -3
- package/dist/commands/relate.js.map +1 -1
- package/dist/formatters/collections.d.ts +40 -0
- package/dist/formatters/collections.d.ts.map +1 -0
- package/dist/formatters/collections.js +93 -0
- package/dist/formatters/collections.js.map +1 -0
- package/dist/formatters/handshake.d.ts +5 -0
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +9 -0
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/relate.d.ts +2 -0
- package/dist/formatters/relate.d.ts.map +1 -1
- package/dist/formatters/relate.js +3 -0
- package/dist/formatters/relate.js.map +1 -1
- package/dist/generators/archetypes.d.ts +52 -0
- package/dist/generators/archetypes.d.ts.map +1 -0
- package/dist/generators/archetypes.js +153 -0
- package/dist/generators/archetypes.js.map +1 -0
- package/dist/generators/archetypes.test.d.ts +2 -0
- package/dist/generators/archetypes.test.d.ts.map +1 -0
- package/dist/generators/archetypes.test.js +237 -0
- package/dist/generators/archetypes.test.js.map +1 -0
- package/dist/generators/chain-classifier.d.ts +49 -0
- package/dist/generators/chain-classifier.d.ts.map +1 -0
- package/dist/generators/chain-classifier.js +180 -0
- package/dist/generators/chain-classifier.js.map +1 -0
- package/dist/generators/chain-classifier.test.d.ts +2 -0
- package/dist/generators/chain-classifier.test.d.ts.map +1 -0
- package/dist/generators/chain-classifier.test.js +257 -0
- package/dist/generators/chain-classifier.test.js.map +1 -0
- package/dist/generators/chain-rules.d.ts +42 -0
- package/dist/generators/chain-rules.d.ts.map +1 -0
- package/dist/generators/chain-rules.js +144 -0
- package/dist/generators/chain-rules.js.map +1 -0
- package/dist/generators/chain-rules.test.d.ts +2 -0
- package/dist/generators/chain-rules.test.d.ts.map +1 -0
- package/dist/generators/chain-rules.test.js +179 -0
- package/dist/generators/chain-rules.test.js.map +1 -0
- package/dist/generators/handshake-diff.d.ts +67 -0
- package/dist/generators/handshake-diff.d.ts.map +1 -0
- package/dist/generators/handshake-diff.js +183 -0
- package/dist/generators/handshake-diff.js.map +1 -0
- package/dist/generators/handshake-diff.test.d.ts +2 -0
- package/dist/generators/handshake-diff.test.d.ts.map +1 -0
- package/dist/generators/handshake-diff.test.js +265 -0
- package/dist/generators/handshake-diff.test.js.map +1 -0
- package/dist/index.js +47 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/archetypes/boundary.md +23 -0
- package/templates/archetypes/constraint.md +23 -0
- package/templates/archetypes/convention.md +23 -0
- package/templates/archetypes/policy.md +23 -0
- package/templates/archetypes/quality-gate.md +23 -0
- package/templates/archetypes/workflow.md +23 -0
- package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
- package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.js +0 -89
- package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* surface-profiles — unit tests.
|
|
3
|
-
* BET-270 Slice 0: type system + registry.
|
|
4
|
-
*/
|
|
5
|
-
import { describe, expect, it } from 'vitest';
|
|
6
|
-
import { SURFACE_PROFILES, resolveSurfaceProfile } from '../surface-profiles.js';
|
|
7
|
-
// ── Helper ─────────────────────────────────────────────────────────────
|
|
8
|
-
function isValidProfile(profile) {
|
|
9
|
-
if (!profile || typeof profile !== 'object')
|
|
10
|
-
return false;
|
|
11
|
-
const p = profile;
|
|
12
|
-
return (['batch', 'interactive', 'passive'].includes(p.executionModel) &&
|
|
13
|
-
['multi-file', 'single-file'].includes(p.format) &&
|
|
14
|
-
['stateless', 'conversational', 'autonomous'].includes(p.sessionModel) &&
|
|
15
|
-
typeof p.tokenBudget === 'number' &&
|
|
16
|
-
p.tokenBudget > 0 &&
|
|
17
|
-
['orchestrated', 'direct', 'guided'].includes(p.workflowStyle));
|
|
18
|
-
}
|
|
19
|
-
// ── Registry ───────────────────────────────────────────────────────────
|
|
20
|
-
describe('SURFACE_PROFILES registry', () => {
|
|
21
|
-
it('defines all 4 known targets', () => {
|
|
22
|
-
expect(Object.keys(SURFACE_PROFILES).sort()).toEqual(['claude', 'codex', 'copilot', 'cursor']);
|
|
23
|
-
});
|
|
24
|
-
it.each(['claude', 'cursor', 'codex', 'copilot'])('%s profile has all required fields with correct types', (target) => {
|
|
25
|
-
expect(isValidProfile(SURFACE_PROFILES[target])).toBe(true);
|
|
26
|
-
});
|
|
27
|
-
it('claude profile has correct values', () => {
|
|
28
|
-
const p = SURFACE_PROFILES.claude;
|
|
29
|
-
expect(p.executionModel).toBe('interactive');
|
|
30
|
-
expect(p.format).toBe('multi-file');
|
|
31
|
-
expect(p.sessionModel).toBe('conversational');
|
|
32
|
-
expect(p.tokenBudget).toBe(50000);
|
|
33
|
-
expect(p.workflowStyle).toBe('orchestrated');
|
|
34
|
-
});
|
|
35
|
-
it('cursor profile has correct values', () => {
|
|
36
|
-
const p = SURFACE_PROFILES.cursor;
|
|
37
|
-
expect(p.executionModel).toBe('interactive');
|
|
38
|
-
expect(p.format).toBe('multi-file');
|
|
39
|
-
expect(p.sessionModel).toBe('conversational');
|
|
40
|
-
expect(p.tokenBudget).toBe(50000);
|
|
41
|
-
expect(p.workflowStyle).toBe('orchestrated');
|
|
42
|
-
});
|
|
43
|
-
it('codex profile has correct values', () => {
|
|
44
|
-
const p = SURFACE_PROFILES.codex;
|
|
45
|
-
expect(p.executionModel).toBe('batch');
|
|
46
|
-
expect(p.format).toBe('multi-file');
|
|
47
|
-
expect(p.sessionModel).toBe('autonomous');
|
|
48
|
-
expect(p.tokenBudget).toBe(100000);
|
|
49
|
-
expect(p.workflowStyle).toBe('direct');
|
|
50
|
-
});
|
|
51
|
-
it('copilot profile has correct values', () => {
|
|
52
|
-
const p = SURFACE_PROFILES.copilot;
|
|
53
|
-
expect(p.executionModel).toBe('passive');
|
|
54
|
-
expect(p.format).toBe('single-file');
|
|
55
|
-
expect(p.sessionModel).toBe('stateless');
|
|
56
|
-
expect(p.tokenBudget).toBe(30000);
|
|
57
|
-
expect(p.workflowStyle).toBe('guided');
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
// ── Resolver ──────────────────────────────────────────────────────────
|
|
61
|
-
describe('resolveSurfaceProfile', () => {
|
|
62
|
-
it.each(['claude', 'cursor', 'codex', 'copilot'])('resolves known target "%s" to a valid profile', (target) => {
|
|
63
|
-
const profile = resolveSurfaceProfile(target);
|
|
64
|
-
expect(isValidProfile(profile)).toBe(true);
|
|
65
|
-
});
|
|
66
|
-
it('resolves "claude" to the claude profile', () => {
|
|
67
|
-
expect(resolveSurfaceProfile('claude')).toBe(SURFACE_PROFILES.claude);
|
|
68
|
-
});
|
|
69
|
-
it('resolves "cursor" to the cursor profile', () => {
|
|
70
|
-
expect(resolveSurfaceProfile('cursor')).toBe(SURFACE_PROFILES.cursor);
|
|
71
|
-
});
|
|
72
|
-
it('resolves "codex" to the codex profile', () => {
|
|
73
|
-
expect(resolveSurfaceProfile('codex')).toBe(SURFACE_PROFILES.codex);
|
|
74
|
-
});
|
|
75
|
-
it('resolves "copilot" to the copilot profile', () => {
|
|
76
|
-
expect(resolveSurfaceProfile('copilot')).toBe(SURFACE_PROFILES.copilot);
|
|
77
|
-
});
|
|
78
|
-
it('returns codex profile as fallback for unknown targets', () => {
|
|
79
|
-
expect(resolveSurfaceProfile('unknown-tool')).toBe(SURFACE_PROFILES.codex);
|
|
80
|
-
});
|
|
81
|
-
it('returns codex profile for empty string', () => {
|
|
82
|
-
expect(resolveSurfaceProfile('')).toBe(SURFACE_PROFILES.codex);
|
|
83
|
-
});
|
|
84
|
-
it('fallback profile is a valid profile', () => {
|
|
85
|
-
const fallback = resolveSurfaceProfile('completely-unknown-surface');
|
|
86
|
-
expect(isValidProfile(fallback)).toBe(true);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=surface-profiles.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surface-profiles.test.js","sourceRoot":"","sources":["../../../src/generators/__tests__/surface-profiles.test.ts"],"names":[],"mappings":"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"}
|