@invinite-org/invinite-data-cli 3.0.0 → 4.1.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.
Files changed (129) hide show
  1. package/README.md +341 -374
  2. package/claude-plugin/.claude-plugin/plugin.json +1 -1
  3. package/claude-plugin/agents/invinite-data.md +59 -28
  4. package/claude-plugin/commands/analyze-earnings-call.md +15 -14
  5. package/claude-plugin/commands/analyze-filing.md +8 -7
  6. package/claude-plugin/commands/compare-companies.md +5 -5
  7. package/claude-plugin/commands/financial-research.md +9 -9
  8. package/claude-plugin/commands/ownership-review.md +6 -6
  9. package/claude-plugin/skills/invinite-data-cli/SKILL.md +466 -570
  10. package/dist/bin/invd.js +11 -2
  11. package/dist/bin/invd.js.map +1 -1
  12. package/dist/src/cli.d.ts +2 -0
  13. package/dist/src/cli.js +48 -29
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/client/api-client.d.ts +24 -24
  16. package/dist/src/client/api-client.js +52 -70
  17. package/dist/src/client/api-client.js.map +1 -1
  18. package/dist/src/client/pagination.d.ts +12 -11
  19. package/dist/src/client/pagination.js +47 -56
  20. package/dist/src/client/pagination.js.map +1 -1
  21. package/dist/src/commands/agent-setup.d.ts +21 -0
  22. package/dist/src/commands/agent-setup.js +112 -0
  23. package/dist/src/commands/agent-setup.js.map +1 -0
  24. package/dist/src/commands/api.d.ts +27 -0
  25. package/dist/src/commands/api.js +180 -0
  26. package/dist/src/commands/api.js.map +1 -0
  27. package/dist/src/commands/auth.d.ts +37 -0
  28. package/dist/src/commands/auth.js +336 -0
  29. package/dist/src/commands/auth.js.map +1 -0
  30. package/dist/src/commands/completion.d.ts +7 -0
  31. package/dist/src/commands/completion.js +115 -0
  32. package/dist/src/commands/completion.js.map +1 -0
  33. package/dist/src/commands/config.d.ts +4 -0
  34. package/dist/src/commands/config.js +85 -48
  35. package/dist/src/commands/config.js.map +1 -1
  36. package/dist/src/commands/plugin.d.ts +8 -0
  37. package/dist/src/commands/plugin.js +8 -10
  38. package/dist/src/commands/plugin.js.map +1 -1
  39. package/dist/src/config/auth.d.ts +17 -1
  40. package/dist/src/config/auth.js +50 -36
  41. package/dist/src/config/auth.js.map +1 -1
  42. package/dist/src/config/config-manager.d.ts +56 -4
  43. package/dist/src/config/config-manager.js +173 -29
  44. package/dist/src/config/config-manager.js.map +1 -1
  45. package/dist/src/config/toml.d.ts +7 -0
  46. package/dist/src/config/toml.js +79 -0
  47. package/dist/src/config/toml.js.map +1 -0
  48. package/dist/src/examples.d.ts +22 -0
  49. package/dist/src/examples.js +56 -0
  50. package/dist/src/examples.js.map +1 -0
  51. package/dist/src/generated/cli-manifest.json +5573 -5140
  52. package/dist/src/hand-written-commands.d.ts +11 -41
  53. package/dist/src/hand-written-commands.js +7 -17
  54. package/dist/src/hand-written-commands.js.map +1 -1
  55. package/dist/src/output/jq.d.ts +15 -0
  56. package/dist/src/output/jq.js +234 -0
  57. package/dist/src/output/jq.js.map +1 -0
  58. package/dist/src/output/options.d.ts +29 -0
  59. package/dist/src/output/options.js +72 -0
  60. package/dist/src/output/options.js.map +1 -0
  61. package/dist/src/output/render.d.ts +54 -0
  62. package/dist/src/output/render.js +160 -0
  63. package/dist/src/output/render.js.map +1 -0
  64. package/dist/src/shared/errors.d.ts +59 -15
  65. package/dist/src/shared/errors.js +126 -38
  66. package/dist/src/shared/errors.js.map +1 -1
  67. package/dist/src/shared/prompt.d.ts +10 -0
  68. package/dist/src/shared/prompt.js +24 -0
  69. package/dist/src/shared/prompt.js.map +1 -0
  70. package/dist/src/shared/spinner.js +2 -1
  71. package/dist/src/shared/spinner.js.map +1 -1
  72. package/dist/src/spec-commands.d.ts +14 -6
  73. package/dist/src/spec-commands.js +454 -174
  74. package/dist/src/spec-commands.js.map +1 -1
  75. package/dist/src/spec-flags.d.ts +11 -6
  76. package/dist/src/spec-flags.js +14 -7
  77. package/dist/src/spec-flags.js.map +1 -1
  78. package/dist/src/spec-manifest.d.ts +416 -116
  79. package/dist/src/spec-manifest.js +44 -13
  80. package/dist/src/spec-manifest.js.map +1 -1
  81. package/dist/src/update-notifier.d.ts +9 -0
  82. package/dist/src/update-notifier.js +63 -0
  83. package/dist/src/update-notifier.js.map +1 -0
  84. package/package.json +2 -3
  85. package/dist/src/client/earnings-live.d.ts +0 -194
  86. package/dist/src/client/earnings-live.js +0 -300
  87. package/dist/src/client/earnings-live.js.map +0 -1
  88. package/dist/src/client/news-live.d.ts +0 -72
  89. package/dist/src/client/news-live.js +0 -120
  90. package/dist/src/client/news-live.js.map +0 -1
  91. package/dist/src/client/pdf.d.ts +0 -15
  92. package/dist/src/client/pdf.js +0 -15
  93. package/dist/src/client/pdf.js.map +0 -1
  94. package/dist/src/client/websocket-client.d.ts +0 -19
  95. package/dist/src/client/websocket-client.js +0 -174
  96. package/dist/src/client/websocket-client.js.map +0 -1
  97. package/dist/src/commands/earnings.d.ts +0 -16
  98. package/dist/src/commands/earnings.js +0 -464
  99. package/dist/src/commands/earnings.js.map +0 -1
  100. package/dist/src/commands/login.d.ts +0 -15
  101. package/dist/src/commands/login.js +0 -249
  102. package/dist/src/commands/login.js.map +0 -1
  103. package/dist/src/commands/news.d.ts +0 -2
  104. package/dist/src/commands/news.js +0 -69
  105. package/dist/src/commands/news.js.map +0 -1
  106. package/dist/src/commands/sec.d.ts +0 -47
  107. package/dist/src/commands/sec.js +0 -191
  108. package/dist/src/commands/sec.js.map +0 -1
  109. package/dist/src/commands/ws.d.ts +0 -33
  110. package/dist/src/commands/ws.js +0 -116
  111. package/dist/src/commands/ws.js.map +0 -1
  112. package/dist/src/formatters/json-formatter.d.ts +0 -1
  113. package/dist/src/formatters/json-formatter.js +0 -4
  114. package/dist/src/formatters/json-formatter.js.map +0 -1
  115. package/dist/src/formatters/table-formatter.d.ts +0 -4
  116. package/dist/src/formatters/table-formatter.js +0 -73
  117. package/dist/src/formatters/table-formatter.js.map +0 -1
  118. package/dist/src/formatters/time.d.ts +0 -2
  119. package/dist/src/formatters/time.js +0 -14
  120. package/dist/src/formatters/time.js.map +0 -1
  121. package/dist/src/shared/output.d.ts +0 -3
  122. package/dist/src/shared/output.js +0 -13
  123. package/dist/src/shared/output.js.map +0 -1
  124. package/dist/src/shared/readiness.d.ts +0 -4
  125. package/dist/src/shared/readiness.js +0 -60
  126. package/dist/src/shared/readiness.js.map +0 -1
  127. package/dist/src/shared/types.d.ts +0 -11
  128. package/dist/src/shared/types.js +0 -2
  129. package/dist/src/shared/types.js.map +0 -1
