@invinite-org/invinite-data-cli 1.2.0 → 2.0.0

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/README.md CHANGED
@@ -214,7 +214,7 @@ command. A handful of commands are hand-written because they do more than one ca
214
214
  | `segments` | `list`, `list-detailed` |
215
215
  | `sec` | Invinite's SEC document store: `filers`, `filer`, `lifecycle`, `issuers`, `filings` (cursor-paged, `form_facet`), `filing` (its document manifest), `document` / `version` (immutable cited blocks, pages, footnotes), `sections`, `figure`, `fact-places`, `search` (`--mode lexical\|literal`, 100 credits), 13F `holders` / `portfolio` / `holding-deltas` / `form-filers`, `financials-catalog` / `statement` / `financial-fact`, `metric-export` / `export`, `datasets`; downloads `save` (originals), `save-figure`, `export-file` |
216
216
  | `earnings` | Calendar, events, live calls, transcripts, Q&A, participants, analysts, guidance and KPI extractions, diff, metrics, prosody, price moves during the call, media, documents, search, company IR documents |
217
- | `news` | News of US companies from SEC filings and their own newsrooms: `list` (cursor-paged), `get` (full text + attribution), `text` (citable blocks), `developments`, `search` (passages; off until the API enables it), `asset-download` |
217
+ | `news` | News of US companies from SEC filings and their own newsrooms: `list` (cursor-paged), `get` (Invinite's summary + attribution), `text` (the summary in citable blocks), `developments`, `search` (passages; off until the API enables it) |
218
218
  | `ownership` | 13F holdings by company / investor, institutions, transactions |
219
219
  | `insider-trades`, `ipos`, `market`, `metadata` | Insider transactions, IPOs, market holidays, available metric and filing-section ids |
220
220
  | `webhooks` | Earnings-call and `news.published` webhook subscriptions |
@@ -321,10 +321,10 @@ narrow its own publications). The list is cursor-paged: `--all` follows `next_ur
321
321
  `--cursor` with the same filters; without `--from` / `--to`, `--all` and `next_cursor` page back through the whole history; with either, the window is at most 92 days.
322
322
 
323
323
  Every item carries `attribution` (publisher, `source_url`, `published_at`, EDGAR form + accession, `statement`):
324
- wherever you show a headline or text, show its publisher, link and date with it. `news get` (STANDARD) has the
325
- `body_text` (`content_status: no_text` = headline and link only); `news text` serves it in blocks (a `409
326
- revision_changed` = the item was corrected; start again without `--cursor`). Process text with an AI model only when
327
- `model_processing_allowed` is `true`. `news asset-download` returns a URL valid for at most 60 seconds.
324
+ wherever you show a headline or text, show its publisher, link and date with it. `news get` (STANDARD) has Invinite's
325
+ summary of the publication, `summary_text` / `summary_html` (`content_status: no_text` = headline and link only), never
326
+ the publisher's own text; `news text` serves the summary in blocks (a `409 revision_changed` = the item was corrected;
327
+ start again without `--cursor`). `news search --field title|lede|summary|any` picks the searched text.
328
328
 
329
329
  `earnings transcript` and `news get` also carry the branded PDF of the version (`pdf`, a permanent public URL, or null while
330
330
  none exists): `--pdf` prints the URL, `--pdf-out <file>` saves the file (an error without a PDF). `earnings versions` lists
@@ -44,7 +44,7 @@ Common multi-step patterns:
44
44
  - **Comparative analysis**: metadata metrics (first) + financials snapshot with multiple tickers + metrics ratios for each
45
45
  - **Earnings call review**: earnings events (first, for the `event_id`) → then in parallel press-release + extractions `--kind guidance` + extractions `--kind kpi` + qa + diff (+ optionally price-attribution: minute price moves next to what was said — temporal coincidence, not cause)
46
46
  - **Guidance tracking**: earnings guidance-history `--metric <metric>` across calls + extractions of the latest call
47
- - **Company announcements**: news list `--publisher <cik>` (what the company published itself; `--ticker` = items mentioning it) → news get `--id <id>` for `body_text` + news developments `--publisher <cik>`; keep each item's `attribution` (publisher, `source_url`, `published_at`, EDGAR form + accession) in the results so the caller can cite it
47
+ - **Company announcements**: news list `--publisher <cik>` (what the company published itself; `--ticker` = items mentioning it) → news get `--id <id>` for `summary_text` (Invinite's summary) + news developments `--publisher <cik>`; keep each item's `attribution` (publisher, `source_url`, `published_at`, EDGAR form + accession) in the results so the caller can cite it
48
48
 
49
49
  ## Output format
50
50
 
@@ -39,7 +39,7 @@ Use the connected Invinite Data API MCP tools when available. Fall back to the `
39
39
  | Company IR documents (annual reports, proxy, ESG, investor-day decks, letters, webcast pages) | `earnings_company_documents`, `earnings_company_document` | `invd earnings company-documents\|document` |
