AI Sales Script Generator
Run ID: 69bcab3577c0421c0bf4a8882026-03-29Business
PantheraHive BOS
BOS Dashboard

Generate conversion-optimized sales scripts for cold calls, demos, follow-ups, and objection handling with industry-specific language.

AI Sales Script Generator Workflow Execution

Workflow Name: AI Sales Script Generator

Category: Business

Step: 1 of 2: Generate


User Inputs Summary

  • Product/Service Name: Test Product/Service
  • Script Type: Cold Call
  • Target Audience: Test Target Audience
  • Key Benefits: This is a test input for the AI Sales Script Generator workflow. Please generate comprehensive output. (Interpreted as a directive to generate comprehensive benefits relevant to a generic "Test Product/Service" to ensure a robust script.)
  • Tone: Professional

Generated Sales Script: Cold Call

Product/Service: Test Product/Service

Target Audience: Test Target Audience

Tone: Professional

(Assumed Key Benefits for "Test Product/Service" based on comprehensive output request: Enhanced operational efficiency, significant cost savings, improved data-driven decision making, and competitive advantage through innovation.)


[Script Title]: Professional Cold Call for Test Product/Service

Objective: Secure a brief follow-up meeting or demo to discuss specific needs and demonstrate the Test Product/Service.

Estimated Call Duration: 2-3 minutes


1. Opening & Permission (The Hook)

  • Caller: "Good morning/afternoon [Prospect's Name], my name is [Your Name] from [Your Company Name]. I understand you're incredibly busy, but I wanted to make a quick, professional introduction regarding [Test Product/Service]. Do you have about 30 seconds for me to explain why I called?"

Alternative (if direct line):* "Good morning/afternoon [Prospect's Name], my name is [Your Name] from [Your Company Name]. I'm calling today because our research indicates that [Test Target Audience] like yourself are often looking for ways to [mention a common pain point related to assumed benefits, e.g., 'optimize their operational efficiency and reduce overheads']. Does that resonate with you at all?"

2. Value Proposition (The "Why You Should Care")

  • Caller: "Thank you. At [Your Company Name], we specialize in providing the [Test Product/Service] which is designed to help organizations like yours, specifically within [Test Target Audience], to significantly enhance operational efficiency, achieve substantial cost savings, and enable more robust, data-driven decision-making."

* "Many of our clients, similar to your profile, have seen tangible improvements in [mention a specific, high-level result, e.g., 'reducing manual errors by 40% or cutting operational expenditures by 15%'] within the first few months of implementation."

3. Discovery Question (Qualifying & Engagement)

  • Caller: "While I don't know your specific situation, I imagine that challenges related to [mention a pain point addressed by Test Product/Service, e.g., 'inefficient workflows or unoptimized resource allocation'] are common. Is [optimizing efficiency / reducing costs / improving decision-making] something your team is currently focused on?"

Listen carefully to their response. If they express interest or acknowledge the pain point, proceed.*

If they deny/are hesitant:* "I understand. Perhaps it's not a top priority right now, but many find that even a brief exploration can uncover unexpected opportunities. Would you be open to hearing how others in your industry are tackling these challenges?"

4. Call to Action (The Next Step)

  • Caller: "My goal today isn't to take up much of your time, but rather to see if there's a potential fit. Would you be open to a brief, 15-minute online meeting next week, perhaps Tuesday or Thursday, where we could quickly explore how [Test Product/Service] could specifically benefit [Prospect's Company Name] and address your unique challenges?"

Offer specific times:* "I have availability at 10:00 AM on Tuesday or 2:00 PM on Thursday. Do either of those work for you?"

5. Objection Handling (Pre-emptive & Responsive)

  • If they say: "Send me an email."

* Caller: "Absolutely, I can certainly send you some information. To ensure I send you the most relevant details, could you tell me which aspect of [Test Product/Service] – perhaps the efficiency gains, cost savings, or improved decision-making – is most intriguing to you right now? That way, I can tailor the information specifically to your potential needs. And perhaps a quick 15-minute call after you've reviewed it could clarify any initial questions?"

  • If they say: "We're not interested/We're happy with our current solution."

Caller: "I completely understand and appreciate your candidness. Many of our clients felt the same way before discovering how [Test Product/Service] could provide an additional* layer of value or address an overlooked area. Could I briefly share one innovative way we've helped other [Test Target Audience] companies achieve [specific benefit, e.g., 'a 20% reduction in a specific operational cost'] that their existing solutions couldn't?"

  • If they say: "I don't have time."

* Caller: "I respect that completely, and I wouldn't want to take up your valuable time unnecessarily. Perhaps a very quick, 5-minute call at a later date, or even just a brief email summary of our core value proposition, would be more suitable? My aim is simply to provide information that might be beneficial."

