markform 0.1.0 → 0.1.2

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 (37) hide show
  1. package/DOCS.md +546 -0
  2. package/README.md +484 -45
  3. package/SPEC.md +2779 -0
  4. package/dist/ai-sdk.d.mts +2 -2
  5. package/dist/ai-sdk.mjs +5 -3
  6. package/dist/{apply-C0vjijlP.mjs → apply-BfAGTHMh.mjs} +1044 -593
  7. package/dist/bin.mjs +6 -3
  8. package/dist/cli-B3NVm6zL.mjs +3904 -0
  9. package/dist/cli.mjs +6 -3
  10. package/dist/{coreTypes-T7dAuewt.d.mts → coreTypes-BXhhz9Iq.d.mts} +2795 -685
  11. package/dist/coreTypes-Dful87E0.mjs +537 -0
  12. package/dist/index.d.mts +196 -18
  13. package/dist/index.mjs +5 -3
  14. package/dist/session-Bqnwi9wp.mjs +110 -0
  15. package/dist/session-DdAtY2Ni.mjs +4 -0
  16. package/dist/shared-D7gf27Tr.mjs +3 -0
  17. package/dist/shared-N_s1M-_K.mjs +176 -0
  18. package/dist/src-BXRkGFpG.mjs +7587 -0
  19. package/examples/celebrity-deep-research/celebrity-deep-research.form.md +912 -0
  20. package/examples/earnings-analysis/earnings-analysis.form.md +6 -1
  21. package/examples/earnings-analysis/earnings-analysis.valid.ts +119 -59
  22. package/examples/movie-research/movie-research-basic.form.md +164 -0
  23. package/examples/movie-research/movie-research-deep.form.md +486 -0
  24. package/examples/movie-research/movie-research-minimal.form.md +73 -0
  25. package/examples/simple/simple-mock-filled.form.md +52 -12
  26. package/examples/simple/simple-skipped-filled.form.md +170 -0
  27. package/examples/simple/simple-with-skips.session.yaml +189 -0
  28. package/examples/simple/simple.form.md +34 -12
  29. package/examples/simple/simple.session.yaml +80 -37
  30. package/examples/startup-deep-research/startup-deep-research.form.md +456 -0
  31. package/examples/startup-research/startup-research-mock-filled.form.md +307 -0
  32. package/examples/startup-research/startup-research.form.md +211 -0
  33. package/package.json +11 -5
  34. package/dist/cli-9fvFySww.mjs +0 -2564
  35. package/dist/src-DBD3Dt4f.mjs +0 -1785
  36. package/examples/political-research/political-research.form.md +0 -233
  37. package/examples/political-research/political-research.mock.lincoln.form.md +0 -355
