tryassay 0.21.2 → 0.22.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 (132) hide show
  1. package/demo/.claude/.truth_last_prompt +1 -0
  2. package/demo/.claude/truth_status +1 -0
  3. package/demo/css/style.css +840 -0
  4. package/demo/index.html +78 -0
  5. package/demo/js/chat.js +535 -0
  6. package/demo/js/code-panel.js +206 -0
  7. package/demo/js/preview.js +456 -0
  8. package/demo/js/sse-client.js +600 -0
  9. package/demo/js/state.js +172 -0
  10. package/demo/js/timeline.js +80 -0
  11. package/dist/api/server.d.ts +3 -0
  12. package/dist/api/server.js +127 -20
  13. package/dist/api/server.js.map +1 -1
  14. package/dist/cli.js +11 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/assess.d.ts +2 -0
  17. package/dist/commands/assess.js +132 -164
  18. package/dist/commands/assess.js.map +1 -1
  19. package/dist/commands/demo.d.ts +5 -0
  20. package/dist/commands/demo.js +357 -0
  21. package/dist/commands/demo.js.map +1 -0
  22. package/dist/lib/__tests__/arithmetic-quick-test.d.ts +6 -0
  23. package/dist/lib/__tests__/arithmetic-quick-test.js +197 -0
  24. package/dist/lib/__tests__/arithmetic-quick-test.js.map +1 -0
  25. package/dist/lib/__tests__/arithmetic-real-llm-test.d.ts +13 -0
  26. package/dist/lib/__tests__/arithmetic-real-llm-test.js +284 -0
  27. package/dist/lib/__tests__/arithmetic-real-llm-test.js.map +1 -0
  28. package/dist/lib/__tests__/arithmetic-value-demo.d.ts +10 -0
  29. package/dist/lib/__tests__/arithmetic-value-demo.js +193 -0
  30. package/dist/lib/__tests__/arithmetic-value-demo.js.map +1 -0
  31. package/dist/lib/__tests__/flow-to-claims.test.d.ts +1 -0
  32. package/dist/lib/__tests__/flow-to-claims.test.js +91 -0
  33. package/dist/lib/__tests__/flow-to-claims.test.js.map +1 -0
  34. package/dist/lib/__tests__/formal-verifier-api-misuse.test.d.ts +9 -0
  35. package/dist/lib/__tests__/formal-verifier-api-misuse.test.js +391 -0
  36. package/dist/lib/__tests__/formal-verifier-api-misuse.test.js.map +1 -0
  37. package/dist/lib/__tests__/formal-verifier-arithmetic.test.d.ts +7 -0
  38. package/dist/lib/__tests__/formal-verifier-arithmetic.test.js +318 -0
  39. package/dist/lib/__tests__/formal-verifier-arithmetic.test.js.map +1 -0
  40. package/dist/lib/__tests__/intent-extractor.test.d.ts +1 -0
  41. package/dist/lib/__tests__/intent-extractor.test.js +97 -0
  42. package/dist/lib/__tests__/intent-extractor.test.js.map +1 -0
  43. package/dist/lib/__tests__/intent-reviewer.test.d.ts +1 -0
  44. package/dist/lib/__tests__/intent-reviewer.test.js +55 -0
  45. package/dist/lib/__tests__/intent-reviewer.test.js.map +1 -0
  46. package/dist/lib/__tests__/mr-gsm8k-benchmark.d.ts +11 -0
  47. package/dist/lib/__tests__/mr-gsm8k-benchmark.js +224 -0
  48. package/dist/lib/__tests__/mr-gsm8k-benchmark.js.map +1 -0
  49. package/dist/lib/anthropic.js +25 -33
  50. package/dist/lib/anthropic.js.map +1 -1
  51. package/dist/lib/assessment-reporter.js +9 -13
  52. package/dist/lib/assessment-reporter.js.map +1 -1
  53. package/dist/lib/claim-extractor.js +10 -19
  54. package/dist/lib/claim-extractor.js.map +1 -1
  55. package/dist/lib/code-verifier.js +16 -36
  56. package/dist/lib/code-verifier.js.map +1 -1
  57. package/dist/lib/constraint-engine.js +10 -19
  58. package/dist/lib/constraint-engine.js.map +1 -1
  59. package/dist/lib/formal-verifier.d.ts +1 -1
  60. package/dist/lib/formal-verifier.js +454 -0
  61. package/dist/lib/formal-verifier.js.map +1 -1
  62. package/dist/lib/guided-generator.js +19 -37
  63. package/dist/lib/guided-generator.js.map +1 -1
  64. package/dist/lib/intent-extractor.d.ts +47 -0
  65. package/dist/lib/intent-extractor.js +427 -0
  66. package/dist/lib/intent-extractor.js.map +1 -0
  67. package/dist/lib/intent-reviewer.d.ts +14 -0
  68. package/dist/lib/intent-reviewer.js +148 -0
  69. package/dist/lib/intent-reviewer.js.map +1 -0
  70. package/dist/lib/intent-types.d.ts +89 -0
  71. package/dist/lib/intent-types.js +5 -0
  72. package/dist/lib/intent-types.js.map +1 -0
  73. package/dist/lib/inventory-extractor.js +9 -22
  74. package/dist/lib/inventory-extractor.js.map +1 -1
  75. package/dist/lib/llm-provider.d.ts +23 -0
  76. package/dist/lib/llm-provider.js +130 -0
  77. package/dist/lib/llm-provider.js.map +1 -0
  78. package/dist/lib/remediator.js +20 -28
  79. package/dist/lib/remediator.js.map +1 -1
  80. package/dist/lib/requirements-generator.js +14 -19
  81. package/dist/lib/requirements-generator.js.map +1 -1
  82. package/dist/lib/spec-synthesizer.js +10 -19
  83. package/dist/lib/spec-synthesizer.js.map +1 -1
  84. package/dist/runtime/agents/planner-agent.d.ts +5 -2
  85. package/dist/runtime/agents/planner-agent.js +232 -1
  86. package/dist/runtime/agents/planner-agent.js.map +1 -1
  87. package/dist/runtime/app-create-orchestrator.d.ts +9 -1
  88. package/dist/runtime/app-create-orchestrator.js +265 -87
  89. package/dist/runtime/app-create-orchestrator.js.map +1 -1
  90. package/dist/runtime/check-catalog.js +5 -3
  91. package/dist/runtime/check-catalog.js.map +1 -1
  92. package/dist/runtime/check-definitions.d.ts +10 -0
  93. package/dist/runtime/check-definitions.js +52 -2
  94. package/dist/runtime/check-definitions.js.map +1 -1
  95. package/dist/runtime/composition-verifier.js +8 -12
  96. package/dist/runtime/composition-verifier.js.map +1 -1
  97. package/dist/runtime/gap-detector.js +8 -10
  98. package/dist/runtime/gap-detector.js.map +1 -1
  99. package/dist/runtime/input-validator.d.ts +7 -0
  100. package/dist/runtime/input-validator.js +162 -0
  101. package/dist/runtime/input-validator.js.map +1 -0
  102. package/dist/runtime/model-router.d.ts +10 -0
  103. package/dist/runtime/model-router.js +42 -0
  104. package/dist/runtime/model-router.js.map +1 -0
  105. package/dist/runtime/pattern-extractor.js +8 -10
  106. package/dist/runtime/pattern-extractor.js.map +1 -1
  107. package/dist/runtime/planner.js +11 -16
  108. package/dist/runtime/planner.js.map +1 -1
  109. package/dist/runtime/prompt-guard.d.ts +2 -0
  110. package/dist/runtime/prompt-guard.js +180 -0
  111. package/dist/runtime/prompt-guard.js.map +1 -0
  112. package/dist/runtime/prompt-safety-analyzer.js +8 -13
  113. package/dist/runtime/prompt-safety-analyzer.js.map +1 -1
  114. package/dist/runtime/reasoner.js +19 -33
  115. package/dist/runtime/reasoner.js.map +1 -1
  116. package/dist/runtime/rule-meta-verifier.js +9 -11
  117. package/dist/runtime/rule-meta-verifier.js.map +1 -1
  118. package/dist/runtime/safe-executor.d.ts +23 -0
  119. package/dist/runtime/safe-executor.js +151 -0
  120. package/dist/runtime/safe-executor.js.map +1 -0
  121. package/dist/runtime/specialized-agent.js +10 -14
  122. package/dist/runtime/specialized-agent.js.map +1 -1
  123. package/dist/runtime/strategy-library.js +8 -10
  124. package/dist/runtime/strategy-library.js.map +1 -1
  125. package/dist/runtime/supabase-experience-store.js.map +1 -1
  126. package/dist/runtime/supabase-provisioner.d.ts +35 -0
  127. package/dist/runtime/supabase-provisioner.js +192 -0
  128. package/dist/runtime/supabase-provisioner.js.map +1 -0
  129. package/dist/runtime/types.d.ts +116 -0
  130. package/dist/sdk/forward-verify.js +16 -33
  131. package/dist/sdk/forward-verify.js.map +1 -1
  132. package/package.json +2 -1