6. Closing

  • If meeting is secured: "Excellent, [Prospect's Name]. I'll send a calendar invite immediately for [Date] at [Time]. It will be a [15-minute] virtual meeting where we can discuss your current processes and how [Test Product/Service] can potentially align with your strategic goals. Looking forward to speaking with you then."
  • If no meeting, but interest shown in email: "Thank you for your time, [Prospect's Name]. I'll send that tailored email over shortly. Please feel free to reach out if anything stands out, and I'll follow up in a few days."
  • If no interest: "Thank you for your time, [Prospect's Name]. I appreciate you taking my call. Have a good day."

Sales Script Breakdown & Best Practices

This script is designed for a professional, concise, and value-driven cold call.

  1. Opening & Permission:

* Purpose: To gain permission to speak, acknowledge their busy schedule, and create an immediate, respectful connection. The "30 seconds" offer is a low-commitment ask.

* Best Practice: Deliver with confidence and a friendly, professional tone. Be prepared for either a "yes" or a "no" to the 30-second ask. If "no," respect it and politely end the call.

  1. Value Proposition:

* Purpose: To quickly articulate the core benefits of the Test Product/Service relevant to the target audience, without diving into features. It answers "What's in it for me?"

* Best Practice: Be specific with high-level results (e.g., "40% reduction") to make the benefits tangible, even if they are assumed for this test. Connect directly to the pain points of the Test Target Audience.

  1. Discovery Question:

* Purpose: To engage the prospect, uncover their needs, and qualify their interest. It shifts the conversation from a monologue to a dialogue.

* Best Practice: Ask open-ended questions. Listen actively to their response; it will guide the rest of your conversation and help tailor your pitch.

  1. Call to Action (CTA):

* Purpose: To clearly state the desired next step (e.g., a brief meeting/demo) and make it easy for the prospect to agree by offering specific, low-commitment options.

* Best Practice: Be direct and offer a clear, small next step. Avoid asking for a commitment that is too large (e.g., "Are you ready to buy?"). Offer two specific times to make scheduling easier.

  1. Objection Handling:

* Purpose: To address common cold call objections gracefully and pivot back to the value proposition or next step.

* Best Practice: Empathize with the prospect's objection, then reframe or offer a different perspective. Don't argue. Always try to re-engage with a question or a smaller ask.

  1. Closing:

* Purpose: To solidify the next steps or conclude the call professionally, regardless of the outcome.

* Best Practice: Confirm details if a meeting is set. End on a positive and professional note.


Actionable Recommendations

  1. Personalization is Key: Before each call, research the specific company and prospect. Tailor the opening and discovery questions to their industry, recent news, or stated goals.
  2. Practice and Role-Play: Rehearse the script until it sounds natural, not robotic. Practice handling common objections with colleagues.
  3. Active Listening: Pay close attention to the prospect's tone, hesitations, and direct answers. This will inform how you adapt the script in real-time.
  4. Tone and Delivery: Maintain a confident, enthusiastic, yet professional and respectful tone. Speak clearly and at a moderate pace.
  5. CRM Integration: Log all calls, outcomes, and notes immediately in your CRM system. This ensures proper follow-up and data tracking.
  6. A/B Test Openings: Experiment with different opening lines to see which generates the best engagement rates for your Test Target Audience.
  7. Follow-Up Strategy: Have a clear follow-up plan for prospects who request an email or show some interest but don't commit to a meeting immediately. This should include a series of value-driven emails.
  8. Refine Benefits: As you gather more real-world feedback, refine the "Key Benefits" section with more specific, quantifiable results from actual Test Product/Service users.

This comprehensive output provides a ready-to-use cold call script, explains its components, and offers practical advice for effective implementation.

Step 2: projectmanager

AI Sales Script: Cold Call

This comprehensive cold call script is designed for "Test Product/Service" to engage "Test Target Audience" with a professional tone, highlighting the core benefit of generating comprehensive output.


1. Script Overview

This script focuses on a permission-based opening, quick value proposition, and discovery questions to qualify the prospect before proposing a clear next step. It emphasizes efficiency, completeness, and actionable insights as the primary benefits of "Test Product/Service."

Workflow Inputs Used:

  • Product Name: Test Product/Service
  • Script Type: Cold Call
  • Target Audience: Test Target Audience
  • Key Benefits: The ability to generate comprehensive output, ensuring completeness, accuracy, and actionable insights, thereby saving time and improving decision-making. (Interpreted from "This is a test input for the AI Sales Script Generator workflow. Please generate comprehensive output.")
  • Tone: Professional

2. The Cold Call Script

(Time Estimate: 1-3 minutes)

Stage 1: Opening & Permission (Approx. 15-30 seconds)

  • Goal: Introduce yourself, your company, and gain permission to continue the conversation.
  • Key Phrases:

