superkit-mcp-server 1.2.4 → 1.2.6

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 (162) hide show
  1. package/ARCHITECTURE.md +102 -102
  2. package/README.md +71 -71
  3. package/SUPERKIT.md +168 -168
  4. package/agents/code-archaeologist.md +106 -106
  5. package/agents/coder.md +90 -90
  6. package/agents/data-engineer.md +28 -28
  7. package/agents/devops-engineer.md +242 -242
  8. package/agents/git-manager.md +203 -203
  9. package/agents/orchestrator.md +420 -420
  10. package/agents/penetration-tester.md +188 -188
  11. package/agents/performance-optimizer.md +187 -187
  12. package/agents/planner.md +270 -270
  13. package/agents/qa-automation-engineer.md +103 -103
  14. package/agents/quant-developer.md +32 -32
  15. package/agents/reviewer.md +100 -100
  16. package/agents/scout.md +222 -222
  17. package/agents/tester.md +274 -274
  18. package/agents/ui-designer.md +208 -208
  19. package/build/__tests__/test_apply_prompt_args.js +104 -0
  20. package/build/index.js +106 -45
  21. package/build/tools/todoTools.js +39 -39
  22. package/build/tools/validators/__tests__/apiSchema.test.js +23 -23
  23. package/build/tools/validators/__tests__/convertRules.test.js +5 -5
  24. package/build/tools/validators/__tests__/frontendDesign.test.js +12 -12
  25. package/build/tools/validators/__tests__/geoChecker.test.js +19 -19
  26. package/build/tools/validators/__tests__/mobileAudit.test.js +12 -12
  27. package/build/tools/validators/__tests__/reactPerformanceChecker.test.js +17 -17
  28. package/build/tools/validators/__tests__/securityScan.test.js +6 -6
  29. package/build/tools/validators/__tests__/seoChecker.test.js +16 -16
  30. package/build/tools/validators/__tests__/typeCoverage.test.js +14 -14
  31. package/commands/README.md +122 -122
  32. package/commands/ask.toml +72 -72
  33. package/commands/brainstorm.toml +119 -119
  34. package/commands/chat.toml +77 -77
  35. package/commands/code-preview.toml +37 -37
  36. package/commands/code.toml +28 -28
  37. package/commands/content.toml +200 -200
  38. package/commands/cook.toml +77 -77
  39. package/commands/copywrite.toml +131 -131
  40. package/commands/db.toml +192 -192
  41. package/commands/debug.toml +166 -166
  42. package/commands/design.toml +158 -158
  43. package/commands/dev-rules.toml +14 -14
  44. package/commands/do.toml +117 -117
  45. package/commands/doc-rules.toml +14 -14
  46. package/commands/docs.toml +148 -148
  47. package/commands/fix.toml +440 -440
  48. package/commands/fullstack.toml +175 -175
  49. package/commands/git.toml +235 -235
  50. package/commands/help.toml +84 -84
  51. package/commands/integrate.toml +127 -127
  52. package/commands/journal.toml +136 -136
  53. package/commands/kit-setup.toml +40 -40
  54. package/commands/mcp.toml +183 -183
  55. package/commands/orchestration.toml +15 -15
  56. package/commands/plan.toml +206 -172
  57. package/commands/pm.toml +148 -148
  58. package/commands/pr.toml +50 -50
  59. package/commands/project.toml +32 -32
  60. package/commands/research.toml +117 -117
  61. package/commands/review-pr.toml +63 -63
  62. package/commands/review.toml +190 -190
  63. package/commands/scout-ext.toml +97 -97
  64. package/commands/scout.toml +79 -79
  65. package/commands/screenshot.toml +65 -65
  66. package/commands/session.toml +102 -102
  67. package/commands/skill.toml +384 -384
  68. package/commands/status.toml +22 -22
  69. package/commands/team.toml +56 -56
  70. package/commands/test.toml +164 -164
  71. package/commands/ticket.toml +70 -70
  72. package/commands/use.toml +106 -106
  73. package/commands/video.toml +83 -83
  74. package/commands/watzup.toml +71 -71
  75. package/commands/workflow.toml +14 -14
  76. package/package.json +35 -35
  77. package/skills/meta/README.md +30 -30
  78. package/skills/meta/api-design/SKILL.md +134 -134
  79. package/skills/meta/code-review/SKILL.md +44 -44
  80. package/skills/meta/code-review/checklists/pre-merge.md +25 -25
  81. package/skills/meta/code-review/workflows/architecture-pass.md +26 -26
  82. package/skills/meta/code-review/workflows/performance-pass.md +27 -27
  83. package/skills/meta/code-review/workflows/security-pass.md +29 -29
  84. package/skills/meta/compound-docs/SKILL.md +133 -133
  85. package/skills/meta/debug/SKILL.md +40 -40
  86. package/skills/meta/debug/templates/bug-report.template.md +31 -31
  87. package/skills/meta/debug/workflows/reproduce-issue.md +20 -20
  88. package/skills/meta/docker/SKILL.md +126 -126
  89. package/skills/meta/examples/supabase/SKILL.md +46 -46
  90. package/skills/meta/examples/supabase/references/best-practices.md +319 -319
  91. package/skills/meta/examples/supabase/references/common-patterns.md +373 -373
  92. package/skills/meta/examples/supabase/templates/migration-template.sql +49 -49
  93. package/skills/meta/examples/supabase/templates/rls-policy-template.sql +77 -77
  94. package/skills/meta/examples/supabase/workflows/debugging.md +260 -260
  95. package/skills/meta/examples/supabase/workflows/migration-workflow.md +211 -211
  96. package/skills/meta/examples/supabase/workflows/rls-policies.md +244 -244
  97. package/skills/meta/examples/supabase/workflows/schema-design.md +321 -321
  98. package/skills/meta/file-todos/SKILL.md +88 -88
  99. package/skills/meta/mobile/SKILL.md +140 -140
  100. package/skills/meta/nextjs/SKILL.md +101 -101
  101. package/skills/meta/performance/SKILL.md +130 -130
  102. package/skills/meta/react-patterns/SKILL.md +83 -83
  103. package/skills/meta/security/SKILL.md +114 -114
  104. package/skills/meta/session-resume/SKILL.md +96 -96
  105. package/skills/meta/tailwind/SKILL.md +139 -139
  106. package/skills/meta/testing/SKILL.md +43 -43
  107. package/skills/meta/testing/references/vitest-patterns.md +45 -45
  108. package/skills/meta/testing/templates/component-test.template.tsx +37 -37
  109. package/skills/tech/alpha-vantage/SKILL.md +142 -142
  110. package/skills/tech/alpha-vantage/references/commodities.md +153 -153
  111. package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -158
  112. package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -154
  113. package/skills/tech/alpha-vantage/references/fundamentals.md +223 -223
  114. package/skills/tech/alpha-vantage/references/intelligence.md +138 -138
  115. package/skills/tech/alpha-vantage/references/options.md +93 -93
  116. package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -374
  117. package/skills/tech/alpha-vantage/references/time-series.md +157 -157
  118. package/skills/tech/financial-modeling/SKILL.md +18 -18
  119. package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -368
  120. package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -118
  121. package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -292
  122. package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -125
  123. package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1210 -1210
  124. package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -40
  125. package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -8
  126. package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -292
  127. package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -236
  128. package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -108
  129. package/skills/workflows/README.md +203 -203
  130. package/skills/workflows/adr.md +174 -174
  131. package/skills/workflows/changelog.md +74 -74
  132. package/skills/workflows/compound.md +323 -323
  133. package/skills/workflows/compound_health.md +74 -74
  134. package/skills/workflows/create-agent-skill.md +138 -138
  135. package/skills/workflows/cycle.md +144 -144
  136. package/skills/workflows/deploy-docs.md +84 -84
  137. package/skills/workflows/development-rules.md +42 -42
  138. package/skills/workflows/doc.md +95 -95
  139. package/skills/workflows/documentation-management.md +34 -34
  140. package/skills/workflows/explore.md +146 -146
  141. package/skills/workflows/generate_command.md +106 -106
  142. package/skills/workflows/heal-skill.md +97 -97
  143. package/skills/workflows/housekeeping.md +229 -229
  144. package/skills/workflows/kit-setup.md +102 -102
  145. package/skills/workflows/map-codebase.md +78 -78
  146. package/skills/workflows/orchestration-protocol.md +43 -43
  147. package/skills/workflows/plan-compound.md +439 -439
  148. package/skills/workflows/plan_review.md +269 -269
  149. package/skills/workflows/primary-workflow.md +37 -37
  150. package/skills/workflows/promote_pattern.md +86 -86
  151. package/skills/workflows/release-docs.md +82 -82
  152. package/skills/workflows/report-bug.md +135 -135
  153. package/skills/workflows/reproduce-bug.md +118 -118
  154. package/skills/workflows/resolve_pr.md +133 -133
  155. package/skills/workflows/resolve_todo.md +128 -128
  156. package/skills/workflows/review-compound.md +376 -376
  157. package/skills/workflows/skill-review.md +127 -127
  158. package/skills/workflows/specs.md +257 -257
  159. package/skills/workflows/triage-sprint.md +102 -102
  160. package/skills/workflows/triage.md +152 -152
  161. package/skills/workflows/work.md +399 -399
  162. package/skills/workflows/xcode-test.md +93 -93
