{"ok":true,"service":"AlbertOS Hermes Bootstrap","generatedAt":"2026-06-25T16:35:09.256Z","app":{"name":"Albert OS","owner":"Adam Thompson","purpose":"Personal command center for Hermes work, revenue operations, digital products, credentials, tasks, progress, and app-generated outputs.","productionUrl":"https://intake.assemblexy.com","localUrl":"http://localhost:3001","playbook":"/hermes/playbook"},"hermesFilesFound":[{"path":"work/OpenJarvis/src/openjarvis/evals/backends/external/hermes_agent.py","purpose":"OpenJarvis adapter that launches Hermes Agent as a subprocess."},{"path":"work/OpenJarvis/src/openjarvis/evals/backends/external/_runners/hermes_runner.py","purpose":"Subprocess runner that imports run_agent.AIAgent from HERMES_AGENT_PATH and calls run_conversation."},{"path":"work/OpenJarvis/src/openjarvis/evals/configs/framework_comparison/_third_party.toml","purpose":"Declares Hermes path, pinned commit, runner script, and optional Python executable."}],"discoveredHermesRequirements":{"environment":["HERMES_AGENT_PATH","HERMES_AGENT_PYTHON","JARVIS_BACKEND_BASE_URL","JARVIS_BACKEND_API_KEY"],"pythonImport":"from run_agent import AIAgent","runnerShape":{"input":["task","model","base_url","api_key","api_mode","max_iterations","system_prompt"],"expectedOutput":["final_response","messages","prompt_tokens","completion_tokens","total_tokens"]},"note":"No standalone Hermes Agent checkout was found under C:/Users/Adam during this pass; AlbertOS now exposes a complete host API for the connected Hermes process."},"instructionsForHermes":["Read /hermes/bootstrap first, then /hermes/playbook for operating guidance, then /hermes for the current manifest.","Chat with Adam in plain conversational language. Do not expose run traces, capability routing, mode labels, or endpoint dumps unless Adam explicitly asks for technical details.","When Adam asks whether a connection exists, answer from AlbertOS state first, then name the relevant page or endpoint only if it helps.","Use /hermes/tasks for Adam-facing tasks, approvals, and credential requests.","Use /hermes/credentials to request or confirm credentials. Values sent by Adam are returned masked in UI state.","Use /hermes/distribution to check publishing platform connections. Adam adds those credentials in /content/distribute; AlbertOS masks values, stores them securely, logs the exchange, and updates Hermes events.","Use /hermes/products to add, update, remove, or comment on digital products.","Use /api/chat/stream for live Albert or agent conversations; pass agentId to talk to a specific agent.","Use /api/progress?agent=albert or /api/progress?agent=hermes to filter work by agent.","Use /api/progress/feedback to receive Adam feedback about progress; AlbertOS saves it to exchange logs and Hermes events.","Use /api/logs/exchanges to read saved data exchanges. Product feedback, progress feedback, chat, Slack, Stripe syncs, and Hermes inbox updates are logged.","Use /api/stripe/summary for Stripe CRM and revenue status. AlbertOS needs STRIPE_SECRET_KEY in the runtime environment.","Use /api/newsletter/publication and /api/newsletter/posts for Beehiiv newsletter checks and publishing when BEEHIIV_API_KEY and BEEHIIV_PUBLICATION_ID are configured.","Use /api/marketing to see outreach, campaigns, prospect files, product assets, and revenue work.","Use /hermes/inbox for general progress events or structured updates when no specialized endpoint fits.","After any state-changing request, read /hermes/health or /api/status to confirm AlbertOS received the update."],"conversationContract":{"tone":"Natural, concise, and collaborative. Answer Adam like an operating partner.","avoid":["run trace text","capability router narration","raw JSON unless requested","claiming an account is connected without checking state"],"defaultAnswerShape":["direct answer","what AlbertOS can see","what Adam or Hermes should do next"]},"environmentForFullConnection":{"albertOS":["STRIPE_SECRET_KEY","SLACK_SIGNING_SECRET","SLACK_BOT_TOKEN","SLACK_DEFAULT_CHANNEL_ID"],"hermes":["ALBERT_OS_BASE_URL=https://albert-os.vercel.app","ALBERT_OS_BOOTSTRAP_URL=https://albert-os.vercel.app/hermes/bootstrap"],"slackApp":{"eventRequestUrl":"https://intake.assemblexy.com/api/slack/events","slashCommandRequestUrl":"https://intake.assemblexy.com/api/slack/commands","recommendedBotScopes":["app_mentions:read","chat:write","commands"]},"stripe":{"dashboardKey":"STRIPE_SECRET_KEY","apiUsed":["GET /v1/customers","GET /v1/payment_intents"]}},"absoluteEndpoints":{"chat":"https://intake.assemblexy.com/agent","chatApi":"https://intake.assemblexy.com/api/chat","chatStream":"https://intake.assemblexy.com/api/chat/stream","manifest":"https://intake.assemblexy.com/hermes","bootstrap":"https://intake.assemblexy.com/hermes/bootstrap","health":"https://intake.assemblexy.com/hermes/health","agents":"https://intake.assemblexy.com/hermes/agents","tasks":"https://intake.assemblexy.com/hermes/tasks","workflows":"https://intake.assemblexy.com/hermes/workflows","chats":"https://intake.assemblexy.com/hermes/chats","history":"https://intake.assemblexy.com/hermes/history","capabilities":"https://intake.assemblexy.com/hermes/capabilities","credentials":"https://intake.assemblexy.com/hermes/credentials","products":"https://intake.assemblexy.com/hermes/products","events":"https://intake.assemblexy.com/hermes/events","inbox":"https://intake.assemblexy.com/hermes/inbox","revenue":"https://intake.assemblexy.com/api/revenue","stripeSummary":"https://intake.assemblexy.com/api/stripe/summary","customers":"https://intake.assemblexy.com/customers","marketing":"https://intake.assemblexy.com/api/marketing","distribution":"https://intake.assemblexy.com/hermes/distribution","distributionApi":"https://intake.assemblexy.com/api/distribution","progress":"https://intake.assemblexy.com/api/progress","progressByAgent":"https://intake.assemblexy.com/api/progress?agent=albert","progressFeedback":"https://intake.assemblexy.com/api/progress/feedback","exchangeLogs":"https://intake.assemblexy.com/api/logs/exchanges","slackEvents":"https://intake.assemblexy.com/api/slack/events","slackCommands":"https://intake.assemblexy.com/api/slack/commands","status":"https://intake.assemblexy.com/api/status"},"writeContracts":{"taskUpdate":{"method":"PATCH","endpoint":"/hermes/tasks","required":["id"]},"credentialProvide":{"method":"POST","endpoint":"/hermes/credentials","required":["key","label","value"]},"distributionConnect":{"method":"POST","endpoint":"/api/distribution","required":["platformId","credentials"]},"productUpdate":{"method":"PATCH","endpoint":"/hermes/products","required":["id"]},"workflowCreate":{"method":"POST","endpoint":"/hermes/workflows","required":["name"]},"agentCreate":{"method":"POST","endpoint":"/hermes/agents","required":["name"]},"inboxUpdate":{"method":"POST","endpoint":"/hermes/inbox","required":["title"]},"liveChat":{"method":"POST","endpoint":"/api/chat/stream","required":["message"],"optional":["agentId","attachments"]},"progressFeedback":{"method":"POST","endpoint":"/api/progress/feedback","required":["message"],"optional":["agentId","relatedId"]},"logExchange":{"method":"POST","endpoint":"/api/logs/exchanges","required":["summary"],"optional":["kind","source","channel","targetAgentId","payload"]},"slackSlashCommand":{"method":"POST","endpoint":"/api/slack/commands","required":["text"]}},"currentState":{"connected":true,"health":{"agents":1,"openTasks":10,"credentialRequests":2,"workflows":1,"enabledWorkflows":1,"products":16,"productsReadyForReview":16,"distributionConnected":0,"distributionPlatforms":6,"capabilities":{"total":10,"ready":8,"needsSetup":2,"blocked":0,"modes":{"onDemand":7,"scheduled":1,"continuous":2}}},"openTasks":[{"assignedTo":"adam","requestKind":"credential","updatedAt":"2026-06-25T16:19:03.265Z","id":"cred_meta_instagram","title":"Provide Instagram Graph API access","description":"Hermes needs this to post and sell digital products through Instagram automation.","project":"Hermes Credentials","priority":"high","status":"todo","source":"hermes","requestedFields":[{"key":"instagram_app_id","label":"Meta App ID","type":"text","required":true},{"key":"instagram_app_secret","label":"Meta App Secret","type":"password","required":true},{"key":"instagram_access_token","label":"Instagram Access Token","type":"password","required":true}]},{"assignedTo":"adam","requestKind":"credential","updatedAt":"2026-06-25T16:19:03.265Z","id":"cred_fal_billing","title":"Confirm FAL.ai billing is funded","description":"Hermes needs image generation credits for product graphics and storefront assets.","project":"Hermes Credentials","priority":"medium","status":"todo","source":"hermes","requestedFields":[{"key":"fal_api_key","label":"FAL API Key","type":"password","required":true},{"key":"fal_billing_note","label":"Billing note","type":"textarea"}]},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t1","title":"Design cardiac arrest QA dashboard","description":"Build the main analytics view for CARES data","project":"Hermes Operations","priority":"high","status":"todo","dueDate":"2026-04-15","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t2","title":"Set up database schema","description":"PostgreSQL schema for case data","project":"Hermes Operations","priority":"high","status":"inprogress","dueDate":"2026-04-12","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t3","title":"Build field evaluation form","description":"Mobile-friendly eval form for preceptors","project":"APEx360","priority":"medium","status":"inprogress","dueDate":"2026-04-14","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t4","title":"Draft Lt. orientation curriculum","description":"Content for May 14–27 orientation class","project":"APEx360","priority":"high","status":"todo","dueDate":"2026-04-20","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t5","title":"Stripe integration","description":"Payment processing for event registrations","project":"Assemble","priority":"high","status":"review","dueDate":"2026-04-11","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t7","title":"AI question generation engine","description":"GPT-4 powered quiz generation from content","project":"ProficiencyAI","priority":"high","status":"inprogress","dueDate":"2026-04-18","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t8","title":"Follow up on Skyler Morgenson tuition issue","description":"Deputy Chief Johnson asked for follow-up with Skylar re: tuition reimbursement agreement","project":"Hermes Operations","priority":"medium","status":"todo","dueDate":"2026-04-10","source":"local"},{"assignedTo":"adam","requestKind":"general","updatedAt":"2026-06-25T16:19:03.268Z","id":"t9","title":"Configure Railway deployment","description":"Deploy Albert OS to Railway for public access","project":"Assemble","priority":"medium","status":"todo","dueDate":"2026-04-11","source":"local"}],"credentialRequests":[{"assignedTo":"adam","requestKind":"credential","updatedAt":"2026-06-25T16:19:03.265Z","id":"cred_meta_instagram","title":"Provide Instagram Graph API access","description":"Hermes needs this to post and sell digital products through Instagram automation.","project":"Hermes Credentials","priority":"high","status":"todo","source":"hermes","requestedFields":[{"key":"instagram_app_id","label":"Meta App ID","type":"text","required":true},{"key":"instagram_app_secret","label":"Meta App Secret","type":"password","required":true},{"key":"instagram_access_token","label":"Instagram Access Token","type":"password","required":true}]},{"assignedTo":"adam","requestKind":"credential","updatedAt":"2026-06-25T16:19:03.265Z","id":"cred_fal_billing","title":"Confirm FAL.ai billing is funded","description":"Hermes needs image generation credits for product graphics and storefront assets.","project":"Hermes Credentials","priority":"medium","status":"todo","source":"hermes","requestedFields":[{"key":"fal_api_key","label":"FAL API Key","type":"password","required":true},{"key":"fal_billing_note","label":"Billing note","type":"textarea"}]}],"productsForAction":[{"id":"prod_emt_cards","title":"EMT Quick Reference Cards","description":"6-page printable PDF with vital signs, GCS, APGAR, algorithms, and assessment tools.","status":"ready","type":"pdf","downloadUrl":"/api/products/download/prod_emt_cards","price":"$4.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_paramedic_pharm","title":"Paramedic Pharmacology Cheat Sheet","description":"18 critical EMS medications with doses, routes, contraindications, and clinical pearls.","status":"ready","type":"pdf","downloadUrl":"/api/products/download/prod_paramedic_pharm","price":"$6.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_ekg_guide","title":"EKG/ECG Interpretation Guide","description":"4-page comprehensive EKG reference with normal values, 8-step interpretation, STEMI localization, and dysrhythmias.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/EKG_Interpretation_Guide.pdf","price":"$5.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_med_terminology","title":"EMS Medical Terminology","description":"3-page medical terminology reference with prefixes, suffixes, body systems, and directional terms.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/EMS_Medical_Terminology.pdf","price":"$3.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_ems_bundle","title":"EMS Study Essentials Bundle","description":"Both EMT Reference Cards and Paramedic Pharmacology Cheat Sheet at a discount.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/EMS_Study_Essentials_Bundle.pdf","price":"$12.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_complete_library","title":"Complete EMS Study Library","description":"All 5 original guides at maximum discount. The ultimate EMS study collection.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/Complete_EMS_Study_Library.pdf","price":"$19.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_nremt_practice","title":"NREMT Practice Test","description":"30 practice questions with detailed explanations covering all NREMT content areas.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/NREMT_Practice_Test.pdf","price":"$9.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_ecg_rhythm","title":"ECG Rhythm Strip Practice","description":"30 ECG rhythm strips with interpretation guide, 8-step method, and practice scenarios.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/ECG_Rhythm_Strip_Practice.pdf","price":"$7.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_ems_scenarios","title":"EMS Scenario Cards","description":"20 realistic EMS call scenarios for individual or group training.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/EMS_Scenario_Cards.pdf","price":"$5.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_drug_calc","title":"Paramedic Drug Calculation Workbook","description":"25 practice problems with step-by-step solutions covering weight-based doses and drip rates.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/Drug_Calculation_Workbook.pdf","price":"$6.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_complete_practice_bundle","title":"Complete EMS Practice Bundle","description":"All 4 practice tools: NREMT Practice Test, ECG Rhythm Strip Practice, EMS Scenario Cards, and Drug Calculation Workbook. Maximum prep at maximum value.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/Complete_EMS_Practice_Bundle.pdf","price":"$34.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]},{"id":"prod_mastering_ekg","title":"Mastering EKG Rhythm Interpretation","description":"The complete guide to cardiac rhythm interpretation. 17 chapters, 300+ pages, hundreds of EKG strips, the SAVE Method, and a 50-rhythm challenge. By Adam Thompson, EMT-P, MS.","status":"ready","type":"pdf","downloadUrl":"https://emt-guide-xi.vercel.app/store/pdfs/Mastering_EKG_Rhythm_Interpretation.pdf","price":"$29.99","createdAt":"2026-06-25T16:19:03.268Z","updatedAt":"2026-06-25T16:19:03.268Z","comments":[]}],"recentEvents":[{"id":"evt_mqtpm8ll","timestamp":"2026-06-25T16:21:37.929Z","type":"product_updated","title":"Product updated","detail":"EKG Master Collection is now needs improvement.","entityId":"prod_ekg_master_bundle"}]}}