@tienne/gestalt 0.19.2 → 0.20.0

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 (154) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/cli/commands/update.d.ts +2 -0
  3. package/dist/src/cli/commands/update.d.ts.map +1 -0
  4. package/dist/src/cli/commands/update.js +31 -0
  5. package/dist/src/cli/commands/update.js.map +1 -0
  6. package/dist/src/cli/index.d.ts.map +1 -1
  7. package/dist/src/cli/index.js +7 -0
  8. package/dist/src/cli/index.js.map +1 -1
  9. package/package.json +1 -1
  10. package/dist/skills/seed/SKILL.md +0 -92
  11. package/dist/src/cli/commands/monitor.d.ts +0 -2
  12. package/dist/src/cli/commands/monitor.d.ts.map +0 -1
  13. package/dist/src/cli/commands/monitor.js +0 -13
  14. package/dist/src/cli/commands/monitor.js.map +0 -1
  15. package/dist/src/cli/commands/seed.d.ts +0 -4
  16. package/dist/src/cli/commands/seed.d.ts.map +0 -1
  17. package/dist/src/cli/commands/seed.js +0 -34
  18. package/dist/src/cli/commands/seed.js.map +0 -1
  19. package/dist/src/interview/ambiguity.d.ts +0 -8
  20. package/dist/src/interview/ambiguity.d.ts.map +0 -1
  21. package/dist/src/interview/ambiguity.js +0 -69
  22. package/dist/src/interview/ambiguity.js.map +0 -1
  23. package/dist/src/mcp/tools/seed-passthrough.d.ts +0 -5
  24. package/dist/src/mcp/tools/seed-passthrough.d.ts.map +0 -1
  25. package/dist/src/mcp/tools/seed-passthrough.js +0 -29
  26. package/dist/src/mcp/tools/seed-passthrough.js.map +0 -1
  27. package/dist/src/mcp/tools/seed.d.ts +0 -5
  28. package/dist/src/mcp/tools/seed.d.ts.map +0 -1
  29. package/dist/src/mcp/tools/seed.js +0 -19
  30. package/dist/src/mcp/tools/seed.js.map +0 -1
  31. package/dist/src/recording/agg-converter.d.ts +0 -25
  32. package/dist/src/recording/agg-converter.d.ts.map +0 -1
  33. package/dist/src/recording/agg-converter.js +0 -80
  34. package/dist/src/recording/agg-converter.js.map +0 -1
  35. package/dist/src/recording/agg-installer.d.ts +0 -6
  36. package/dist/src/recording/agg-installer.d.ts.map +0 -1
  37. package/dist/src/recording/agg-installer.js +0 -50
  38. package/dist/src/recording/agg-installer.js.map +0 -1
  39. package/dist/src/recording/asciinema-installer.d.ts +0 -6
  40. package/dist/src/recording/asciinema-installer.d.ts.map +0 -1
  41. package/dist/src/recording/asciinema-installer.js +0 -50
  42. package/dist/src/recording/asciinema-installer.js.map +0 -1
  43. package/dist/src/recording/asciinema-recorder.d.ts +0 -26
  44. package/dist/src/recording/asciinema-recorder.d.ts.map +0 -1
  45. package/dist/src/recording/asciinema-recorder.js +0 -52
  46. package/dist/src/recording/asciinema-recorder.js.map +0 -1
  47. package/dist/src/recording/cast-generator.d.ts +0 -7
  48. package/dist/src/recording/cast-generator.d.ts.map +0 -1
  49. package/dist/src/recording/cast-generator.js +0 -97
  50. package/dist/src/recording/cast-generator.js.map +0 -1
  51. package/dist/src/recording/filename-generator.d.ts +0 -19
  52. package/dist/src/recording/filename-generator.d.ts.map +0 -1
  53. package/dist/src/recording/filename-generator.js +0 -67
  54. package/dist/src/recording/filename-generator.js.map +0 -1
  55. package/dist/src/recording/gif-generator.d.ts +0 -21
  56. package/dist/src/recording/gif-generator.d.ts.map +0 -1
  57. package/dist/src/recording/gif-generator.js +0 -121
  58. package/dist/src/recording/gif-generator.js.map +0 -1
  59. package/dist/src/recording/recording-dir.d.ts +0 -5
  60. package/dist/src/recording/recording-dir.d.ts.map +0 -1
  61. package/dist/src/recording/recording-dir.js +0 -13
  62. package/dist/src/recording/recording-dir.js.map +0 -1
  63. package/dist/src/recording/recording-orchestrator.d.ts +0 -50
  64. package/dist/src/recording/recording-orchestrator.d.ts.map +0 -1
  65. package/dist/src/recording/recording-orchestrator.js +0 -98
  66. package/dist/src/recording/recording-orchestrator.js.map +0 -1
  67. package/dist/src/recording/resume-detector.d.ts +0 -10
  68. package/dist/src/recording/resume-detector.d.ts.map +0 -1
  69. package/dist/src/recording/resume-detector.js +0 -14
  70. package/dist/src/recording/resume-detector.js.map +0 -1
  71. package/dist/src/recording/segment-merger.d.ts +0 -27
  72. package/dist/src/recording/segment-merger.d.ts.map +0 -1
  73. package/dist/src/recording/segment-merger.js +0 -65
  74. package/dist/src/recording/segment-merger.js.map +0 -1
  75. package/dist/src/recording/terminal-recorder.d.ts +0 -31
  76. package/dist/src/recording/terminal-recorder.d.ts.map +0 -1
  77. package/dist/src/recording/terminal-recorder.js +0 -111
  78. package/dist/src/recording/terminal-recorder.js.map +0 -1
  79. package/dist/src/scripts/postinstall.d.ts +0 -2
  80. package/dist/src/scripts/postinstall.d.ts.map +0 -1
  81. package/dist/src/scripts/postinstall.js +0 -29
  82. package/dist/src/scripts/postinstall.js.map +0 -1
  83. package/dist/src/seed/extractor.d.ts +0 -15
  84. package/dist/src/seed/extractor.d.ts.map +0 -1
  85. package/dist/src/seed/extractor.js +0 -88
  86. package/dist/src/seed/extractor.js.map +0 -1
  87. package/dist/src/seed/generator.d.ts +0 -12
  88. package/dist/src/seed/generator.d.ts.map +0 -1
  89. package/dist/src/seed/generator.js +0 -66
  90. package/dist/src/seed/generator.js.map +0 -1
  91. package/dist/src/seed/passthrough-generator.d.ts +0 -31
  92. package/dist/src/seed/passthrough-generator.d.ts.map +0 -1
  93. package/dist/src/seed/passthrough-generator.js +0 -80
  94. package/dist/src/seed/passthrough-generator.js.map +0 -1
  95. package/dist/src/seed/schema.d.ts +0 -145
  96. package/dist/src/seed/schema.d.ts.map +0 -1
  97. package/dist/src/seed/schema.js +0 -37
  98. package/dist/src/seed/schema.js.map +0 -1
  99. package/dist/src/tui/components/TUIApp.d.ts +0 -20
  100. package/dist/src/tui/components/TUIApp.d.ts.map +0 -1
  101. package/dist/src/tui/components/TUIApp.js +0 -84
  102. package/dist/src/tui/components/TUIApp.js.map +0 -1
  103. package/dist/src/tui/hooks/event-store-reader.d.ts +0 -28
  104. package/dist/src/tui/hooks/event-store-reader.d.ts.map +0 -1
  105. package/dist/src/tui/hooks/event-store-reader.js +0 -141
  106. package/dist/src/tui/hooks/event-store-reader.js.map +0 -1
  107. package/dist/src/tui/hooks/useEventStorePoller.d.ts +0 -12
  108. package/dist/src/tui/hooks/useEventStorePoller.d.ts.map +0 -1
  109. package/dist/src/tui/hooks/useEventStorePoller.js +0 -84
  110. package/dist/src/tui/hooks/useEventStorePoller.js.map +0 -1
  111. package/dist/src/tui/screens/DashboardScreen.d.ts +0 -4
  112. package/dist/src/tui/screens/DashboardScreen.d.ts.map +0 -1
  113. package/dist/src/tui/screens/DashboardScreen.js +0 -132
  114. package/dist/src/tui/screens/DashboardScreen.js.map +0 -1
  115. package/dist/src/tui/screens/DebugScreen.d.ts +0 -4
  116. package/dist/src/tui/screens/DebugScreen.d.ts.map +0 -1
  117. package/dist/src/tui/screens/DebugScreen.js +0 -40
  118. package/dist/src/tui/screens/DebugScreen.js.map +0 -1
  119. package/dist/src/tui/screens/EvolutionScreen.d.ts +0 -4
  120. package/dist/src/tui/screens/EvolutionScreen.d.ts.map +0 -1
  121. package/dist/src/tui/screens/EvolutionScreen.js +0 -136
  122. package/dist/src/tui/screens/EvolutionScreen.js.map +0 -1
  123. package/dist/src/tui/screens/HUDPanel.d.ts +0 -4
  124. package/dist/src/tui/screens/HUDPanel.d.ts.map +0 -1
  125. package/dist/src/tui/screens/HUDPanel.js +0 -13
  126. package/dist/src/tui/screens/HUDPanel.js.map +0 -1
  127. package/dist/src/tui/screens/InterviewScreen.d.ts +0 -4
  128. package/dist/src/tui/screens/InterviewScreen.d.ts.map +0 -1
  129. package/dist/src/tui/screens/InterviewScreen.js +0 -103
  130. package/dist/src/tui/screens/InterviewScreen.js.map +0 -1
  131. package/dist/src/tui/screens/LogScreen.d.ts +0 -4
  132. package/dist/src/tui/screens/LogScreen.d.ts.map +0 -1
  133. package/dist/src/tui/screens/LogScreen.js +0 -83
  134. package/dist/src/tui/screens/LogScreen.js.map +0 -1
  135. package/dist/src/tui/screens/SessionListScreen.d.ts +0 -4
  136. package/dist/src/tui/screens/SessionListScreen.d.ts.map +0 -1
  137. package/dist/src/tui/screens/SessionListScreen.js +0 -71
  138. package/dist/src/tui/screens/SessionListScreen.js.map +0 -1
  139. package/dist/src/tui/screens/SpecViewerScreen.d.ts +0 -4
  140. package/dist/src/tui/screens/SpecViewerScreen.d.ts.map +0 -1
  141. package/dist/src/tui/screens/SpecViewerScreen.js +0 -73
  142. package/dist/src/tui/screens/SpecViewerScreen.js.map +0 -1
  143. package/dist/src/tui/widgets/DriftMeter.d.ts +0 -15
  144. package/dist/src/tui/widgets/DriftMeter.d.ts.map +0 -1
  145. package/dist/src/tui/widgets/DriftMeter.js +0 -27
  146. package/dist/src/tui/widgets/DriftMeter.js.map +0 -1
  147. package/dist/src/tui/widgets/GestaltPrincipleBar.d.ts +0 -9
  148. package/dist/src/tui/widgets/GestaltPrincipleBar.d.ts.map +0 -1
  149. package/dist/src/tui/widgets/GestaltPrincipleBar.js +0 -35
  150. package/dist/src/tui/widgets/GestaltPrincipleBar.js.map +0 -1
  151. package/dist/src/tui/widgets/TaskDAGTree.d.ts +0 -15
  152. package/dist/src/tui/widgets/TaskDAGTree.d.ts.map +0 -1
  153. package/dist/src/tui/widgets/TaskDAGTree.js +0 -54
  154. package/dist/src/tui/widgets/TaskDAGTree.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/seed/generator.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { InterviewSession, Seed } from '../core/types.js';