@@ -0,0 +1,307 @@
1
+ ---
2
+ markform:
3
+ spec: "MF/0.1"
4
+ roles:
5
+ - user
6
+ - agent
7
+ role_instructions:
8
+ user: "Enter the name of the startup company you want to research."
9
+ agent: |
10
+ Research and fill in all company information for the specified startup.
11
+ Guidelines:
12
+ 1. Start with Crunchbase - The company's Crunchbase page is the primary source
13
+ 2. Verify with company website and press releases
14
+ 3. Use official formats - Dates as YYYY-MM-DD, funding as USD amounts
15
+ 4. Fill funding rounds chronologically - Most recent first
16
+ 5. Include all relevant URLs - Website, LinkedIn, press coverage
17
+ 6. Leave unknown fields empty - Don't guess or fabricate information
18
+ 7. Keep descriptions concise - Aim for 100-200 words max
19
+ ---
20
+
21
+ {% form id="startup_research" title="Startup Research Form" %}
22
+
23
+ {% description ref="startup_research" %}
24
+ A comprehensive research form for startup companies. This form demonstrates URL field types
25
+ for capturing company websites, funding sources, press coverage, and other web references.
26
+ The user provides the company name, and the agent researches and fills all remaining fields.
27
+ {% /description %}
28
+
29
+ {% documentation ref="startup_research" %}
30
+ **Workflow:**
31
+ 1. User enters the startup company name
32
+ 2. Agent researches and fills company information
33
+ 3. Agent includes all relevant URLs (website, LinkedIn, press, funding sources)
34
+ 4. Agent provides source citations
35
+
36
+ **Data Sources:**
37
+ - Crunchbase profiles
38
+ - Company websites
39
+ - Press releases
40
+ - LinkedIn company pages
41
+ - Tech news publications
42
+ {% /documentation %}
43
+
44
+ {% field-group id="basic_info" title="Company Information" %}
45
+
46
+ {% string-field id="company_name" label="Company Name" role="user" required=true minLength=2 maxLength=200 %}
47
+ ```value
48
+ Anthropic
49
+ ```
50
+ {% /string-field %}
51
+
52
+ {% instructions ref="company_name" %}
53
+ Enter the official name of the startup company you want to research (e.g., "Stripe", "OpenAI").
54
+ {% /instructions %}
55
+
56
+ {% url-field id="company_website" label="Company Website" required=true %}
57
+ ```value
58
+ https://www.anthropic.com
59
+ ```
60
+ {% /url-field %}
61
+
62
+ {% instructions ref="company_website" %}
63
+ The official company website URL.
64
+ {% /instructions %}
65
+
66
+ {% url-field id="linkedin_page" label="LinkedIn Company Page" %}
67
+ ```value
68
+ https://www.linkedin.com/company/anthropic
69
+ ```
70
+ {% /url-field %}
71
+
72
+ {% instructions ref="linkedin_page" %}
73
+ LinkedIn company page URL if available.
74
+ {% /instructions %}
75
+
76
+ {% string-field id="founded_date" label="Founded Date" pattern="^\\d{4}(-\\d{2}(-\\d{2})?)?$" %}
77
+ ```value
78
+ 2021
79
+ ```
80
+ {% /string-field %}
81
+
82
+ {% instructions ref="founded_date" %}
83
+ Format: YYYY, YYYY-MM, or YYYY-MM-DD (e.g., 2010, 2010-06, 2010-06-15)
84
+ {% /instructions %}
85
+
86
+ {% string-field id="headquarters" label="Headquarters Location" %}
87
+ ```value
88
+ San Francisco, California
89
+ ```
90
+ {% /string-field %}
91
+
92
+ {% instructions ref="headquarters" %}
93
+ Format: City, State/Country (e.g., "San Francisco, California")
94
+ {% /instructions %}
95
+
96
+ {% string-field id="company_description" label="Company Description" multiline=true maxLength=1000 %}
97
+ ```value
98
+ Anthropic is an AI safety company focused on building reliable, interpretable, and steerable AI systems. Founded by former members of OpenAI, the company develops large language models with an emphasis on safety research and alignment. Their flagship product is Claude, an AI assistant designed to be helpful, harmless, and honest.
99
+ ```
100
+ {% /string-field %}
101
+
102
+ {% instructions ref="company_description" %}
103
+ Brief description of what the company does. 100-200 words max.
104
+ {% /instructions %}
105
+
106
+ {% /field-group %}
107
+
108
+ {% field-group id="funding_info" title="Funding Information" %}
109
+
110
+ {% string-field id="total_funding" label="Total Funding Raised" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}
111
+ ```value
112
+ $7.6B
113
+ ```
114
+ {% /string-field %}
115
+
116
+ {% instructions ref="total_funding" %}
117
+ Format: $X.XB, $XXM, or $XXK (e.g., "$1.5B", "$50M", "$500K")
118
+ {% /instructions %}
119
+
120
+ {% string-field id="latest_valuation" label="Latest Valuation" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}
121
+ ```value
122
+ $18.4B
123
+ ```
124
+ {% /string-field %}
125
+
126
+ {% instructions ref="latest_valuation" %}
127
+ Format: $X.XB, $XXM, or $XXK (e.g., "$10B")
128
+ {% /instructions %}
129
+
130
+ {% single-select id="funding_stage" label="Funding Stage" %}
131
+ - [ ] Pre-seed {% #pre_seed %}
132
+ - [ ] Seed {% #seed %}
133
+ - [ ] Series A {% #series_a %}
134
+ - [ ] Series B {% #series_b %}
135
+ - [ ] Series C {% #series_c %}
136
+ - [x] Series D+ {% #series_d_plus %}
137
+ - [ ] Public {% #public %}
138
+ {% /single-select %}
139
+
140
+ {% string-list id="key_investors" label="Key Investors" maxItems=10 %}
141
+ ```value
142
+ Google
143
+ Spark Capital
144
+ Salesforce Ventures
145
+ Amazon
146
+ Sound Ventures
147
+ ```
148
+ {% /string-list %}
149
+
150
+ {% instructions ref="key_investors" %}
151
+ List notable investors (VCs, angels), one per line.
152
+ {% /instructions %}
153
+
154
+ {% url-list id="funding_announcements" label="Funding Announcement URLs" maxItems=5 uniqueItems=true %}
155
+ ```value
156
+ https://www.anthropic.com/news/anthropic-raises-series-c
157
+ https://techcrunch.com/2023/09/25/amazon-to-invest-up-to-4-billion-in-anthropic/
158
+ ```
159
+ {% /url-list %}
160
+
161
+ {% instructions ref="funding_announcements" %}
162
+ URLs to press releases or articles about funding rounds.
163
+ {% /instructions %}
164
+
165
+ {% /field-group %}
166
+
167
+ {% field-group id="people" title="Key People" %}
168
+
169
+ {% string-field id="ceo" label="CEO / Founder" %}
170
+ ```value
171
+ Dario Amodei
172
+ ```
173
+ {% /string-field %}
174
+
175
+ {% instructions ref="ceo" %}
176
+ Name of CEO or primary founder.
177
+ {% /instructions %}
178
+
179
+ {% url-field id="ceo_linkedin" label="CEO LinkedIn" %}
180
+ ```value
181
+ https://www.linkedin.com/in/dario-amodei
182
+ ```
183
+ {% /url-field %}
184
+
185
+ {% instructions ref="ceo_linkedin" %}
186
+ LinkedIn profile URL of the CEO/founder.
187
+ {% /instructions %}
188
+
189
+ {% string-list id="founders" label="Founders" maxItems=5 %}
190
+ ```value
191
+ Dario Amodei
192
+ Daniela Amodei
193
+ Tom Brown
194
+ Chris Olah
195
+ Sam McCandlish
196
+ ```
197
+ {% /string-list %}
198
+
199
+ {% instructions ref="founders" %}
200
+ List all founders, one per line.
201
+ {% /instructions %}
202
+
203
+ {% number-field id="employee_count" label="Employee Count" min=1 integer=true %}
204
+ ```value
205
+ 1000
206
+ ```
207
+ {% /number-field %}
208
+
209
+ {% instructions ref="employee_count" %}
210
+ Approximate number of employees.
211
+ {% /instructions %}
212
+
213
+ {% /field-group %}
214
+
215
+ {% field-group id="market_info" title="Market & Industry" %}
216
+
217
+ {% multi-select id="industry_sectors" label="Industry Sectors" minSelections=1 maxSelections=5 %}
218
+ - [x] AI/ML {% #ai_ml %}
219
+ - [ ] FinTech {% #fintech %}
220
+ - [ ] HealthTech {% #healthtech %}
221
+ - [ ] EdTech {% #edtech %}
222
+ - [x] SaaS {% #saas %}
223
+ - [ ] E-commerce {% #ecommerce %}
224
+ - [x] Security {% #security %}
225
+ - [x] Developer Tools {% #devtools %}
226
+ - [ ] Climate Tech {% #climatetech %}
227
+ - [ ] Other {% #other %}
228
+ {% /multi-select %}
229
+
230
+ {% string-list id="competitors" label="Competitors" maxItems=5 %}
231
+ ```value
232
+ OpenAI
233
+ Google DeepMind
234
+ Cohere
235
+ Mistral AI
236
+ ```
237
+ {% /string-list %}
238
+
239
+ {% instructions ref="competitors" %}
240
+ List main competitors, one per line.
241
+ {% /instructions %}
242
+
243
+ {% url-list id="competitor_urls" label="Competitor Website URLs" maxItems=5 uniqueItems=true %}
244
+ ```value
245
+ https://openai.com
246
+ https://deepmind.google
247
+ https://cohere.com
248
+ https://mistral.ai
249
+ ```
250
+ {% /url-list %}
251
+
252
+ {% instructions ref="competitor_urls" %}
253
+ Website URLs of main competitors.
254
+ {% /instructions %}
255
+
256
+ {% /field-group %}
257
+
258
+ {% field-group id="press_coverage" title="Press & Coverage" %}
259
+
260
+ {% url-list id="press_articles" label="Press Coverage URLs" minItems=1 maxItems=10 uniqueItems=true %}
261
+ ```value
262
+ https://www.wired.com/story/anthropic-ai-claude-chatgpt-rival/
263
+ https://www.nytimes.com/2023/03/14/technology/anthropic-ai-chatbot.html
264
+ https://www.forbes.com/sites/alexkonrad/2023/09/25/anthropic-ai-amazon-investment/
265
+ ```
266
+ {% /url-list %}
267
+
268
+ {% instructions ref="press_articles" %}
269
+ URLs to major press articles, reviews, or coverage about the company.
270
+ {% /instructions %}
271
+
272
+ {% url-field id="crunchbase_url" label="Crunchbase Profile" %}
273
+ ```value
274
+ https://www.crunchbase.com/organization/anthropic
275
+ ```
276
+ {% /url-field %}
277
+
278
+ {% instructions ref="crunchbase_url" %}
279
+ Crunchbase company profile URL.
280
+ {% /instructions %}
281
+
282
+ {% url-field id="pitchbook_url" label="PitchBook Profile" %}{% /url-field %}
283
+
284
+ {% instructions ref="pitchbook_url" %}
285
+ PitchBook company profile URL if available.
286
+ {% /instructions %}
287
+
288
+ {% /field-group %}
289
+
290
+ {% field-group id="sources_section" title="Research Sources" %}
291
+
292
+ {% url-list id="sources" label="Source URLs" minItems=1 uniqueItems=true %}
293
+ ```value
294
+ https://www.crunchbase.com/organization/anthropic
295
+ https://www.anthropic.com
296
+ https://www.linkedin.com/company/anthropic
297
+ https://en.wikipedia.org/wiki/Anthropic
298
+ ```
299
+ {% /url-list %}
300
+
301
+ {% instructions ref="sources" %}
302
+ List all source URLs used for this research. Include Crunchbase, company website, and any additional sources consulted.
303
+ {% /instructions %}
304
+
305
+ {% /field-group %}
306
+
307
+ {% /form %}
@@ -0,0 +1,211 @@
1
+ ---
2
+ markform:
3
+ spec: MF/0.1
4
+ roles:
5
+ - user
6
+ - agent
7
+ role_instructions:
8
+ user: "Enter the name of the startup company you want to research."
9
+ agent: |
10
+ Research and fill in all company information for the specified startup.
11
+ Guidelines:
12
+ 1. Start with Crunchbase - The company's Crunchbase page is the primary source
13
+ 2. Verify with company website and press releases
14
+ 3. Use official formats - Dates as YYYY-MM-DD, funding as USD amounts
15
+ 4. Fill funding rounds chronologically - Most recent first
16
+ 5. Include all relevant URLs - Website, LinkedIn, press coverage
17
+ 6. Leave unknown fields empty - Don't guess or fabricate information
18
+ 7. Keep descriptions concise - Aim for 100-200 words max
19
+ ---
20
+
21
+ {% form id="startup_research" title="Startup Research Form" %}
22
+
23
+ {% description ref="startup_research" %}
24
+ A comprehensive research form for startup companies. This form demonstrates URL field types
25
+ for capturing company websites, funding sources, press coverage, and other web references.
26
+ The user provides the company name, and the agent researches and fills all remaining fields.
27
+ {% /description %}
28
+
29
+ {% documentation ref="startup_research" %}
30
+ **Workflow:**
31
+ 1. User enters the startup company name
32
+ 2. Agent researches and fills company information
33
+ 3. Agent includes all relevant URLs (website, LinkedIn, press, funding sources)
34
+ 4. Agent provides source citations
35
+
36
+ **Data Sources:**
37
+ - Crunchbase profiles
38
+ - Company websites
39
+ - Press releases
40
+ - LinkedIn company pages
41
+ - Tech news publications
42
+ {% /documentation %}
43
+
44
+ {% field-group id="basic_info" title="Company Information" %}
45
+
46
+ {% string-field id="company_name" label="Company Name" role="user" required=true minLength=2 maxLength=200 %}{% /string-field %}
47
+
48
+ {% instructions ref="company_name" %}
49
+ Enter the official name of the startup company you want to research (e.g., "Stripe", "OpenAI").
50
+ {% /instructions %}
51
+
52
+ {% url-field id="company_website" label="Company Website" required=true %}{% /url-field %}
53
+
54
+ {% instructions ref="company_website" %}
55
+ The official company website URL.
56
+ {% /instructions %}
57
+
58
+ {% url-field id="linkedin_page" label="LinkedIn Company Page" %}{% /url-field %}
59
+
60
+ {% instructions ref="linkedin_page" %}
61
+ LinkedIn company page URL if available.
62
+ {% /instructions %}
63
+
64
+ {% string-field id="founded_date" label="Founded Date" pattern="^\\d{4}(-\\d{2}(-\\d{2})?)?$" %}{% /string-field %}
65
+
66
+ {% instructions ref="founded_date" %}
67
+ Format: YYYY, YYYY-MM, or YYYY-MM-DD (e.g., 2010, 2010-06, 2010-06-15)
68
+ {% /instructions %}
69
+
70
+ {% string-field id="headquarters" label="Headquarters Location" %}{% /string-field %}
71
+
72
+ {% instructions ref="headquarters" %}
73
+ Format: City, State/Country (e.g., "San Francisco, California")
74
+ {% /instructions %}
75
+
76
+ {% string-field id="company_description" label="Company Description" multiline=true maxLength=1000 %}{% /string-field %}
77
+
78
+ {% instructions ref="company_description" %}
79
+ Brief description of what the company does. 100-200 words max.
80
+ {% /instructions %}
81
+
82
+ {% /field-group %}
83
+
84
+ {% field-group id="funding_info" title="Funding Information" %}
85
+
86
+ {% string-field id="total_funding" label="Total Funding Raised" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}{% /string-field %}
87
+
88
+ {% instructions ref="total_funding" %}
89
+ Format: $X.XB, $XXM, or $XXK (e.g., "$1.5B", "$50M", "$500K")
90
+ {% /instructions %}
91
+
92
+ {% string-field id="latest_valuation" label="Latest Valuation" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}{% /string-field %}
93
+
94
+ {% instructions ref="latest_valuation" %}
95
+ Format: $X.XB, $XXM, or $XXK (e.g., "$10B")
96
+ {% /instructions %}
97
+
98
+ {% single-select id="funding_stage" label="Funding Stage" %}
99
+ - [ ] Pre-seed {% #pre_seed %}
100
+ - [ ] Seed {% #seed %}
101
+ - [ ] Series A {% #series_a %}
102
+ - [ ] Series B {% #series_b %}
103
+ - [ ] Series C {% #series_c %}
104
+ - [ ] Series D+ {% #series_d_plus %}
105
+ - [ ] Public {% #public %}
106
+ {% /single-select %}
107
+
108
+ {% string-list id="key_investors" label="Key Investors" maxItems=10 %}{% /string-list %}
109
+
110
+ {% instructions ref="key_investors" %}
111
+ List notable investors (VCs, angels), one per line.
112
+ {% /instructions %}
113
+
114
+ {% url-list id="funding_announcements" label="Funding Announcement URLs" maxItems=5 uniqueItems=true %}{% /url-list %}
115
+
116
+ {% instructions ref="funding_announcements" %}
117
+ URLs to press releases or articles about funding rounds.
118
+ {% /instructions %}
119
+
120
+ {% /field-group %}
121
+
122
+ {% field-group id="people" title="Key People" %}
123
+
124
+ {% string-field id="ceo" label="CEO / Founder" %}{% /string-field %}
125
+
126
+ {% instructions ref="ceo" %}
127
+ Name of CEO or primary founder.
128
+ {% /instructions %}
129
+
130
+ {% url-field id="ceo_linkedin" label="CEO LinkedIn" %}{% /url-field %}
131
+
132
+ {% instructions ref="ceo_linkedin" %}
133
+ LinkedIn profile URL of the CEO/founder.
134
+ {% /instructions %}
135
+
136
+ {% string-list id="founders" label="Founders" maxItems=5 %}{% /string-list %}
137
+
138
+ {% instructions ref="founders" %}
139
+ List all founders, one per line.
140
+ {% /instructions %}
141
+
142
+ {% number-field id="employee_count" label="Employee Count" min=1 integer=true %}{% /number-field %}
143
+
144
+ {% instructions ref="employee_count" %}
145
+ Approximate number of employees.
146
+ {% /instructions %}
147
+
148
+ {% /field-group %}
149
+
150
+ {% field-group id="market_info" title="Market & Industry" %}
151
+
152
+ {% multi-select id="industry_sectors" label="Industry Sectors" minSelections=1 maxSelections=5 %}
153
+ - [ ] AI/ML {% #ai_ml %}
154
+ - [ ] FinTech {% #fintech %}
155
+ - [ ] HealthTech {% #healthtech %}
156
+ - [ ] EdTech {% #edtech %}
157
+ - [ ] SaaS {% #saas %}
158
+ - [ ] E-commerce {% #ecommerce %}
159
+ - [ ] Security {% #security %}
160
+ - [ ] Developer Tools {% #devtools %}
161
+ - [ ] Climate Tech {% #climatetech %}
162
+ - [ ] Other {% #other %}
163
+ {% /multi-select %}
164
+
165
+ {% string-list id="competitors" label="Competitors" maxItems=5 %}{% /string-list %}
166
+
167
+ {% instructions ref="competitors" %}
168
+ List main competitors, one per line.
169
+ {% /instructions %}
170
+
171
+ {% url-list id="competitor_urls" label="Competitor Website URLs" maxItems=5 uniqueItems=true %}{% /url-list %}
172
+
173
+ {% instructions ref="competitor_urls" %}
174
+ Website URLs of main competitors.
175
+ {% /instructions %}
176
+
177
+ {% /field-group %}
178
+
179
+ {% field-group id="press_coverage" title="Press & Coverage" %}
180
+
181
+ {% url-list id="press_articles" label="Press Coverage URLs" minItems=1 maxItems=10 uniqueItems=true %}{% /url-list %}
182
+
183
+ {% instructions ref="press_articles" %}
184
+ URLs to major press articles, reviews, or coverage about the company.
185
+ {% /instructions %}
186
+
187
+ {% url-field id="crunchbase_url" label="Crunchbase Profile" %}{% /url-field %}
188
+
189
+ {% instructions ref="crunchbase_url" %}
190
+ Crunchbase company profile URL.
191
+ {% /instructions %}
192
+
193
+ {% url-field id="pitchbook_url" label="PitchBook Profile" %}{% /url-field %}
194
+
195
+ {% instructions ref="pitchbook_url" %}
196
+ PitchBook company profile URL if available.
197
+ {% /instructions %}
198
+
199
+ {% /field-group %}
200
+
201
+ {% field-group id="sources_section" title="Research Sources" %}
202
+
203
+ {% url-list id="sources" label="Source URLs" minItems=1 uniqueItems=true %}{% /url-list %}
204
+
205
+ {% instructions ref="sources" %}
206
+ List all source URLs used for this research. Include Crunchbase, company website, and any additional sources consulted.
207
+ {% /instructions %}
208
+
209
+ {% /field-group %}
210
+
211
+ {% /form %}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markform",
3
- "version": "0.1.0",
4
- "description": "Agent-friendly, human-readable, editable forms stored as .form.md files",
3
+ "version": "0.1.2",
4
+ "description": "Markdown forms for token-friendly workflows",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "author": "Joshua Levy",
7
7
  "repository": {
@@ -47,10 +47,13 @@
47
47
  },
48
48
  "files": [
49
49
  "dist",
50
- "examples"
50
+ "examples",
51
+ "DOCS.md",
52
+ "README.md",
53
+ "SPEC.md"
51
54
  ],
52
55
  "engines": {
53
- "node": ">=24"
56
+ "node": ">=20"
54
57
  },
55
58
  "dependencies": {
56
59
  "@ai-sdk/deepseek": "^2.0.1",
@@ -63,6 +66,7 @@
63
66
  "commander": "^13.0.0",
64
67
  "dotenv": "^17.2.3",
65
68
  "jiti": "^2.4.0",
69
+ "js-sha256": "^0.11.1",
66
70
  "picocolors": "^1.1.0",
67
71
  "yaml": "^2.7.0",
68
72
  "zod": "^3.24.0"
@@ -86,13 +90,15 @@
86
90
  "vitest": "^3.0.0"
87
91
  },
88
92
  "scripts": {
89
- "build": "tsdown",
93
+ "copy-docs": "cp ../../README.md . && cp ../../SPEC.md .",
94
+ "build": "pnpm run copy-docs && tsdown",
90
95
  "dev": "tsdown --watch",
91
96
  "typecheck": "tsc -p tsconfig.json --noEmit",
92
97
  "test": "vitest run",
93
98
  "test:watch": "vitest",
94
99
  "test:unit": "vitest run tests/unit",
95
100
  "test:golden": "vitest run tests/golden",
101
+ "test:golden:regen": "npx tsx scripts/regen-golden-sessions.ts",
96
102
  "test:coverage": "vitest run --coverage",
97
103
  "test:coverage:html": "vitest run --coverage && open coverage/index.html",
98
104
  "publint": "publint"