{"service":"jules","version":"0.5.1","baseUrl":"https://jules.platphormnews.com","trustPolicy":"Web dashboard, public-safe discovery, browser-based operations, trusted-domain discovery, standard route compliance, Vercel metadata capture, trace inspection, and agentic workflow discovery are intentionally supported for public read-only debugging and operator workflows. Mutating, administrative, ingestion, replay, fork, remediation, deployment, sync, test-triggering, reporting, and write actions require PLATPHORM_API_KEY. Local non-sensitive Jules drafts and public capability discovery remain available without credentials; Google Jules data, configured GitHub workspace data, imported Onboard records, and all external writes are protected.","auth":{"platformKey":"PLATPHORM_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"providerCredential":"JULES_API_KEY is used only server-side for protected calls to https://jules.googleapis.com/v1alpha.","neverStore":["Authorization","X-PlatPhorm-API-Key","JULES_API_KEY","GitHub provider tokens","cookies","session tokens","raw IPs","private prompts","protected onboarding data"]},"publicReadOnlyAccess":["GET /","GET /dashboard","GET /create","GET /automations","GET /developer","GET /api/v1/operator/session","POST /api/v1/operator/session","DELETE /api/v1/operator/session","GET /api/health","GET /api/v1/health","GET /api/version","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 /atom.xml","GET /manifest.webmanifest","GET /.well-known/mcp.json","GET /.well-known/agents.json","GET /.well-known/api-catalog","GET /AGENTS.md","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/github/auth-status","GET /api/v1/sessions","GET /api/v1/repositories","GET /api/v1/sessions/{id}","GET /api/v1/sessions/{id}/pull-request","GET /api/v1/schedules","GET /api/v1/schedules/{id}","POST /api/v1/context/resolve","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/integrations","GET /api/v1/integrations/status","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"],"protectedActions":["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/repositories","POST /api/github/repositories","GET /api/github/repositories/{owner}/{repo}/branches","POST /api/github/repositories/create","POST /api/v1/sessions","PUT /api/v1/sessions/{id}","DELETE /api/v1/sessions/{id}","POST /api/v1/sessions/{id}/execute","POST /api/v1/sessions/{id}/sync","POST /api/v1/sessions/{id}/sync/async","POST /api/v1/sessions/{id}/pull-request","POST /api/v1/sessions/reconcile","POST /api/v1/schedules","PUT /api/v1/schedules/{id}","DELETE /api/v1/schedules/{id}","POST /api/v1/schedules/{id}/run","POST /api/v1/schedules/{id}/execute","POST /internal/v1/sync-jobs","GET /internal/v1/sync-jobs/{id}","POST /api/v1/sessions/{id}/export","POST /api/v1/sessions/import","POST /api/v1/sessions/{id}/messages","POST /api/v1/sessions/{id}/plans","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","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","POST /api/v1/network/graph/sync","POST /api/register"],"localSessionDraftPersistencePolicy":"IndexedDB is used only for non-sensitive local drafts, plans, task drafts, and prompt history. Jules does not ask browser users to enter API keys.","trustedDomainPolicy":{"defaultTrustedScope":"*.platphormnews.com","discoverySources":["https://platphormnews.com/api/network/graph","https://base.platphormnews.com/sitemap-index.xml"],"blocked":["localhost","private IPs","link-local addresses","metadata service addresses"]},"routeStandard":[{"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":"/automations","public":true,"protected":false,"summary":"Public-safe schedule status and protected schedule management UI."},{"method":"GET","path":"/developer","public":true,"protected":false,"summary":"Developer and protected operator-session workspace."},{"method":"GET","path":"/api/v1/operator/session","public":true,"protected":false,"summary":"Read public-safe operator-session status."},{"method":"POST","path":"/api/v1/operator/session","public":true,"protected":false,"summary":"Exchange PLATPHORM_API_KEY for an expiring signed HttpOnly operator session."},{"method":"DELETE","path":"/api/v1/operator/session","public":true,"protected":false,"summary":"Clear the current HttpOnly operator session."},{"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/version","public":true,"protected":false,"summary":"Exact Jules release identity."},{"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":"/atom.xml","public":true,"protected":false,"summary":"Atom feed alias."},{"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/api-catalog","public":true,"protected":false,"summary":"RFC 9727 API catalog in Linkset JSON."},{"method":"GET","path":"/AGENTS.md","public":true,"protected":false,"summary":"Human- and machine-readable operating instructions for agents."},{"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":"Bounded JSON-RPC MCP endpoint; mutating tools enforce PLATPHORM_API_KEY."},{"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":false,"protected":true,"summary":"Protected wrapper for connected Google Jules repository sources."},{"method":"GET","path":"/api/v1alpha/sessions","public":false,"protected":true,"summary":"Protected wrapper for Google Jules session list."},{"method":"POST","path":"/api/v1alpha/sessions","public":false,"protected":true,"summary":"Protected wrapper to create a Google Jules coding session."},{"method":"GET","path":"/api/v1alpha/sessions/{id}","public":false,"protected":true,"summary":"Protected wrapper for Google Jules session detail."},{"method":"DELETE","path":"/api/v1alpha/sessions/{id}","public":false,"protected":true,"summary":"Protected wrapper for Google Jules session deletion."},{"method":"GET","path":"/api/v1alpha/sessions/{id}/activities","public":false,"protected":true,"summary":"Protected wrapper for Google Jules activity feed."},{"method":"POST","path":"/api/v1alpha/sessions/{id}:sendMessage","public":false,"protected":true,"summary":"Protected wrapper to send feedback to a Google Jules session."},{"method":"POST","path":"/api/v1alpha/sessions/{id}:approvePlan","public":false,"protected":true,"summary":"Protected 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":false,"protected":true,"summary":"Protected repository list from the configured server-side GitHub account."},{"method":"POST","path":"/api/github/repositories","public":false,"protected":true,"summary":"Protected repository list with optional owner filter."},{"method":"GET","path":"/api/github/repositories/{owner}/{repo}/branches","public":false,"protected":true,"summary":"Protected branch list for an in-scope platphorm-* repository."},{"method":"POST","path":"/api/github/repositories/create","public":false,"protected":true,"summary":"Protected repository creation through the configured server-side GitHub account."},{"method":"GET","path":"/api/v1/sessions","public":true,"protected":false,"summary":"List public-safe sessions; protected callers see private server sessions."},{"method":"GET","path":"/api/v1/repositories","public":true,"protected":false,"summary":"List public non-private platphorm-* repository choices; protected callers may see configured private repositories."},{"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}/execute","public":false,"protected":true,"summary":"Start a provider execution from the canonical session WorkIntent."},{"method":"POST","path":"/api/v1/sessions/{id}/sync","public":false,"protected":true,"summary":"Synchronize a stored session from its Google Jules provider reference."},{"method":"POST","path":"/api/v1/sessions/{id}/sync/async","public":false,"protected":true,"summary":"Queue server-side provider synchronization without blocking the browser request."},{"method":"GET","path":"/api/v1/sessions/{id}/pull-request","public":true,"protected":false,"summary":"Read live GitHub state for a real in-scope Jules pull request output."},{"method":"POST","path":"/api/v1/sessions/{id}/pull-request","public":false,"protected":true,"summary":"Approve or SHA-pinned squash-merge a real in-scope Jules pull request."},{"method":"POST","path":"/api/v1/sessions/reconcile","public":false,"protected":true,"summary":"Reconcile all paginated platphorm-* Google Jules sessions into canonical Cloudflare D1 records."},{"method":"GET","path":"/api/v1/schedules","public":true,"protected":false,"summary":"List public-safe recurring Jules schedule state; protected callers also receive instructions."},{"method":"POST","path":"/api/v1/schedules","public":false,"protected":true,"summary":"Create a durable recurring Jules schedule."},{"method":"GET","path":"/api/v1/schedules/{id}","public":true,"protected":false,"summary":"Get public-safe or protected schedule detail."},{"method":"PUT","path":"/api/v1/schedules/{id}","public":false,"protected":true,"summary":"Edit, enable, or pause a durable Jules schedule."},{"method":"DELETE","path":"/api/v1/schedules/{id}","public":false,"protected":true,"summary":"Delete a durable Jules schedule."},{"method":"POST","path":"/api/v1/schedules/{id}/run","public":false,"protected":true,"summary":"Run a durable Jules schedule immediately."},{"method":"POST","path":"/api/v1/schedules/{id}/execute","public":false,"protected":true,"summary":"Cloudflare queue callback that executes one durable Jules schedule run."},{"method":"POST","path":"/internal/v1/sync-jobs","public":false,"protected":true,"summary":"Queue a bounded server-side provider synchronization job."},{"method":"GET","path":"/internal/v1/sync-jobs/{id}","public":false,"protected":true,"summary":"Read the status of a queued synchronization job."},{"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":"POST","path":"/api/v1/context/resolve","public":true,"protected":false,"summary":"Resolve a work description into a normalized intent and trusted context references."},{"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":"Public-safe Onboard capability status; imported records are shown only to protected callers."},{"method":"GET","path":"/api/v1/onboard/applications/{id}","public":false,"protected":true,"summary":"Get a protected local Onboard import."},{"method":"POST","path":"/api/v1/onboard/import","public":false,"protected":true,"summary":"Import a protected public-safe Onboard summary."},{"method":"POST","path":"/api/v1/onboard/import/{id}/create-session","public":false,"protected":true,"summary":"Create a protected Jules session from an Onboard import."},{"method":"POST","path":"/api/v1/onboard/import/{id}/generate-plan","public":false,"protected":true,"summary":"Generate a protected plan from an Onboard import."},{"method":"POST","path":"/api/v1/onboard/import/{id}/create-kanban-tasks","public":false,"protected":true,"summary":"Reports unsupported until a Kanban execution adapter is configured; creates nothing."},{"method":"POST","path":"/api/v1/onboard/import/{id}/generate-docs","public":false,"protected":true,"summary":"Reports unsupported until a Docs execution adapter is configured; creates nothing."},{"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":false,"protected":true,"summary":"Reports unsupported until an MCP sync adapter is configured; syncs nothing."},{"method":"POST","path":"/api/v1/integrations/kanban/create-tasks","public":false,"protected":true,"summary":"Reports unsupported until a Kanban execution adapter is configured; creates nothing."},{"method":"POST","path":"/api/v1/integrations/docs/report","public":false,"protected":true,"summary":"Publishes a public-safe Jules report through the protected Docs handoff receiver and returns a confirmed document."},{"method":"POST","path":"/api/v1/integrations/sandbox/dry-run","public":false,"protected":true,"summary":"Reports unsupported until a Sandbox execution adapter is configured; executes nothing."},{"method":"POST","path":"/api/v1/integrations/browserops/run","public":false,"protected":true,"summary":"Runs a selected BrowserOps journey through the protected server-side adapter and returns the confirmed downstream run."},{"method":"POST","path":"/api/v1/integrations/evals/run","public":false,"protected":true,"summary":"Discovers an active Evals suite, starts a protected run, and returns its confirmed downstream run."},{"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."},{"method":"POST","path":"/api/register","public":false,"protected":true,"summary":"Register Jules product identity against fixed trusted PlatPhormNews endpoints."}],"vercelMetadataPolicy":"Only safe Vercel metadata is captured; raw IPs, Authorization, cookies, keys, and bodies are excluded.","tracePropagationPolicy":"Jules accepts and propagates W3C traceparent/tracestate and safe X-PlatPhorm trace headers.","onboardingDataExposurePolicy":"Public views and imports use public-safe summaries only. Protected application data is not exposed publicly and must be redacted before persistence or traces.","dataExposurePolicy":"No private repo data, private session prompts, protected onboarding data, secrets, or generated private code is included in public discovery files.","securityContact":"security@platphormnews.com"}