{"service":"jules","version":"0.1.0","baseUrl":"https://jules.platphormnews.com","purpose":"Canonical AI coding-session workspace, repo-assistance, issue triage, onboarding-to-code handoff, prompt-to-task, MCP/API tool execution, and developer workflow assistant for the PlatPhormNews web mesh.","endpoints":[{"method":"GET","path":"/","public":true,"protected":false,"summary":"Jules workspace and local session dashboard."},{"method":"GET","path":"/dashboard","public":true,"protected":false,"summary":"Public-safe Jules integration and activity dashboard."},{"method":"GET","path":"/create","public":true,"protected":false,"summary":"New coding-session and Onboard handoff wizard."},{"method":"GET","path":"/api/health","public":true,"protected":false,"summary":"Platform health payload."},{"method":"GET","path":"/api/v1/health","public":true,"protected":false,"summary":"Versioned platform health payload."},{"method":"GET","path":"/api/docs","public":true,"protected":false,"summary":"OpenAPI JSON specification."},{"method":"GET","path":"/openapi.yaml","public":true,"protected":false,"summary":"OpenAPI YAML specification."},{"method":"GET","path":"/llms.txt","public":true,"protected":false,"summary":"Concise LLM context."},{"method":"GET","path":"/llms-full.txt","public":true,"protected":false,"summary":"Full LLM context."},{"method":"GET","path":"/llms-index.json","public":true,"protected":false,"summary":"Machine-readable LLM index."},{"method":"GET","path":"/robots.txt","public":true,"protected":false,"summary":"Crawler policy."},{"method":"GET","path":"/sitemap.xml","public":true,"protected":false,"summary":"Sitemap."},{"method":"GET","path":"/sitemap-index.xml","public":true,"protected":false,"summary":"Sitemap index."},{"method":"GET","path":"/rss.xml","public":true,"protected":false,"summary":"RSS feed."},{"method":"GET","path":"/feed.xml","public":true,"protected":false,"summary":"Atom feed."},{"method":"GET","path":"/manifest.webmanifest","public":true,"protected":false,"summary":"Web app manifest."},{"method":"GET","path":"/.well-known/mcp.json","public":true,"protected":false,"summary":"MCP discovery manifest."},{"method":"GET","path":"/.well-known/agents.json","public":true,"protected":false,"summary":"Agent discovery manifest."},{"method":"GET","path":"/.well-known/ai-plugin.json","public":true,"protected":false,"summary":"AI plugin manifest."},{"method":"GET","path":"/.well-known/security.txt","public":true,"protected":false,"summary":"Security contact."},{"method":"GET","path":"/.well-known/trust.json","public":true,"protected":false,"summary":"Trust policy."},{"method":"GET","path":"/api/mcp","public":true,"protected":false,"summary":"MCP metadata and usage."},{"method":"POST","path":"/api/mcp","public":true,"protected":false,"summary":"JSON-RPC MCP endpoint for public introspection and public-safe Jules handoff tools."},{"method":"GET","path":"/api/v1alpha/auth-status","public":true,"protected":false,"summary":"Public Google Jules provider status; does not expose JULES_API_KEY."},{"method":"GET","path":"/api/v1alpha/sources","public":true,"protected":false,"summary":"Public wrapper for connected Google Jules repository sources."},{"method":"GET","path":"/api/v1alpha/sessions","public":true,"protected":false,"summary":"Public wrapper for Google Jules session list using server-side JULES_API_KEY."},{"method":"POST","path":"/api/v1alpha/sessions","public":true,"protected":false,"summary":"Public wrapper to create a Google Jules coding session with the configured account."},{"method":"GET","path":"/api/v1alpha/sessions/{id}","public":true,"protected":false,"summary":"Public wrapper for Google Jules session detail."},{"method":"DELETE","path":"/api/v1alpha/sessions/{id}","public":true,"protected":false,"summary":"Public wrapper for Google Jules session deletion through the configured account."},{"method":"GET","path":"/api/v1alpha/sessions/{id}/activities","public":true,"protected":false,"summary":"Public wrapper for Google Jules activity feed."},{"method":"POST","path":"/api/v1alpha/sessions/{id}:sendMessage","public":true,"protected":false,"summary":"Public wrapper to send follow-up feedback to a Google Jules session."},{"method":"POST","path":"/api/v1alpha/sessions/{id}:approvePlan","public":true,"protected":false,"summary":"Public wrapper to approve a Google Jules plan."},{"method":"GET","path":"/api/github/auth-status","public":true,"protected":false,"summary":"Public server-side GitHub credential status."},{"method":"GET","path":"/api/github/repositories","public":true,"protected":false,"summary":"List repositories available to the configured server-side GitHub account."},{"method":"POST","path":"/api/github/repositories","public":true,"protected":false,"summary":"List repositories with optional owner filter."},{"method":"POST","path":"/api/github/repositories/create","public":true,"protected":false,"summary":"Create a repository under the configured GitHub account or organization."},{"method":"GET","path":"/api/v1/sessions","public":true,"protected":false,"summary":"List public-safe sessions; protected callers see private server sessions."},{"method":"POST","path":"/api/v1/sessions","public":false,"protected":true,"summary":"Create protected server-side Jules session."},{"method":"GET","path":"/api/v1/sessions/{id}","public":true,"protected":false,"summary":"Get public-safe or protected session details."},{"method":"PUT","path":"/api/v1/sessions/{id}","public":false,"protected":true,"summary":"Update protected server-side session."},{"method":"DELETE","path":"/api/v1/sessions/{id}","public":false,"protected":true,"summary":"Delete protected server-side session."},{"method":"POST","path":"/api/v1/sessions/{id}/export","public":false,"protected":true,"summary":"Export a session as JSON or Markdown."},{"method":"POST","path":"/api/v1/sessions/import","public":false,"protected":true,"summary":"Import session JSON."},{"method":"GET","path":"/api/v1/sessions/{id}/messages","public":true,"protected":false,"summary":"List public-safe messages or protected session messages."},{"method":"POST","path":"/api/v1/sessions/{id}/messages","public":false,"protected":true,"summary":"Add protected session message."},{"method":"GET","path":"/api/v1/sessions/{id}/plans","public":true,"protected":false,"summary":"List public-safe plans or protected session plans."},{"method":"POST","path":"/api/v1/sessions/{id}/plans","public":false,"protected":true,"summary":"Generate implementation plan and task breakdown."},{"method":"GET","path":"/api/v1/plans/{id}","public":true,"protected":false,"summary":"Get plan details."},{"method":"GET","path":"/api/v1/onboard/applications","public":true,"protected":false,"summary":"List public-safe Onboard availability and local imports."},{"method":"GET","path":"/api/v1/onboard/applications/{id}","public":true,"protected":false,"summary":"Get public-safe Onboard application/import status."},{"method":"POST","path":"/api/v1/onboard/import","public":true,"protected":false,"summary":"Import manually provided public-safe Onboard handoff data."},{"method":"POST","path":"/api/v1/onboard/import/{id}/create-session","public":true,"protected":false,"summary":"Create public-safe Jules session from Onboard import."},{"method":"POST","path":"/api/v1/onboard/import/{id}/generate-plan","public":true,"protected":false,"summary":"Generate public-safe plan from Onboard import."},{"method":"POST","path":"/api/v1/onboard/import/{id}/create-kanban-tasks","public":true,"protected":false,"summary":"Create public Kanban task handoff from Onboard import."},{"method":"POST","path":"/api/v1/onboard/import/{id}/generate-docs","public":true,"protected":false,"summary":"Create public Docs report handoff from Onboard import."},{"method":"GET","path":"/api/v1/integrations","public":true,"protected":false,"summary":"List Jules integration catalog."},{"method":"GET","path":"/api/v1/integrations/status","public":true,"protected":false,"summary":"Integration status, with optional live checks."},{"method":"POST","path":"/api/v1/integrations/mcp/sync","public":true,"protected":false,"summary":"Create public MCP registry sync handoff."},{"method":"POST","path":"/api/v1/integrations/kanban/create-tasks","public":true,"protected":false,"summary":"Create public Kanban task handoff."},{"method":"POST","path":"/api/v1/integrations/docs/report","public":true,"protected":false,"summary":"Create public Docs report handoff."},{"method":"POST","path":"/api/v1/integrations/sandbox/dry-run","public":true,"protected":false,"summary":"Create public Sandbox dry-run handoff."},{"method":"POST","path":"/api/v1/integrations/browserops/run","public":true,"protected":false,"summary":"Create public BrowserOps run handoff."},{"method":"POST","path":"/api/v1/integrations/evals/run","public":true,"protected":false,"summary":"Create public Evals run handoff."},{"method":"GET","path":"/api/v1/network/graph","public":true,"protected":false,"summary":"Read root network graph with degraded status."},{"method":"POST","path":"/api/v1/network/graph/sync","public":false,"protected":true,"summary":"Protected graph sync."},{"method":"GET","path":"/api/v1/network/sites","public":true,"protected":false,"summary":"Discovered site list."},{"method":"GET","path":"/api/v1/network/trusted-domains","public":true,"protected":false,"summary":"Trusted domain policy."},{"method":"GET","path":"/api/v1/network/route-compliance","public":true,"protected":false,"summary":"Route compliance summary."},{"method":"GET","path":"/api/v1/network/discovery-compliance","public":true,"protected":false,"summary":"Discovery compliance summary."}],"auth":{"platformKey":"PLATPHORM_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"publicReadOnly":["GET /","GET /dashboard","GET /create","GET /api/health","GET /api/v1/health","GET /api/docs","GET /openapi.yaml","GET /llms.txt","GET /llms-full.txt","GET /llms-index.json","GET /robots.txt","GET /sitemap.xml","GET /sitemap-index.xml","GET /rss.xml","GET /feed.xml","GET /manifest.webmanifest","GET /.well-known/mcp.json","GET /.well-known/agents.json","GET /.well-known/ai-plugin.json","GET /.well-known/security.txt","GET /.well-known/trust.json","GET /api/mcp","POST /api/mcp","GET /api/v1alpha/auth-status","GET /api/v1alpha/sources","GET /api/v1alpha/sessions","POST /api/v1alpha/sessions","GET /api/v1alpha/sessions/{id}","DELETE /api/v1alpha/sessions/{id}","GET /api/v1alpha/sessions/{id}/activities","POST /api/v1alpha/sessions/{id}:sendMessage","POST /api/v1alpha/sessions/{id}:approvePlan","GET /api/github/auth-status","GET /api/github/repositories","POST /api/github/repositories","POST /api/github/repositories/create","GET /api/v1/sessions","GET /api/v1/sessions/{id}","GET /api/v1/sessions/{id}/messages","GET /api/v1/sessions/{id}/plans","GET /api/v1/plans/{id}","GET /api/v1/onboard/applications","GET /api/v1/onboard/applications/{id}","POST /api/v1/onboard/import","POST /api/v1/onboard/import/{id}/create-session","POST /api/v1/onboard/import/{id}/generate-plan","POST /api/v1/onboard/import/{id}/create-kanban-tasks","POST /api/v1/onboard/import/{id}/generate-docs","GET /api/v1/integrations","GET /api/v1/integrations/status","POST /api/v1/integrations/mcp/sync","POST /api/v1/integrations/kanban/create-tasks","POST /api/v1/integrations/docs/report","POST /api/v1/integrations/sandbox/dry-run","POST /api/v1/integrations/browserops/run","POST /api/v1/integrations/evals/run","GET /api/v1/network/graph","GET /api/v1/network/sites","GET /api/v1/network/trusted-domains","GET /api/v1/network/route-compliance","GET /api/v1/network/discovery-compliance"],"protected":["POST /api/v1/sessions","PUT /api/v1/sessions/{id}","DELETE /api/v1/sessions/{id}","POST /api/v1/sessions/{id}/export","POST /api/v1/sessions/import","POST /api/v1/sessions/{id}/messages","POST /api/v1/sessions/{id}/plans","POST /api/v1/network/graph/sync"],"providerCredential":"JULES_API_KEY is server-side only for the public Google Jules wrapper and is never accepted from or exposed to browser clients."},"sessions":{"model":"JulesSession","localPersistence":"IndexedDB for non-sensitive local drafts; no browser API key is required or persisted.","backendPersistence":"Google Jules sessions are stored by upstream Jules when JULES_API_KEY is configured; local PlatPhorm mirror persistence is durable only when DATABASE_URL or a compatible backend adapter is configured."},"plans":{"model":"JulesPlan","generator":"Deterministic Phase 1 implementation planner based on supplied session/onboard data."},"onboardIntegration":{"status":"implemented with public-safe manual import and honest degraded live protected API state","endpoints":["GET /api/v1/onboard/applications","GET /api/v1/onboard/applications/{id}","POST /api/v1/onboard/import","POST /api/v1/onboard/import/{id}/create-session","POST /api/v1/onboard/import/{id}/generate-plan","POST /api/v1/onboard/import/{id}/create-kanban-tasks","POST /api/v1/onboard/import/{id}/generate-docs"]},"integrations":[{"id":"onboard","name":"PlatPhorm Onboard","baseUrl":"https://onboard.platphormnews.com","purpose":"Import onboarding applications and convert them into implementation sessions.","protectedActions":["protected application import","application-to-session conversion"],"publicSurfaces":["public-safe application handoff status"]},{"id":"mcp","name":"MCP Registry","baseUrl":"https://mcp.platphormnews.com","purpose":"Discover and execute trusted MCP/API tools for coding workflows.","protectedActions":["MCP tool execution","federated tool sync"],"publicSurfaces":["tool/resource/prompt introspection"]},{"id":"kanban","name":"Kanban","baseUrl":"https://kanban.platphormnews.com","purpose":"Create tracked coding tasks from Jules sessions and onboarding handoffs.","protectedActions":["task creation","task mutation"],"publicSurfaces":["public-safe task links where exposed by Kanban"]},{"id":"docs","name":"Docs","baseUrl":"https://docs.platphormnews.com","purpose":"Publish implementation notes, API documentation, and handoff reports.","protectedActions":["docs report generation","docs publishing"],"publicSurfaces":["public documentation"]},{"id":"trace","name":"Trace","baseUrl":"https://trace.platphormnews.com","purpose":"Inspect trace-linked coding sessions and cross-site handoffs.","protectedActions":["sensitive span inspection"],"publicSurfaces":["public-safe trace summaries"]},{"id":"browserops","name":"BrowserOps","baseUrl":"https://browserops.platphormnews.com","purpose":"Trigger browser journeys, screenshots, and accessibility checks for coding work.","protectedActions":["browser test triggers"],"publicSurfaces":["public-safe run summaries"]},{"id":"evals","name":"Evals","baseUrl":"https://evals.platphormnews.com","purpose":"Run release-gate and readiness checks for implementation tasks.","protectedActions":["eval suite triggers"],"publicSurfaces":["public-safe eval summaries"]},{"id":"sandbox","name":"Sandbox","baseUrl":"https://sandbox.platphormnews.com","purpose":"Dry-run generated code workflows and tool execution plans.","protectedActions":["sandbox execution","replay"],"publicSurfaces":["public-safe dry-run summaries"]},{"id":"claws","name":"Claws","baseUrl":"https://claws.platphormnews.com","purpose":"Hand off remediation workflows that require agentic execution.","protectedActions":["workflow runs","remediation writes"],"publicSurfaces":["public workflow templates"]},{"id":"atlas","name":"Atlas","baseUrl":"https://atlas.platphormnews.com","purpose":"Map network relationships and target site context for coding sessions.","protectedActions":["topology mutation"],"publicSurfaces":["public topology summaries"]},{"id":"monitor","name":"Monitor","baseUrl":"https://monitor.platphormnews.com","purpose":"Convert uptime and route failures into coding sessions.","protectedActions":["monitor mutation"],"publicSurfaces":["public uptime summaries"]},{"id":"sheets","name":"Sheets","baseUrl":"https://sheets.platphormnews.com","purpose":"Export structured coding reports.","protectedActions":["sheet report generation"],"publicSurfaces":["public-safe report metadata"]},{"id":"decks","name":"Decks","baseUrl":"https://decks.platphormnews.com","purpose":"Generate executive handoff summaries from coding work.","protectedActions":["deck generation"],"publicSurfaces":["public-safe deck metadata"]}],"tools":["list_sessions","get_session","create_session","update_session","export_session","import_session","add_session_message","generate_implementation_plan","generate_task_breakdown","list_onboarding_applications","get_onboarding_application","import_onboarding_application","create_session_from_application","generate_application_implementation_plan","create_kanban_tasks_from_application","generate_docs_from_application","list_mcp_tools","execute_mcp_tool","sync_mcp_servers","run_sandbox_dry_run","run_browserops_check","run_evals_check","get_route_compliance","get_discovery_compliance","create_docs_report","create_sheet_report","create_deck_summary"],"resources":["jules://sessions","jules://session/{id}","jules://plans","jules://plan/{id}","jules://onboard/applications","jules://integrations/status","jules://network/sites","jules://openapi","jules://llms","jules://trust-policy"],"prompts":["create_coding_session","create_session_from_onboard_application","generate_implementation_plan","generate_repo_scaffold_plan","generate_task_breakdown","review_platform_gap","generate_mcp_tool_plan","generate_browserops_fix_plan","generate_evals_fix_plan","summarize_session","human_machine_jules_handoff"],"trustedDomains":["*.platphormnews.com"],"discoverySources":["https://platphormnews.com/api/network/graph","https://base.platphormnews.com/sitemap-index.xml"],"routeStandard":["/","/dashboard","/create","/api/health","/api/v1/health","/api/docs","/openapi.yaml","/llms.txt","/llms-full.txt","/llms-index.json","/robots.txt","/sitemap.xml","/sitemap-index.xml","/rss.xml","/feed.xml","/manifest.webmanifest","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/ai-plugin.json","/.well-known/security.txt","/.well-known/trust.json","/api/mcp","/api/mcp","/api/v1alpha/auth-status","/api/v1alpha/sources","/api/v1alpha/sessions","/api/v1alpha/sessions","/api/v1alpha/sessions/{id}","/api/v1alpha/sessions/{id}","/api/v1alpha/sessions/{id}/activities","/api/v1alpha/sessions/{id}:sendMessage","/api/v1alpha/sessions/{id}:approvePlan","/api/github/auth-status","/api/github/repositories","/api/github/repositories","/api/github/repositories/create","/api/v1/sessions","/api/v1/sessions","/api/v1/sessions/{id}","/api/v1/sessions/{id}","/api/v1/sessions/{id}","/api/v1/sessions/{id}/export","/api/v1/sessions/import","/api/v1/sessions/{id}/messages","/api/v1/sessions/{id}/messages","/api/v1/sessions/{id}/plans","/api/v1/sessions/{id}/plans","/api/v1/plans/{id}","/api/v1/onboard/applications","/api/v1/onboard/applications/{id}","/api/v1/onboard/import","/api/v1/onboard/import/{id}/create-session","/api/v1/onboard/import/{id}/generate-plan","/api/v1/onboard/import/{id}/create-kanban-tasks","/api/v1/onboard/import/{id}/generate-docs","/api/v1/integrations","/api/v1/integrations/status","/api/v1/integrations/mcp/sync","/api/v1/integrations/kanban/create-tasks","/api/v1/integrations/docs/report","/api/v1/integrations/sandbox/dry-run","/api/v1/integrations/browserops/run","/api/v1/integrations/evals/run","/api/v1/network/graph","/api/v1/network/graph/sync","/api/v1/network/sites","/api/v1/network/trusted-domains","/api/v1/network/route-compliance","/api/v1/network/discovery-compliance"],"trustPolicy":"Web AI coding assistance, public-safe coding session examples, browser-based Jules operations, public Google Jules task wrapping through the server-side JULES_API_KEY provider credential, public GitHub workspace access through configured server credentials, local non-sensitive session draft persistence, public-safe PlatPhorm Onboard handoff discovery, trusted-domain discovery, standard route compliance, Vercel metadata capture, trace-linked coding sessions, MCP coding-assistant discovery, and public PlatPhorm handoff requests are intentionally supported for public read-only and operator workflows. PlatPhorm administrative actions, protected persistence, protected Onboard data retrieval, private MCP execution, and cross-site writes require trusted server-side configuration and PLATPHORM_API_KEY where applicable.","updatedAt":"2026-05-25T06:49:39.581Z"}