40
40
  | Search company documents (passages with page numbers) | `earnings_document_search` | `invd earnings document-search` |
41
41
  | Keyword / guidance alerts | `earnings_call_alert_create\|list\|update\|delete\|test\|deliveries` | `invd webhooks …` |
42
- | News (SEC filings and the companies' own newsrooms; full text with attribution), its text in blocks, AI-read developments | `news_list`, `news_item`, `news_text`, `news_developments`, `news_search` | `invd news list\|get\|text\|developments\|search` (`news asset-download` is CLI-only) |
42
+ | News (SEC filings and the companies' own newsrooms; Invinite's summary with attribution), the summary in blocks, AI-read developments | `news_list`, `news_item`, `news_text`, `news_developments`, `news_search` | `invd news list\|get\|text\|developments\|search` |
43
43
 
44
44
  The discovery rules below apply to both transports: call `list_available_metrics` before ratios, growth, CAGR, or financial-statement analysis, and call `list_available_section_ids` before requesting filing sections.
45
45
 
@@ -153,12 +153,11 @@ invd webhooks deliveries --id <id> --json
153
153
 
154
154
  `invd news list` (FREE) lists items newest first from SEC EDGAR filings (`rights: public_record`) and the companies' own newsrooms (`rights: issuer`); wire services are never a source. `--ticker` / `--cik` = items that MENTION the company; `--publisher <cik>` = items the company PUBLISHED itself (its verified newsroom publication) — "what did NVIDIA announce" is `--publisher 1045810`, not `--ticker NVDA`. `--publication-type`, `--issuer-category` and `--issuer-tag` narrow the publisher's own publications (the last two need exactly one `--publisher`). Without `--from` / `--to` it pages back through the whole history; with either, the window is at most 92 days. Pages use a cursor, not an offset: `--all` follows `next_url`; by hand pass `next_cursor` as `--cursor` with the same filters.
155
155
 
156
- - **Attribution duty.** Every item carries `attribution` (`publisher`, `source_url`, `published_at`, `edgar.form` + `edgar.accession` for a filing, `statement`). Whenever you quote or show a headline, lede, `body_text` or text block, name the publisher, link `source_url` and give the date (and the form + accession of a filing). The text is the publisher's own words: quote it verbatim, never present it as Invinite's or as verified fact.
157
- - **Model use.** Process text with an AI model (summaries, extraction) only when the answer's `model_processing_allowed` is `true`; otherwise use the headline, links and attribution only. The MCP tools already withhold the words in that case (`text_withheld`).
158
- - `invd news get --id <id>` (STANDARD) has `body_text` (`content_status: available`, else `no_text` = headline and link only), `sightings`, `companies`, images / files and up to 20 developments; `invd news text --id <id>` serves the text in citable blocks (a `409 revision_changed` means the item was corrected: restart without `--cursor`). `superseded_by` names a corrected successor.
159
- - `invd news developments` lists product launches, partnerships, contracts, availability (AI-read from the text, `derived: true`): report `claim_status` as stated (`planned` is a plan, not availability) and cite the `evidence` quotes with the item's attribution.
160
- - `invd news search -q <keywords>` searches headlines and texts (`-m lexical` keywords, the default; `-m literal` exact characters; `--field title|body|any`; default window 365 days, at most 8 passages). It answers `503 search_disabled` until the API enables it; read `coverage` before concluding from few or no hits, and cite each passage with its item's `attribution`.
161
- - `invd news asset-download --id <id> --asset-id <asset_id>` returns a URL valid ≤ 60 s (keep the `credit` with the image); never store it.
156
+ - **Attribution duty.** Every item carries `attribution` (`publisher`, `source_url`, `published_at`, `edgar.form` + `edgar.accession` for a filing, `statement`). Whenever you show a headline, lede, `summary_text` or summary block, name the publisher, link `source_url` and give the date (and the form + accession of a filing). The lede, the summary and the developments are Invinite's own wording of the publication (never the publisher's text): present them as a summary of what the publisher stated, not as verified fact, and point to `source_url` for the publisher's own words.
157
+ - **Model use.** `model_processing_allowed` reports the publisher's machine-readable reservation on its ORIGINAL publication; it is informational — every text the API serves (lede, summary, developments) is Invinite's own wording.
158
+ - `invd news get --id <id>` (STANDARD) has Invinite's long summary as `summary_text` / `summary_html` with `summary_words`, `source_words` and `summarized_at` (`content_status: available`, else `no_text` = headline and link only: an item published before summaries started, a metadata-only item or a reserved source), the branded PDF (`pdf`), `sightings`, `companies` and up to 20 developments; `invd news text --id <id>` serves the summary in citable blocks (`index`, `kind` heading / paragraph / list, `heading`, `text`; a `409 revision_changed` means the item was corrected: restart without `--cursor`). `superseded_by` names a corrected successor.
159
+ - `invd news developments` lists product launches, partnerships, contracts, availability (AI-read from the text, `derived: true`): report `claim_status` as stated (`planned` is a plan, not availability) and cite the item's attribution.
160
+ - `invd news search -q <keywords>` searches headlines and texts (`-m lexical` keywords, the default; `-m literal` exact characters; `--field title|lede|summary|any`; default window 365 days, at most 8 passages). It answers `503 search_disabled` until the API enables it; read `coverage` before concluding from few or no hits, and cite each passage with its item's `attribution`.
162
161
  - New items as they appear: `invd ws listen --news --tickers NVDA` (STANDARD); a webhook: `"events":["news.published"]` in `invd webhooks create --body` (STANDARD and above, filtered by `ciks`).
