@invinite-org/invinite-data-cli 0.6.0 → 0.7.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.
@@ -15,8 +15,8 @@ Analyze the earnings call requested in `$ARGUMENTS` using Invinite Data. Prefer
15
15
  - Q&A: `invd earnings qa` (`earnings_call_qa`) and participants: `invd earnings participants` (`earnings_call_participants`)
16
16
  - diff vs the prior call: `invd earnings diff` (`earnings_call_diff`)
17
17
  - optional, price moves during the call: `invd earnings price-attribution` (`earnings_call_price_moves`) — minute returns next to what was being said; skip it on a `404 price_attribution_unavailable`
18
- - only when a claim needs the exact wording: `invd earnings transcript` (`earnings_call_transcript`) or `invd earnings search -q "<topic>" --event-id <event_id>` (`earnings_call_search`)
19
- - when the call has documents (`has_documents`): `invd earnings documents` (`earnings_call_documents`) — CFO commentary, shareholder letter, data sheets; for context beyond the call (annual report, investor-day deck) `invd earnings document-search -q "<topic>" -i <TICKER>` (`earnings_document_search`)
18
+ - only when a claim needs the exact wording: `invd earnings transcript` (`earnings_call_transcript`) or `invd earnings search -q "<topic>" --mode hybrid --event-id <event_id>` (`earnings_call_search`; `--mode literal` for an exact figure or term)
19
+ - when the call has documents (`has_documents`): `invd earnings documents` (`earnings_call_documents`) — CFO commentary, shareholder letter, data sheets; for context beyond the call (annual report, investor-day deck) `invd earnings document-search -q "<topic>" --mode hybrid -i <TICKER>` (`earnings_document_search`); a `coverage.completeness` of `partial` / `unknown` means no hits is not proof the topic is absent
20
20
  3. **Summarise**:
