@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.
Files changed (70) hide show
  1. package/dist/__tests__/relate.test.js +15 -0
  2. package/dist/__tests__/relate.test.js.map +1 -1
  3. package/dist/commands/collections.d.ts +16 -0
  4. package/dist/commands/collections.d.ts.map +1 -0
  5. package/dist/commands/collections.js +59 -0
  6. package/dist/commands/collections.js.map +1 -0
  7. package/dist/commands/handshake.d.ts +2 -0
  8. package/dist/commands/handshake.d.ts.map +1 -1
  9. package/dist/commands/handshake.js +37 -1
  10. package/dist/commands/handshake.js.map +1 -1
  11. package/dist/commands/relate.d.ts.map +1 -1
  12. package/dist/commands/relate.js +10 -3
  13. package/dist/commands/relate.js.map +1 -1
  14. package/dist/formatters/collections.d.ts +40 -0
  15. package/dist/formatters/collections.d.ts.map +1 -0
  16. package/dist/formatters/collections.js +93 -0
  17. package/dist/formatters/collections.js.map +1 -0
  18. package/dist/formatters/handshake.d.ts +5 -0
  19. package/dist/formatters/handshake.d.ts.map +1 -1
  20. package/dist/formatters/handshake.js +9 -0
  21. package/dist/formatters/handshake.js.map +1 -1
  22. package/dist/formatters/relate.d.ts +2 -0
  23. package/dist/formatters/relate.d.ts.map +1 -1
  24. package/dist/formatters/relate.js +3 -0
  25. package/dist/formatters/relate.js.map +1 -1
  26. package/dist/generators/archetypes.d.ts +52 -0
  27. package/dist/generators/archetypes.d.ts.map +1 -0
  28. package/dist/generators/archetypes.js +153 -0
  29. package/dist/generators/archetypes.js.map +1 -0
  30. package/dist/generators/archetypes.test.d.ts +2 -0
  31. package/dist/generators/archetypes.test.d.ts.map +1 -0
  32. package/dist/generators/archetypes.test.js +237 -0
  33. package/dist/generators/archetypes.test.js.map +1 -0
  34. package/dist/generators/chain-classifier.d.ts +49 -0
  35. package/dist/generators/chain-classifier.d.ts.map +1 -0
  36. package/dist/generators/chain-classifier.js +180 -0
  37. package/dist/generators/chain-classifier.js.map +1 -0
  38. package/dist/generators/chain-classifier.test.d.ts +2 -0
  39. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  40. package/dist/generators/chain-classifier.test.js +257 -0
  41. package/dist/generators/chain-classifier.test.js.map +1 -0
  42. package/dist/generators/chain-rules.d.ts +42 -0
  43. package/dist/generators/chain-rules.d.ts.map +1 -0
  44. package/dist/generators/chain-rules.js +144 -0
  45. package/dist/generators/chain-rules.js.map +1 -0
  46. package/dist/generators/chain-rules.test.d.ts +2 -0
  47. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  48. package/dist/generators/chain-rules.test.js +179 -0
  49. package/dist/generators/chain-rules.test.js.map +1 -0
  50. package/dist/generators/handshake-diff.d.ts +67 -0
  51. package/dist/generators/handshake-diff.d.ts.map +1 -0
  52. package/dist/generators/handshake-diff.js +183 -0
  53. package/dist/generators/handshake-diff.js.map +1 -0
  54. package/dist/generators/handshake-diff.test.d.ts +2 -0
  55. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  56. package/dist/generators/handshake-diff.test.js +265 -0
  57. package/dist/generators/handshake-diff.test.js.map +1 -0
  58. package/dist/index.js +47 -1
  59. package/dist/index.js.map +1 -1
  60. package/package.json +2 -2
  61. package/templates/archetypes/boundary.md +23 -0
  62. package/templates/archetypes/constraint.md +23 -0
  63. package/templates/archetypes/convention.md +23 -0
  64. package/templates/archetypes/policy.md +23 -0
  65. package/templates/archetypes/quality-gate.md +23 -0
  66. package/templates/archetypes/workflow.md +23 -0
  67. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  68. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  69. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  70. 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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"}