163
162
 
164
163
  ```bash
@@ -215,7 +214,7 @@ Earnings calls: calendar, transcripts, Q&A, extractions, media, search and webho
215
214
  # Analysts of a company (optional: --limit, --offset, --all)
216
215
  invd earnings analysts -i MSFT --json
217
216
 
218
- # Earnings call calendar (optional: --from, --to, --status, --session, --exchange, --event-type, --sort, --limit, --offset, --date-kind, --calendar-status, --all)
217
+ # Earnings call calendar (optional: --from, --to, --status, --session, --exchange, --event-type, --sort, --limit, --offset, --date-kind, --calendar-status, --include-expired, --all)
219
218
  invd earnings calendar --json
220
219
 
221
220
  # Call-over-call diff (optional: --event-id, --identifier, --year, --quarter, --date, --event-type, --vs)
@@ -227,7 +226,7 @@ invd earnings document-search -q "Azure growth" -i MSFT --json
227
226
  # Earnings call by ID (optional: --include)
228
227
  invd earnings event --event-id 9655a5db-8968-40be-8c79-7cd1a8aed8e9 --json
229
228
 
230
- # Event history of a company (optional: --from, --to, --include, --event-type, --sort, --limit, --offset, --all)
229
+ # Event history of a company (optional: --from, --to, --include, --event-type, --sort, --limit, --offset, --include-expired, --all)
231
230
  invd earnings events -i MSFT --json
232
231
 
233
232
  # Guidance and KPI extractions (optional: --event-id, --identifier, --year, --quarter, --date, --event-type, --kind, --review, --limit, --offset, --all)
@@ -498,27 +497,24 @@ invd metrics ratios -i AAPL -p annual --json
498
497
  News of US companies from SEC filings and their own newsrooms: items, full text with attribution, developments and files
499
498
 
500
499
  ```bash