* "Good morning/afternoon [Prospect's Name],"

* "My name is [Your Name] from [Your Company Name]."

* "I'm calling because we work with organizations like yours to [briefly state a high-level benefit related to comprehensive output, e.g., streamline their information generation processes and ensure they have all the data they need to make informed decisions]."

* "Did I catch you at an opportune moment for a quick 60-second introduction?"

Script Example:

> "Good morning/afternoon [Prospect's Name], my name is [Your Name] from [Your Company Name]. I'm calling because we work with organizations like yours to significantly enhance their ability to generate comprehensive, actionable outputs, ensuring all critical information is readily available. Did I catch you at an opportune moment for a quick 60-second introduction?"

Stage 2: Hook & Value Proposition (Approx. 30-45 seconds)

  • Goal: Briefly articulate a common pain point relevant to the target audience and introduce how "Test Product/Service" addresses it, linking to the key benefit.
  • Key Phrases:

* "Many professionals we speak with in [Test Target Audience's Industry/Role] often struggle with..."

* "This typically leads to..."

* "Our 'Test Product/Service' is designed to address this by..."

* "Specifically, it helps you generate truly comprehensive output, meaning you get..."

Script Example:

> "Great, thank you. Many professionals we speak with in roles similar to yours often struggle with the challenge of ensuring their generated reports, analyses, or plans are truly comprehensive, complete, and immediately actionable. This can often lead to fragmented information, wasted time compiling data, or even missed opportunities due to incomplete insights.

>

> Our 'Test Product/Service' is specifically designed to address this by providing a robust framework that guarantees comprehensive output across all your critical processes. This means you gain clarity, save significant time in data aggregation, and can make more confident, data-driven decisions."

Stage 3: Discovery Questions (Approx. 45-60 seconds)

  • Goal: Understand the prospect's current situation, pain points, and needs related to information generation and comprehensive output.
  • Key Phrases:

* "Could you share a bit about how your team currently handles..."

* "What challenges, if any, do you face in ensuring the completeness of your [reports/analyses/planning documents]?"

* "How critical is it for your decision-making process to have truly comprehensive and actionable insights?"

Script Example:

> "To better understand if 'Test Product/Service' could be a valuable asset for your team, I have a couple of quick questions.

>

> First, could you share a bit about how your team currently approaches generating critical outputs, such as [mention a relevant output type, e.g., market analyses, project plans, or performance reports]?

>

> And what challenges, if any, do you currently face in ensuring the completeness, accuracy, and actionable nature of these outputs?"

Stage 4: Tailored Pitch & Benefit Reinforcement (Approx. 30 seconds)

  • Goal: Briefly explain how "Test Product/Service" specifically helps based on their answers, reinforcing the 'comprehensive output' benefit.
  • Key Phrases:

* "Based on what you've shared about [mention their pain point], 'Test Product/Service' could be particularly beneficial because..."

* "It helps you overcome [their specific challenge] by ensuring you consistently receive comprehensive output, which means..."

