tryassay 0.20.3 → 0.21.1

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 (31) hide show
  1. package/dist/api/server.d.ts +4 -0
  2. package/dist/api/server.js +247 -5
  3. package/dist/api/server.js.map +1 -1
  4. package/dist/cli.js +3 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/create.d.ts +2 -0
  7. package/dist/commands/create.js +74 -0
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/runtime/__tests__/check-loop.test.js +2 -2
  10. package/dist/runtime/__tests__/cross-verification-checks.test.d.ts +8 -0
  11. package/dist/runtime/__tests__/cross-verification-checks.test.js +365 -0
  12. package/dist/runtime/__tests__/cross-verification-checks.test.js.map +1 -0
  13. package/dist/runtime/agents/planner-agent.d.ts +18 -1
  14. package/dist/runtime/agents/planner-agent.js +162 -0
  15. package/dist/runtime/agents/planner-agent.js.map +1 -1
  16. package/dist/runtime/app-create-orchestrator.d.ts +46 -1
  17. package/dist/runtime/app-create-orchestrator.js +691 -7
  18. package/dist/runtime/app-create-orchestrator.js.map +1 -1
  19. package/dist/runtime/check-catalog.js +53 -0
  20. package/dist/runtime/check-catalog.js.map +1 -1
  21. package/dist/runtime/fs-helpers.d.ts +2 -0
  22. package/dist/runtime/fs-helpers.js +14 -0
  23. package/dist/runtime/fs-helpers.js.map +1 -1
  24. package/dist/runtime/functional-tester.d.ts +47 -0
  25. package/dist/runtime/functional-tester.js +775 -0
  26. package/dist/runtime/functional-tester.js.map +1 -0
  27. package/dist/runtime/plan-refiner.d.ts +14 -0
  28. package/dist/runtime/plan-refiner.js +160 -0
  29. package/dist/runtime/plan-refiner.js.map +1 -0
  30. package/dist/runtime/types.d.ts +126 -1
  31. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional-tester.js","sourceRoot":"","sources":["../../src/runtime/functional-tester.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AppDescription, ArchitecturePlan, PlanSummary, PlanModification } from './types.js';
