needware-cli 1.3.5 → 1.3.7

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.
@@ -30,10 +30,6 @@ export declare class AgentCommand extends Command {
30
30
  * 处理 Agent 消息
31
31
  */
32
32
  private handleAgentMessage;
33
- /**
34
- * 获取系统提示词
35
- */
36
- private getSystemPrompt;
37
33
  /**
38
34
  * 显示帮助信息
39
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM3C,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,mDAAmD;IACvE,QAAQ,CAAC,OAAO,WAAU;gBAEd,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqB9D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkBhC;;OAEG;YACW,2BAA2B;IA+BzC;;OAEG;YACW,mBAAmB;IA8EjC;;OAEG;YACW,QAAQ;IA8MtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkJvB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAwDjB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,mDAAmD;IACvE,QAAQ,CAAC,OAAO,WAAU;gBAEd,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqB9D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkBhC;;OAEG;YACW,2BAA2B;IA+BzC;;OAEG;YACW,mBAAmB;IAqFjC;;OAEG;YACW,QAAQ;IAmNtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAwDjB"}
@@ -6,6 +6,7 @@ import ora from 'ora';
6
6
  import { query } from '@anthropic-ai/claude-agent-sdk';
7
7
  import { Command } from '../core/command.js';
8
8
  import { parsePromptFromArgs } from '../utils/prompt-parser.js';
9
+ import { getSystemPrompt } from './system-prompt.js';
9
10
  import * as path from 'path';
10
11
  import * as fs from 'fs';
11
12
  export class AgentCommand extends Command {
@@ -112,7 +113,12 @@ export class AgentCommand extends Command {
112
113
  const agentQuery = query({
113
114
  prompt: parsedPrompt.prompt,
114
115
  options: {
115
- systemPrompt: this.getSystemPrompt(resolvedWorkingDir),
116
+ systemPrompt: getSystemPrompt(resolvedWorkingDir, {
117
+ hasSelectedProject: true,
118
+ projectId: 'sniiobwuoecgypjxpymx',
119
+ publishableKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNuaWlvYnd1b2VjZ3lwanhweW14Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjIxNjE0NDEsImV4cCI6MjA3NzczNzQ0MX0.mm8W3B_NnL37-czNajjV4Dvnh-8JuwirvawypINo9DY',
120
+ url: 'https://sniiobwuoecgypjxpymx.supabase.co',
121
+ }),
116
122
  settingSources: ['project'],
117
123
  model: 'claude-sonnet-4-5',
118
124
  maxTurns: 30,
@@ -132,7 +138,7 @@ export class AgentCommand extends Command {
132
138
  PATH: process.env.PATH || '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
133
139
  IS_SANDBOX: 1,
134
140
  // 设置配置目录为目标工作目录,这样 memory 会存储在该目录下
135
- // CLAUDE_CONFIG_DIR: targetWorkingDir,
141
+ CLAUDE_CONFIG_DIR: resolvedWorkingDir,
136
142
  },
137
143
  },
138
144
  });
@@ -229,11 +235,17 @@ export class AgentCommand extends Command {
229
235
  console.log(chalk.gray(` NODE_ENV: ${process.env.NODE_ENV}`));
230
236
  console.log(chalk.gray(` PATH: ${process.env.PATH}`));
231
237
  console.log();
238
+ console.log('**************agent');
232
239
  // 创建 agent 查询
233
240
  const agentQuery = query({
234
241
  prompt: prompt.trim(),
235
242
  options: {
236
- systemPrompt: this.getSystemPrompt(resolvedWorkingDir),
243
+ systemPrompt: getSystemPrompt(resolvedWorkingDir, {
244
+ hasSelectedProject: true,
245
+ projectId: 'sniiobwuoecgypjxpymx',
246
+ publishableKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNuaWlvYnd1b2VjZ3lwanhweW14Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjIxNjE0NDEsImV4cCI6MjA3NzczNzQ0MX0.mm8W3B_NnL37-czNajjV4Dvnh-8JuwirvawypINo9DY',
247
+ url: 'https://sniiobwuoecgypjxpymx.supabase.co',
248
+ }),
237
249
  settingSources: ['project'],
238
250
  model: 'claude-sonnet-4-5',
239
251
  maxTurns: 30,
@@ -254,7 +266,7 @@ export class AgentCommand extends Command {
254
266
  PATH: process.env.PATH || '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
255
267
  IS_SANDBOX: 1,
256
268
  // 设置配置目录为目标工作目录,这样 memory 会存储在该目录下
257
- // CLAUDE_CONFIG_DIR: targetWorkingDir,
269
+ CLAUDE_CONFIG_DIR: resolvedWorkingDir,
258
270
  },
259
271
  },
260
272
  });
@@ -342,154 +354,6 @@ export class AgentCommand extends Command {
342
354
  console.log(message);
343
355
  }
344
356
  }
345
- /**
346
- * 获取系统提示词
347
- */
348
- getSystemPrompt(workingDir) {
349
- return `
350
- ## Working Directory Context
351
-
352
- IMPORTANT: You are working in the directory: ${workingDir}
353
- All file operations (read, write, create, etc.) MUST be performed in this working directory.
354
- Do NOT use /tmp or any other system directories. Work exclusively in: ${workingDir}
355
-
356
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
357
-
358
- You are needware, an AI editor that creates and modifies web applications. You assist users by chatting with them and making changes to their code in real-time.
359
-
360
- Not every interaction requires code changes - you're happy to discuss, explain concepts, or provide guidance without modifying the codebase. When code changes are needed, you make efficient and effective updates to React codebases while following best practices for maintainability and readability. You take pride in keeping things simple and elegant. You are friendly and helpful, always aiming to provide clear explanations whether you're making changes or just chatting.
361
-
362
- Always reply in the same language as the user's message.
363
-
364
- ## Technology Stack:
365
- needware projects are built on top of React, Vite, Tailwind CSS, and TypeScript.
366
- - **Framework**: React
367
- - **Build Tool**: Vite
368
- - **Styling**: Tailwind CSS (with design system tokens)
369
- - **TypeScript**: Strict mode enabled
370
- - **Package Manager**: npm
371
-
372
- ## Project Structure:
373
- - **Entry HTML**: \`index.html\` at project root (Vite entry point)
374
- - **Source code**: All in \`src/\` directory
375
- - \`main.tsx\`: React application entry point
376
- - \`App.tsx\`: Main App component
377
- - \`index.css\`: Global styles and design system tokens
378
- - \`assets/\`: Static assets (images, icons, etc.)
379
- - \`components/\`: Reusable UI components (create if needed)
380
- - \`hooks/\`: Custom React hooks (create if needed)
381
- - \`types/\`: TypeScript type definitions (create if needed)
382
- - \`utils/\`: Utility functions (create if needed)
383
- - **Public assets**: \`public/\` directory (served at root during dev/build)
384
- - **Tailwind config**: \`tailwind.config.ts\` for design system customization
385
-
386
- ## Development Commands:
387
- - \`npm run dev\`: Start dev server
388
- - \`npm run build\`: Build for production
389
- - \`npm run preview\`: Preview production build
390
- - \`npm run lint\`: Run ESLint
391
-
392
- ## General Guidelines
393
-
394
- PERFECT ARCHITECTURE: Always consider whether the code needs refactoring given the latest request. If it does, refactor the code to be more efficient and maintainable. Spaghetti code is your enemy.
395
-
396
- MAXIMIZE EFFICIENCY: For maximum efficiency, whenever you need to perform multiple independent operations, always invoke all relevant tools simultaneously. Never make sequential tool calls when they can be combined.
397
-
398
- CHECK UNDERSTANDING: If unsure about scope, ask for clarification rather than guessing. When you ask a question to the user, make sure to wait for their response before proceeding and calling tools.
399
-
400
- BE CONCISE: You MUST answer concisely with fewer than 2 lines of text (not including tool use or code generation), unless user asks for detail. After editing code, do not write a long explanation, just keep it as short as possible without emojis.
401
-
402
- COMMUNICATE ACTIONS: Before performing any changes, briefly inform the user what you will do.
403
-
404
- ## Required Workflow (Follow This Order)
405
-
406
- 1. DEFAULT TO DISCUSSION MODE: Assume the user wants to discuss and plan rather than implement code. Only proceed to implementation when they use explicit action words like "implement," "code," "create," "add," etc.
407
-
408
- 2. THINK & PLAN: When thinking about the task, you should:
409
- - Restate what the user is ACTUALLY asking for (not what you think they might want)
410
- - Do not hesitate to explore more of the codebase to find relevant information
411
- - Define EXACTLY what will change and what will remain untouched
412
- - Plan a minimal but CORRECT approach needed to fulfill the request
413
- - Select the most appropriate and efficient tools
414
-
415
- 3. ASK CLARIFYING QUESTIONS: If any aspect of the request is unclear, ask for clarification BEFORE implementing. Wait for their response before proceeding and calling tools.
416
-
417
- 4. GATHER CONTEXT EFFICIENTLY:
418
- - ALWAYS batch multiple file operations when possible
419
- - Only read files directly relevant to the request
420
-
421
- 5. IMPLEMENTATION (when relevant):
422
- - Focus on the changes explicitly requested
423
- - Create small, focused components instead of large files
424
- - Avoid fallbacks, edge cases, or features not explicitly requested
425
-
426
- 6. VERIFY & CONCLUDE:
427
- - Ensure all changes are complete and correct
428
- - Conclude with a very concise summary of the changes you made
429
- - Avoid emojis
430
-
431
- ## Efficient Tool Usage
432
-
433
- ### CARDINAL RULES:
434
- 1. ALWAYS batch multiple operations when possible
435
- 2. NEVER make sequential tool calls that could be combined
436
- 3. Use the most appropriate tool for each task
437
-
438
- ### EFFICIENT CODE MODIFICATION
439
- Choose the least invasive approach:
440
- - Use search-replace for most changes
441
- - Use write-file only for new files or complete rewrites
442
-
443
- ## Coding Standards:
444
- - **Always use TypeScript** with proper type definitions
445
- - Use **functional components** with hooks
446
- - Use **modern React patterns**: useState, useEffect, useCallback, useMemo, etc.
447
- - Use **ES modules** (import/export)
448
- - Follow **React best practices**: component composition, prop drilling avoidance, etc.
449
- - ALWAYS generate beautiful and responsive designs
450
- - Use toast components to inform the user about important events
451
-
452
- ## Design System (CRITICAL):
453
- The design system is everything. You should never write custom styles in components, you should always use the design system and customize it.
454
-
455
- - **Maximize reusability** of components
456
- - **Leverage index.css and tailwind.config.ts** to create a consistent design system that can be reused across the app instead of custom styles everywhere
457
- - **Create variants** in the components you'll use
458
- - **USE SEMANTIC TOKENS FOR COLORS**: It's important you follow best practices. DO NOT use direct colors like text-white, text-black, bg-white, bg-black, etc. Everything must be themed via the design system defined in the index.css and tailwind.config.ts files!
459
-
460
- ## File Naming Conventions:
461
- - **Components**: PascalCase (e.g., \`UserProfile.tsx\`)
462
- - **Hooks**: camelCase starting with 'use' (e.g., \`useAuth.ts\`)
463
- - **Types**: PascalCase (e.g., \`User.ts\` or \`types.ts\`)
464
- - **Utils**: camelCase (e.g., \`formatDate.ts\`)
465
- - **CSS Modules**: \`ComponentName.module.css\`
466
-
467
- ## Import Paths:
468
- - Use relative imports (e.g., \`import { X } from './components/X'\`)
469
- - Or configure path aliases in \`vite.config.ts\` and \`tsconfig.json\` if needed
470
-
471
- ## Design Guidelines:
472
- - Create **beautiful, modern, production-ready** UI designs
473
- - Ensure responsive layouts (mobile-first approach)
474
- - Implement proper error handling and loading states
475
- - Follow accessibility best practices (semantic HTML, ARIA labels, keyboard navigation)
476
- - Use modern CSS features (flexbox, grid, custom properties)
477
- - Maximize reusability of components
478
- - Pay attention to contrast, color, and typography
479
- - Beautiful designs are your top priority
480
- - **Image placeholders**: If no image URL is provided, use an Unsplash image as a substitute based on the scene
481
-
482
- ## Important Rules:
483
- - When installing new packages, use \`npm install\` (not yarn or pnpm)
484
- - Always maintain TypeScript type safety
485
- - Hot Module Replacement (HMR) is enabled by default with Vite
486
- - For production builds, assets are optimized and hashed automatically
487
- - Keep explanations very, very short
488
- - Minimize emoji use
489
- - Make sure to write valid TypeScript and CSS code following the design system
490
- - Make sure imports are correct
491
- `.trim();
492
- }
493
357
  /**
494
358
  * 显示帮助信息
495
359
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,MAAM,OAAO,YAAa,SAAQ,OAAO;IAC9B,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,+CAA+C,CAAC;IAC9D,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1B,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,IAAI,CAAC;YACH,kBAAkB;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;YAED,sCAAsC;YACtC,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,kBAAkB;YAClB,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;gBAC/B,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,WAAW;YACX,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAChF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,UAAkB;QACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,IAAI;gBACjD,oFAAoF,CACvF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,wCAAwC,UAAU,IAAI;gBACpD,yCAAyC,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,2BAA2B;QACvC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAEnD,wBAAwB;YACxB,MAAM,WAAW,GAAG;gBAClB,gDAAgD;gBAChD,uBAAuB;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,oBAAoB;aACxC,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,YAAiB,EACjB,OAAuB;QAEvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE7C,SAAS;QACT,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE1D,SAAS;QACT,IAAI,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;QAED,SAAS;QACT,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAElE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC;gBACvB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;oBACtD,cAAc,EAAE,CAAC,SAAS,CAAC;oBAC3B,KAAK,EAAE,mBAAmB;oBAC1B,QAAQ,EAAE,EAAE;oBACZ,cAAc,EAAE,mBAAmB;oBACnC,GAAG,EAAE,kBAAkB;oBACvB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;wBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;wBAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBAC7D,CAAC;oBACD,6DAA6D;oBAC7D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;oBACrF,GAAG,EAAE;wBACH,iBAAiB,EAAE,MAAM;wBACzB,kBAAkB,EAAE,OAAO;wBAC3B,uDAAuD;wBACvD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,8CAA8C;wBACxE,UAAU,EAAE,CAAC;wBACb,mCAAmC;wBACnC,uCAAuC;qBACxC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;gBACvC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;YACtF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CACpB,MAAc,EACd,OAAuB,EACvB,SAAkB;QAElB,uBAAuB;QACvB,sEAAsE;QACtE,uDAAuD;QACvD,qDAAqD;QACrD,gFAAgF;QAChF,sCAAsC;QACtC,kFAAkF;QAClF,iBAAiB;QACjB,4EAA4E;QAC5E,OAAO;QACP,oCAAoC;QACpC,iBAAiB;QACjB,4FAA4F;QAC5F,OAAO;QAEP,uBAAuB;QACvB,sGAAsG;QACtG,OAAO;QACP,IAAI;QAEJ,oCAAoC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE/D,qCAAqC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAElE,6CAA6C;QAC7C,gBAAgB;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE1D,SAAS;QACT,IAAI,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;QAED,UAAU;QACV,MAAM,qBAAqB,GAAG,OAAO,CAAC,cAAc;YAClD,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,cAAc;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;YAErC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,cAAc;YACd,MAAM,UAAU,GAAG,KAAK,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;oBACtD,cAAc,EAAE,CAAC,SAAS,CAAC;oBAC3B,KAAK,EAAE,mBAAmB;oBAC1B,QAAQ,EAAE,EAAE;oBACZ,cAAc,EAAE,mBAAmB;oBACnC,GAAG,EAAE,kBAAkB;oBACvB,qBAAqB;oBACrB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;wBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;wBAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBAC7D,CAAC;oBACD,6DAA6D;oBAC7D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;oBACrF,GAAG,EAAE;wBACH,iBAAiB,EAAE,MAAM;wBACzB,kBAAkB,EAAE,OAAO;wBAC3B,uDAAuD;wBACvD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,8CAA8C;wBACxE,UAAU,EAAE,CAAC;wBACb,mCAAmC;wBACnC,uCAAuC;qBACxC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,SAAS;YACT,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;gBACvC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAEtC,gBAAgB;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,kBAAkB,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAE5D,WAAW;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAEhD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,eAAe;gBACf,MAAM,QAAQ,GAAG,KAIhB,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;YAEzF,YAAY;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAEvC,yBAAyB;YACzB,IACE,KAAK,YAAY,KAAK;gBACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACpC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACpC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACnC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAgB;QACzC,IAAI,CAAC;YACH,cAAc;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,UAAkB;QACxC,OAAO;;;+CAGoC,UAAU;;wEAEe,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAyIrE,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QAEvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,yIAAyI,CAC1I,CACF,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 代码快照命令 - 扫描项目目录并输出未被 .gitignore 忽略的文件结构
3
+ */
4
+ import { Command } from '../core/command.js';
5
+ import { CommandOptions, CommandResult } from '../types/index.js';
6
+ import { Logger } from '../core/logger.js';
7
+ export declare class CodeSnapshotCommand extends Command {
8
+ readonly name = "code-snapshot";
9
+ readonly description = "\u751F\u6210\u9879\u76EE\u4EE3\u7801\u5FEB\u7167\uFF08\u6839\u636E .gitignore \u8FC7\u6EE4\uFF09";
10
+ readonly aliases: string[];
11
+ constructor(logger: Logger);
12
+ execute(options: CommandOptions): Promise<CommandResult>;
13
+ /**
14
+ * 加载 .gitignore 规则
15
+ */
16
+ private loadGitignore;
17
+ /**
18
+ * 扫描目录并生成扁平化结构
19
+ */
20
+ private scanDirectory;
21
+ /**
22
+ * 判断文件是否为二进制文件
23
+ */
24
+ private isBinaryFile;
25
+ validate(_options: CommandOptions): boolean;
26
+ }
27
+ //# sourceMappingURL=code-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-snapshot.d.ts","sourceRoot":"","sources":["../../src/commands/code-snapshot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgB3C,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,sGAAgC;IACpD,QAAQ,CAAC,OAAO,WAAsB;gBAE1B,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAwE9D;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmFrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;CAG5C"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * 代码快照命令 - 扫描项目目录并输出未被 .gitignore 忽略的文件结构
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import ignore from 'ignore';
9
+ import { Command } from '../core/command.js';
10
+ export class CodeSnapshotCommand extends Command {
11
+ name = 'code-snapshot';
12
+ description = '生成项目代码快照(根据 .gitignore 过滤)';
13
+ aliases = ['snapshot', 'cs'];
14
+ constructor(logger) {
15
+ super(logger);
16
+ }
17
+ async execute(options) {
18
+ try {
19
+ // 获取目标目录(默认为当前工作目录)
20
+ const targetDir = options.dir || options.directory || process.cwd();
21
+ const resolvedDir = path.resolve(targetDir);
22
+ // 验证目录存在
23
+ if (!fs.existsSync(resolvedDir)) {
24
+ return this.error(`目录不存在: ${resolvedDir}`);
25
+ }
26
+ if (!fs.statSync(resolvedDir).isDirectory()) {
27
+ return this.error(`路径不是目录: ${resolvedDir}`);
28
+ }
29
+ this.logger.info(chalk.blue(`\n📸 正在生成代码快照...`));
30
+ this.logger.info(chalk.gray(`目标目录: ${resolvedDir}\n`));
31
+ const spinner = ora('扫描文件系统...').start();
32
+ try {
33
+ // 读取 .gitignore 规则
34
+ const ig = this.loadGitignore(resolvedDir);
35
+ // 默认包含文件内容
36
+ const includeContents = true;
37
+ // 扫描目录并生成扁平化结构
38
+ const result = this.scanDirectory(resolvedDir, resolvedDir, ig, includeContents);
39
+ spinner.succeed(chalk.green('扫描完成'));
40
+ // 生成 JSON
41
+ const json = JSON.stringify(result, null, 2);
42
+ if (options.output) {
43
+ // 保存到文件
44
+ const outputPath = path.resolve(options.output);
45
+ fs.writeFileSync(outputPath, json, 'utf-8');
46
+ this.logger.success(chalk.green(`\n✅ 快照已保存到: ${outputPath}`));
47
+ }
48
+ else {
49
+ // 输出到控制台
50
+ console.log('\n' + json);
51
+ }
52
+ // 统计信息
53
+ let fileCount = 0;
54
+ let folderCount = 0;
55
+ for (const item of Object.values(result)) {
56
+ if (item.type === 'file')
57
+ fileCount++;
58
+ else if (item.type === 'folder')
59
+ folderCount++;
60
+ }
61
+ // 显示统计信息
62
+ console.log(chalk.blue('\n📊 统计信息:'));
63
+ console.log(chalk.gray('─'.repeat(50)));
64
+ console.log(chalk.cyan('文件总数:'), fileCount);
65
+ console.log(chalk.cyan('目录总数:'), folderCount);
66
+ console.log(chalk.cyan('根目录:'), resolvedDir);
67
+ console.log(chalk.gray('─'.repeat(50) + '\n'));
68
+ return this.success('Code snapshot generated successfully', result);
69
+ }
70
+ catch (error) {
71
+ spinner.fail(chalk.red('扫描失败'));
72
+ throw error;
73
+ }
74
+ }
75
+ catch (error) {
76
+ const message = error instanceof Error ? error.message : 'Code snapshot failed';
77
+ return this.error(message, error);
78
+ }
79
+ }
80
+ /**
81
+ * 加载 .gitignore 规则
82
+ */
83
+ loadGitignore(rootDir) {
84
+ const ig = ignore();
85
+ // 添加默认忽略规则
86
+ ig.add([
87
+ '.git',
88
+ 'node_modules',
89
+ '.DS_Store',
90
+ ]);
91
+ // 尝试读取 .gitignore 文件
92
+ const gitignorePath = path.join(rootDir, '.gitignore');
93
+ if (fs.existsSync(gitignorePath)) {
94
+ try {
95
+ const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8');
96
+ ig.add(gitignoreContent);
97
+ }
98
+ catch (error) {
99
+ this.logger.warn(chalk.yellow(`无法读取 .gitignore 文件: ${error}`));
100
+ }
101
+ }
102
+ return ig;
103
+ }
104
+ /**
105
+ * 扫描目录并生成扁平化结构
106
+ */
107
+ scanDirectory(currentPath, rootPath, ig, includeContents) {
108
+ const result = {};
109
+ const scan = (dirPath) => {
110
+ try {
111
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
112
+ for (const entry of entries) {
113
+ const fullPath = path.join(dirPath, entry.name);
114
+ const relativePath = path.relative(rootPath, fullPath);
115
+ // 检查是否应该忽略
116
+ if (entry.isDirectory()) {
117
+ // 对于目录,测试目录路径和目录路径+斜杠两种形式
118
+ if (ig.ignores(relativePath) || ig.ignores(relativePath + '/')) {
119
+ continue;
120
+ }
121
+ // 添加目录信息
122
+ try {
123
+ const stats = fs.statSync(fullPath);
124
+ result[relativePath] = {
125
+ name: entry.name,
126
+ type: 'folder',
127
+ fullPath: relativePath,
128
+ lastModified: stats.mtimeMs,
129
+ };
130
+ }
131
+ catch (error) {
132
+ this.logger.warn(chalk.yellow(`无法读取目录信息 ${fullPath}: ${error}`));
133
+ }
134
+ // 递归扫描子目录
135
+ scan(fullPath);
136
+ }
137
+ else if (entry.isFile()) {
138
+ // 对于文件,直接检查文件路径
139
+ if (ig.ignores(relativePath)) {
140
+ continue;
141
+ }
142
+ // 添加文件信息
143
+ try {
144
+ const stats = fs.statSync(fullPath);
145
+ const isBinary = this.isBinaryFile(fullPath);
146
+ const fileDetails = {
147
+ name: entry.name,
148
+ type: 'file',
149
+ fullPath: relativePath,
150
+ isBinary,
151
+ lastModified: stats.mtimeMs,
152
+ size: stats.size,
153
+ };
154
+ // 如果需要包含内容且不是二进制文件,读取内容
155
+ if (includeContents && !isBinary) {
156
+ try {
157
+ fileDetails.contents = fs.readFileSync(fullPath, 'utf-8');
158
+ }
159
+ catch (error) {
160
+ this.logger.warn(chalk.yellow(`无法读取文件内容 ${fullPath}: ${error}`));
161
+ fileDetails.contents = '';
162
+ }
163
+ }
164
+ result[relativePath] = fileDetails;
165
+ }
166
+ catch (error) {
167
+ this.logger.warn(chalk.yellow(`无法读取文件信息 ${fullPath}: ${error}`));
168
+ }
169
+ }
170
+ }
171
+ }
172
+ catch (error) {
173
+ this.logger.warn(chalk.yellow(`无法读取目录 ${dirPath}: ${error}`));
174
+ }
175
+ };
176
+ scan(currentPath);
177
+ return result;
178
+ }
179
+ /**
180
+ * 判断文件是否为二进制文件
181
+ */
182
+ isBinaryFile(filePath) {
183
+ try {
184
+ // 检查文件扩展名
185
+ const ext = path.extname(filePath).toLowerCase();
186
+ const binaryExtensions = [
187
+ '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.ico', '.webp', '.svg',
188
+ '.pdf', '.zip', '.tar', '.gz', '.rar', '.7z',
189
+ '.mp3', '.mp4', '.avi', '.mov', '.wav',
190
+ '.exe', '.dll', '.so', '.dylib',
191
+ '.woff', '.woff2', '.ttf', '.eot', '.otf',
192
+ '.bin', '.dat', '.db', '.sqlite',
193
+ ];
194
+ if (binaryExtensions.includes(ext)) {
195
+ return true;
196
+ }
197
+ // 读取文件开头的部分字节来判断
198
+ const buffer = Buffer.alloc(512);
199
+ const fd = fs.openSync(filePath, 'r');
200
+ const bytesRead = fs.readSync(fd, buffer, 0, 512, 0);
201
+ fs.closeSync(fd);
202
+ // 检查是否包含空字节(二进制文件的特征)
203
+ for (let i = 0; i < bytesRead; i++) {
204
+ if (buffer[i] === 0) {
205
+ return true;
206
+ }
207
+ }
208
+ return false;
209
+ }
210
+ catch (error) {
211
+ // 如果无法判断,默认为文本文件
212
+ return false;
213
+ }
214
+ }
215
+ validate(_options) {
216
+ return true;
217
+ }
218
+ }
219
+ //# sourceMappingURL=code-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-snapshot.js","sourceRoot":"","sources":["../../src/commands/code-snapshot.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export { InitCommand } from './init.js';
5
5
  export { ConfigCommand } from './config.js';
6
6
  export { ExampleCommand } from './example.js';
7
7
  export { AgentCommand } from './agent.js';
8
+ export { CodeSnapshotCommand } from './code-snapshot.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -5,4 +5,5 @@ export { InitCommand } from './init.js';
5
5
  export { ConfigCommand } from './config.js';
6
6
  export { ExampleCommand } from './example.js';
7
7
  export { AgentCommand } from './agent.js';
8
+ export { CodeSnapshotCommand } from './code-snapshot.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * System prompt for Agent command
3
+ */
4
+ interface SupabaseConfig {
5
+ hasSelectedProject?: boolean;
6
+ projectId?: string;
7
+ publishableKey?: string;
8
+ url?: string;
9
+ }
10
+ export declare function getSystemPrompt(workingDir: string, supabase?: SupabaseConfig): string;
11
+ export {};
12
+ //# sourceMappingURL=system-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/commands/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,cAAc;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA6HD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,cAAc,GACxB,MAAM,CAkJR"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * System prompt for Agent command
3
+ */
4
+ function getDatabaseInstructions(supabase) {
5
+ const hasSupabaseProject = supabase?.hasSelectedProject && supabase?.projectId && supabase?.publishableKey;
6
+ if (!hasSupabaseProject && !supabase) {
7
+ return `
8
+ ## Database Instructions
9
+
10
+ CRITICAL: Use Supabase for databases by default, unless specified otherwise. Supabase can provide login, register, database query, authorization, storage, Edge Functions etc.
11
+
12
+ Supabase project setup handled separately by user!
13
+ `;
14
+ }
15
+ if (supabase && !supabase.hasSelectedProject) {
16
+ return `
17
+ ## Database Instructions
18
+
19
+ CRITICAL: Use Supabase for databases by default, unless specified otherwise. Supabase can provide login, register, database query, authorization, storage, Edge Functions etc.
20
+
21
+ Supabase project setup handled separately by user! No project selected. Remind user to select project in chat box.
22
+ `;
23
+ }
24
+ const envConfig = hasSupabaseProject && supabase.url
25
+ ? ` with:
26
+ VITE_SUPABASE_PROJECT_ID="${supabase.projectId}"
27
+ VITE_SUPABASE_PUBLISHABLE_KEY="${supabase.publishableKey}"
28
+ VITE_SUPABASE_URL="${supabase.url}"`
29
+ : '.';
30
+ return `
31
+ ## Database Instructions
32
+
33
+ CRITICAL: Use Supabase for databases by default, unless specified otherwise. Supabase can provide login, register, database query, authorization, storage, Edge Functions etc.
34
+
35
+ Create .env file if it doesn't exist${envConfig}
36
+
37
+ ### DATA PRESERVATION REQUIREMENTS:
38
+ - DATA INTEGRITY IS HIGHEST PRIORITY - users must NEVER lose data
39
+ - FORBIDDEN: Destructive operations (DROP, DELETE) that could cause data loss
40
+ - FORBIDDEN: Transaction control (BEGIN, COMMIT, ROLLBACK, END)
41
+ Note: DO $$ BEGIN ... END $$ blocks (PL/pgSQL) are allowed
42
+
43
+ ### SQL Migrations - CRITICAL:
44
+ For EVERY database change, provide ONE action:
45
+
46
+ 1. Migration File Creation:
47
+ \`\`\`
48
+ <boltAction type="supabase" operation="migration" filePath="/supabase/migrations/your_migration.sql">
49
+ /* supabase migration content */
50
+ </boltAction>
51
+ \`\`\`
52
+
53
+ ### Migration Rules:
54
+ - NEVER use diffs, ALWAYS provide COMPLETE file content
55
+ - Create new migration file for each change in /home/project/supabase/migrations
56
+ - NEVER update existing migration files
57
+ - Descriptive names without number prefix (e.g., create_users.sql)
58
+ - ALWAYS enable RLS: \`alter table users enable row level security;\`
59
+ - Add appropriate RLS policies for CRUD operations
60
+ - Use default values: DEFAULT false/true, DEFAULT 0, DEFAULT '', DEFAULT now()
61
+ - Start with markdown summary in multi-line comment explaining changes
62
+ - Use IF EXISTS/IF NOT EXISTS for safe operations
63
+
64
+ ### Migration Example:
65
+ \`\`\`sql
66
+ /*
67
+ # Create users table
68
+ 1. New Tables: users (id uuid, email text, created_at timestamp)
69
+ 2. Security: Enable RLS, add read policy for authenticated users
70
+ */
71
+ CREATE TABLE IF NOT EXISTS users (
72
+ id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
73
+ email text UNIQUE NOT NULL,
74
+ created_at timestamptz DEFAULT now()
75
+ );
76
+ ALTER TABLE users ENABLE ROW LEVEL SECURITY;
77
+ CREATE POLICY "Users read own data" ON users FOR SELECT TO authenticated USING (auth.uid() = id);
78
+ \`\`\`
79
+
80
+ ### Client Setup:
81
+ - Use @supabase/supabase-js
82
+ - Create singleton client instance
83
+ - Use environment variables from .env
84
+
85
+ ### Authentication:
86
+ - ALWAYS use email/password signup
87
+ - FORBIDDEN: magic links, social providers, SSO (unless explicitly stated)
88
+ - FORBIDDEN: custom auth systems, ALWAYS use Supabase's built-in auth
89
+ - Email confirmation ALWAYS disabled unless stated
90
+
91
+ ### User Profiles:
92
+ - ALWAYS create public.profiles table linked to auth.users
93
+ - Use: \`user_id uuid REFERENCES auth.users(id) ON DELETE CASCADE UNIQUE NOT NULL\`
94
+ - Include common fields: username, avatar_url, created_at, updated_at
95
+ - Create trigger to auto-insert profile on user signup (INSERT INTO profiles on auth.users INSERT)
96
+
97
+ ### Storage (If the user needs):
98
+ - Use Supabase Storage for file uploads (images, documents, etc.)
99
+ - Create buckets in migrations: \`INSERT INTO storage.buckets (id, name, public) VALUES ('avatars', 'avatars', true)\`
100
+ - ALWAYS add RLS policies for storage.objects table with bucket_id filter
101
+ - Common operations: .upload(), .download(), .getPublicUrl(), .remove(), .list()
102
+ - Organize files with user ID prefix: '{userId}/filename' for private files
103
+
104
+ ### Edge Functions (If the user needs):
105
+ - Use Supabase Edge Functions for server-side logic, background tasks, webhooks, and API integrations
106
+ - Create functions in /supabase/functions/<function-name>/index.ts
107
+ - Use Deno runtime with TypeScript support
108
+ - Import from: 'https://esm.sh/@supabase/supabase-js@2' for Supabase client
109
+ - Access environment variables via Deno.env.get('VARIABLE_NAME')
110
+ - Invoke from client: supabase.functions.invoke('function-name', { body: { ... } })
111
+ - Common use cases: webhooks, scheduled jobs, third-party API calls, complex business logic
112
+ - Return Response object: new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } })
113
+
114
+ ### Security:
115
+ - ALWAYS enable RLS for every new table
116
+ - Create policies based on user authentication
117
+ - One migration per logical change
118
+ - Use descriptive policy names
119
+ - Add indexes for frequently queried columns
120
+ `;
121
+ }
122
+ export function getSystemPrompt(workingDir, supabase) {
123
+ return `
124
+ ## Working Directory Context
125
+
126
+ IMPORTANT: You are working in the directory: ${workingDir}
127
+ All file operations (read, write, create, etc.) MUST be performed in this working directory.
128
+ Do NOT use /tmp or any other system directories. Work exclusively in: ${workingDir}
129
+
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+
132
+ You are needware, an AI editor that creates and modifies web applications. You assist users by chatting with them and making changes to their code in real-time.
133
+
134
+ Not every interaction requires code changes - you're happy to discuss, explain concepts, or provide guidance without modifying the codebase. When code changes are needed, you make efficient and effective updates to React codebases while following best practices for maintainability and readability. You take pride in keeping things simple and elegant. You are friendly and helpful, always aiming to provide clear explanations whether you're making changes or just chatting.
135
+
136
+ Always reply in the same language as the user's message.
137
+
138
+ ## Technology Stack:
139
+ needware projects are built on top of React, Vite, Tailwind CSS, and TypeScript.
140
+ - **Framework**: React
141
+ - **Build Tool**: Vite
142
+ - **Styling**: Tailwind CSS (with design system tokens)
143
+ - **TypeScript**: Strict mode enabled
144
+ - **Package Manager**: npm
145
+
146
+ ${getDatabaseInstructions(supabase)}
147
+
148
+ ## Project Structure:
149
+ - **Entry HTML**: \`index.html\` at project root (Vite entry point)
150
+ - **Source code**: All in \`src/\` directory
151
+ - \`main.tsx\`: React application entry point
152
+ - \`App.tsx\`: Main App component
153
+ - \`index.css\`: Global styles and design system tokens
154
+ - \`assets/\`: Static assets (images, icons, etc.)
155
+ - \`components/\`: Reusable UI components (create if needed)
156
+ - \`hooks/\`: Custom React hooks (create if needed)
157
+ - \`types/\`: TypeScript type definitions (create if needed)
158
+ - \`utils/\`: Utility functions (create if needed)
159
+ - **Public assets**: \`public/\` directory (served at root during dev/build)
160
+ - **Tailwind config**: \`tailwind.config.ts\` for design system customization
161
+
162
+ ## Development Commands:
163
+ - \`npm run dev\`: Start dev server
164
+ - \`npm run build\`: Build for production
165
+ - \`npm run preview\`: Preview production build
166
+ - \`npm run lint\`: Run ESLint
167
+
168
+ ## General Guidelines
169
+
170
+ PERFECT ARCHITECTURE: Always consider whether the code needs refactoring given the latest request. If it does, refactor the code to be more efficient and maintainable. Spaghetti code is your enemy.
171
+
172
+ MAXIMIZE EFFICIENCY: For maximum efficiency, whenever you need to perform multiple independent operations, always invoke all relevant tools simultaneously. Never make sequential tool calls when they can be combined.
173
+
174
+ CHECK UNDERSTANDING: If unsure about scope, ask for clarification rather than guessing. When you ask a question to the user, make sure to wait for their response before proceeding and calling tools.
175
+
176
+ BE CONCISE: You MUST answer concisely with fewer than 2 lines of text (not including tool use or code generation), unless user asks for detail. After editing code, do not write a long explanation, just keep it as short as possible without emojis.
177
+
178
+ COMMUNICATE ACTIONS: Before performing any changes, briefly inform the user what you will do.
179
+
180
+ ## Required Workflow (Follow This Order)
181
+
182
+ 1. DEFAULT TO DISCUSSION MODE: Assume the user wants to discuss and plan rather than implement code. Only proceed to implementation when they use explicit action words like "implement," "code," "create," "add," etc.
183
+
184
+ 2. THINK & PLAN: When thinking about the task, you should:
185
+ - Restate what the user is ACTUALLY asking for (not what you think they might want)
186
+ - Do not hesitate to explore more of the codebase to find relevant information
187
+ - Define EXACTLY what will change and what will remain untouched
188
+ - Plan a minimal but CORRECT approach needed to fulfill the request
189
+ - Select the most appropriate and efficient tools
190
+
191
+ 3. ASK CLARIFYING QUESTIONS: If any aspect of the request is unclear, ask for clarification BEFORE implementing. Wait for their response before proceeding and calling tools.
192
+
193
+ 4. GATHER CONTEXT EFFICIENTLY:
194
+ - ALWAYS batch multiple file operations when possible
195
+ - Only read files directly relevant to the request
196
+
197
+ 5. IMPLEMENTATION (when relevant):
198
+ - Focus on the changes explicitly requested
199
+ - Create small, focused components instead of large files
200
+ - Avoid fallbacks, edge cases, or features not explicitly requested
201
+
202
+ 6. VERIFY & CONCLUDE:
203
+ - Ensure all changes are complete and correct
204
+ - Conclude with a very concise summary of the changes you made
205
+ - Avoid emojis
206
+
207
+ ## Efficient Tool Usage
208
+
209
+ ### CARDINAL RULES:
210
+ 1. ALWAYS batch multiple operations when possible
211
+ 2. NEVER make sequential tool calls that could be combined
212
+ 3. Use the most appropriate tool for each task
213
+
214
+ ### EFFICIENT CODE MODIFICATION
215
+ Choose the least invasive approach:
216
+ - Use search-replace for most changes
217
+ - Use write-file only for new files or complete rewrites
218
+
219
+ ## Coding Standards:
220
+ - **Always use TypeScript** with proper type definitions
221
+ - Use **functional components** with hooks
222
+ - Use **modern React patterns**: useState, useEffect, useCallback, useMemo, etc.
223
+ - Use **ES modules** (import/export)
224
+ - Follow **React best practices**: component composition, prop drilling avoidance, etc.
225
+ - ALWAYS generate beautiful and responsive designs
226
+ - Use toast components to inform the user about important events
227
+
228
+ ## Design System (CRITICAL):
229
+ The design system is everything. You should never write custom styles in components, you should always use the design system and customize it.
230
+
231
+ - **Maximize reusability** of components
232
+ - **Leverage index.css and tailwind.config.ts** to create a consistent design system that can be reused across the app instead of custom styles everywhere
233
+ - **Create variants** in the components you'll use
234
+ - **USE SEMANTIC TOKENS FOR COLORS**: It's important you follow best practices. DO NOT use direct colors like text-white, text-black, bg-white, bg-black, etc. Everything must be themed via the design system defined in the index.css and tailwind.config.ts files!
235
+
236
+ ## File Naming Conventions:
237
+ - **Components**: PascalCase (e.g., \`UserProfile.tsx\`)
238
+ - **Hooks**: camelCase starting with 'use' (e.g., \`useAuth.ts\`)
239
+ - **Types**: PascalCase (e.g., \`User.ts\` or \`types.ts\`)
240
+ - **Utils**: camelCase (e.g., \`formatDate.ts\`)
241
+ - **CSS Modules**: \`ComponentName.module.css\`
242
+
243
+ ## Import Paths:
244
+ - Use relative imports (e.g., \`import { X } from './components/X'\`)
245
+ - Or configure path aliases in \`vite.config.ts\` and \`tsconfig.json\` if needed
246
+
247
+ ## Design Guidelines:
248
+ - Create **beautiful, modern, production-ready** UI designs
249
+ - Ensure responsive layouts (mobile-first approach)
250
+ - Implement proper error handling and loading states
251
+ - Follow accessibility best practices (semantic HTML, ARIA labels, keyboard navigation)
252
+ - Use modern CSS features (flexbox, grid, custom properties)
253
+ - Maximize reusability of components
254
+ - Pay attention to contrast, color, and typography
255
+ - Beautiful designs are your top priority
256
+ - **Image placeholders**: If no image URL is provided, use an Unsplash image as a substitute based on the scene
257
+
258
+ ## Important Rules:
259
+ - When installing new packages, use \`npm install\` (not yarn or pnpm)
260
+ - Always maintain TypeScript type safety
261
+ - Hot Module Replacement (HMR) is enabled by default with Vite
262
+ - For production builds, assets are optimized and hashed automatically
263
+ - Keep explanations very, very short
264
+ - Minimize emoji use
265
+ - Make sure to write valid TypeScript and CSS code following the design system
266
+ - Make sure imports are correct
267
+ `.trim();
268
+ }
269
+ //# sourceMappingURL=system-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/commands/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,SAAS,uBAAuB,CAAC,QAAyB;IACxD,MAAM,kBAAkB,GAAG,QAAQ,EAAE,kBAAkB,IAAI,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,cAAc,CAAC;IAE3G,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO;;;;;;CAMV,CAAC;IACA,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC7C,OAAO;;;;;;CAMV,CAAC;IACA,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,IAAI,QAAQ,CAAC,GAAG;QAClD,CAAC,CAAC;8BACwB,QAAQ,CAAC,SAAS;mCACb,QAAQ,CAAC,cAAc;uBACnC,QAAQ,CAAC,GAAG,GAAG;QAClC,CAAC,CAAC,GAAG,CAAC;IAER,OAAO;;;;;sCAK6B,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF9C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,QAAyB;IAEzB,OAAO;;;+CAGsC,UAAU;;wEAEe,UAAU;;;;;;;;;;;;;;;;;;EAkBhF,uBAAuB,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAyHxB,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/core/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AAI/C,qBAAa,GAAG;IACd,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAS5C;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAuDvC;;OAEG;IACG,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAmCjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/core/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AAI/C,qBAAa,GAAG;IACd,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAS5C;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA+DvC;;OAEG;IACG,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAmCjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC"}
package/dist/core/cli.js CHANGED
@@ -59,6 +59,13 @@ export class CLI {
59
59
  .option('--base-url <url>', 'Anthropic API Base URL (overrides ANTHROPIC_BASE_URL env var)')
60
60
  .option('--claude-code-path <path>', 'Path to Claude Code executable (optional)');
61
61
  }
62
+ // 为 code-snapshot 命令添加特定选项
63
+ if (command.name === 'code-snapshot') {
64
+ commandInstance
65
+ .option('-d, --dir <path>', 'Specify target directory (default: current directory)')
66
+ .option('--directory <path>', 'Alias for --dir')
67
+ .option('-o, --output <path>', 'Save snapshot to file (default: stdout)');
68
+ }
62
69
  commandInstance.action(async (...args) => {
63
70
  try {
64
71
  const commandObject = args[args.length - 1];
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/core/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/core/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAC;AAiGxD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAC;AAqGxD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { CLI } from './core/cli.js';
6
6
  import { Logger } from './core/logger.js';
7
7
  import { ConfigManager } from './utils/config.js';
8
8
  import { SDKManager, ExampleSDK } from './sdk/index.js';
9
- import { InitCommand, ConfigCommand, ExampleCommand, AgentCommand } from './commands/index.js';
9
+ import { InitCommand, ConfigCommand, ExampleCommand, AgentCommand, CodeSnapshotCommand } from './commands/index.js';
10
10
  import { FileUtils } from './utils/file.js';
11
11
  import { createRequire } from 'module';
12
12
  import { fileURLToPath } from 'url';
@@ -55,6 +55,9 @@ function registerCommands(cli, logger, configManager, sdkManager) {
55
55
  // Agent 命令
56
56
  const agentCommand = new AgentCommand(logger);
57
57
  cli.registerCommand(agentCommand);
58
+ // Code Snapshot 命令
59
+ const codeSnapshotCommand = new CodeSnapshotCommand(logger);
60
+ cli.registerCommand(codeSnapshotCommand);
58
61
  }
59
62
  /**
60
63
  * 主函数
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,CAAC;AACV,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC;;GAEG;AACH,SAAS,gBAAgB,CAAC,aAA4B;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAiB,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,aAA4B,EAAE,MAAc;IACxE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IAEzC,iBAAiB;IACjB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/D,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,GAAQ,EACR,MAAc,EACd,aAA4B,EAC5B,UAAsB;IAEtB,QAAQ;IACR,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAEjC,OAAO;IACP,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/D,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAEnC,OAAO;IACP,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAEpC,WAAW;IACX,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,WAAW;QACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,aAAa;QACb,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAE/C,kBAAkB;QAClB,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAE/D,YAAY;QACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAErC,SAAS;QACT,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QAEzD,SAAS;QACT,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,yBAAyB;AACzB,0BAA0B;AAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AACnD,MAAM,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AAE9C,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,CAAC;AACV,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC;;GAEG;AACH,SAAS,gBAAgB,CAAC,aAA4B;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAiB,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,aAA4B,EAAE,MAAc;IACxE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IAEzC,iBAAiB;IACjB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/D,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,GAAQ,EACR,MAAc,EACd,aAA4B,EAC5B,UAAsB;IAEtB,QAAQ;IACR,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAEjC,OAAO;IACP,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/D,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAEnC,OAAO;IACP,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAEpC,WAAW;IACX,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAElC,mBAAmB;IACnB,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5D,GAAG,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,WAAW;QACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,aAAa;QACb,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAE/C,kBAAkB;QAClB,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAE/D,YAAY;QACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAErC,SAAS;QACT,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QAEzD,SAAS;QACT,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,yBAAyB;AACzB,0BAA0B;AAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AACnD,MAAM,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AAE9C,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "needware-cli",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "description": "一个功能强大的 Node.js 命令行工具",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -41,6 +41,7 @@
41
41
  "chalk": "^4.1.2",
42
42
  "commander": "^11.1.0",
43
43
  "dotenv": "^16.3.1",
44
+ "ignore": "^7.0.5",
44
45
  "inquirer": "^8.2.5",
45
46
  "ora": "^5.4.1"
46
47
  },
@@ -68,3 +68,4 @@ echo ""
68
68
 
69
69
 
70
70
 
71
+
@@ -1,247 +0,0 @@
1
- # 图片转换功能总结
2
-
3
- ## 🎉 已完成的功能
4
-
5
- 本次更新为 needware-cli 添加了完整的图片处理功能,包括本地文件转换、远程URL下载转换,以及自动检测转换。
6
-
7
- ## 📦 核心功能列表
8
-
9
- ### 1. 本地图片转换为 Base64
10
-
11
- **功能**: 将本地图片文件转换为 Claude API 所需的 base64 格式
12
-
13
- **API**:
14
- - `convertImageToBase64(imagePath: string)` - 单个图片转换
15
- - `convertImagesToBase64(imagePaths: string[])` - 批量转换
16
- - `isImageFile(filePath: string)` - 检查是否为图片文件
17
-
18
- **支持格式**: JPEG, PNG, GIF, WebP
19
-
20
- **示例**:
21
- ```typescript
22
- const imageBlock = await convertImageToBase64('./photo.jpg');
23
- // 输出: { type: "image", source: { type: "base64", media_type: "image/jpeg", data: "..." } }
24
- ```
25
-
26
- ### 2. 远程 URL 图片转换为 Base64
27
-
28
- **功能**: 从远程 URL 下载图片并转换为 base64 格式
29
-
30
- **API**:
31
- - `convertRemoteImageToBase64(imageUrl: string)` - 单个远程图片转换
32
- - `convertRemoteImagesToBase64(imageUrls: string[])` - 批量远程图片转换
33
-
34
- **特性**:
35
- - ✅ 支持 HTTP/HTTPS 协议
36
- - ✅ 自动处理重定向(301/302)
37
- - ✅ 自动识别图片类型
38
- - ✅ 错误处理和日志记录
39
-
40
- **示例**:
41
- ```typescript
42
- const imageBlock = await convertRemoteImageToBase64('https://example.com/photo.jpg');
43
- ```
44
-
45
- ### 3. 智能图片转换(自动检测)
46
-
47
- **功能**: 自动检测输入是本地文件还是远程 URL,并进行相应转换
48
-
49
- **API**:
50
- - `convertImageToBase64Smart(imagePath: string)` - 智能单个转换
51
- - `convertImagesToBase64Smart(imagePaths: string[])` - 智能批量转换
52
-
53
- **特性**:
54
- - ✅ 自动识别 URL 或本地路径
55
- - ✅ 可混合处理本地和远程图片
56
- - ✅ 统一的 API 接口
57
-
58
- **示例**:
59
- ```typescript
60
- // 自动识别本地文件
61
- await convertImageToBase64Smart('./photo.jpg');
62
-
63
- // 自动识别远程 URL
64
- await convertImageToBase64Smart('https://example.com/photo.jpg');
65
-
66
- // 混合处理
67
- await convertImagesToBase64Smart([
68
- './local.jpg',
69
- 'https://example.com/remote.jpg'
70
- ]);
71
- ```
72
-
73
- ### 4. 🔥 自动转换消息中的图片 URL
74
-
75
- **功能**: 在解析用户消息时,自动将 `type: "url"` 的图片源转换为 `type: "base64"`
76
-
77
- **支持的消息格式**:
78
- 1. 简化用户消息格式(`{ user: { content: [...] } }`)
79
- 2. SDK 标准消息格式(`SDKUserMessage`)
80
- 3. 从 JSON 文件读取的消息
81
- 4. 双重编码的 JSON 消息
82
-
83
- **转换过程**:
84
- ```
85
- 输入: { type: "image", source: { type: "url", url: "https://..." } }
86
- ↓ 自动下载和转换
87
- 输出: { type: "image", source: { type: "base64", media_type: "image/jpeg", data: "..." } }
88
- ```
89
-
90
- **使用方式**:
91
- ```bash
92
- # 直接在命令行使用 URL 图片
93
- needware-cli agent '{
94
- "user": {
95
- "content": [
96
- {"type": "text", "text": "分析这张图片"},
97
- {"type": "image", "source": {"type": "url", "url": "https://example.com/photo.jpg"}}
98
- ]
99
- }
100
- }'
101
-
102
- # 从文件读取(自动转换)
103
- needware-cli agent message.json
104
- ```
105
-
106
- ## 📁 新增文件
107
-
108
- ### 源代码
109
- - `src/utils/prompt-parser.ts` - **已更新**,添加图片转换功能
110
-
111
- ### 示例文件
112
- - `examples/image-conversion-example.ts` - 完整的使用示例
113
- - `examples/auto-convert-url-to-base64.json` - 自动转换示例
114
-
115
- ### 文档
116
- - `docs/IMAGE_CONVERSION.md` - 图片转换 API 完整文档
117
- - `docs/AUTO_IMAGE_CONVERSION.md` - 自动转换功能详细文档
118
- - `docs/IMAGE_URL_TO_BASE64_QUICKSTART.md` - 快速开始指南
119
- - `IMAGE_FEATURE_SUMMARY.md` - 本文档(功能总结)
120
-
121
- ### 更新的文档
122
- - `README.md` - **已更新**,添加图片转换功能说明
123
-
124
- ## 🎯 输出格式
125
-
126
- 所有转换函数统一返回 `ImageContentBlock` 类型:
127
-
128
- ```typescript
129
- interface ImageContentBlock {
130
- type: 'image';
131
- source: {
132
- type: 'base64';
133
- media_type: 'image/jpeg' | 'image/png' | 'image/gif' | 'image/webp';
134
- data: string; // base64 编码的图片数据
135
- };
136
- }
137
- ```
138
-
139
- 这个格式完全符合 Anthropic Claude API 的要求。
140
-
141
- ## ✨ 核心特性
142
-
143
- 1. **自动化**: 无需手动转换,系统自动处理 URL 图片
144
- 2. **智能识别**: 自动区分本地文件和远程 URL
145
- 3. **错误容错**: 转换失败时保留原始格式,不中断流程
146
- 4. **多格式支持**: JPEG、PNG、GIF、WebP
147
- 5. **批量处理**: 支持一次处理多张图片
148
- 6. **完整日志**: 详细的转换过程日志
149
- 7. **类型安全**: 完整的 TypeScript 类型定义
150
-
151
- ## 🔧 技术实现
152
-
153
- ### 关键函数
154
-
155
- 1. `convertImageUrlsToBase64InData(data)` - 转换数据中的图片 URL
156
- 2. `convertImageUrlsInContent(content)` - 转换内容数组中的图片
157
- 3. `downloadImage(imageUrl)` - 下载远程图片
158
- 4. `getImageMediaTypeFromUrl(url)` - 获取图片 MIME 类型
159
-
160
- ### 集成点
161
-
162
- 图片 URL 自动转换已集成到以下位置:
163
-
164
- 1. ✅ `parsePrompt()` - 字符串 JSON 解析
165
- 2. ✅ `parsePromptFromFile()` - 文件读取解析
166
- 3. ✅ 双重编码 JSON 处理
167
- 4. ✅ SDK 和简化消息格式
168
-
169
- ## 📊 使用统计
170
-
171
- ### 新增 API 函数:11 个
172
- - `convertImageToBase64`
173
- - `convertImagesToBase64`
174
- - `convertRemoteImageToBase64`
175
- - `convertRemoteImagesToBase64`
176
- - `convertImageToBase64Smart`
177
- - `convertImagesToBase64Smart`
178
- - `isImageFile`
179
- - `convertImageUrlsToBase64InData` (内部)
180
- - `convertImageUrlsInContent` (内部)
181
- - `downloadImage` (内部)
182
- - `getImageMediaTypeFromUrl` (内部)
183
-
184
- ### 新增文档:4 个
185
- - API 参考文档
186
- - 自动转换文档
187
- - 快速开始指南
188
- - 功能总结文档
189
-
190
- ### 示例代码:2 个
191
- - TypeScript 示例代码
192
- - JSON 消息示例
193
-
194
- ## 🚀 快速开始
195
-
196
- ```bash
197
- # 1. 使用 URL 图片(自动转换)
198
- needware-cli agent '{
199
- "user": {
200
- "content": [
201
- {"type": "text", "text": "根据图片一比一还原应用"},
202
- {"type": "image", "source": {"type": "url", "url": "https://example.com/design.png"}}
203
- ]
204
- }
205
- }'
206
-
207
- # 2. 使用示例文件
208
- needware-cli agent examples/auto-convert-url-to-base64.json
209
-
210
- # 3. 在代码中手动转换
211
- import { convertRemoteImageToBase64 } from 'needware-cli/utils/prompt-parser';
212
- const imageBlock = await convertRemoteImageToBase64('https://example.com/photo.jpg');
213
- ```
214
-
215
- ## 📖 文档导航
216
-
217
- - 🔥 [快速开始](docs/IMAGE_URL_TO_BASE64_QUICKSTART.md) - 最快上手
218
- - 📚 [自动转换详解](docs/AUTO_IMAGE_CONVERSION.md) - 深入了解自动转换
219
- - 🔧 [API 参考](docs/IMAGE_CONVERSION.md) - 完整 API 文档
220
- - 💡 [代码示例](examples/image-conversion-example.ts) - 实际代码示例
221
-
222
- ## ✅ 测试验证
223
-
224
- - ✅ TypeScript 编译通过
225
- - ✅ 无 Linter 错误
226
- - ✅ 类型定义完整
227
- - ✅ 文档完整
228
-
229
- ## 🎉 总结
230
-
231
- 本次更新为 needware-cli 添加了完整的图片处理能力:
232
-
233
- 1. **本地图片** → Base64 ✅
234
- 2. **远程图片** → Base64 ✅
235
- 3. **智能检测** → 自动处理 ✅
236
- 4. **自动转换** → 无缝集成 ✅
237
-
238
- 现在您可以:
239
- - 直接在消息中使用图片 URL,系统自动处理
240
- - 手动转换本地或远程图片
241
- - 智能批量处理混合来源的图片
242
- - 享受完整的类型安全和错误处理
243
-
244
- **所有功能已就绪,可以立即使用!** 🚀
245
-
246
-
247
-