@@ -1,174 +0,0 @@
1
- import { getApiKey } from '../config/auth.js';
2
- import { getBaseUrl } from '../config/config-manager.js';
3
- import chalk from 'chalk';
4
- import { initialLiveState, isAllLive, isEarningsFrame, liveStep, subscribeFrame, } from './earnings-live.js';
5
- import { isNewsFrame, newsStep, newsSubscribeFrame } from './news-live.js';
6
- /** Close codes of `/v1/ws` that a reconnect cannot fix (bad key, plan, connection limit). */
7
- const PERMANENT_CLOSE_CODES = new Set([4001, 4003, 4029]);
8
- const CLEAR_LINE = '\r\x1b[2K';
9
- /** `earnings` and `news` exclude each other (`ws listen` refuses both); neither = the filing stream. */
10
- export async function connectWebSocket(opts = {}) {
11
- const apiKey = await getApiKey();
12
- const base = getBaseUrl().replace(/\/+$/, '').replace(/^http/, 'ws');
13
- const url = `${base}/v1/ws?api_key=${encodeURIComponent(apiKey)}`;
14
- const earnings = opts.earnings;
15
- const news = opts.news;
16
- const ndjson = Boolean(earnings?.json || news?.json);
17
- const status = (line) => {
18
- if (!ndjson)
19
- console.log(line);
20
- };
21
- let reconnectDelay = 1000;
22
- let shouldReconnect = true;
23
- let current = null;
24
- let live = earnings ? initialLiveState(earnings.sinceSeq) : null;
25
- const liveOpts = earnings ? { partials: earnings.partials, names: earnings.names, allLive: isAllLive(earnings.target) } : null;
26
- let partialShown = false;
27
- return new Promise((resolve, reject) => {
28
- function clearPartial() {
29
- if (partialShown) {
30
- process.stdout.write(CLEAR_LINE);
31
- partialShown = false;
32
- }
33
- }
34
- function finish(error) {
35
- shouldReconnect = false;
36
- clearPartial();
37
- current?.close();
38
- if (error)
39
- reject(error);
40
- else
41
- resolve();
42
- }
43
- function handleEarnings(ws, data) {
44
- if (!earnings || !live || !liveOpts || !isEarningsFrame(data))
45
- return;
46
- if (earnings.json)
47
- console.log(JSON.stringify(data));
48
- const step = liveStep(live, data, liveOpts);
49
- live = step.state;
50
- if (!earnings.json) {
51
- if (step.lines.length)
52
- clearPartial();
53
- for (const line of step.lines)
54
- console.log(line);
55
- if (step.partial && process.stdout.isTTY) {
56
- const width = (process.stdout.columns ?? 80) - 1;
57
- process.stdout.write(CLEAR_LINE + step.partial.slice(0, width));
58
- partialShown = true;
59
- }
60
- }
61
- if (step.end) {
62
- if (step.end.code === 0) {
63
- status(chalk.dim(step.end.message));
64
- finish();
65
- }
66
- else {
67
- finish(new Error(step.end.message));
68
- }
69
- }
70
- else if (step.reconnect) {
71
- ws.close();
72
- }
73
- }
74
- function handleNews(ws, data) {
75
- if (!news)
76
- return;
77
- if (news.json)
78
- console.log(JSON.stringify(data));
79
- const step = newsStep(data);
80
- if (!news.json)
81
- for (const line of step.lines)
82
- console.log(line);
83
- if (step.end) {
84
- if (step.end.code === 0) {
85
- status(chalk.dim(step.end.message));
86
- finish();
87
- }
88
- else {
89
- finish(new Error(step.end.message));
90
- }
91
- }
92
- else if (step.reconnect) {
93
- ws.close();
94
- }
95
- }
96
- function connect() {
97
- status(chalk.dim('Connecting to WebSocket...'));
98
- const ws = new WebSocket(url);
99
- current = ws;
100
- ws.addEventListener('open', () => {
101
- reconnectDelay = 1000;
102
- if (earnings && live) {
103
- const what = isAllLive(earnings.target)
104
- ? 'keyword alerts on every live call'
105
- : `${earnings.partials ? 'live transcript + partials' : 'live transcript'}${earnings.keywords ? ' + keyword alerts' : ''}${earnings.prices ? ' + prices' : ''}`;
106
- status(chalk.green(`Connected; subscribing to ${what}`));
107
- // A reconnect resumes after the last printed final (the API replays the gap).
108
- ws.send(JSON.stringify(subscribeFrame(earnings.target, live.lastSeq, earnings.partials, earnings.keywords, earnings.prices)));
109
- }
110
- else if (news) {
111
- status(chalk.green('Connected; subscribing to news.live'));
112
- // Items published while disconnected are not replayed: `invd news list` has them.
113
- ws.send(JSON.stringify(newsSubscribeFrame(news)));
114
- }
115
- else {
116
- console.log(chalk.green('Connected to filing stream'));
117
- }
118
- });
119
- ws.addEventListener('message', (event) => {
120
- try {
121
- const data = JSON.parse(String(event.data));
122
- if (data.type === 'ping')
123
- return;
124
- if (news) {
125
- // Only news frames: the filing broadcasts on the same socket are not what --news asked for.
126
- if (isNewsFrame(data))
127
- handleNews(ws, data);
128
- }
129
- else if (earnings) {
130
- handleEarnings(ws, data);
131
- }
132
- else if (data.type === 'new_filing') {
133
- const f = data.filing;
134
- console.log(chalk.bold(`[${f.form_type}]`) + ` ${f.cik} - Filed ${f.filing_date}`);
135
- if (f.html_url)
136
- console.log(chalk.dim(` ${f.html_url}`));
137
- }
138
- else {
139
- console.log(JSON.stringify(data, null, 2));
140
- }
141
- }
142
- catch {
143
- if (!earnings && !news)
144
- console.log(String(event.data));
145
- }
146
- });
147
- ws.addEventListener('close', (event) => {
148
- if (!shouldReconnect)
149
- return;
150
- if (PERMANENT_CLOSE_CODES.has(event.code)) {
151
- finish(new Error(`WebSocket closed (${event.code}): ${event.reason || 'refused'}`));
152
- return;
153
- }
154
- clearPartial();
155
- status(chalk.yellow(`Disconnected. Reconnecting in ${reconnectDelay / 1000}s...`));
156
- setTimeout(connect, reconnectDelay);
157
- reconnectDelay = Math.min(reconnectDelay * 2, 30000);
158
- });
159
- ws.addEventListener('error', (error) => {
160
- if (!ndjson)
161
- console.error(chalk.red('WebSocket error:'), error);
162
- });
163
- }
164
- process.once('SIGINT', () => {
165
- shouldReconnect = false;
166
- clearPartial();
167
- current?.close();
168
- status(chalk.dim('\nDisconnected.'));
169
- process.exit(0);
170
- });
171
- connect();
172
- });
173
- }
174
- //# sourceMappingURL=websocket-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/client/websocket-client.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Command } from 'commander';
2
- type Row = Record<string, any>;
3
- /** "Q&A starts at m:ss" for the transcript header; undefined without a Q&A boundary. */
4
- export declare function qaStartLine(qaStartMs: unknown): string | undefined;
5
- /** Plain-text rendering of a transcript `data` (console and `--output`); `words` stays JSON. */
6
- export declare function transcriptText(data: unknown, format: string): string;
7
- /** `documents --output`: the warning for a document without a download URL. */
8
- export declare function skippedDocumentWarning(doc: Row): string;
9
- /** The document tree's spine folders (IDA `ASSET_GROUP_CATEGORIES`), for `--category` help. */
10
- export declare const DOCUMENT_TREE_CATEGORIES = "earnings, events, reports, presentations, governance, esg, shareholder, other";
11
- /** `company-documents --output`: `<year | undated>-<kind>-<document_id>.<ext>` (the public shape has no content hash). */
12
- export declare function companyDocumentFileName(doc: Row): string;
13
- /** Plain text of a pages JSON (`{ pages: [{ n, title, text }] }`); anything else → empty string. */
14
- export declare function pagesText(pagesJson: unknown): string;
15
- export declare function registerEarningsCommands(program: Command): void;
16
- export {};