2
- import { AmbiguityThresholdError, SeedGenerationError } from '../core/errors.js';
3
- import { type Result } from '../core/result.js';
4
- import { EventStore } from '../events/store.js';
5
- export interface SeedContext {
6
- systemPrompt: string;
7
- seedPrompt: string;
8
- allRounds: {
9
- roundNumber: number;
10
- question: string;
11
- response: string;
12
- gestaltFocus: string;
13
- }[];
14
- }
15
- export interface ExternalSeed {
16
- goal: string;
17
- constraints: string[];
18
- acceptanceCriteria: string[];
19
- ontologySchema: {
20
- entities: unknown[];
21
- relations: unknown[];
22
- };
23
- gestaltAnalysis: unknown[];
24
- }
25
- export declare class PassthroughSeedGenerator {
26
- private eventStore;
27
- constructor(eventStore: EventStore);
28
- buildSeedContext(session: InterviewSession): SeedContext;
29
- validateAndStore(session: InterviewSession, externalSeed: ExternalSeed, force?: boolean): Result<Seed, SeedGenerationError | AmbiguityThresholdError>;
30
- }
31
- //# sourceMappingURL=passthrough-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"passthrough-generator.d.ts","sourceRoot":"","sources":["../../../src/seed/passthrough-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAkB,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChG;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAC9D,eAAe,EAAE,OAAO,EAAE,CAAC;CAC5B;AAID,qBAAa,wBAAwB;IACvB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE1C,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;IAwBxD,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,YAAY,EAC1B,KAAK,UAAQ,GACZ,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,uBAAuB,CAAC;CA6D/D"}
@@ -1,80 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { AmbiguityThresholdError, SeedGenerationError } from '../core/errors.js';
3
- import { AMBIGUITY_THRESHOLD } from '../core/constants.js';
4
- import { ok, err } from '../core/result.js';
5
- import { seedSchema } from './schema.js';
6
- import { EventType } from '../events/types.js';
7
- import { INTERVIEW_SYSTEM_PROMPT, buildSeedPrompt } from '../llm/prompts.js';
8
- // ─── Generator ──────────────────────────────────────────────────
9
- export class PassthroughSeedGenerator {
10
- eventStore;
11
- constructor(eventStore) {
12
- this.eventStore = eventStore;
13
- }
14
- buildSeedContext(session) {
15
- const answeredRounds = session.rounds
16
- .filter((r) => r.userResponse !== null)
17
- .map((r) => ({
18
- question: r.question,
19
- response: r.userResponse,
20
- }));
21
- const seedPrompt = buildSeedPrompt(session.topic, answeredRounds, session.projectType);
22
- return {
23
- systemPrompt: INTERVIEW_SYSTEM_PROMPT,
24
- seedPrompt,
25
- allRounds: session.rounds
26
- .filter((r) => r.userResponse !== null)
27
- .map((r) => ({
28
- roundNumber: r.roundNumber,
29
- question: r.question,
30
- response: r.userResponse,
31
- gestaltFocus: r.gestaltFocus,
32
- })),
33
- };
34
- }
35
- validateAndStore(session, externalSeed, force = false) {
36
- // Validate ambiguity threshold
37
- if (!force) {
38
- const ambiguity = session.ambiguityScore?.overall ?? 1.0;
39
- if (ambiguity > AMBIGUITY_THRESHOLD) {
40
- return err(new AmbiguityThresholdError(ambiguity, AMBIGUITY_THRESHOLD));
41
- }
42
- }
43
- if (session.status !== 'completed') {
44
- return err(new SeedGenerationError('Interview session must be completed before generating a seed'));
45
- }
46
- try {
47
- const seed = {
48
- version: '1.0.0',
49
- goal: externalSeed.goal,
50
- constraints: externalSeed.constraints,
51
- acceptanceCriteria: externalSeed.acceptanceCriteria,
52
- ontologySchema: externalSeed.ontologySchema,
53
- gestaltAnalysis: externalSeed.gestaltAnalysis,
54
- metadata: {
55
- seedId: randomUUID(),
56
- interviewSessionId: session.sessionId,
57
- ambiguityScore: session.ambiguityScore?.overall ?? 1.0,
58
- generatedAt: new Date().toISOString(),
59
- },
60
- };
61
- // Validate against schema
62
- const validation = seedSchema.safeParse(seed);
63
- if (!validation.success) {
64
- return err(new SeedGenerationError(`Seed validation failed: ${validation.error.message}`));
65
- }
66
- this.eventStore.append('seed', seed.metadata.seedId, EventType.SEED_SPEC_GENERATED, {
67
- sessionId: session.sessionId,
68
- goal: seed.goal,
69
- constraintCount: seed.constraints.length,
70
- criteriaCount: seed.acceptanceCriteria.length,
71
- source: 'passthrough',
72
- });
73
- return ok(seed);
74
- }
75
- catch (e) {
76
- return err(new SeedGenerationError(`Failed to validate seed: ${e instanceof Error ? e.message : String(e)}`));
77
- }
78
- }
79
- }
80
- //# sourceMappingURL=passthrough-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"passthrough-generator.js","sourceRoot":"","sources":["../../../src/seed/passthrough-generator.ts"],"names":[],"mappings":"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"}
@@ -1,145 +0,0 @@
1
- import { z } from 'zod';
2
- import { GestaltPrinciple } from '../core/types.js';
3
- export declare const seedSchema: z.ZodObject<{
4
- version: z.ZodString;
5
- goal: z.ZodString;
6
- constraints: z.ZodArray<z.ZodString, "many">;
7
- acceptanceCriteria: z.ZodArray<z.ZodString, "many">;
8
- ontologySchema: z.ZodObject<{
9
- entities: z.ZodArray<z.ZodObject<{
10
- name: z.ZodString;
11
- description: z.ZodString;
12
- attributes: z.ZodArray<z.ZodString, "many">;
13
- }, "strip", z.ZodTypeAny, {
14
- name: string;
15
- description: string;
16
- attributes: string[];
17
- }, {
18
- name: string;
19
- description: string;
20
- attributes: string[];
21
- }>, "many">;
22
- relations: z.ZodArray<z.ZodObject<{
23
- from: z.ZodString;
24
- to: z.ZodString;
25
- type: z.ZodString;
26
- }, "strip", z.ZodTypeAny, {
27
- type: string;
28
- from: string;
29
- to: string;
30
- }, {
31
- type: string;
32
- from: string;
33
- to: string;
34
- }>, "many">;
35
- }, "strip", z.ZodTypeAny, {
36
- entities: {
37
- name: string;
38
- description: string;
39
- attributes: string[];
40
- }[];
41
- relations: {
42
- type: string;
43
- from: string;
44
- to: string;
45
- }[];
46
- }, {
47
- entities: {
48
- name: string;
49
- description: string;
50
- attributes: string[];
51
- }[];
52
- relations: {
53
- type: string;
54
- from: string;
55
- to: string;
56
- }[];
57
- }>;
58
- gestaltAnalysis: z.ZodArray<z.ZodObject<{
59
- principle: z.ZodNativeEnum<typeof GestaltPrinciple>;
60
- finding: z.ZodString;
61
- confidence: z.ZodNumber;
62
- }, "strip", z.ZodTypeAny, {
63
- principle: GestaltPrinciple;
64
- finding: string;
65
- confidence: number;
66
- }, {
67
- principle: GestaltPrinciple;
68
- finding: string;
69
- confidence: number;
70
- }>, "many">;
71
- metadata: z.ZodObject<{
72
- seedId: z.ZodString;
73
- interviewSessionId: z.ZodString;
74
- ambiguityScore: z.ZodNumber;
75
- generatedAt: z.ZodString;
76
- }, "strip", z.ZodTypeAny, {
77
- seedId: string;
78
- interviewSessionId: string;
79
- ambiguityScore: number;
80
- generatedAt: string;
81
- }, {
82
- seedId: string;
83
- interviewSessionId: string;
84
- ambiguityScore: number;
85
- generatedAt: string;
86
- }>;
87
- }, "strip", z.ZodTypeAny, {
88
- goal: string;
89
- version: string;
90
- constraints: string[];
91
- acceptanceCriteria: string[];
92
- ontologySchema: {
93
- entities: {
94
- name: string;
95
- description: string;
96
- attributes: string[];
97
- }[];
98
- relations: {
99
- type: string;
100
- from: string;
101
- to: string;
102
- }[];
103
- };
104
- gestaltAnalysis: {
105
- principle: GestaltPrinciple;
106
- finding: string;
107
- confidence: number;
108
- }[];
109
- metadata: {
110
- seedId: string;
111
- interviewSessionId: string;
112
- ambiguityScore: number;
113
- generatedAt: string;
114
- };
115
- }, {
116
- goal: string;
117
- version: string;
118
- constraints: string[];
119
- acceptanceCriteria: string[];
120
- ontologySchema: {
121
- entities: {
122
- name: string;
123
- description: string;
124
- attributes: string[];
125
- }[];
126
- relations: {
127
- type: string;
128
- from: string;
129
- to: string;
130
- }[];
131
- };
132
- gestaltAnalysis: {
133
- principle: GestaltPrinciple;
134
- finding: string;
135
- confidence: number;
136
- }[];
137
- metadata: {
138
- seedId: string;
139
- interviewSessionId: string;
140
- ambiguityScore: number;
141
- generatedAt: string;
142
- };
143
- }>;
144
- export type ValidatedSeed = z.infer<typeof seedSchema>;
145
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/seed/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgCpD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { z } from 'zod';
2
- import { GestaltPrinciple } from '../core/types.js';
3
- const ontologyEntitySchema = z.object({
4
- name: z.string().min(1),
5
- description: z.string(),
6
- attributes: z.array(z.string()),
7
- });
8
- const ontologyRelationSchema = z.object({
9
- from: z.string().min(1),
10
- to: z.string().min(1),
11
- type: z.string().min(1),
12
- });
13
- const ontologySchemaSchema = z.object({
14
- entities: z.array(ontologyEntitySchema),
15
- relations: z.array(ontologyRelationSchema),
16
- });
17
- const gestaltAnalysisSchema = z.object({
18
- principle: z.nativeEnum(GestaltPrinciple),
19
- finding: z.string(),
20
- confidence: z.number().min(0).max(1),
21
- });
22
- const seedMetadataSchema = z.object({
23
- seedId: z.string(),
24
- interviewSessionId: z.string(),
25
- ambiguityScore: z.number().min(0).max(1),
26
- generatedAt: z.string(),
27
- });
28
- export const seedSchema = z.object({
29
- version: z.string(),
30
- goal: z.string().min(1),
31
- constraints: z.array(z.string()),
32
- acceptanceCriteria: z.array(z.string()),
33
- ontologySchema: ontologySchemaSchema,
34
- gestaltAnalysis: z.array(gestaltAnalysisSchema),
35
- metadata: seedMetadataSchema,
36
- });
37
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/seed/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,cAAc,EAAE,oBAAoB;IACpC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC/C,QAAQ,EAAE,kBAAkB;CAC7B,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- import type { DomainEvent } from '../../core/types.js';
3
- import type { SessionSummary, EventStats } from '../hooks/event-store-reader.js';
4
- export type ScreenName = 'sessions' | 'dashboard' | 'interview' | 'spec' | 'evolution' | 'log' | 'debug';
5
- export interface ScreenProps {
6
- events: DomainEvent[];
7
- sessions: SessionSummary[];
8
- stats: EventStats;
9
- isConnected: boolean;
10
- selectedSessionId: string | null;
11
- onSelectSession: (id: string) => void;
12
- }
13
- interface TUIAppProps {
14
- dbPath: string;
15
- initialSessionId?: string;
16
- pollInterval?: number;
17
- }
18
- export declare function TUIApp({ dbPath, initialSessionId, pollInterval }: TUIAppProps): React.ReactElement;
19
- export {};
20
- //# sourceMappingURL=TUIApp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TUIApp.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/TUIApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAUjF,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,WAAW,GACX,MAAM,GACN,WAAW,GACX,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAgCD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAoElG"}
@@ -1,84 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useMemo } from 'react';
3
- import { Box, Text, useInput, useApp } from 'ink';
4
- import { useEventStorePoller } from '../hooks/useEventStorePoller.js';
5
- import { SessionListScreen } from '../screens/SessionListScreen.js';
6
- import { DashboardScreen } from '../screens/DashboardScreen.js';
7
- import { InterviewScreen } from '../screens/InterviewScreen.js';
8
- import { SpecViewerScreen } from '../screens/SpecViewerScreen.js';
9
- import { EvolutionScreen } from '../screens/EvolutionScreen.js';
10
- import { LogScreen } from '../screens/LogScreen.js';
11
- import { DebugScreen } from '../screens/DebugScreen.js';
12
- import { HUDPanel } from '../screens/HUDPanel.js';
13
- const SCREEN_KEYS = {
14
- '1': 'sessions',
15
- '2': 'dashboard',
16
- '3': 'interview',
17
- '4': 'spec',
18
- '5': 'evolution',
19
- l: 'log',
20
- d: 'debug',
21
- };
22
- const SCREEN_LABELS = {
23
- sessions: '1:Sessions',
24
- dashboard: '2:Dashboard',
25
- interview: '3:Interview',
26
- spec: '4:Spec',
27
- evolution: '5:Evolution',
28
- log: 'L:Log',
29
- debug: 'D:Debug',
30
- };
31
- const SCREEN_COMPONENTS = {
32
- sessions: SessionListScreen,
33
- dashboard: DashboardScreen,
34
- interview: InterviewScreen,
35
- spec: SpecViewerScreen,
36
- evolution: EvolutionScreen,
37
- log: LogScreen,
38
- debug: DebugScreen,
39
- };
40
- export function TUIApp({ dbPath, initialSessionId, pollInterval }) {
41
- const { exit } = useApp();
42
- const [activeScreen, setActiveScreen] = useState(initialSessionId ? 'dashboard' : 'sessions');
43
- const [selectedSessionId, setSelectedSessionId] = useState(initialSessionId ?? null);
44
- const [hudVisible, setHudVisible] = useState(false);
45
- const poller = useEventStorePoller(dbPath, pollInterval);
46
- useInput((input, key) => {
47
- if (input === 'q') {
48
- exit();
49
- return;
50
- }
51
- if (input === 'h') {
52
- setHudVisible((prev) => !prev);
53
- return;
54
- }
55
- const screen = SCREEN_KEYS[input];
56
- if (screen) {
57
- setActiveScreen(screen);
58
- }
59
- if (key.escape) {
60
- setActiveScreen('sessions');
61
- }
62
- });
63
- const screenProps = useMemo(() => ({
64
- events: poller.events,
65
- sessions: poller.sessions,
66
- stats: poller.stats,
67
- isConnected: poller.isConnected,
68
- selectedSessionId,
69
- onSelectSession: (id) => {
70
- setSelectedSessionId(id);
71
- setActiveScreen('dashboard');
72
- },
73
- }), [poller.events, poller.sessions, poller.stats, poller.isConnected, selectedSessionId]);
74
- const ScreenComponent = SCREEN_COMPONENTS[activeScreen];
75
- return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(StatusBar, { activeScreen: activeScreen, isConnected: poller.isConnected, hudVisible: hudVisible, error: poller.error }), _jsx(Box, { flexDirection: "column", flexGrow: 1, paddingX: 1, children: _jsx(ScreenComponent, { ...screenProps }) }), hudVisible && _jsx(HUDPanel, { ...screenProps }), _jsx(NavBar, { activeScreen: activeScreen })] }));
76
- }
77
- function StatusBar({ activeScreen, isConnected, hudVisible, error, }) {
78
- return (_jsxs(Box, { paddingX: 1, justifyContent: "space-between", children: [_jsx(Text, { bold: true, color: "cyan", children: "Gestalt Monitor" }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { color: isConnected ? 'green' : 'red', children: isConnected ? 'Connected' : 'Disconnected' }), hudVisible && _jsx(Text, { color: "yellow", children: "[HUD]" }), error && _jsx(Text, { color: "red", children: error }), _jsx(Text, { dimColor: true, children: activeScreen })] })] }));
79
- }
80
- function NavBar({ activeScreen }) {
81
- const screens = Object.entries(SCREEN_LABELS);
82
- return (_jsxs(Box, { paddingX: 1, gap: 1, borderStyle: "single", borderColor: "gray", children: [screens.map(([name, label]) => (_jsx(Text, { color: name === activeScreen ? 'cyan' : 'gray', bold: name === activeScreen, children: label }, name))), _jsx(Text, { color: "gray", children: "H:HUD" }), _jsx(Text, { color: "gray", children: "Q:Quit" })] }));
83
- }
84
- //# sourceMappingURL=TUIApp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TUIApp.js","sourceRoot":"","sources":["../../../../src/tui/components/TUIApp.tsx"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { DomainEvent } from '../../core/types.js';
2
- export interface SessionSummary {
3
- sessionId: string;
4
- type: string;
5
- status: string;
6
- topic: string;
7
- createdAt: string;
8
- eventCount: number;
9
- }
10
- export interface EventStats {
11
- totalEvents: number;
12
- byType: Record<string, number>;
13
- byAggregate: Record<string, number>;
14
- oldestEvent: string | null;
15
- newestEvent: string | null;
16
- }
17
- export declare class EventStoreReader {
18
- private db;
19
- constructor(dbPath: string);
20
- getEventsSince(lastEventId: string | null, limit?: number): DomainEvent[];
21
- getSessions(): SessionSummary[];
22
- getSessionEvents(sessionId: string): DomainEvent[];
23
- getStats(): EventStats;
24
- getLatestEvents(limit?: number): DomainEvent[];
25
- close(): void;
26
- private inferStatus;
27
- }
28
- //# sourceMappingURL=event-store-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store-reader.d.ts","sourceRoot":"","sources":["../../../../src/tui/hooks/event-store-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwBvD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAK1B,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,SAAM,GAAG,WAAW,EAAE;IA6BtE,WAAW,IAAI,cAAc,EAAE;IA4D/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAOlD,QAAQ,IAAI,UAAU;IAwCtB,eAAe,CAAC,KAAK,SAAK,GAAG,WAAW,EAAE;IAO1C,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,WAAW;CAMpB"}
@@ -1,141 +0,0 @@
1
- import Database from 'better-sqlite3';
2
- function rowToEvent(row) {
3
- return {
4
- id: row.id,
5
- aggregateType: row.aggregate_type,
6
- aggregateId: row.aggregate_id,
7
- eventType: row.event_type,
8
- payload: JSON.parse(row.payload),
9
- timestamp: row.timestamp,
10
- createdAt: row.created_at,
11
- };
12
- }
13
- export class EventStoreReader {
14
- db;
15
- constructor(dbPath) {
16
- this.db = new Database(dbPath, { readonly: true });
17
- this.db.pragma('journal_mode = WAL');
18
- }
19
- getEventsSince(lastEventId, limit = 500) {
20
- if (!lastEventId) {
21
- const rows = this.db
22
- .prepare('SELECT * FROM events ORDER BY created_at ASC LIMIT ?')
23
- .all(limit);
24
- return rows.map(rowToEvent);
25
- }
26
- const anchor = this.db
27
- .prepare('SELECT created_at, id FROM events WHERE id = ?')
28
- .get(lastEventId);
29
- if (!anchor) {
30
- const rows = this.db
31
- .prepare('SELECT * FROM events ORDER BY created_at ASC LIMIT ?')
32
- .all(limit);
33
- return rows.map(rowToEvent);
34
- }
35
- const rows = this.db
36
- .prepare(`SELECT * FROM events
37
- WHERE (created_at > ?) OR (created_at = ? AND id > ?)
38
- ORDER BY created_at ASC LIMIT ?`)
39
- .all(anchor.created_at, anchor.created_at, anchor.id, limit);
40
- return rows.map(rowToEvent);
41
- }
42
- getSessions() {
43
- const rows = this.db
44
- .prepare(`SELECT
45
- aggregate_id,
46
- aggregate_type,
47
- MIN(timestamp) as first_event,
48
- COUNT(*) as event_count
49
- FROM events
50
- WHERE aggregate_id != 'system'
51
- GROUP BY aggregate_type, aggregate_id
52
- ORDER BY first_event DESC`)
53
- .all();
54
- return rows.map((row) => {
55
- const startEvent = this.db
56
- .prepare(`SELECT payload FROM events
57
- WHERE aggregate_id = ? AND event_type LIKE '%_STARTED%'
58
- ORDER BY timestamp ASC LIMIT 1`)
59
- .get(row.aggregate_id);
60
- const lastEvent = this.db
61
- .prepare(`SELECT event_type FROM events
62
- WHERE aggregate_id = ?
63
- ORDER BY timestamp DESC LIMIT 1`)
64
- .get(row.aggregate_id);
65
- let topic = '';
66
- if (startEvent) {
67
- try {
68
- const parsed = JSON.parse(startEvent.payload);
69
- topic = parsed.topic ?? parsed.goal ?? '';
70
- }
71
- catch {
72
- // ignore
73
- }
74
- }
75
- const status = this.inferStatus(lastEvent?.event_type ?? '');
76
- return {
77
- sessionId: row.aggregate_id,
78
- type: row.aggregate_type,
79
- status,
80
- topic,
81
- createdAt: row.first_event,
82
- eventCount: row.event_count,
83
- };
84
- });
85
- }
86
- getSessionEvents(sessionId) {
87
- const rows = this.db
88
- .prepare('SELECT * FROM events WHERE aggregate_id = ? ORDER BY created_at ASC')
89
- .all(sessionId);
90
- return rows.map(rowToEvent);
91
- }
92
- getStats() {
93
- const total = this.db.prepare('SELECT COUNT(*) as count FROM events').get();
94
- const byTypeRows = this.db
95
- .prepare('SELECT event_type, COUNT(*) as count FROM events GROUP BY event_type')
96
- .all();
97
- const byAggRows = this.db
98
- .prepare('SELECT aggregate_type, COUNT(*) as count FROM events GROUP BY aggregate_type')
99
- .all();
100
- const oldest = this.db
101
- .prepare('SELECT timestamp FROM events ORDER BY timestamp ASC LIMIT 1')
102
- .get();
103
- const newest = this.db
104
- .prepare('SELECT timestamp FROM events ORDER BY timestamp DESC LIMIT 1')
105
- .get();
106
- const byType = {};
107
- for (const row of byTypeRows) {
108
- byType[row.event_type] = row.count;
109
- }
110
- const byAggregate = {};
111
- for (const row of byAggRows) {
112
- byAggregate[row.aggregate_type] = row.count;
113
- }
114
- return {
115
- totalEvents: total.count,
116
- byType,
117
- byAggregate,
118
- oldestEvent: oldest?.timestamp ?? null,
119
- newestEvent: newest?.timestamp ?? null,
120
- };
121
- }
122
- getLatestEvents(limit = 50) {
123
- const rows = this.db
124
- .prepare('SELECT * FROM events ORDER BY created_at DESC LIMIT ?')
125
- .all(limit);
126
- return rows.map(rowToEvent);
127
- }
128
- close() {
129
- this.db.close();
130
- }
131
- inferStatus(lastEventType) {
132
- if (lastEventType.includes('COMPLETED'))
133
- return 'completed';
134
- if (lastEventType.includes('FAILED'))
135
- return 'failed';
136
- if (lastEventType.includes('ESCALATION'))
137
- return 'escalated';
138
- return 'in_progress';
139
- }
140
- }
141
- //# sourceMappingURL=event-store-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store-reader.js","sourceRoot":"","sources":["../../../../src/tui/hooks/event-store-reader.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { DomainEvent } from '../../core/types.js';
2
- import { type SessionSummary, type EventStats } from './event-store-reader.js';
3
- export interface PollerState {
4
- events: DomainEvent[];
5
- sessions: SessionSummary[];
6
- stats: EventStats;
7
- isConnected: boolean;
8
- lastEventId: string | null;
9
- error: string | null;
10
- }
11
- export declare function useEventStorePoller(dbPath: string, pollInterval?: number): PollerState;
12
- //# sourceMappingURL=useEventStorePoller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEventStorePoller.d.ts","sourceRoot":"","sources":["../../../../src/tui/hooks/useEventStorePoller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAoB,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEjG,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAUD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,SAAO,GAAG,WAAW,CAgFpF"}