{"name":"govops-backend","transport":"websocket","wsPath":"/ws","methods":{"system.health":{"description":"Return server health details","auth":"public","params":{},"tags":["system"]},"system.describe":{"description":"Describe available JSON-RPC methods","auth":"public","params":{},"tags":["system"]},"auth.login":{"description":"Authenticate against MongoDB and store the session on the socket","auth":"public","params":{"identity":"string","password":"string"},"tags":["auth"]},"auth.refresh":{"description":"Refresh the active auth session token","auth":"public","params":{"token":"string"},"tags":["auth"]},"auth.me":{"description":"Return the active authenticated user","auth":"required","params":{},"tags":["auth"]},"auth.logout":{"description":"Clear the active WebSocket session","auth":"required","params":{},"tags":["auth"]},"company.get":{"description":"Get the current user's company profile (creates a blank one if absent)","auth":"required","params":{},"tags":["company"]},"company.save":{"description":"Persist company profile fields used for AI search/analysis/matching","auth":"required","params":{},"tags":["company"]},"company.pastProjects.list":{"description":"List past performance projects for the current company","auth":"required","params":{},"tags":["company"]},"company.pastProjects.save":{"description":"Create or update a past performance project","auth":"required","params":{},"tags":["company"]},"company.pastProjects.remove":{"description":"Remove a past performance project","auth":"required","params":{},"tags":["company"]},"company.pastProjects.extract":{"description":"Run LLM extraction on a document's text to pre-fill a past performance project","auth":"required","params":{},"tags":["company"]},"auth.tokens.create":{"description":"Mint a long-lived API token for a worker or integration. Raw token returned only once.","auth":"required","params":{},"tags":["auth"]},"auth.tokens.list":{"description":"List API tokens owned by the current user (raw token omitted).","auth":"required","params":{},"tags":["auth"]},"auth.tokens.revoke":{"description":"Revoke an API token by id. Worker calls using that token will be rejected immediately.","auth":"required","params":{},"tags":["auth"]},"files.downloadRemote":{"description":"Download a remote file and store it in S3 and MongoDB","auth":"required","params":{},"tags":["files"]},"files.put":{"description":"Store provided content in S3 and MongoDB","auth":"required","params":{},"tags":["files"]},"files.get":{"description":"Get MongoDB metadata for a stored file and optional S3 access information","auth":"required","params":{},"tags":["files"]},"files.presign":{"description":"Generate a presigned download URL for an S3 object","auth":"required","params":{},"tags":["files"]},"files.delete":{"description":"Delete a file from S3 and MongoDB","auth":"required","params":{},"tags":["files"]},"realtime.subscribe":{"description":"Subscribe the current socket to one or more realtime topics","auth":"public","params":{},"tags":["realtime"]},"realtime.unsubscribe":{"description":"Unsubscribe the current socket from one or more realtime topics","auth":"public","params":{},"tags":["realtime"]},"realtime.listSubscriptions":{"description":"List the active realtime topic subscriptions for this socket","auth":"public","params":{},"tags":["realtime"]},"agents.listSites":{"description":"List supported opportunity agents and their criteria fields","auth":"public","params":{},"tags":["agents"]},"agents.saveCriteria":{"description":"Persist and optionally refine search criteria for a site agent","auth":"required","params":{},"tags":["agents"]},"agents.listCriteria":{"description":"List stored search criteria profiles","auth":"required","params":{},"tags":["agents"]},"agents.refineCriteria":{"description":"Refine criteria for a site profile or ad hoc site criteria","auth":"required","params":{},"tags":["agents"]},"agents.runSearch":{"description":"Run a site agent search from stored or ad hoc criteria and optionally persist the results","auth":"required","params":{},"tags":["agents"]},"agents.runAdHocSearch":{"description":"Fan out an ad-hoc search across all enabled Sites or an explicit list of site kinds","auth":"required","params":{},"tags":["agents"]},"agents.enqueueIngestOpportunity":{"description":"Queue a background ingest job for an opportunity","auth":"required","params":{},"tags":["agents"]},"agents.listOpportunities":{"description":"List stored opportunities gathered by the agent workflows","auth":"required","params":{},"tags":["agents"]},"agents.ingestOpportunity":{"description":"Fetch full opportunity details, discover references, store support documents, and build markdown analysis","auth":"required","params":{},"tags":["agents"]},"agents.syncOpportunity":{"description":"Refresh one stored opportunity by id or site plus external id and return the refreshed snapshot","auth":"required","params":{},"tags":["agents"]},"agents.getOpportunity":{"description":"Fetch one stored opportunity with references and query history","auth":"required","params":{},"tags":["agents"]},"agents.applyOpportunityWorkup":{"description":"Persist an external GovOps agent workup, vetting result, and auditable run record","auth":"required","params":{},"tags":["agents"]},"agents.archiveOpportunity":{"description":"Archive a stored opportunity and remove it from active tracking","auth":"required","params":{},"tags":["agents"]},"agents.setOpportunityStatus":{"description":"Set an opportunity's status (follow, archive, ignore, etc.)","auth":"required","params":{},"tags":["agents"]},"agents.listJobs":{"description":"List queued, running, retried, and completed background jobs","auth":"required","params":{},"tags":["agents"]},"agents.getJob":{"description":"Fetch one background job by id","auth":"required","params":{},"tags":["agents"]},"agents.retryJob":{"description":"Requeue a failed or waiting background job","auth":"required","params":{},"tags":["agents"]},"agents.queryOpportunity":{"description":"Ask a question about a stored opportunity and persist the answer","auth":"required","params":{},"tags":["agents"]},"agents.refineOpportunity":{"description":"Refine and augment the stored markdown analysis for an opportunity","auth":"required","params":{},"tags":["agents"]},"sites.save":{"description":"Create or update a data source site","auth":"required","params":{},"tags":["sites"]},"sites.list":{"description":"List data source sites","auth":"required","params":{},"tags":["sites"]},"sites.remove":{"description":"Remove a data source site","auth":"required","params":{},"tags":["sites"]},"sites.kinds":{"description":"List supported site kinds and their per-kind config field schema","auth":"public","params":{},"tags":["sites"]},"sites.sync":{"description":"Run a site's default search and persist discovered opportunities","auth":"required","params":{},"tags":["sites"]},"criteria.save":{"description":"Create or update a search criteria","auth":"required","params":{},"tags":["criteria"]},"criteria.list":{"description":"List saved search criteria","auth":"required","params":{},"tags":["criteria"]},"criteria.remove":{"description":"Remove a search criteria","auth":"required","params":{},"tags":["criteria"]},"criteria.run":{"description":"Run a search criteria across its configured site kinds and persist discovered opportunities tagged with criteria_id","auth":"required","params":{},"tags":["criteria"]},"agents.save":{"description":"Create or update an AI agent","auth":"required","params":{},"tags":["agents"]},"agents.list":{"description":"List AI agents","auth":"required","params":{},"tags":["agents"]},"agents.remove":{"description":"Remove an AI agent","auth":"required","params":{},"tags":["agents"]},"agents.tick":{"description":"Run a single Agent's action (discovery/analysis/compliance/maintenance) and write the result to its activity log","auth":"required","params":{},"tags":["agents"]},"agents.activity":{"description":"Record agent activity log entry","auth":"required","params":{},"tags":["agents"]},"agents.activities":{"description":"List agent activity log entries","auth":"required","params":{},"tags":["agents"]},"opportunities.milestones":{"description":"Save milestones for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.milestones.list":{"description":"List milestones for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.milestones.listAll":{"description":"List all milestones across opportunities, optionally filtered by date range or criteria","auth":"required","params":{},"tags":["opportunities"]},"opportunities.pricing":{"description":"Save pricing information for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.pricing.list":{"description":"List pricing information for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.contacts":{"description":"Save contact information for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.contacts.list":{"description":"List contact information for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.docs":{"description":"Save reference documents for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"opportunities.docs.list":{"description":"List reference documents for an opportunity","auth":"required","params":{},"tags":["opportunities"]},"dsip.getTopic":{"description":"Fetch one DSIP topic","auth":"public","params":{},"tags":["dsip"]},"dsip.getComponents":{"description":"Fetch DSIP component list","auth":"public","params":{},"tags":["dsip"]},"dsip.getAllTopics":{"description":"Fetch paginated DSIP topics","auth":"public","params":{},"tags":["dsip"]},"dsip.searchTopics":{"description":"Search DSIP topics","auth":"public","params":{},"tags":["dsip"]},"sbir.fetchCompany":{"description":"Fetch one SBIR company by id","auth":"public","params":{},"tags":["sbir"]},"sbir.searchAwards":{"description":"Search SBIR awards by company name","auth":"public","params":{},"tags":["sbir"]},"sbir.searchCompaniesByKeywords":{"description":"Search SBIR companies by keywords","auth":"public","params":{},"tags":["sbir"]},"sbir.searchSolicitations":{"description":"Search SBIR solicitations","auth":"public","params":{},"tags":["sbir"]},"sbir.fetchSolicitation":{"description":"Fetch one cached SBIR solicitation","auth":"public","params":{},"tags":["sbir"]},"grants.fetchOpportunity":{"description":"Fetch one Grants.gov opportunity","auth":"public","params":{},"tags":["grants"]},"grants.searchOpportunities":{"description":"Search Grants.gov opportunities","auth":"public","params":{},"tags":["grants"]},"challenge.fetchChallenge":{"description":"Fetch one Challenge.gov challenge","auth":"public","params":{},"tags":["challenge"]},"challenge.searchChallenges":{"description":"Search Challenge.gov challenges","auth":"public","params":{},"tags":["challenge"]},"sam.fetchOpportunity":{"description":"Fetch one SAM opportunity","auth":"public","params":{},"tags":["sam"]},"sam.searchOpportunities":{"description":"Search SAM opportunities","auth":"public","params":{},"tags":["sam"]}}}