2
+ export declare class PlanRefiner {
3
+ private description;
4
+ constructor(description: AppDescription);
5
+ /** Generate a human-readable summary of the architecture plan. */
6
+ generateSummary(plan: ArchitecturePlan): PlanSummary;
7
+ /** Validate plan against heuristics. Returns warnings that should block auto-approval. */
8
+ validatePlan(plan: ArchitecturePlan): {
9
+ valid: boolean;
10
+ warnings: string[];
11
+ };
12
+ /** Apply modifications to a plan (e.g., remove features). Returns a new plan object. */
13
+ applyModifications(plan: ArchitecturePlan, modifications: readonly PlanModification[]): ArchitecturePlan;
14
+ }
@@ -0,0 +1,160 @@
1
+ // ============================================================
2
+ // Plan Refiner — Requirements refinement + plan validation
3
+ // Generates human-readable summaries, validates architecture plans,
4
+ // and applies modifications before code generation begins.
5
+ // ============================================================
6
+ export class PlanRefiner {
7
+ description;
8
+ constructor(description) {
9
+ this.description = description;
10
+ }
11
+ /** Generate a human-readable summary of the architecture plan. */
12
+ generateSummary(plan) {
13
+ const warnings = [];
14
+ // Check for features with empty descriptions
15
+ for (const feature of plan.features) {
16
+ if (!feature.name || feature.name.trim().length === 0) {
17
+ warnings.push(`Feature "${feature.id}" has no name`);
18
+ }
19
+ }
20
+ // Check for orphaned schema entities (not referenced by any feature)
21
+ for (const entity of plan.schema) {
22
+ const referenced = plan.features.some(f => f.schemaEntities.includes(entity.name));
23
+ if (!referenced) {
24
+ warnings.push(`Schema entity "${entity.name}" is not referenced by any feature`);
25
+ }
26
+ }
27
+ // Check for features with no routes and no pages
28
+ for (const feature of plan.features) {
29
+ const hasRoutes = plan.apiRoutes.some(r => r.featureId === feature.id);
30
+ const hasPages = plan.pages.some(p => p.featureId === feature.id);
31
+ const hasIpc = (plan.ipcChannels ?? []).some(ch => ch.featureId === feature.id);
32
+ if (!hasRoutes && !hasPages && !hasIpc) {
33
+ warnings.push(`Feature "${feature.name}" has no routes, pages, or IPC channels`);
34
+ }
35
+ }
36
+ // Check feature count heuristic
37
+ if (plan.features.length > 8) {
38
+ warnings.push(`High feature count (${plan.features.length}) — consider consolidating related features`);
39
+ }
40
+ if (plan.features.length === 0) {
41
+ warnings.push('Plan has no features');
42
+ }
43
+ const features = plan.features.map(f => ({
44
+ id: f.id,
45
+ name: f.name,
46
+ complexity: f.complexityEstimate,
47
+ dependsOn: f.dependsOn,
48
+ routeCount: plan.apiRoutes.filter(r => r.featureId === f.id).length
49
+ + (plan.ipcChannels ?? []).filter(ch => ch.featureId === f.id).length,
50
+ pageCount: plan.pages.filter(p => p.featureId === f.id).length,
51
+ }));
52
+ const totalRoutes = plan.apiRoutes.length + (plan.ipcChannels ?? []).length;
53
+ const totalPages = plan.pages.length;
54
+ const complexity = plan.features.length <= 2 && totalRoutes <= 5 ? 'small'
55
+ : plan.features.length <= 5 && totalRoutes <= 15 ? 'medium'
56
+ : 'large';
57
+ return {
58
+ appName: this.description.name,
59
+ description: this.description.description,
60
+ techStack: `${this.description.techStack.framework} + ${this.description.techStack.database}`,
61
+ featureCount: plan.features.length,
62
+ features,
63
+ schemaEntities: plan.schema.length,
64
+ apiRouteCount: totalRoutes,
65
+ pageCount: totalPages,
66
+ estimatedComplexity: complexity,
67
+ warnings,
68
+ };
69
+ }
70
+ /** Validate plan against heuristics. Returns warnings that should block auto-approval. */
71
+ validatePlan(plan) {
72
+ const warnings = [];
73
+ // Every feature must have at least one route, page, or IPC channel
74
+ for (const feature of plan.features) {
75
+ const hasRoutes = plan.apiRoutes.some(r => r.featureId === feature.id);
76
+ const hasPages = plan.pages.some(p => p.featureId === feature.id);
77
+ const hasIpc = (plan.ipcChannels ?? []).some(ch => ch.featureId === feature.id);
78
+ if (!hasRoutes && !hasPages && !hasIpc) {
79
+ warnings.push(`Feature "${feature.name}" has no routes, pages, or IPC channels — may produce no output`);
80
+ }
81
+ }
82
+ // No orphaned schema entities
83
+ for (const entity of plan.schema) {
84
+ const referenced = plan.features.some(f => f.schemaEntities.includes(entity.name));
85
+ if (!referenced) {
86
+ warnings.push(`Schema entity "${entity.name}" is orphaned — no feature references it`);
87
+ }
88
+ }
89
+ // Feature count within reasonable range
90
+ if (plan.features.length > 10) {
91
+ warnings.push(`Too many features (${plan.features.length}) — consider consolidating`);
92
+ }
93
+ // Feature descriptions non-empty
94
+ for (const feature of plan.features) {
95
+ if (!feature.name || feature.name.trim().length === 0) {
96
+ warnings.push(`Feature "${feature.id}" has empty name`);
97
+ }
98
+ }
99
+ // All dependency order entries refer to existing features
100
+ for (const id of plan.dependencyOrder) {
101
+ if (!plan.features.find(f => f.id === id)) {
102
+ warnings.push(`Dependency order references unknown feature "${id}"`);
103
+ }
104
+ }
105
+ return {
106
+ valid: warnings.length === 0,
107
+ warnings,
108
+ };
109
+ }
110
+ /** Apply modifications to a plan (e.g., remove features). Returns a new plan object. */
111
+ applyModifications(plan, modifications) {
112
+ // Work with mutable copies
113
+ let features = [...plan.features];
114
+ let apiRoutes = [...plan.apiRoutes];
115
+ let pages = [...plan.pages];
116
+ let ipcChannels = plan.ipcChannels ? [...plan.ipcChannels] : undefined;
117
+ let dependencyOrder = [...plan.dependencyOrder];
118
+ let schema = [...plan.schema];
119
+ for (const mod of modifications) {
120
+ if (mod.type === 'remove_feature') {
121
+ const featureId = mod.featureId;
122
+ // Remove the feature itself
123
+ features = features.filter(f => f.id !== featureId);
124
+ // Remove associated routes, pages, IPC channels
125
+ apiRoutes = apiRoutes.filter(r => r.featureId !== featureId);
126
+ pages = pages.filter(p => p.featureId !== featureId);
127
+ if (ipcChannels) {
128
+ ipcChannels = ipcChannels.filter(ch => ch.featureId !== featureId);
129
+ }
130
+ // Remove from dependency order
131
+ dependencyOrder = dependencyOrder.filter(id => id !== featureId);
132
+ // Clean up dependsOn references in remaining features
133
+ features = features.map(f => {
134
+ if (f.dependsOn.includes(featureId)) {
135
+ return {
136
+ ...f,
137
+ dependsOn: f.dependsOn.filter(dep => dep !== featureId),
138
+ };
139
+ }
140
+ return f;
141
+ });
142
+ // Remove orphaned schema entities (only if no remaining feature references them)
143
+ schema = schema.filter(entity => {
144
+ return features.some(f => f.schemaEntities.includes(entity.name));
145
+ });
146
+ }
147
+ // add_feature and modify_feature can be implemented later
148
+ }
149
+ return {
150
+ ...plan,
151
+ features,
152
+ apiRoutes,
153
+ pages,
154
+ ipcChannels,
155
+ dependencyOrder,
156
+ schema,
157
+ };
158
+ }
159
+ }
160
+ //# sourceMappingURL=plan-refiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-refiner.js","sourceRoot":"","sources":["../../src/runtime/plan-refiner.ts"],"names":[],"mappings":"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"}
@@ -1357,6 +1357,19 @@ export type AppCreatePhase = {
1357
1357
  readonly phase: 'planning';
1358
1358
  } | {
1359
1359
  readonly phase: 'verifying_plan';
1360
+ } | {
1361
+ readonly phase: 'requirements_refining';
1362
+ } | {
1363
+ readonly phase: 'plan_questioning';
1364
+ readonly questions: PlanQuestion[];
1365
+ readonly round: number;
1366
+ readonly confidence: number;
1367
+ } | {
1368
+ readonly phase: 'plan_refining';
1369
+ readonly round: number;
1370
+ } | {
1371
+ readonly phase: 'awaiting_approval';
1372
+ readonly planSummary: PlanSummary;
1360
1373
  } | {
1361
1374
  readonly phase: 'scaffolding';
1362
1375
  } | {
@@ -1380,6 +1393,15 @@ export type AppCreatePhase = {
1380
1393
  readonly errorCount: number;
1381
1394
  } | {
1382
1395
  readonly phase: 'integration_verifying';
1396
+ } | {
1397
+ readonly phase: 'functional_testing';
1398
+ readonly attempt: number;
1399
+ readonly maxAttempts: number;
1400
+ } | {
1401
+ readonly phase: 'functional_repairing';
1402
+ readonly attempt: number;
1403
+ readonly maxAttempts: number;
1404
+ readonly failureCount: number;
1383
1405
  } | {
1384
1406
  readonly phase: 'cross_verifying';
1385
1407
  } | {
@@ -1406,6 +1428,7 @@ export interface AppCreateResult {
1406
1428
  readonly buildVerification: BuildVerificationResult | null;
1407
1429
  readonly integrationVerification: IntegrationVerificationResult | null;
1408
1430
  readonly crossVerification: CrossFeatureVerification | null;
1431
+ readonly functionalTestResult: FunctionalTestResult | null;
1409
1432
  readonly totalDurationMs: number;
1410
1433
  readonly auditTrail: readonly AuditEntry[];
1411
1434
  }
@@ -1429,7 +1452,7 @@ export interface CrossFeatureVerification {
1429
1452
  readonly verdict: 'PASS' | 'FAIL' | 'PARTIAL';
1430
1453
  }
1431
1454
  export interface CrossFeatureCheck {
1432
- readonly type: 'api_route_exists' | 'page_references_valid' | 'schema_entity_exists' | 'dependency_consistency' | 'ipc_channel_exists';
1455
+ readonly type: 'api_route_exists' | 'page_references_valid' | 'schema_entity_exists' | 'dependency_consistency' | 'ipc_channel_exists' | 'link_integrity' | 'import_path_valid' | 'package_deps_complete' | 'no_self_fetch' | 'typescript_compiles' | 'env_vars_complete' | 'asset_refs_valid';
1433
1456
  readonly description: string;
1434
1457
  readonly verdict: 'PASS' | 'FAIL';
1435
1458
  readonly evidence: string;
@@ -1495,6 +1518,108 @@ export interface AppCreateOptions {
1495
1518
  readonly fullVerification?: boolean;
1496
1519
  readonly maxBuildRepairAttempts?: number;
1497
1520
  readonly skipBuildVerification?: boolean;
1521
+ readonly autoApprove?: boolean;
1522
+ readonly skipFunctionalTesting?: boolean;
1523
+ readonly skipPlanQuestions?: boolean;
1524
+ }
1525
+ export interface PlanQuestionOption {
1526
+ label: string;
1527
+ description: string;
1528
+ }
1529
+ export interface PlanQuestion {
1530
+ id: string;
1531
+ question: string;
1532
+ header: string;
1533
+ options: PlanQuestionOption[];
1534
+ multiSelect: boolean;
1535
+ }
1536
+ export interface PlanAnswer {
1537
+ questionId: string;
1538
+ selectedOptions: string[];
1539
+ customText?: string;
1540
+ }
1541
+ export interface PlanRefinementRound {
1542
+ round: number;
1543
+ questions: PlanQuestion[];
1544
+ answers: PlanAnswer[];
1545
+ confidence: number;
1546
+ }
1547
+ export interface PlanModeState {
1548
+ rounds: PlanRefinementRound[];
1549
+ currentConfidence: number;
1550
+ maxRounds: number;
1551
+ status: 'asking' | 'refining' | 'confident' | 'approved';
1552
+ }
1553
+ export interface PlanSummary {
1554
+ readonly appName: string;
1555
+ readonly description: string;
1556
+ readonly techStack: string;
1557
+ readonly featureCount: number;
1558
+ readonly features: readonly PlanSummaryFeature[];
1559
+ readonly schemaEntities: number;
1560
+ readonly apiRouteCount: number;
1561
+ readonly pageCount: number;
1562
+ readonly estimatedComplexity: 'small' | 'medium' | 'large';
1563
+ readonly warnings: readonly string[];
1564
+ }
1565
+ export interface PlanSummaryFeature {
1566
+ readonly id: string;
1567
+ readonly name: string;
1568
+ readonly complexity: string;
1569
+ readonly dependsOn: readonly string[];
1570
+ readonly routeCount: number;
1571
+ readonly pageCount: number;
1572
+ }
1573
+ export type PlanApprovalResult = {
1574
+ readonly decision: 'approved';
1575
+ } | {
1576
+ readonly decision: 'approved_with_modifications';
1577
+ readonly modifications: readonly PlanModification[];
1578
+ } | {
1579
+ readonly decision: 'rejected';
1580
+ readonly reason: string;
1581
+ };
1582
+ export interface PlanModification {
1583
+ readonly type: 'remove_feature' | 'add_feature' | 'modify_feature';
1584
+ readonly featureId: string;
1585
+ readonly details?: string;
1586
+ }
1587
+ export interface FunctionalTest {
1588
+ readonly id: string;
1589
+ readonly type: 'api_route' | 'page_load' | 'auth_flow' | 'data_persistence';
1590
+ readonly name: string;
1591
+ readonly method?: string;
1592
+ readonly path: string;
1593
+ readonly body?: unknown;
1594
+ readonly expectedStatusRange: [number, number];
1595
+ readonly errorPatterns: readonly string[];
1596
+ readonly featureId?: string;
1597
+ readonly verifyPath?: string;
1598
+ readonly idField?: string;
1599
+ }
1600
+ export interface FunctionalTestExecution {
1601
+ readonly test: FunctionalTest;
1602
+ readonly status: 'pass' | 'fail' | 'error' | 'timeout';
1603
+ readonly statusCode: number | null;
1604
+ readonly responseBody: string;
1605
+ readonly errorMatch?: string;
1606
+ readonly durationMs: number;
1607
+ }
1608
+ export interface FunctionalTestRepairAttempt {
1609
+ readonly attempt: number;
1610
+ readonly failures: readonly FunctionalTestExecution[];
1611
+ readonly filesModified: readonly string[];
1612
+ readonly repairSucceeded: boolean;
1613
+ readonly durationMs: number;
1614
+ }
1615
+ export interface FunctionalTestResult {
1616
+ readonly status: 'pass' | 'fail' | 'repaired' | 'skipped';
1617
+ readonly tests: readonly FunctionalTestExecution[];
1618
+ readonly passedCount: number;
1619
+ readonly failedCount: number;
1620
+ readonly repairAttempts: readonly FunctionalTestRepairAttempt[];
1621
+ readonly serverPort: number | null;
1622
+ readonly totalDurationMs: number;
1498
1623
  }
1499
1624
  export type CheckStrategyType = 'pattern_presence' | 'pattern_absence' | 'cross_reference' | 'import_reachability' | 'response_shape' | 'conditional_presence' | 'file_reference' | 'ordering';
1500
1625
  export interface PatternPresenceStrategy {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tryassay",
3
- "version": "0.20.3",
3
+ "version": "0.21.1",
4
4
  "description": "AI code verification CLI — find bugs that tests miss, linters ignore, and code review overlooks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",