501
- # Get a short-lived URL of a news image or file (optional: --purpose)
502
- invd news asset-download --id 13351ae7-876b-4839-ba2b-78873f6b4e00 --asset-id 612cd78d-b618-42c6-b3be-ff5c9df1a0f7 --json
503
-
504
500
  # List company developments from news (optional: --publisher, --topic, --item-id, --from, --to, --effective-from, --effective-to, --limit, --cursor, --all)
505
501
  invd news developments --json
506
502
 
507
- # List news items (optional: --ticker, --cik, --from, --to, --source, --kind, --topic, --earnings, --has-media, --publisher, --publication-type, --issuer-category, --issuer-tag, --limit, --cursor, --all)
503
+ # List news items (optional: --ticker, --cik, --from, --to, --source, --kind, --topic, --earnings, --publisher, --publication-type, --issuer-category, --issuer-tag, --limit, --cursor, --all)
508
504
  invd news list --json
509
505
 
510
506
  # Search news (optional: --mode, --case-sensitive, --field, --ticker, --cik, --publisher, --publisher-host, --kind, --topic, --from, --to, --limit)
511
507
  invd news search -q "data center revenue" -m lexical -t NVDA --json
512
508
 
513
- # Get a news item's text in blocks (optional: --limit, --max-chars, --cursor, --all)
514
- invd news text --id 13351ae7-876b-4839-ba2b-78873f6b4e00 --json
509
+ # Get a news item's summary in blocks (optional: --limit, --max-chars, --cursor, --all)
510
+ invd news text --id 06304274-da4a-400e-9d5c-fb4ce04f01c9 --json
515
511
  ```
516
512
 
517
513
  <!-- invd:hand:news get -->
518
514
  ```bash
519
- # Get a news item (optional: --body text|html|both); --pdf prints its branded PDF's URL, --pdf-out saves the file
520
- invd news get --body both --id 13351ae7-876b-4839-ba2b-78873f6b4e00 --json
521
- invd news get --id 13351ae7-876b-4839-ba2b-78873f6b4e00 --pdf-out item.pdf
515
+ # Get a news item with Invinite's summary; --pdf prints its branded PDF's URL, --pdf-out saves the file
516
+ invd news get --id 06304274-da4a-400e-9d5c-fb4ce04f01c9 --json
517
+ invd news get --id 06304274-da4a-400e-9d5c-fb4ce04f01c9 --pdf-out item.pdf
522
518
  ```
523
519
  <!-- /invd:hand:news get -->
524
520
 
@@ -802,7 +798,7 @@ Ask for the company's own publications (publisher = CIK), then read one in full
802
798
  ```bash
803
799
  invd news list --publisher 1045810 --from 2026-10-29 --json # what NVIDIA published itself
804
800
  invd news list --ticker NVDA --source edgar --from 2026-10-29 --json # SEC filings mentioning NVIDIA
805
- invd news get --id <id> --json # body_text + attribution
801
+ invd news get --id <id> --json # summary_text + attribution
806
802
  invd news developments --publisher 1045810 --topic product_launch --json