@@ -1,223 +1,223 @@
1
- # Fundamental Data APIs
2
-
3
- ## OVERVIEW — Company Overview
4
-
5
- Returns key company information, valuation metrics, and financial ratios.
6
-
7
- **Required:** `symbol`
8
-
9
- ```python
10
- data = av_get("OVERVIEW", symbol="AAPL")
11
-
12
- # Key fields returned:
13
- # "Symbol", "AssetType", "Name", "Description", "Exchange", "Currency"
14
- # "Country", "Sector", "Industry", "Address"
15
- # "MarketCapitalization", "EBITDA", "PERatio", "PEGRatio"
16
- # "BookValue", "DividendPerShare", "DividendYield", "EPS"
17
- # "RevenuePerShareTTM", "ProfitMargin", "OperatingMarginTTM"
18
- # "ReturnOnAssetsTTM", "ReturnOnEquityTTM"
19
- # "RevenueTTM", "GrossProfitTTM", "DilutedEPSTTM"
20
- # "QuarterlyEarningsGrowthYOY", "QuarterlyRevenueGrowthYOY"
21
- # "AnalystTargetPrice", "AnalystRatingStrongBuy", "AnalystRatingBuy",
22
- # "AnalystRatingHold", "AnalystRatingSell", "AnalystRatingStrongSell"
23
- # "TrailingPE", "ForwardPE", "PriceToSalesRatioTTM"
24
- # "PriceToBookRatio", "EVToRevenue", "EVToEBITDA"
25
- # "Beta", "52WeekHigh", "52WeekLow", "50DayMovingAverage", "200DayMovingAverage"
26
- # "SharesOutstanding", "DividendDate", "ExDividendDate", "FiscalYearEnd"
27
-
28
- print(data["MarketCapitalization"]) # "2850000000000"
29
- print(data["PERatio"]) # "29.50"
30
- print(data["Sector"]) # "TECHNOLOGY"
31
- ```
32
-
33
- ## ETF_PROFILE — ETF Profile & Holdings
34
-
35
- **Required:** `symbol`
36
-
37
- ```python
38
- data = av_get("ETF_PROFILE", symbol="QQQ")
39
- # Fields: "net_assets", "nav", "inception_date", "description",
40
- # "asset_allocation" (stocks/bonds/cash/etc.)
41
- # "sectors" (list of sector weights)
42
- # "holdings" (top holdings list)
43
- for h in data["holdings"][:5]:
44
- print(h["symbol"], h["description"], h["weight"])
45
- ```
46
-
47
- ## DIVIDENDS — Corporate Dividend History
48
-
49
- **Required:** `symbol`
50
-
51
- ```python
52
- data = av_get("DIVIDENDS", symbol="IBM")
53
- divs = data["data"]
54
- for d in divs:
55
- print(d["ex_dividend_date"], d["amount"])
56
- # Fields per record: "ex_dividend_date", "declaration_date",
57
- # "record_date", "payment_date", "amount"
58
- ```
59
-
60
- ## SPLITS — Stock Split History
61
-
62
- **Required:** `symbol`
63
-
64
- ```python
65
- data = av_get("SPLITS", symbol="AAPL")
66
- splits = data["data"]
67
- for s in splits:
68
- print(s["effective_date"], s["split_factor"])
69
- # Fields: "effective_date", "split_factor" (e.g., "4/1" for 4-for-1 split)
70
- ```
71
-
72
- ## INCOME_STATEMENT — Income Statement
73
-
74
- Returns annual and quarterly income statements.
75
-
76
- **Required:** `symbol`
77
-
78
- ```python
79
- data = av_get("INCOME_STATEMENT", symbol="IBM")
80
- annual = data["annualReports"] # list, most recent first
81
- quarterly = data["quarterlyReports"] # list, most recent first
82
-
83
- yr = annual[0] # Most recent fiscal year
84
- print(yr["fiscalDateEnding"]) # "2023-12-31"
85
- print(yr["totalRevenue"]) # "61860000000"
86
- print(yr["grossProfit"]) # "32688000000"
87
- print(yr["operatingIncome"]) # "..."
88
- print(yr["netIncome"]) # "..."
89
- print(yr["ebitda"]) # "..."
90
- # Other keys: "reportedCurrency", "costOfRevenue", "costofGoodsAndServicesSold",
91
- # "sellingGeneralAndAdministrative", "researchAndDevelopment",
92
- # "operatingExpenses", "investmentIncomeNet", "netInterestIncome",
93
- # "interestIncome", "interestExpense", "nonInterestIncome",
94
- # "otherNonOperatingIncome", "depreciation",
95
- # "depreciationAndAmortization", "incomeBeforeTax",
96
- # "incomeTaxExpense", "interestAndDebtExpense",
97
- # "netIncomeFromContinuingOperations", "comprehensiveIncomeNetOfTax",
98
- # "ebit", "dilutedEPS", "basicEPS"
99
- ```
100
-
101
- ## BALANCE_SHEET — Balance Sheet
102
-
103
- **Required:** `symbol`
104
-
105
- ```python
106
- data = av_get("BALANCE_SHEET", symbol="IBM")
107
- annual = data["annualReports"]
108
-
109
- yr = annual[0]
110
- print(yr["totalAssets"]) # "..."
111
- print(yr["totalLiabilities"]) # "..."
112
- print(yr["totalShareholderEquity"]) # "..."
113
- # Other keys: "reportedCurrency", "fiscalDateEnding",
114
- # "cashAndCashEquivalentsAtCarryingValue", "cashAndShortTermInvestments",
115
- # "inventory", "currentNetReceivables", "totalCurrentAssets",
116
- # "propertyPlantEquipmentNet", "intangibleAssets",
117
- # "intangibleAssetsExcludingGoodwill", "goodwill", "investments",
118
- # "longTermInvestments", "shortTermInvestments", "otherCurrentAssets",
119
- # "otherNonCurrrentAssets", "currentAccountsPayable", "deferredRevenue",
120
- # "currentDebt", "shortTermDebt", "totalCurrentLiabilities",
121
- # "capitalLeaseObligations", "longTermDebt", "currentLongTermDebt",
122
- # "longTermDebtNoncurrent", "shortLongTermDebtTotal",
123
- # "otherCurrentLiabilities", "otherNonCurrentLiabilities",
124
- # "totalNonCurrentLiabilities", "retainedEarnings",
125
- # "additionalPaidInCapital", "commonStockSharesOutstanding"
126
- ```
127
-
128
- ## CASH_FLOW — Cash Flow Statement
129
-
130
- **Required:** `symbol`
131
-
132
- ```python
133
- data = av_get("CASH_FLOW", symbol="IBM")
134
- annual = data["annualReports"]
135
-
136
- yr = annual[0]
137
- print(yr["operatingCashflow"]) # "..."
138
- print(yr["capitalExpenditures"]) # "..."
139
- print(yr["cashflowFromInvestment"]) # "..."
140
- print(yr["cashflowFromFinancing"]) # "..."
141
- # Other keys: "reportedCurrency", "fiscalDateEnding",
142
- # "paymentsForRepurchaseOfCommonStock", "dividendPayout",
143
- # "dividendPayoutCommonStock", "dividendPayoutPreferredStock",
144
- # "proceedsFromIssuanceOfCommonStock", "changeInOperatingLiabilities",
145
- # "changeInOperatingAssets", "depreciationDepletionAndAmortization",
146
- # "capitalExpenditures", "changeInReceivables", "changeInInventory",
147
- # "profitLoss", "netIncomeFromContinuingOperations"
148
- ```
149
-
150
- ## SHARES_OUTSTANDING — Shares Outstanding History
151
-
152
- **Required:** `symbol`
153
-
154
- ```python
155
- data = av_get("SHARES_OUTSTANDING", symbol="AAPL")
156
- shares = data["data"]
157
- for s in shares[:5]:
158
- print(s["date"], s["reportedShares"])
159
- ```
160
-
161
- ## EARNINGS — Earnings History (EPS)
162
-
163
- Returns annual and quarterly EPS + surprise data.
164
-
165
- **Required:** `symbol`
166
-
167
- ```python
168
- data = av_get("EARNINGS", symbol="IBM")
169
- annual = data["annualEarnings"]
170
- quarterly = data["quarterlyEarnings"]
171
-
172
- # Annual: "fiscalDateEnding", "reportedEPS"
173
- # Quarterly: "fiscalDateEnding", "reportedDate", "reportedEPS",
174
- # "estimatedEPS", "surprise", "surprisePercentage"
175
- q = quarterly[0]
176
- print(q["reportedEPS"], q["estimatedEPS"], q["surprisePercentage"])
177
- ```
178
-
179
- ## EARNINGS_CALENDAR — Upcoming Earnings Dates
180
-
181
- Returns earnings release schedule for the next 3-12 months.
182
-
183
- **Optional:** `symbol` (if omitted, returns all companies), `horizon` (`3month`, `6month`, `12month`)
184
-
185
- ```python
186
- # Returns CSV format - use requests directly
187
- import requests, csv, io, os
188
- resp = requests.get(
189
- "https://www.alphavantage.co/query",
190
- params={"function": "EARNINGS_CALENDAR", "symbol": "IBM", "apikey": os.environ["ALPHAVANTAGE_API_KEY"]}
191
- )
192
- reader = csv.DictReader(io.StringIO(resp.text))
193
- for row in reader:
194
- print(row["symbol"], row["name"], row["reportDate"], row["estimate"])
195
- ```
196
-
197
- ## LISTING_STATUS — Listed/Delisted Tickers
198
-
199
- **Optional:** `date` (format `YYYY-MM-DD`), `state` (`active` or `delisted`)
200
-
201
- ```python
202
- # Returns CSV
203
- resp = requests.get(
204
- "https://www.alphavantage.co/query",
205
- params={"function": "LISTING_STATUS", "state": "active", "apikey": API_KEY}
206
- )
207
- reader = csv.DictReader(io.StringIO(resp.text))
208
- # Fields: "symbol", "name", "exchange", "assetType", "ipoDate",
209
- # "delistingDate", "status"
210
- ```
211
-
212
- ## IPO_CALENDAR — Upcoming IPOs
213
-
214
- ```python
215
- # Returns CSV
216
- resp = requests.get(
217
- "https://www.alphavantage.co/query",
218
- params={"function": "IPO_CALENDAR", "apikey": API_KEY}
219
- )
220
- reader = csv.DictReader(io.StringIO(resp.text))
221
- for row in reader:
222
- print(row["symbol"], row["name"], row["ipoDate"], row["priceRangeLow"], row["priceRangeHigh"])
223
- ```
1
+ # Fundamental Data APIs
2
+
3
+ ## OVERVIEW — Company Overview
4
+
5
+ Returns key company information, valuation metrics, and financial ratios.
6
+
7
+ **Required:** `symbol`
8
+
9
+ ```python
10
+ data = av_get("OVERVIEW", symbol="AAPL")
11
+
12
+ # Key fields returned:
13
+ # "Symbol", "AssetType", "Name", "Description", "Exchange", "Currency"
14
+ # "Country", "Sector", "Industry", "Address"
15
+ # "MarketCapitalization", "EBITDA", "PERatio", "PEGRatio"
16
+ # "BookValue", "DividendPerShare", "DividendYield", "EPS"
17
+ # "RevenuePerShareTTM", "ProfitMargin", "OperatingMarginTTM"
18
+ # "ReturnOnAssetsTTM", "ReturnOnEquityTTM"
19
+ # "RevenueTTM", "GrossProfitTTM", "DilutedEPSTTM"
20
+ # "QuarterlyEarningsGrowthYOY", "QuarterlyRevenueGrowthYOY"
21
+ # "AnalystTargetPrice", "AnalystRatingStrongBuy", "AnalystRatingBuy",
22
+ # "AnalystRatingHold", "AnalystRatingSell", "AnalystRatingStrongSell"
23
+ # "TrailingPE", "ForwardPE", "PriceToSalesRatioTTM"
24
+ # "PriceToBookRatio", "EVToRevenue", "EVToEBITDA"
25
+ # "Beta", "52WeekHigh", "52WeekLow", "50DayMovingAverage", "200DayMovingAverage"
26
+ # "SharesOutstanding", "DividendDate", "ExDividendDate", "FiscalYearEnd"
27
+
28
+ print(data["MarketCapitalization"]) # "2850000000000"
29
+ print(data["PERatio"]) # "29.50"
30
+ print(data["Sector"]) # "TECHNOLOGY"
31
+ ```
32
+
33
+ ## ETF_PROFILE — ETF Profile & Holdings
34
+
35
+ **Required:** `symbol`
36
+
37
+ ```python
38
+ data = av_get("ETF_PROFILE", symbol="QQQ")
39
+ # Fields: "net_assets", "nav", "inception_date", "description",
40
+ # "asset_allocation" (stocks/bonds/cash/etc.)
41
+ # "sectors" (list of sector weights)
42
+ # "holdings" (top holdings list)
43
+ for h in data["holdings"][:5]:
44
+ print(h["symbol"], h["description"], h["weight"])
45
+ ```
46
+
47
+ ## DIVIDENDS — Corporate Dividend History
48
+
49
+ **Required:** `symbol`
50
+
51
+ ```python
52
+ data = av_get("DIVIDENDS", symbol="IBM")
53
+ divs = data["data"]
54
+ for d in divs:
55
+ print(d["ex_dividend_date"], d["amount"])
56
+ # Fields per record: "ex_dividend_date", "declaration_date",
57
+ # "record_date", "payment_date", "amount"
58
+ ```
59
+
60
+ ## SPLITS — Stock Split History
61
+
62
+ **Required:** `symbol`
63
+
64
+ ```python
65
+ data = av_get("SPLITS", symbol="AAPL")
66
+ splits = data["data"]
67
+ for s in splits:
68
+ print(s["effective_date"], s["split_factor"])
69
+ # Fields: "effective_date", "split_factor" (e.g., "4/1" for 4-for-1 split)
70
+ ```
71
+
72
+ ## INCOME_STATEMENT — Income Statement
73
+
74
+ Returns annual and quarterly income statements.
75
+
76
+ **Required:** `symbol`
77
+
78
+ ```python
79
+ data = av_get("INCOME_STATEMENT", symbol="IBM")
80
+ annual = data["annualReports"] # list, most recent first
81
+ quarterly = data["quarterlyReports"] # list, most recent first
82
+
83
+ yr = annual[0] # Most recent fiscal year
84
+ print(yr["fiscalDateEnding"]) # "2023-12-31"
85
+ print(yr["totalRevenue"]) # "61860000000"
86
+ print(yr["grossProfit"]) # "32688000000"
87
+ print(yr["operatingIncome"]) # "..."
88
+ print(yr["netIncome"]) # "..."
89
+ print(yr["ebitda"]) # "..."
90
+ # Other keys: "reportedCurrency", "costOfRevenue", "costofGoodsAndServicesSold",
91
+ # "sellingGeneralAndAdministrative", "researchAndDevelopment",
92
+ # "operatingExpenses", "investmentIncomeNet", "netInterestIncome",
93
+ # "interestIncome", "interestExpense", "nonInterestIncome",
94
+ # "otherNonOperatingIncome", "depreciation",
95
+ # "depreciationAndAmortization", "incomeBeforeTax",
96
+ # "incomeTaxExpense", "interestAndDebtExpense",
97
+ # "netIncomeFromContinuingOperations", "comprehensiveIncomeNetOfTax",
98
+ # "ebit", "dilutedEPS", "basicEPS"
99
+ ```
100
+
101
+ ## BALANCE_SHEET — Balance Sheet
102
+
103
+ **Required:** `symbol`
104
+
105
+ ```python
106
+ data = av_get("BALANCE_SHEET", symbol="IBM")
107
+ annual = data["annualReports"]
108
+
109
+ yr = annual[0]
110
+ print(yr["totalAssets"]) # "..."
111
+ print(yr["totalLiabilities"]) # "..."
112
+ print(yr["totalShareholderEquity"]) # "..."
113
+ # Other keys: "reportedCurrency", "fiscalDateEnding",
114
+ # "cashAndCashEquivalentsAtCarryingValue", "cashAndShortTermInvestments",
115
+ # "inventory", "currentNetReceivables", "totalCurrentAssets",
116
+ # "propertyPlantEquipmentNet", "intangibleAssets",
117
+ # "intangibleAssetsExcludingGoodwill", "goodwill", "investments",
118
+ # "longTermInvestments", "shortTermInvestments", "otherCurrentAssets",
119
+ # "otherNonCurrrentAssets", "currentAccountsPayable", "deferredRevenue",
120
+ # "currentDebt", "shortTermDebt", "totalCurrentLiabilities",
121
+ # "capitalLeaseObligations", "longTermDebt", "currentLongTermDebt",
122
+ # "longTermDebtNoncurrent", "shortLongTermDebtTotal",
123
+ # "otherCurrentLiabilities", "otherNonCurrentLiabilities",
124
+ # "totalNonCurrentLiabilities", "retainedEarnings",
125
+ # "additionalPaidInCapital", "commonStockSharesOutstanding"
126
+ ```
127
+
128
+ ## CASH_FLOW — Cash Flow Statement
129
+
130
+ **Required:** `symbol`
131
+
132
+ ```python
133
+ data = av_get("CASH_FLOW", symbol="IBM")
134
+ annual = data["annualReports"]
135
+
136
+ yr = annual[0]
137
+ print(yr["operatingCashflow"]) # "..."
138
+ print(yr["capitalExpenditures"]) # "..."
139
+ print(yr["cashflowFromInvestment"]) # "..."
140
+ print(yr["cashflowFromFinancing"]) # "..."
141
+ # Other keys: "reportedCurrency", "fiscalDateEnding",
142
+ # "paymentsForRepurchaseOfCommonStock", "dividendPayout",
143
+ # "dividendPayoutCommonStock", "dividendPayoutPreferredStock",
144
+ # "proceedsFromIssuanceOfCommonStock", "changeInOperatingLiabilities",
145
+ # "changeInOperatingAssets", "depreciationDepletionAndAmortization",
146
+ # "capitalExpenditures", "changeInReceivables", "changeInInventory",
147
+ # "profitLoss", "netIncomeFromContinuingOperations"
148
+ ```
149
+
150
+ ## SHARES_OUTSTANDING — Shares Outstanding History
151
+
152
+ **Required:** `symbol`
153
+
154
+ ```python
155
+ data = av_get("SHARES_OUTSTANDING", symbol="AAPL")
156
+ shares = data["data"]
157
+ for s in shares[:5]:
158
+ print(s["date"], s["reportedShares"])
159
+ ```
160
+
161
+ ## EARNINGS — Earnings History (EPS)
162
+
163
+ Returns annual and quarterly EPS + surprise data.
164
+
165
+ **Required:** `symbol`
166
+
167
+ ```python
168
+ data = av_get("EARNINGS", symbol="IBM")
169
+ annual = data["annualEarnings"]
170
+ quarterly = data["quarterlyEarnings"]
171
+
172
+ # Annual: "fiscalDateEnding", "reportedEPS"
173
+ # Quarterly: "fiscalDateEnding", "reportedDate", "reportedEPS",
174
+ # "estimatedEPS", "surprise", "surprisePercentage"
175
+ q = quarterly[0]
176
+ print(q["reportedEPS"], q["estimatedEPS"], q["surprisePercentage"])
177
+ ```
178
+
179
+ ## EARNINGS_CALENDAR — Upcoming Earnings Dates
180
+
181
+ Returns earnings release schedule for the next 3-12 months.
182
+
183
+ **Optional:** `symbol` (if omitted, returns all companies), `horizon` (`3month`, `6month`, `12month`)
184
+
185
+ ```python
186
+ # Returns CSV format - use requests directly
187
+ import requests, csv, io, os
188
+ resp = requests.get(
189
+ "https://www.alphavantage.co/query",
190
+ params={"function": "EARNINGS_CALENDAR", "symbol": "IBM", "apikey": os.environ["ALPHAVANTAGE_API_KEY"]}
191
+ )
192
+ reader = csv.DictReader(io.StringIO(resp.text))
193
+ for row in reader:
194
+ print(row["symbol"], row["name"], row["reportDate"], row["estimate"])
195
+ ```
196
+
197
+ ## LISTING_STATUS — Listed/Delisted Tickers
198
+
199
+ **Optional:** `date` (format `YYYY-MM-DD`), `state` (`active` or `delisted`)
200
+
201
+ ```python
202
+ # Returns CSV
203
+ resp = requests.get(
204
+ "https://www.alphavantage.co/query",
205
+ params={"function": "LISTING_STATUS", "state": "active", "apikey": API_KEY}
206
+ )
207
+ reader = csv.DictReader(io.StringIO(resp.text))
208
+ # Fields: "symbol", "name", "exchange", "assetType", "ipoDate",
209
+ # "delistingDate", "status"
210
+ ```
211
+
212
+ ## IPO_CALENDAR — Upcoming IPOs
213
+
214
+ ```python
215
+ # Returns CSV
216
+ resp = requests.get(
217
+ "https://www.alphavantage.co/query",
218
+ params={"function": "IPO_CALENDAR", "apikey": API_KEY}
219
+ )
220
+ reader = csv.DictReader(io.StringIO(resp.text))
221
+ for row in reader:
222
+ print(row["symbol"], row["name"], row["ipoDate"], row["priceRangeLow"], row["priceRangeHigh"])
223
+ ```