21
21
  - **Results vs guidance** — reported figures from the press release against the guidance given on the prior call (`invd earnings guidance-history -i <TICKER> --metric <metric>` for a metric's series).
22
22
  - **Guidance changes** — each item raised, lowered, maintained, introduced or withdrawn (`direction`), with the period and basis (GAAP / non-GAAP).
@@ -128,6 +128,7 @@ Commands about one call take a selector: `--event-id <event_id>` (from `events`
128
128
  - `earnings event --include observations` adds the date / time observations; `earnings participants --include evidence` the participation evidence.
129
129
  - Every `*_ms` field is milliseconds from the call's start: cite it as `[m:ss]`. `qa_start_ms` is where the Q&A begins (null without one).
130
130
  - Company documents and document-search hits are company-published material: quote them as "passages from company-published documents", never as verified facts, and cite each with its document title, year and page (`page`; open `url` at `#page=<page>`). A `webcast` row is link-only (`url` null, `source_url` = the replay page, `link_status`).
131
+ - `earnings search` and `earnings document-search` take `-m, --mode`: `hybrid` for natural-language questions, `lexical` (the default) for words and phrases, `literal` for exact strings such as `FY2027` or `10b5-1` (case-sensitive; `--case-sensitive false` ignores case), `semantic` for meaning only. Every mode costs the same. In `--json` output read `coverage.completeness` before concluding anything from few or no hits: `partial` / `unknown` means the index does not cover the whole scope yet, so absence is not proof. `match.spans` are code-point offsets of the matched characters in `text`.
131
132
  - Media signed URLs expire after 15 minutes; `--output` on the download commands saves the file.
132
133
  - The live transcript (`ws listen --earnings`), audio, slides, the live stream and webhooks need the PRO plan (calendar, events and `live` need LITE, the other reads STANDARD); a `403` names the plan a route needs.
133
134
 
@@ -200,11 +201,11 @@ invd earnings calendar --json
200
201
  # Call-over-call diff (optional: --event-id, --identifier, --year, --quarter, --date, --event-type, --vs)
201
202
  invd earnings diff --event-id cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c --json
202
203
 
203
- # Search investor documents (optional: --identifier, --kind, --section, --year, --table, --limit)
204
+ # Search investor documents (optional: --mode, --case-sensitive, --identifier, --kind, --section, --year, --table, --limit)
204
205
  invd earnings document-search -q "Azure growth" -i MSFT --json
205
206
 
206
207
  # Earnings call by ID (optional: --include)
207
- invd earnings event --event-id cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c --json
208
+ invd earnings event --event-id 9655a5db-8968-40be-8c79-7cd1a8aed8e9 --json
208
209
 
209
210
  # Event history of a company (optional: --from, --to, --include, --event-type, --sort, --limit, --offset, --all)
210
211
  invd earnings events -i MSFT --json
@@ -236,8 +237,8 @@ invd earnings prosody --event-id cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c --json
236
237
  # Earnings call Q&A (optional: --event-id, --identifier, --year, --quarter, --date, --event-type, --limit, --offset, --include, --all)
237
238
  invd earnings qa --event-id cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c --json
238
239
 
239
- # Search earnings calls (optional: --event-id, --identifier, --from, --to, --type, --event-type, --limit)
240
- invd earnings search -q "Azure growth" -i MSFT --json
240
+ # Search earnings calls (optional: --mode, --case-sensitive, --event-id, --identifier, --from, --to, --type, --event-type, --limit)
241
+ invd earnings search -q "Azure growth" -m semantic -i MSFT --json
241
242
 
242
243
  # Live audio stream URL (optional: --event-id, --identifier, --year, --quarter, --date, --event-type)
243
244
  invd earnings stream --event-id cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c --json
@@ -632,7 +633,8 @@ Find the call, then read it from the cheapest source to the most detailed:
632
633
  invd earnings events -i NVDA -s desc -l 4 --json # pick the event_id
633
634
  invd earnings transcript --event-id <event_id> --format sections --json
634
635
  invd earnings extractions --event-id <event_id> --kind guidance --json
635
- invd earnings search -q "gross margin outlook" --event-id <event_id> --json
636
+ invd earnings search -q "gross margin outlook" --mode hybrid --event-id <event_id> --json
637
+ invd earnings document-search -q FY2027 -i NVDA --mode literal --json # exact token in the company's documents
636
638
  invd earnings price-attribution --event-id <event_id> --json # optional: price moves during the call
637
639
  ```
638
640
  `price-attribution` (MCP `earnings_call_price_moves`, STANDARD, 1 credit) lines up minute returns with what was said in that minute: temporal coincidence, not attribution of cause; pre-market bars are sparse, and a `404 price_attribution_unavailable` means the call is not attributed yet.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "specVersion": "1.0.0",
3
- "specSha256": "cafa5748c4ca0c51533695eb005138bdd888d5e4144163269fb8b3a245cd0a10",
3
+ "specSha256": "9f4094202acf89ee7a89a522e9825beac9df8a364d2d4b0f59710dc05d986cc5",
4
4
  "groups": [
5
5
  {
6
6
  "name": "company",
@@ -708,9 +708,37 @@
708
708
  "required": true,
709
709
  "type": "string",
710
710
  "example": "Azure growth",
711
- "description": "The question or phrase to search for",
711
+ "description": "The keywords, exact text (mode=literal) or question (semantic / hybrid) to search for",
712
712
  "alias": "q"
713
713
  },
714
+ {
715
+ "name": "mode",
716
+ "in": "query",
717
+ "required": false,
718
+ "type": "string",
719
+ "enum": [
720
+ "lexical",
721
+ "literal",
722
+ "semantic",
723
+ "hybrid"
724
+ ],
725
+ "default": "lexical",
726
+ "example": "hybrid",
727
+ "description": "lexical (keywords, default), literal (exact characters), semantic (meaning) or hybrid (lexical + semantic, fused)",
728
+ "alias": "m"
729
+ },
730
+ {
731
+ "name": "case_sensitive",
732
+ "in": "query",
733
+ "required": false,
734
+ "type": "string",
735
+ "enum": [
736
+ "true",
737
+ "false"
738
+ ],
739
+ "example": "false",
740
+ "description": "mode=literal only: \"false\" matches regardless of case (default \"true\": case-sensitive)"
741
+ },
714
742
  {
715
743
  "name": "identifier",
716
744
  "in": "query",
@@ -780,6 +808,7 @@
780
808
  "rowsPath": "hits",
781
809
  "columns": [
782
810
  "score",
811
+ "match.type",
783
812
  "kind",
784
813
  "year",
785
814
  "group",
@@ -819,7 +848,7 @@
819
848
  "in": "path",
820
849
  "required": true,
821
850
  "type": "string",
822
- "example": "cfbcf4f8-6d4d-41ef-9197-1c91ff2aef8c",
851
+ "example": "9655a5db-8968-40be-8c79-7cd1a8aed8e9",
823
852
  "description": "Event identifier (event_id of any earnings-calls response)"
824
853
  }
825
854
  ],
@@ -1742,9 +1771,37 @@
1742
1771
  "required": true,
1743
1772
  "type": "string",
1744
1773
  "example": "Azure growth",
1745
- "description": "The question or phrase to search for",
1774
+ "description": "The keywords, exact text (mode=literal) or question (semantic / hybrid) to search for",
1746
1775
  "alias": "q"
1747
1776
  },
1777
+ {
1778
+ "name": "mode",
1779
+ "in": "query",
1780
+ "required": false,
1781
+ "type": "string",
1782
+ "enum": [
1783
+ "lexical",
1784
+ "literal",
1785
+ "semantic",
1786
+ "hybrid"
1787
+ ],
1788
+ "default": "lexical",
1789
+ "example": "semantic",
1790
+ "description": "lexical (keywords, default), literal (exact characters), semantic (meaning) or hybrid (lexical + semantic, fused)",
1791
+ "alias": "m"
1792
+ },
1793
+ {
1794
+ "name": "case_sensitive",
1795
+ "in": "query",
1796
+ "required": false,
1797
+ "type": "string",
1798
+ "enum": [
1799
+ "true",
1800
+ "false"
1801
+ ],
1802
+ "example": "false",
1803
+ "description": "mode=literal only: \"false\" matches regardless of case (default \"true\": case-sensitive)"
1804
+ },
1748
1805
  {
1749
1806
  "name": "event_id",
1750
1807
  "in": "query",
@@ -1813,12 +1870,14 @@
1813
1870
  }
1814
1871
  ],
1815
1872
  "exampleParams": [
1816
- "identifier"
1873
+ "identifier",
1874
+ "mode"
1817
1875
  ],
1818
1876
  "view": "table",
1819
1877
  "rowsPath": "hits",
1820
1878
  "columns": [
1821
1879
  "score",
1880
+ "match.type",
1822
1881
  "type",
1823
1882
  "symbol",
1824
1883
  "conference_date",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invinite-org/invinite-data-cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "CLI for the Invinite Data API",
6
6
  "publishConfig": {