807
803
  ```
808
804
  Answer with the publisher, the date and the link of each item (`attribution`), and keep "announced" / "planned" claims as such.
@@ -1,4 +1,3 @@
1
- import { Option } from 'commander';
2
1
  import chalk from 'chalk';
3
2
  import { apiGet } from '../client/api-client.js';
4
3
  import { printPdfUrl, savePdf } from '../client/pdf.js';
@@ -11,7 +10,10 @@ import { setJsonMode } from '../shared/spinner.js';
11
10
  * The hand-written `invd news get`: it can save the item's PDF, so it is not one REST call plus one view
12
11
  * (`src/hand-written-commands.ts`). Every other `news` action is generated and attached to the same group.
13
12
  */
14
- /** The attribution block, then the text it attributes (backend news task 17); the URL above the long text. */
13
+ /**
14
+ * The attribution block, then Invinite's summary it attributes (backend news summaries task 5, API 2.0.0): the lengths and
15
+ * the PDF URL above the long text. The publisher's own text is never served.
16
+ */
15
17
  const COLUMNS = [
16
18
  'id',
17
19
  'published_at',
@@ -19,7 +21,6 @@ const COLUMNS = [
19
21
  'kind',
20
22
  'source.id',
21
23
  'url',
22
- 'content_status',
23
24
  'attribution.publisher',
24
25
  'attribution.publisher_host',
25
26
  'attribution.source_url',
@@ -28,17 +29,19 @@ const COLUMNS = [
28
29
  'attribution.edgar.form',
29
30
  'attribution.edgar.accession',
30
31
  'attribution.statement',
31
- 'content_formats',
32
+ 'content_status',
33
+ 'summary_words',
34
+ 'source_words',
35
+ 'summarized_at',
32
36
  'pdf.url',
33
- 'body_text',
34
- 'body_html',
37
+ 'summary_text',
38
+ 'summary_html',
35
39
  ];
36
40
  export function registerNewsCommands(program) {
37
41
  const news = program.commands.find(command => command.name() === 'news') ?? program.command('news');
38
42
  news.command('get')
39
- .description('Get a news item')
43
+ .description("Get a news item with Invinite's summary of the publication")
40
44
  .requiredOption('--id <id>', 'News item id')
41
- .addOption(new Option('--body <form>', 'Which text forms to return: text = body_text (plain, default), html = body_html (sanitized HTML with the images inline) instead, both = both').choices(['text', 'html', 'both']))
42
45
  .option('--pdf', 'Print the URL of the branded PDF of this item')
43
46
  .option('--pdf-out <file>', 'Save the branded PDF of this item (e.g. item.pdf)')
44
47
  .option('--force', 'Overwrite an existing --pdf-out file')
@@ -48,7 +51,6 @@ export function registerNewsCommands(program) {
48
51
  setJsonMode(true);
49
52
  const data = await apiGet({
50
53
  path: `/v1/news/${encodeURIComponent(cmdOpts.id)}`,
51
- params: { body: cmdOpts.body },
52
54
  });
53
55
  const saved = await savePdf(data.pdf, cmdOpts, 'Downloading news PDF...');
54
56
  output(data, opts, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"news.js","sourceRoot":"","sources":["../../../src/commands/news.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"news.js","sourceRoot":"","sources":["../../../src/commands/news.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;GAGG;AAEH;;;GAGG;AACH,MAAM,OAAO,GAAG;IACd,IAAI;IACJ,cAAc;IACd,OAAO;IACP,MAAM;IACN,WAAW;IACX,KAAK;IACL,uBAAuB;IACvB,4BAA4B;IAC5B,wBAAwB;IACxB,0BAA0B;IAC1B,oBAAoB;IACpB,wBAAwB;IACxB,6BAA6B;IAC7B,uBAAuB;IACvB,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,eAAe;IACf,SAAS;IACT,cAAc;IACd,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAChB,WAAW,CAAC,4DAA4D,CAAC;SACzE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,OAAO,EAAE,+CAA+C,CAAC;SAChE,MAAM,CAAC,kBAAkB,EAAE,mDAAmD,CAAC;SAC/E,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAwE,EAAE,EAAE;QAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAsB;YAC7C,IAAI,EAAE,YAAY,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;SACnD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACtB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "specVersion": "1.0.0",
3
- "specSha256": "558348830d2357af9cbbb9e5cb7f3ab1d6538afbf990ea779ccb07546df5c405",
3
+ "specSha256": "118ae607bfa397dde8e651ff1a871117efa93a2ee92517e781921346bb64db3a",
4
4
  "groups": [
5
5
  {
6
6
  "name": "company",
@@ -601,6 +601,18 @@
601
601
  "confirmed"
602
602
  ],
603
603
  "description": "Filter by `calendar.status` (repeatable), applied beside `status`"
604
+ },
605
+ {
606
+ "name": "include_expired",
607
+ "in": "query",
608
+ "required": false,
609
+ "type": "string",
610
+ "enum": [
611
+ "true",
612
+ "false"
613
+ ],
614
+ "example": "false",
615
+ "description": "Expired calendar rows (an estimate that never became a call, a duplicate, a non-call issuer; see `expired_reason`) are omitted unless true. Default: false"
604
616
  }
605
617
  ],
606
618
  "view": "table",
@@ -1001,6 +1013,18 @@
1001
1013
  "default": 0,
1002
1014
  "example": 0,
1003
1015
  "description": "Number of events to skip for pagination"
1016
+ },
1017
+ {
1018
+ "name": "include_expired",
1019
+ "in": "query",
1020
+ "required": false,
1021
+ "type": "string",
1022
+ "enum": [
1023
+ "true",
1024
+ "false"
1025
+ ],
1026
+ "example": "false",
1027
+ "description": "Expired calendar rows (an estimate that never became a call, a duplicate, a non-call issuer; see `expired_reason`) are omitted unless true. Default: false"
1004
1028
  }
1005
1029
  ],
1006
1030
  "view": "table",
@@ -4565,54 +4589,6 @@
4565
4589
  "periods"
4566
4590
  ]
4567
4591
  },
4568
- {
4569
- "operationId": "newsAssetDownload",
4570
- "group": "news",
4571
- "action": "asset-download",
4572
- "method": "get",
4573
- "path": "/v1/news/{id}/assets/{asset_id}/download",
4574
- "auth": true,
4575
- "summary": "Get a short-lived URL of a news image or file",
4576
- "params": [
4577
- {
4578
- "name": "purpose",
4579
- "in": "query",
4580
- "required": false,
4581
- "type": "string",
4582
- "enum": [
4583
- "display",
4584
- "download"
4585
- ],
4586
- "example": "display",
4587
- "description": "display = an inline URL (an image with `can_display`, or a PDF with `can_download`: viewed in the browser); download = an attachment (`can_download`). Omitted: download when allowed, else display"
4588
- },
4589
- {
4590
- "name": "id",
4591
- "in": "path",
4592
- "required": true,
4593
- "type": "string",
4594
- "example": "13351ae7-876b-4839-ba2b-78873f6b4e00",
4595
- "description": "News item id"
4596
- },
4597
- {
4598
- "name": "asset_id",
4599
- "in": "path",
4600
- "required": true,
4601
- "type": "string",
4602
- "example": "612cd78d-b618-42c6-b3be-ff5c9df1a0f7",
4603
- "description": "Asset id (`assets[].id` of the item)"
4604
- }
4605
- ],
4606
- "view": "keyValue",
4607
- "columns": [
4608
- "purpose",
4609
- "url",
4610
- "expires_at",
4611
- "content_type",
4612
- "credit"
4613
- ],
4614
- "pagination": "none"
4615
- },
4616
4592
  {
4617
4593
  "operationId": "newsDevelopments",
4618
4594
  "group": "news",
@@ -4808,18 +4784,6 @@
4808
4784
  "example": "true",
4809
4785
  "description": "true = only earnings news (results, results dates, call announcements, guidance); false = none of it"
4810
4786
  },
4811
- {
4812
- "name": "has_media",
4813
- "in": "query",
4814
- "required": false,
4815
- "type": "string",
4816
- "enum": [
4817
- "true",
4818
- "false"
4819
- ],
4820
- "example": "true",
4821
- "description": "true = only items with media you can get now (`media_count` > 0: an original PDF or image to show or download); false = items without"
4822
- },
4823
4787
  {
4824
4788
  "name": "publisher",
4825
4789
  "in": "query",
@@ -4949,12 +4913,13 @@
4949
4913
  "type": "string",
4950
4914
  "enum": [
4951
4915
  "title",
4952
- "body",
4916
+ "lede",
4917
+ "summary",
4953
4918
  "any"
4954
4919
  ],
4955
4920
  "default": "any",
4956
4921
  "example": "any",
4957
- "description": "title = headlines and ledes, body = the item text, any = both"
4922
+ "description": "title = headlines, lede = the ledes, summary = the summaries, any = every field"
4958
4923
  },
4959
4924
  {
4960
4925
  "name": "ticker",
@@ -5071,7 +5036,7 @@
5071
5036
  "method": "get",
5072
5037
  "path": "/v1/news/{id}/text",
5073
5038
  "auth": true,
5074
- "summary": "Get a news item's text in blocks",
5039
+ "summary": "Get a news item's summary in blocks",
5075
5040
  "params": [
5076
5041
  {
5077
5042
  "name": "limit",
@@ -5089,7 +5054,7 @@
5089
5054
  "type": "integer",
5090
5055
  "default": 12000,
5091
5056
  "example": 12000,
5092
- "description": "Unicode code points per page; a block is never split (the minimum is the largest block)"
5057
+ "description": "Unicode code points per page; a block is never split (the minimum is larger than any block)"
5093
5058
  },
5094
5059
  {
5095
5060
  "name": "cursor",
@@ -5104,7 +5069,7 @@
5104
5069
  "in": "path",
5105
5070
  "required": true,
5106
5071
  "type": "string",
5107
- "example": "13351ae7-876b-4839-ba2b-78873f6b4e00",
5072
+ "example": "06304274-da4a-400e-9d5c-fb4ce04f01c9",
5108
5073
  "description": "News item id"
5109
5074
  }
5110
5075
  ],
@@ -4,7 +4,7 @@ export declare function flagName(parameterName: string): string;
4
4
  export declare const RESERVED_FLAGS: readonly string[];
5
5
  /**
6
6
  * The JSON-body flags `defineOperationCommand` adds to an operation WITH a request body only: a body-less read may
7
- * name a parameter `body` (`GET /v1/news/{id}?body=html` → `invd news get --body html`).
7
+ * name a parameter `body` (a `GET …?body=html` would become `--body html`).
8
8
  */
9
9
  export declare const BODY_FLAGS: readonly string[];
10
10
  /** Short flags commander owns (`-V`, `-h`). */
@@ -6,7 +6,7 @@ export function flagName(parameterName) {
6
6
  export const RESERVED_FLAGS = ['json', 'all', 'show-cost', 'version', 'help'];
7
7
  /**
8
8
  * The JSON-body flags `defineOperationCommand` adds to an operation WITH a request body only: a body-less read may
9
- * name a parameter `body` (`GET /v1/news/{id}?body=html` → `invd news get --body html`).
9
+ * name a parameter `body` (a `GET …?body=html` would become `--body html`).
10
10
  */
11
11
  export const BODY_FLAGS = ['body', 'body-file'];
12
12
  /** Short flags commander owns (`-V`, `-h`). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invinite-org/invinite-data-cli",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "description": "CLI for the Invinite Data API",
6
6
  "publishConfig": {