@assistkick/create 1.23.0 → 1.25.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.
@@ -32,7 +32,7 @@ export class Scaffolder {
32
32
  dbConfig = await this.promptDbConfig();
33
33
  portConfig = await this.promptPortConfig();
34
34
  secretConfig = await this.promptSecrets();
35
- appConfig = await this.promptAppConfig();
35
+ appConfig = await this.promptAppConfig(portConfig);
36
36
  }
37
37
  this.scaffoldProductSystem(productSystemTarget);
38
38
  await this.scaffoldSkills(skillsTarget, isRerun);
@@ -98,10 +98,11 @@ export class Scaffolder {
98
98
  }
99
99
  return { jwtSecret, encryptionKey };
100
100
  };
101
- promptAppConfig = async () => {
101
+ promptAppConfig = async (portConfig) => {
102
102
  console.log('\nApplication configuration:');
103
+ const defaultUrl = `http://localhost:${portConfig.frontendPort}`;
103
104
  const resendApiKey = (await this.prompt('RESEND_API_KEY (optional, press Enter to skip): ')).trim();
104
- const appBaseUrl = (await this.prompt('APP_BASE_URL [default=http://localhost:3000]: ')).trim() || 'http://localhost:3000';
105
+ const appBaseUrl = (await this.prompt(`APP_BASE_URL [default=${defaultUrl}]: `)).trim() || defaultUrl;
105
106
  const emailFrom = (await this.prompt('EMAIL_FROM [default=noreply@example.com]: ')).trim() || 'noreply@example.com';
106
107
  return { resendApiKey, appBaseUrl, emailFrom };
107
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/scaffolder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/scaffolder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistkick/create",
3
- "version": "1.23.0",
3
+ "version": "1.25.0",
4
4
  "description": "Scaffold assistkick-product-system into any project",
5
5
  "type": "module",
6
6
  "bin": {
@@ -202,6 +202,18 @@ export class ChatCliBridge {
202
202
  let stderrLines: string[] = [];
203
203
  let stdoutNonJsonLines: string[] = [];
204
204
 
205
+ // Attach error handlers on stdio streams to prevent unhandled 'error' events
206
+ // from crashing the process (e.g. EPIPE if CLI exits before stdin write completes)
207
+ child.stdin!.on('error', (err) => {
208
+ this.log('CHAT_CLI', `[stdin error] ${err.message}`);
209
+ });
210
+ child.stdout!.on('error', (err) => {
211
+ this.log('CHAT_CLI', `[stdout error] ${err.message}`);
212
+ });
213
+ child.stderr!.on('error', (err) => {
214
+ this.log('CHAT_CLI', `[stderr error] ${err.message}`);
215
+ });
216
+
205
217
  child.stdout!.on('data', (chunk: Buffer) => {
206
218
  stdoutReceived = true;
207
219
  lineBuf += chunk.toString();
@@ -261,6 +261,124 @@ const AgentDetailView = ({ input, result }: Omit<ToolDetailViewProps, 'toolName'
261
261
  );
262
262
  };
263
263
 
264
+ /* ── Generic (MCP & other tools) ──────────────────── */
265
+
266
+ /** Format an MCP-style tool name for display: mcp__jetbrains__list_directory_tree → jetbrains / list_directory_tree */
267
+ const formatToolName = (name: string): { provider: string | null; action: string } => {
268
+ if (name.startsWith('mcp__')) {
269
+ const parts = name.slice(5).split('__');
270
+ if (parts.length >= 2) {
271
+ return { provider: parts[0], action: parts.slice(1).join(' / ') };
272
+ }
273
+ return { provider: null, action: parts[0] };
274
+ }
275
+ return { provider: null, action: name };
276
+ };
277
+
278
+ /** Try to pretty-print a value — if JSON, format it; otherwise return as string. */
279
+ const tryFormatValue = (value: unknown): { text: string; isJson: boolean } => {
280
+ if (value == null) return { text: '', isJson: false };
281
+ if (typeof value === 'string') {
282
+ // Try parsing as JSON
283
+ try {
284
+ const parsed = JSON.parse(value);
285
+ if (typeof parsed === 'object' && parsed !== null) {
286
+ return { text: JSON.stringify(parsed, null, 2), isJson: true };
287
+ }
288
+ } catch {
289
+ // Not JSON — return as plain text
290
+ }
291
+ return { text: value, isJson: false };
292
+ }
293
+ if (typeof value === 'object') {
294
+ return { text: JSON.stringify(value, null, 2), isJson: true };
295
+ }
296
+ return { text: String(value), isJson: false };
297
+ };
298
+
299
+ const GenericDetailView = ({ toolName, input, result }: ToolDetailViewProps) => {
300
+ const { provider, action } = formatToolName(toolName);
301
+ const content = result ? contentToString(result.content) : '';
302
+ const inputEntries = Object.entries(input);
303
+
304
+ return (
305
+ <div className="flex flex-col gap-2">
306
+ {/* Tool name badge */}
307
+ <div className="flex items-center gap-2 px-1">
308
+ {provider && (
309
+ <span className="text-[10px] font-mono px-2 py-0.5 rounded-full bg-accent/15 text-accent">
310
+ {provider}
311
+ </span>
312
+ )}
313
+ <span className="text-[11px] font-mono text-content-secondary">{action}</span>
314
+ </div>
315
+
316
+ {/* Input parameters */}
317
+ {inputEntries.length > 0 && (
318
+ <Panel label="Input">
319
+ <div className="px-3 py-2 flex flex-col gap-1.5">
320
+ {inputEntries.map(([key, value]) => {
321
+ const { text, isJson } = tryFormatValue(value);
322
+ const isLong = text.length > 120;
323
+ return (
324
+ <div key={key} className="flex flex-col gap-0.5">
325
+ <span className="text-[10px] font-mono text-content-muted uppercase tracking-wider">{key}</span>
326
+ {isJson ? (
327
+ <pre className="text-[12px] font-mono text-content-secondary whitespace-pre-wrap break-words m-0 max-h-[200px] overflow-y-auto bg-surface-raised/50 rounded px-2 py-1">
328
+ {text}
329
+ </pre>
330
+ ) : isLong ? (
331
+ <pre className="text-[12px] font-mono text-content-secondary whitespace-pre-wrap break-words m-0 max-h-[200px] overflow-y-auto">
332
+ {text}
333
+ </pre>
334
+ ) : (
335
+ <span className="text-[12px] font-mono text-content-secondary">{text || '(empty)'}</span>
336
+ )}
337
+ </div>
338
+ );
339
+ })}
340
+ </div>
341
+ </Panel>
342
+ )}
343
+
344
+ {/* Output */}
345
+ {result && (
346
+ <Panel label={result.isError ? 'Error' : 'Output'} labelColor={result.isError ? 'text-red-400' : undefined}>
347
+ <div className="max-h-[400px] overflow-y-auto">
348
+ {(() => {
349
+ const { text: formatted, isJson } = tryFormatValue(content);
350
+ if (result.isError) {
351
+ return (
352
+ <pre className="text-[12px] font-mono text-error whitespace-pre-wrap break-words px-3 py-2 m-0">
353
+ {content || '(empty)'}
354
+ </pre>
355
+ );
356
+ }
357
+ if (isJson) {
358
+ return (
359
+ <SyntaxHighlighter
360
+ language="json"
361
+ style={oneDark}
362
+ customStyle={codeStyle}
363
+ wrapLongLines
364
+ >
365
+ {formatted}
366
+ </SyntaxHighlighter>
367
+ );
368
+ }
369
+ return (
370
+ <pre className="text-[12px] font-mono text-content-secondary whitespace-pre-wrap break-words px-3 py-2 m-0">
371
+ {content || '(empty)'}
372
+ </pre>
373
+ );
374
+ })()}
375
+ </div>
376
+ </Panel>
377
+ )}
378
+ </div>
379
+ );
380
+ };
381
+
264
382
  /* ── Router ────────────────────────────────────────── */
265
383
 
266
384
  export const ToolDetailView = ({ toolName, input, result }: ToolDetailViewProps) => {
@@ -268,6 +386,6 @@ export const ToolDetailView = ({ toolName, input, result }: ToolDetailViewProps)
268
386
  case 'Read': return <ReadDetailView input={input} result={result} />;
269
387
  case 'Bash': return <BashDetailView input={input} result={result} />;
270
388
  case 'Agent': return <AgentDetailView input={input} result={result} />;
271
- default: return null;
389
+ default: return <GenericDetailView toolName={toolName} input={input} result={result} />;
272
390
  }
273
391
  };
@@ -53,12 +53,16 @@ const contentToString = (content: ToolResultBlock['content']): string => {
53
53
 
54
54
  type ViewTab = 'humanized' | 'raw';
55
55
 
56
- const hasHumanizedView = (name: string): boolean =>
57
- name === 'Edit' || name === 'Write' || name === 'Read' || name === 'Bash' || name === 'Agent';
56
+ /** All tools now support humanized + raw tabs. */
57
+ const hasHumanizedView = (_name: string): boolean => true;
58
58
 
59
59
  /** Tools where the humanized view renders both input and result together. */
60
60
  const hasIntegratedView = (name: string): boolean =>
61
- name === 'Read' || name === 'Bash' || name === 'Agent';
61
+ name === 'Read' || name === 'Bash' || name === 'Agent' || hasGenericView(name);
62
+
63
+ /** Tools that use the generic humanized view (MCP tools and other non-built-in tools). */
64
+ const hasGenericView = (name: string): boolean =>
65
+ !['Edit', 'Write', 'Read', 'Bash', 'Agent'].includes(name);
62
66
 
63
67
  export const ToolUseCard = ({ name, input, isStreaming, result }: ToolUseCardProps) => {
64
68
  const [expanded, setExpanded] = useState(false);
@@ -120,10 +124,10 @@ export const ToolUseCard = ({ name, input, isStreaming, result }: ToolUseCardPro
120
124
  {/* Tool input — humanized or raw */}
121
125
  {hasHumanizedView(name) && viewTab === 'humanized' ? (
122
126
  <div className="px-3 py-2">
123
- {hasIntegratedView(name) ? (
124
- <ToolDetailView toolName={name} input={input} result={result} />
125
- ) : (
127
+ {name === 'Edit' || name === 'Write' ? (
126
128
  <ToolDiffView toolName={name as 'Edit' | 'Write'} input={input} />
129
+ ) : (
130
+ <ToolDetailView toolName={name} input={input} result={result} />
127
131
  )}
128
132
  </div>
129
133
  ) : (
@@ -76,8 +76,18 @@ export const summarizeToolUse = (
76
76
  return url ? truncate(`Fetch: ${url}`, MAX_SUMMARY_LEN) : 'Web fetch';
77
77
  }
78
78
 
79
- default:
79
+ default: {
80
+ // MCP tools: mcp__provider__action → "provider: action"
81
+ if (name.startsWith('mcp__')) {
82
+ const parts = name.slice(5).split('__');
83
+ if (parts.length >= 2) {
84
+ const provider = parts[0];
85
+ const action = parts.slice(1).join(' ');
86
+ return truncate(`${provider}: ${action}`, MAX_SUMMARY_LEN);
87
+ }
88
+ }
80
89
  return name;
90
+ }
81
91
  }
82
92
  };
83
93