offnadir-delta-mcp 1.3.4 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/catalog.js CHANGED
@@ -188,9 +188,10 @@ export const TOOLS = [
188
188
  'signal corpus and returns a structured brief (summary, findings with collection recommendations, ' +
189
189
  'assessment, citations). Costs 5–45 tokens (usage-based, metered by the compute the question actually ' +
190
190
  'uses; charged ONCE, when the run completes; the exact charge and remaining balance are in meta.tokens). ' +
191
- 'Hybrid async: waits up to ~95s and returns the brief; a longer run returns {status:"processing", job_id} ' +
192
- 'while finishing in the background — call again with the SAME idempotencyKey to fetch the finished brief ' +
193
- 'without a second charge.',
191
+ 'Durable async: the run is ENQUEUED and returns {status:"processing", job_id} immediately, then completes ' +
192
+ 'in a background worker (typically within a couple of minutes) — so it is never lost to a client timeout. ' +
193
+ 'Fetch the finished brief by calling get_analyst_job with the job_id, or ask_analyst again with the SAME ' +
194
+ 'idempotencyKey (no second charge).',
194
195
  inputSchema: {
195
196
  type: 'object',
196
197
  properties: {
@@ -201,6 +202,21 @@ export const TOOLS = [
201
202
  required: ['question'],
202
203
  },
203
204
  },
205
+ {
206
+ name: 'get_analyst_job',
207
+ annotations: { readOnlyHint: true },
208
+ description: 'Fetch the status and result of an ask_analyst run by job_id. Returns status "processing" (still ' +
209
+ 'running — poll again in ~10-20s), "done" (with the finished brief and meta.tokens), or "error". ' +
210
+ 'Free of token charges — the run itself is charged once on completion. A job is visible only to the ' +
211
+ 'API key owner that created it. Use this to retrieve the brief after ask_analyst returned a job_id.',
212
+ inputSchema: {
213
+ type: 'object',
214
+ properties: {
215
+ job_id: { type: 'string', description: 'The job_id returned by ask_analyst.' },
216
+ },
217
+ required: ['job_id'],
218
+ },
219
+ },
204
220
  ];
205
221
  export const RESOURCES = [
206
222
  { uri: 'brief://latest', name: 'Daily World Brief (latest)', description: 'The most recent AI-synthesized Daily World Brief (JSON). Free.', mimeType: 'application/json' },
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
21
21
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
22
22
  import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
23
23
  import { PROMPTS, RESOURCES, RESOURCE_TEMPLATES, TOOLS } from './catalog.js';
24
- const VERSION = '1.3.4';
24
+ const VERSION = '1.3.5';
25
25
  const REMOTE_URL = new URL(process.env.OFFNADIR_DELTA_MCP_URL ?? 'https://offnadir-delta.com/api/v1/mcp');
26
26
  /** Lazily-connected client to the hosted remote MCP server. */
27
27
  let remote = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "offnadir-delta-mcp",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "Local (stdio) MCP server for Off-Nadir Delta — live, geolocated world-event intelligence, a Daily World Brief, satellite-imagery search, and an OSINT/GEOINT analyst. Forwards to the hosted server with your API key.",
5
5
  "type": "module",
6
6
  "bin": {