@@ -0,0 +1,172 @@
1
+ // state.js — Shared state + pub/sub event bus
2
+ // All modules read from and write to this central store
3
+
4
+ const AppState = (() => {
5
+ const listeners = {};
6
+
7
+ const state = {
8
+ phase: 'idle',
9
+ currentTask: null,
10
+ agents: [],
11
+ tasks: [],
12
+ verifications: [],
13
+ codeFiles: [],
14
+ metrics: {
15
+ tasksComplete: 0,
16
+ totalTasks: 0,
17
+ claimsVerified: 0,
18
+ claimsFailed: 0,
19
+ filesGenerated: 0
20
+ },
21
+ log: [],
22
+ containerState: 'cold', // WebContainer lifecycle: cold|warm|building|verifying|done
23
+ previewUrl: null, // iframe URL from WebContainer server-ready event
24
+ fileQueue: [] // files queued before container is ready
25
+ };
26
+
27
+ function on(event, fn) {
28
+ if (!listeners[event]) listeners[event] = [];
29
+ listeners[event].push(fn);
30
+ return () => {
31
+ listeners[event] = listeners[event].filter(f => f !== fn);
32
+ };
33
+ }
34
+
35
+ function emit(event, data) {
36
+ if (listeners[event]) {
37
+ listeners[event].forEach(fn => fn(data));
38
+ }
39
+ // Always emit wildcard
40
+ if (listeners['*']) {
41
+ listeners['*'].forEach(fn => fn(event, data));
42
+ }
43
+ }
44
+
45
+ function get() {
46
+ return state;
47
+ }
48
+
49
+ function update(partial) {
50
+ const oldPhase = state.phase;
51
+ const oldContainerState = state.containerState;
52
+
53
+ // Merge top-level primitives and objects
54
+ for (const key of Object.keys(partial)) {
55
+ if (Array.isArray(partial[key]) && Array.isArray(state[key])) {
56
+ state[key] = partial[key];
57
+ } else if (typeof partial[key] === 'object' && partial[key] !== null && !Array.isArray(partial[key])) {
58
+ state[key] = { ...state[key], ...partial[key] };
59
+ } else {
60
+ state[key] = partial[key];
61
+ }
62
+ }
63
+
64
+ // Emit specific events based on what changed
65
+ if (partial.phase !== undefined && partial.phase !== oldPhase) {
66
+ emit('phase_change', { from: oldPhase, to: state.phase });
67
+ }
68
+ if (partial.containerState !== undefined && partial.containerState !== oldContainerState) {
69
+ emit('container_state_change', { from: oldContainerState, to: state.containerState });
70
+ }
71
+ if (partial.currentTask !== undefined) {
72
+ emit('task_update', state.currentTask);
73
+ }
74
+ if (partial.tasks !== undefined) {
75
+ emit('task_update', state.tasks);
76
+ }
77
+ if (partial.verifications !== undefined) {
78
+ emit('verification', state.verifications[state.verifications.length - 1]);
79
+ }
80
+ if (partial.codeFiles !== undefined) {
81
+ emit('code_generated', state.codeFiles[state.codeFiles.length - 1]);
82
+ }
83
+ if (partial.agents !== undefined) {
84
+ emit('agent_status', state.agents);
85
+ }
86
+ if (partial.metrics !== undefined) {
87
+ emit('metric_update', state.metrics);
88
+ }
89
+ }
90
+
91
+ function addTask(task) {
92
+ state.tasks.push(task);
93
+ state.metrics.totalTasks = state.tasks.length;
94
+ if (task.status === 'completed') {
95
+ state.metrics.tasksComplete = state.tasks.filter(t => t.status === 'completed').length;
96
+ }
97
+ emit('task_update', task);
98
+ emit('metric_update', state.metrics);
99
+ }
100
+
101
+ function updateTask(id, updates) {
102
+ const task = state.tasks.find(t => t.id === id);
103
+ if (task) {
104
+ Object.assign(task, updates);
105
+ if (updates.status === 'completed') {
106
+ state.metrics.tasksComplete = state.tasks.filter(t => t.status === 'completed').length;
107
+ }
108
+ state.currentTask = task;
109
+ emit('task_update', task);
110
+ emit('metric_update', state.metrics);
111
+ }
112
+ }
113
+
114
+ function addVerification(v) {
115
+ state.verifications.push(v);
116
+ if (v.result === 'pass') state.metrics.claimsVerified++;
117
+ else state.metrics.claimsFailed++;
118
+ emit('verification', v);
119
+ emit('metric_update', state.metrics);
120
+ }
121
+
122
+ function addCodeFile(file) {
123
+ const existing = state.codeFiles.findIndex(f => f.path === file.path);
124
+ if (existing >= 0) {
125
+ state.codeFiles[existing] = file;
126
+ } else {
127
+ state.codeFiles.push(file);
128
+ state.metrics.filesGenerated = state.codeFiles.length;
129
+ }
130
+ emit('code_generated', file);
131
+ emit('metric_update', state.metrics);
132
+ }
133
+
134
+ function addAgent(agent) {
135
+ state.agents.push(agent);
136
+ emit('agent_status', state.agents);
137
+ }
138
+
139
+ function updateAgent(name, updates) {
140
+ const agent = state.agents.find(a => a.name === name);
141
+ if (agent) {
142
+ Object.assign(agent, updates);
143
+ emit('agent_status', state.agents);
144
+ }
145
+ }
146
+
147
+ function addLog(entry) {
148
+ state.log.push({ timestamp: Date.now(), ...entry });
149
+ emit('log', entry);
150
+ }
151
+
152
+ function reset() {
153
+ state.phase = 'idle';
154
+ state.currentTask = null;
155
+ state.agents = [];
156
+ state.tasks = [];
157
+ state.verifications = [];
158
+ state.codeFiles = [];
159
+ state.metrics = { tasksComplete: 0, totalTasks: 0, claimsVerified: 0, claimsFailed: 0, filesGenerated: 0 };
160
+ state.log = [];
161
+ state.containerState = 'cold';
162
+ state.previewUrl = null;
163
+ state.fileQueue = [];
164
+ emit('reset', null);
165
+ }
166
+
167
+ return { on, emit, get, update, addTask, updateTask, addVerification, addCodeFile, addAgent, updateAgent, addLog, reset };
168
+ })();
169
+
170
+ // Make globally available for all modules
171
+ window.AppState = AppState;
172
+ export default AppState;
@@ -0,0 +1,80 @@
1
+ // timeline.js — Compact status bar updates (replaces old timeline panel)
2
+ // Updates the bottom status bar with phase, elapsed time, and task counts.
3
+
4
+ const AppState = window.AppState;
5
+
6
+ let clockInterval = null;
7
+ let startTime = null;
8
+
9
+ export function initTimeline() {
10
+ AppState.on('phase_change', ({ from, to }) => {
11
+ if (from === 'idle' && to !== 'idle') {
12
+ startClock();
13
+ }
14
+
15
+ const phaseEl = document.getElementById('status-phase');
16
+ if (phaseEl) {
17
+ phaseEl.textContent = `phase: ${formatPhase(to)}`;
18
+ }
19
+
20
+ const clockEl = document.getElementById('global-clock');
21
+ if (clockEl && to !== 'idle') {
22
+ clockEl.classList.remove('hidden');
23
+ }
24
+
25
+ if (to === 'completed' || to === 'failed') {
26
+ stopClock();
27
+ }
28
+ });
29
+
30
+ AppState.on('metric_update', (metrics) => {
31
+ const tasksEl = document.getElementById('status-tasks');
32
+ if (tasksEl) {
33
+ tasksEl.textContent = `tasks: ${metrics.tasksComplete}/${metrics.totalTasks}`;
34
+ }
35
+ });
36
+
37
+ AppState.on('reset', () => {
38
+ stopClock();
39
+ const phaseEl = document.getElementById('status-phase');
40
+ const elapsedEl = document.getElementById('status-elapsed');
41
+ const tasksEl = document.getElementById('status-tasks');
42
+ const clockEl = document.getElementById('global-clock');
43
+ if (phaseEl) phaseEl.textContent = 'phase: idle';
44
+ if (elapsedEl) elapsedEl.textContent = 'elapsed: 00:00';
45
+ if (tasksEl) tasksEl.textContent = 'tasks: 0/0';
46
+ if (clockEl) clockEl.classList.add('hidden');
47
+ });
48
+ }
49
+
50
+ function startClock() {
51
+ startTime = Date.now();
52
+ clockInterval = setInterval(() => {
53
+ const elapsed = Date.now() - startTime;
54
+ const formatted = formatTime(elapsed);
55
+
56
+ const elapsedEl = document.getElementById('status-elapsed');
57
+ if (elapsedEl) elapsedEl.textContent = `elapsed: ${formatted}`;
58
+
59
+ const clockValue = document.getElementById('clock-value');
60
+ if (clockValue) clockValue.textContent = formatted;
61
+ }, 1000);
62
+ }
63
+
64
+ function stopClock() {
65
+ if (clockInterval) {
66
+ clearInterval(clockInterval);
67
+ clockInterval = null;
68
+ }
69
+ }
70
+
71
+ function formatTime(ms) {
72
+ const totalSeconds = Math.floor(ms / 1000);
73
+ const minutes = Math.floor(totalSeconds / 60);
74
+ const seconds = totalSeconds % 60;
75
+ return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
76
+ }
77
+
78
+ function formatPhase(phase) {
79
+ return phase.replace(/_/g, ' ').replace(/\b\w/g, c => c);
80
+ }
@@ -4,8 +4,10 @@ export declare class TeamApiServer {
4
4
  private appSessions;
5
5
  private server;
6
6
  private port;
7
+ private demoMode;
7
8
  constructor(opts?: {
8
9
  port?: number;
10
+ demoMode?: boolean;
9
11
  });
10
12
  /** Register an API key for testing/development. */
11
13
  registerApiKey(key: string, tier: 'team' | 'pro' | 'platform', orgId: string): void;
@@ -27,6 +29,7 @@ export declare class TeamApiServer {
27
29
  private handleAppStatus;
28
30
  private handleAppApprove;
29
31
  private handleAppAnswers;
32
+ private handleAppChat;
30
33
  private handleAppLaunch;
31
34
  private handleAppLaunchStatus;
32
35
  private extractApiKey;
@@ -11,18 +11,22 @@
11
11
  // ============================================================
12
12
  import { createServer } from 'node:http';
13
13
  import { randomUUID } from 'node:crypto';
14
- import { spawn } from 'node:child_process';
15
14
  import { PricingEnforcer } from './pricing-enforcer.js';
16
15
  import { TeamSessionManager } from './team-session.js';
17
16
  import { AppCreateOrchestrator } from '../runtime/app-create-orchestrator.js';
17
+ import { validateAppDescription } from '../runtime/input-validator.js';
18
+ import { scanForInjection } from '../runtime/prompt-guard.js';
19
+ import { safeSpawn } from '../runtime/safe-executor.js';
18
20
  export class TeamApiServer {
19
21
  pricingEnforcer;
20
22
  sessionManager;
21
23
  appSessions = new Map();
22
24
  server = null;
23
25
  port;
26
+ demoMode;
24
27
  constructor(opts) {
25
28
  this.port = opts?.port ?? 3800;
29
+ this.demoMode = opts?.demoMode ?? false;
26
30
  this.pricingEnforcer = new PricingEnforcer();
27
31
  this.sessionManager = new TeamSessionManager();
28
32
  }
@@ -72,15 +76,17 @@ export class TeamApiServer {
72
76
  res.end();
73
77
  return;
74
78
  }
75
- // Authenticate
79
+ // Authenticate (skip in demo mode)
76
80
  const apiKey = this.extractApiKey(req);
77
- if (!apiKey && path !== '/health') {
78
- this.sendError(res, 401, 'Missing API key. Include Authorization: Bearer <key>');
79
- return;
80
- }
81
- if (apiKey && !this.pricingEnforcer.isValidKey(apiKey) && path !== '/health') {
82
- this.sendError(res, 403, 'Invalid API key');
83
- return;
81
+ if (!this.demoMode) {
82
+ if (!apiKey && path !== '/health') {
83
+ this.sendError(res, 401, 'Missing API key. Include Authorization: Bearer <key>');
84
+ return;
85
+ }
86
+ if (apiKey && !this.pricingEnforcer.isValidKey(apiKey) && path !== '/health') {
87
+ this.sendError(res, 403, 'Invalid API key');
88
+ return;
89
+ }
84
90
  }
85
91
  // Route
86
92
  if (path === '/health' && method === 'GET') {
@@ -137,6 +143,10 @@ export class TeamApiServer {
137
143
  if (method === 'POST')
138
144
  return this.handleAppAnswers(req, res, sessionId);
139
145
  break;
146
+ case 'chat':
147
+ if (method === 'POST')
148
+ return this.handleAppChat(req, res, sessionId);
149
+ break;
140
150
  case 'launch':
141
151
  if (method === 'POST')
142
152
  return this.handleAppLaunch(res, sessionId);
@@ -279,26 +289,41 @@ export class TeamApiServer {
279
289
  // ── App Creation Handlers ────────────────────────────────
280
290
  async handleAppCreate(req, res, _apiKey) {
281
291
  const body = await this.readBody(req);
282
- let request;
292
+ let parsed;
283
293
  try {
284
- request = JSON.parse(body);
294
+ parsed = JSON.parse(body);
285
295
  }
286
296
  catch {
287
297
  this.sendError(res, 400, 'Invalid JSON body');
288
298
  return;
289
299
  }
290
- if (!request.name || !request.description || !request.techStack) {
291
- this.sendError(res, 400, 'Missing required fields: name, description, techStack');
300
+ // Validate and sanitize input at the trust boundary
301
+ const validation = validateAppDescription(parsed);
302
+ if (!validation.valid) {
303
+ this.sendError(res, 400, `Validation: ${validation.errors.map(e => `${e.field}: ${e.message}`).join('; ')}`);
304
+ return;
305
+ }
306
+ const request = validation.sanitized;
307
+ // Scan for prompt injection in user-provided text
308
+ const descGuard = scanForInjection(request.description);
309
+ if (descGuard.action === 'block') {
310
+ this.sendError(res, 400, `Request blocked: suspicious content detected in description (score: ${descGuard.score.toFixed(2)})`);
292
311
  return;
293
312
  }
313
+ if (descGuard.action === 'warn') {
314
+ console.warn(`[prompt-guard] Warning on app description (score: ${descGuard.score.toFixed(2)}):`, descGuard.findings);
315
+ }
294
316
  // Parse optional flags from request body
295
- const bodyParsed = JSON.parse(body);
317
+ const bodyParsed = parsed;
296
318
  const sessionId = randomUUID();
297
319
  const orchestrator = new AppCreateOrchestrator(request, {
298
320
  outputPath: process.cwd(),
299
321
  autoApprove: bodyParsed.autoApprove,
300
322
  skipFunctionalTesting: bodyParsed.skipFunctionalTesting,
301
323
  skipPlanQuestions: bodyParsed.skipPlanQuestions,
324
+ supabaseOrgId: process.env.SUPABASE_ORG_ID,
325
+ supabaseRegion: process.env.SUPABASE_REGION,
326
+ documents: bodyParsed.documents,
302
327
  });
303
328
  const session = {
304
329
  id: sessionId,
@@ -333,6 +358,30 @@ export class TeamApiServer {
333
358
  client.write(questionsData);
334
359
  }
335
360
  }
361
+ if (phase.phase === 'plan_readiness' && 'gaps' in phase) {
362
+ const readinessData = `event: plan_readiness\ndata: ${JSON.stringify({
363
+ confidence: phase.confidence,
364
+ gaps: phase.gaps,
365
+ summary: phase.summary,
366
+ ready: phase.ready,
367
+ sessionId,
368
+ })}\n\n`;
369
+ for (const client of session.sseClients) {
370
+ client.write(readinessData);
371
+ }
372
+ }
373
+ if (phase.phase === 'chat_message' && 'message' in phase) {
374
+ const chatData = `event: chat_message\ndata: ${JSON.stringify({
375
+ role: 'architect',
376
+ content: phase.message,
377
+ cards: phase.cards,
378
+ readiness: phase.readiness,
379
+ sessionId,
380
+ })}\n\n`;
381
+ for (const client of session.sseClients) {
382
+ client.write(chatData);
383
+ }
384
+ }
336
385
  if (phase.phase === 'awaiting_approval' && 'planSummary' in phase) {
337
386
  const summaryData = `event: plan_summary\ndata: ${JSON.stringify(phase.planSummary)}\n\n`;
338
387
  const awaitData = `event: awaiting_approval\ndata: ${JSON.stringify({ sessionId })}\n\n`;
@@ -535,9 +584,60 @@ export class TeamApiServer {
535
584
  this.sendError(res, 400, 'Missing required field: answers (array)');
536
585
  return;
537
586
  }
587
+ // Scan custom text answers for prompt injection
588
+ for (const answer of parsed.answers) {
589
+ if (answer.customText) {
590
+ const answerGuard = scanForInjection(answer.customText);
591
+ if (answerGuard.action === 'block') {
592
+ this.sendError(res, 400, `Answer blocked: suspicious content in custom text (score: ${answerGuard.score.toFixed(2)})`);
593
+ return;
594
+ }
595
+ }
596
+ }
538
597
  session.orchestrator.submitAnswers(parsed.answers);
539
598
  this.sendJson(res, 200, { status: 'received' });
540
599
  }
600
+ async handleAppChat(req, res, sessionId) {
601
+ const session = this.appSessions.get(sessionId);
602
+ if (!session) {
603
+ this.sendError(res, 404, `App session not found: ${sessionId}`);
604
+ return;
605
+ }
606
+ if (!session.orchestrator) {
607
+ this.sendError(res, 400, 'No orchestrator available for this session');
608
+ return;
609
+ }
610
+ const body = await this.readBody(req);
611
+ let parsed;
612
+ try {
613
+ parsed = JSON.parse(body);
614
+ }
615
+ catch {
616
+ this.sendError(res, 400, 'Invalid JSON body');
617
+ return;
618
+ }
619
+ if (typeof parsed.message !== 'string') {
620
+ this.sendError(res, 400, 'Missing required field: message (string)');
621
+ return;
622
+ }
623
+ // Scan chat message for prompt injection
624
+ const chatGuard = scanForInjection(parsed.message);
625
+ if (chatGuard.action === 'block') {
626
+ this.sendError(res, 400, `Message blocked: suspicious content detected (score: ${chatGuard.score.toFixed(2)})`);
627
+ return;
628
+ }
629
+ if (chatGuard.action === 'warn') {
630
+ console.warn(`[prompt-guard] Warning on chat message (score: ${chatGuard.score.toFixed(2)}):`, chatGuard.findings);
631
+ }
632
+ // Append document contents to message if provided
633
+ let messageWithDocs = parsed.message;
634
+ if (parsed.documents && parsed.documents.length > 0) {
635
+ const docText = parsed.documents.map(d => `\n\n--- Attached: ${d.name} ---\n${d.content}`).join('');
636
+ messageWithDocs = parsed.message + docText;
637
+ }
638
+ session.orchestrator.submitChatMessage(messageWithDocs, parsed.cardAnswers);
639
+ this.sendJson(res, 200, { status: 'received' });
640
+ }
541
641
  // ── App Launch Handlers ─────────────────────────────────
542
642
  handleAppLaunch(res, sessionId) {
543
643
  const session = this.appSessions.get(sessionId);
@@ -559,9 +659,8 @@ export class TeamApiServer {
559
659
  }
560
660
  const projectPath = session.result.projectPath;
561
661
  session.launchStatus = 'installing';
562
- const install = spawn('npm', ['install'], {
662
+ const install = safeSpawn('npm', ['install'], {
563
663
  cwd: projectPath,
564
- shell: true,
565
664
  stdio: ['ignore', 'pipe', 'pipe'],
566
665
  });
567
666
  install.on('close', (code) => {
@@ -571,9 +670,8 @@ export class TeamApiServer {
571
670
  return;
572
671
  }
573
672
  session.launchStatus = 'starting';
574
- const dev = spawn('npm', ['run', 'dev'], {
673
+ const dev = safeSpawn('npm', ['run', 'dev'], {
575
674
  cwd: projectPath,
576
- shell: true,
577
675
  stdio: ['ignore', 'pipe', 'pipe'],
578
676
  });
579
677
  session.launchProcess = dev;
@@ -631,10 +729,19 @@ export class TeamApiServer {
631
729
  return keyParam;
632
730
  return null;
633
731
  }
634
- readBody(req) {
732
+ readBody(req, maxBytes = 1_048_576) {
635
733
  return new Promise((resolve, reject) => {
636
734
  let body = '';
637
- req.on('data', (chunk) => { body += chunk; });
735
+ let bytes = 0;
736
+ req.on('data', (chunk) => {
737
+ bytes += chunk.length;
738
+ if (bytes > maxBytes) {
739
+ req.destroy();
740
+ reject(new Error('Request body too large'));
741
+ return;
742
+ }
743
+ body += chunk;
744
+ });
638
745
  req.on('end', () => resolve(body));
639
746
  req.on('error', reject);
640
747
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -14,6 +14,7 @@ import { runtimeCommand, runtimeInitCommand, runtimeStatusCommand, runtimeStopCo
14
14
  import { apiStartCommand } from './commands/api.js';
15
15
  import { generateCommand } from './commands/generate.js';
16
16
  import { runtimeCreateCommand } from './commands/create.js';
17
+ import { demoCommand } from './commands/demo.js';
17
18
  const program = new Command();
18
19
  program
19
20
  .name('assay')
@@ -89,6 +90,8 @@ program
89
90
  .option('--domain <domains>', 'Comma-separated domains to assess (default: all)')
90
91
  .option('--concurrency <n>', 'Max parallel routes to process', '5')
91
92
  .option('--api-url <url>', 'API URL for publishing', 'https://tryassay.ai')
93
+ .option('--no-review', 'Skip interactive manifest review (CI mode)')
94
+ .option('-y, --yes', 'Auto-confirm manifest without interactive prompt')
92
95
  .action(assessCommand);
93
96
  // ── Runtime (Verified Agent Runtime) ─────────────────────────
94
97
  const runtime = program
@@ -280,6 +283,14 @@ safety
280
283
  .option('--operator <name>', 'Name of the operator', 'human-operator')
281
284
  .option('--reason <reason>', 'Reason for activation')
282
285
  .action(runtimeSafetyKillswitchCommand);
286
+ // ── Demo (Interactive Demo) ──────────────────────────────────
287
+ program
288
+ .command('demo')
289
+ .description('Launch the interactive demo — starts API server + demo UI with question flow')
290
+ .option('--api-port <port>', 'API server port', '3800')
291
+ .option('--ui-port <port>', 'Demo UI server port', '9090')
292
+ .option('--no-open', 'Do not auto-open browser')
293
+ .action(demoCommand);
283
294
  // ── API (Verified Team API) ─────────────────────────────────
284
295
  const api = program
285
296
  .command('api')