Script Example (Adapt based on prospect's answers):

> (If they mention issues with incomplete data): "Thank you for that insight. It sounds like ensuring all necessary data points are included in your outputs is a significant hurdle. 'Test Product/Service' is specifically engineered to integrate seamlessly into your existing workflows, guaranteeing a holistic data collection and generation process, so you consistently receive that comprehensive output you need, reducing the risk of oversight."

>

> (If they mention time spent compiling): "I understand completely. The time spent manually compiling and verifying information can be substantial. With 'Test Product/Service', our users report significant time savings because the system automates the aggregation and structuring of information, delivering a comprehensive output that's ready for immediate use."

Stage 5: Call to Action (Approx. 15-30 seconds)

  • Goal: Propose a clear, low-commitment next step.
  • Key Phrases:

* "Given what we've discussed, I believe a brief demonstration would be the most effective way to show you exactly how 'Test Product/Service' can benefit your team."

* "Would you be open to a 15-minute virtual meeting next week, perhaps [Day] or [Day]?"

* "Alternatively, I could send you a brief information packet..."

Script Example:

> "Based on our brief conversation, I believe 'Test Product/Service' could significantly enhance your team's ability to consistently generate comprehensive and actionable outputs.

>

> Would you be open to a brief, 15-minute virtual meeting next week, perhaps on [Day of the week, e.g., Tuesday] or [Another day, e.g., Thursday], to see a quick demonstration of how it specifically delivers this comprehensive output and addresses your particular challenges?"

Stage 6: Closing (Approx. 10 seconds)

  • Goal: Thank them for their time and confirm the next steps.
  • Key Phrases:

* "Thank you for your time, [Prospect's Name]. I'll send you a calendar invite shortly."

* "I look forward to speaking with you then."

Script Example:

> "Perfect, thank you, [Prospect's Name]. I'll send over a calendar invitation with the details shortly. I look forward to our discussion."

>

> (If they decline the meeting): "Understood. Thank you for your honesty and your time today. Would it be alright if I sent you a brief email with some more information on how 'Test Product/Service' helps organizations like yours achieve comprehensive output, in case it becomes relevant in the future?"


3. Anticipated Objections & Handling

This section provides professional responses to common cold call objections.

  • Objection 1: "I'm not interested."

* Response: "I understand, and I appreciate your directness. Could I ask briefly, is it that you're not interested in exploring solutions that ensure comprehensive and actionable output, or is it just not the right time for that conversation?" (This opens the door to understanding their actual disinterest).

* Alternative: "That's perfectly fine. Many of our current clients initially felt the same way until they saw how 'Test Product/Service' specifically helped them [reiterate a key benefit, e.g., eliminate fragmented data and save hours on reporting]. Would you be open to a quick 30-second explanation of how we achieve that, just in case?"

  • Objection 2: "We're happy with our current solution/process."

* Response: "That's great to hear! It sounds like you have a solid foundation. Many of our clients also had established processes, but found that 'Test Product/Service' offered an additional layer of [specific benefit, e.g., automated comprehensiveness or deeper analytical output] that wasn't available elsewhere. How do you currently ensure complete and truly actionable output across all your projects?"

  • Objection 3: "Just send me an email."

* Response: "I'd be happy to send you an email, [Prospect's Name]. To ensure I send you the most relevant information and highlight how 'Test Product/Service' specifically helps with comprehensive output in your area, could you quickly tell me what aspects are most important to you when evaluating new solutions for [information generation/reporting]?" (This attempts to qualify them before sending generic info).

* Alternative: "Certainly. To make sure the email is tailored and doesn't just add to your inbox clutter, could you share one specific challenge you face with ensuring comprehensive output? That way, I can focus the information on what matters most to you."

  • Objection 4: "I don't have time right now."

* Response: "I completely understand and respect your time. Would it be better if I scheduled a brief call for later this week, perhaps [suggest two specific times/days], when you might have a dedicated 15 minutes? My goal is simply to determine if 'Test Product/Service' can genuinely help you achieve more comprehensive and actionable results."

  • Objection 5: "What's your pricing?"

* Response: "That's an excellent question, and pricing is certainly a factor. Our pricing structure is tailored based on specific needs and usage, which is why a brief discussion to understand your requirements for comprehensive output is usually the best first step. Would you be open to a quick 15-minute call to explore if 'Test Product/Service' is a good fit and then we can discuss relevant pricing options?"


4. Customization & Best Practices

  • Research the Prospect: Before calling, research the prospect's company, role, recent news, and potential challenges. This allows you to personalize the opening and discovery questions.
  • Personalize the Hook: Tailor the value proposition to a specific pain point you anticipate they might have based on your research.
  • Listen Actively: Pay close attention to the prospect's answers during discovery questions. Adapt your pitch and next steps based on their specific needs and concerns.
  • Be Prepared to Pivot: If the conversation goes in an unexpected direction, be flexible. Your goal is to identify if there's a mutual fit.
  • Maintain a Professional Tone: Speak clearly, confidently, and at a moderate pace. Avoid jargon unless you're sure the prospect understands it.
  • Practice Delivery: Rehearse the script to sound natural, not robotic. Focus on empathy and a problem-solving mindset.
  • Handle Gatekeepers Professionally: If you encounter a gatekeeper, be polite, state your name and company, and clearly articulate the value you offer (e.g., "I'm calling about how we help organizations like yours ensure they always have comprehensive data for critical decisions, and I believe [Prospect's Name] would find this relevant.").
  • Follow-Up Promptly: If a next step (e.g., demo, email) is agreed upon, execute it immediately.

5. Key Performance Indicators (KPIs)

To measure the effectiveness of this cold call script and your efforts, track the following KPIs:

  • Call Volume: Number of calls made.
  • Connect Rate: Percentage of calls where you successfully connect with the target prospect.
  • Conversation Rate: Percentage of connects that lead to a meaningful conversation (beyond "not interested").
  • Discovery Call/Demo Booked Rate: Percentage of conversations that result in a scheduled next step (e.g., demo, follow-up meeting). This is the primary success metric for cold calls.
  • Objection Handling Success Rate: How often you successfully navigate an objection to continue the conversation or book a next step.
  • Time Per Call: Average duration of successful calls.
  • Lead-to-Opportunity Conversion Rate: (Longer-term) How many booked demos/meetings eventually convert into qualified opportunities.

By tracking these metrics, you can refine your approach, identify areas for improvement, and optimize your cold call strategy for "Test Product/Service."

ai_sales_script_generator.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}