markform 0.1.14 → 0.1.16

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 (49) hide show
  1. package/README.md +48 -39
  2. package/dist/ai-sdk.d.mts +3 -2
  3. package/dist/ai-sdk.mjs +3 -2
  4. package/dist/ai-sdk.mjs.map +1 -0
  5. package/dist/{apply-CUH_16RD.mjs → apply-CXsI5N9x.mjs} +639 -9
  6. package/dist/apply-CXsI5N9x.mjs.map +1 -0
  7. package/dist/bin.mjs +3 -2
  8. package/dist/bin.mjs.map +1 -0
  9. package/dist/{cli-ixzNVirs.mjs → cli-BsFessUW.mjs} +713 -120
  10. package/dist/cli-BsFessUW.mjs.map +1 -0
  11. package/dist/cli.d.mts +2 -1
  12. package/dist/cli.mjs +1 -1
  13. package/dist/{coreTypes-CnKsB1H3.d.mts → coreTypes-DE6Giau5.d.mts} +10 -1
  14. package/dist/coreTypes-DiCddBKu.mjs +2 -1
  15. package/dist/coreTypes-DiCddBKu.mjs.map +1 -0
  16. package/dist/index.d.mts +15 -2
  17. package/dist/index.mjs +2 -2
  18. package/dist/session-XDrocA3j.mjs +2 -1
  19. package/dist/session-XDrocA3j.mjs.map +1 -0
  20. package/dist/{shared-D3dNi-Gn.mjs → shared-CCq4haEV.mjs} +9 -1
  21. package/dist/shared-CCq4haEV.mjs.map +1 -0
  22. package/dist/shared-fUKfJ1UA.mjs +4 -0
  23. package/dist/{src-BKRKMdgR.mjs → src-Dv3IZSQU.mjs} +15 -6
  24. package/dist/src-Dv3IZSQU.mjs.map +1 -0
  25. package/docs/markform-reference.md +58 -7
  26. package/docs/markform-spec.md +142 -0
  27. package/examples/movie-research/movie-deep-research-mock-filled.form.md +64 -40
  28. package/examples/movie-research/movie-deep-research.form.md +58 -37
  29. package/examples/movie-research/movie-research-demo.form.md +9 -6
  30. package/examples/rejection-test/rejection-test-mock-filled.form.md +5 -7
  31. package/examples/rejection-test/rejection-test-mock-filled.report.md +4 -2
  32. package/examples/rejection-test/rejection-test-mock-filled.schema.json +1 -1
  33. package/examples/rejection-test/rejection-test.form.md +5 -7
  34. package/examples/rejection-test/rejection-test.session.yaml +10 -10
  35. package/examples/simple/simple-comment-syntax.form.md +79 -0
  36. package/examples/simple/simple-mock-filled.form.md +20 -9
  37. package/examples/simple/simple-mock-filled.report.md +30 -7
  38. package/examples/simple/simple-skipped-filled.form.md +22 -10
  39. package/examples/simple/simple-skipped-filled.report.md +27 -4
  40. package/examples/simple/simple-skipped-filled.yml +1 -1
  41. package/examples/simple/simple-with-skips.session.yaml +35 -19
  42. package/examples/simple/simple.form.md +20 -9
  43. package/examples/simple/simple.raw.md +18 -25
  44. package/examples/simple/simple.session.yaml +35 -19
  45. package/examples/startup-deep-research/startup-deep-research.form.md +126 -103
  46. package/examples/startup-research/startup-research-mock-filled.form.md +19 -10
  47. package/examples/startup-research/startup-research.form.md +36 -29
  48. package/package.json +9 -3
  49. package/dist/shared-CNqwaxUt.mjs +0 -4
@@ -18,13 +18,14 @@ markform:
18
18
  6. Leave unknown fields empty - Don't guess or fabricate information
19
19
  7. Keep descriptions concise - Aim for 100-200 words max
20
20
  ---
21
-
22
21
  {% form id="startup_research" title="Startup Research Form" %}
23
22
 
24
23
  {% description ref="startup_research" %}
25
- A comprehensive research form for startup companies. This form demonstrates URL field types
26
- for capturing company websites, funding sources, press coverage, and other web references.
27
- The user provides the company name, and the agent researches and fills all remaining fields.
24
+ A comprehensive research form for startup companies.
25
+ This form demonstrates URL field types for capturing company websites, funding sources,
26
+ press coverage, and other web references.
27
+ The user provides the company name, and the agent researches and fills all remaining
28
+ fields.
28
29
  {% /description %}
29
30
 
30
31
  {% documentation ref="startup_research" %}
@@ -40,6 +41,7 @@ The user provides the company name, and the agent researches and fills all remai
40
41
  - Press releases
41
42
  - LinkedIn company pages
42
43
  - Tech news publications
44
+
43
45
  {% /documentation %}
44
46
 
45
47
  {% group id="basic_info" title="Company Information" %}
@@ -47,7 +49,8 @@ The user provides the company name, and the agent researches and fills all remai
47
49
  {% field kind="string" id="company_name" label="Company Name" role="user" required=true minLength=2 maxLength=200 %}{% /field %}
48
50
 
49
51
  {% instructions ref="company_name" %}
50
- Enter the official name of the startup company you want to research (e.g., "Stripe", "OpenAI").
52
+ Enter the official name of the startup company you want to research (e.g., Stripe”,
53
+ “OpenAI”).
51
54
  {% /instructions %}
52
55
 
53
56
  {% field kind="url" id="company_website" label="Company Website" required=true %}{% /field %}
@@ -71,13 +74,14 @@ Format: YYYY, YYYY-MM, or YYYY-MM-DD (e.g., 2010, 2010-06, 2010-06-15)
71
74
  {% field kind="string" id="headquarters" label="Headquarters Location" %}{% /field %}
72
75
 
73
76
  {% instructions ref="headquarters" %}
74
- Format: City, State/Country (e.g., "San Francisco, California")
77
+ Format: City, State/Country (e.g., San Francisco, California)
75
78
  {% /instructions %}
76
79
 
77
80
  {% field kind="string" id="company_description" label="Company Description" multiline=true maxLength=1000 %}{% /field %}
78
81
 
79
82
  {% instructions ref="company_description" %}
80
- Brief description of what the company does. 100-200 words max.
83
+ Brief description of what the company does.
84
+ 100-200 words max.
81
85
  {% /instructions %}
82
86
 
83
87
  {% /group %}
@@ -87,16 +91,17 @@ Brief description of what the company does. 100-200 words max.
87
91
  {% field kind="string" id="total_funding" label="Total Funding Raised" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}{% /field %}
88
92
 
89
93
  {% instructions ref="total_funding" %}
90
- Format: $X.XB, $XXM, or $XXK (e.g., "$1.5B", "$50M", "$500K")
94
+ Format: $X.XB, $XXM, or $XXK (e.g., “$1.5B”, “$50M”, “$500K)
91
95
  {% /instructions %}
92
96
 
93
97
  {% field kind="string" id="latest_valuation" label="Latest Valuation" pattern="^\\$[0-9]+(\\.[0-9]+)?(K|M|B)?$" %}{% /field %}
94
98
 
95
99
  {% instructions ref="latest_valuation" %}
96
- Format: $X.XB, $XXM, or $XXK (e.g., "$10B")
100
+ Format: $X.XB, $XXM, or $XXK (e.g., “$10B)
97
101
  {% /instructions %}
98
102
 
99
103
  {% field kind="single_select" id="funding_stage" label="Funding Stage" %}
104
+
100
105
  - [ ] Pre-seed {% #pre_seed %}
101
106
  - [ ] Seed {% #seed %}
102
107
  - [ ] Series A {% #series_a %}
@@ -104,35 +109,36 @@ Format: $X.XB, $XXM, or $XXK (e.g., "$10B")
104
109
  - [ ] Series C {% #series_c %}
105
110
  - [ ] Series D+ {% #series_d_plus %}
106
111
  - [ ] Public {% #public %}
112
+
107
113
  {% /field %}
108
114
 
109
- {% field kind="table" id="funding_rounds" label="Funding Rounds"
110
- columnIds=["round_type", "date", "amount", "lead_investors", "source_url"]
111
- columnTypes=["string", "string", "string", "string", "url"]
112
- minRows=0 maxRows=10 %}
115
+ {% field kind="table" id="funding_rounds" label="Funding Rounds" columnIds=["round_type", "date", "amount", "lead_investors", "source_url"] columnTypes=["string", "string", "string", "string", "url"] minRows=0 maxRows=10 %}
116
+
113
117
  | Round Type | Date | Amount | Lead Investor(s) | Source URL |
114
118
  |------------|------|--------|------------------|------------|
119
+
115
120
  {% /field %}
116
121
 
117
122
  {% instructions ref="funding_rounds" %}
118
- List funding rounds, most recent first. Date format: YYYY-MM.
119
- Example: Series B | 2023-06 | $50M | Sequoia Capital | https://techcrunch.com/...
123
+ List funding rounds, most recent first.
124
+ Date format: YYYY-MM. Example: Series B | 2023-06 | $50M | Sequoia Capital |
125
+ https://techcrunch.com/...
120
126
  {% /instructions %}
121
127
 
122
128
  {% /group %}
123
129
 
124
130
  {% group id="people" title="Key People" %}
125
131
 
126
- {% field kind="table" id="founders" label="Founders"
127
- columnIds=["name", "title", "linkedin"]
128
- columnTypes=["string", "string", "url"]
129
- minRows=1 maxRows=5 %}
132
+ {% field kind="table" id="founders" label="Founders" columnIds=["name", "title", "linkedin"] columnTypes=["string", "string", "url"] minRows=1 maxRows=5 %}
133
+
130
134
  | Name | Title | LinkedIn URL |
131
135
  |------|-------|--------------|
136
+
132
137
  {% /field %}
133
138
 
134
139
  {% instructions ref="founders" %}
135
- List founders and co-founders. Include name, current title, and LinkedIn profile URL.
140
+ List founders and co-founders.
141
+ Include name, current title, and LinkedIn profile URL.
136
142
  {% /instructions %}
137
143
 
138
144
  {% field kind="number" id="employee_count" label="Employee Count" min=1 integer=true %}{% /field %}
@@ -146,6 +152,7 @@ Approximate number of employees.
146
152
  {% group id="market_info" title="Market & Industry" %}
147
153
 
148
154
  {% field kind="multi_select" id="industry_sectors" label="Industry Sectors" minSelections=1 maxSelections=5 %}
155
+
149
156
  - [ ] AI/ML {% #ai_ml %}
150
157
  - [ ] FinTech {% #fintech %}
151
158
  - [ ] HealthTech {% #healthtech %}
@@ -156,14 +163,14 @@ Approximate number of employees.
156
163
  - [ ] Developer Tools {% #devtools %}
157
164
  - [ ] Climate Tech {% #climatetech %}
158
165
  - [ ] Other {% #other %}
166
+
159
167
  {% /field %}
160
168
 
161
- {% field kind="table" id="competitors" label="Key Competitors"
162
- columnIds=["company_name", "website", "one_liner"]
163
- columnTypes=["string", "url", "string"]
164
- minRows=0 maxRows=5 %}
169
+ {% field kind="table" id="competitors" label="Key Competitors" columnIds=["company_name", "website", "one_liner"] columnTypes=["string", "url", "string"] minRows=0 maxRows=5 %}
170
+
165
171
  | Company Name | Website | One-liner |
166
172
  |--------------|---------|-----------|
173
+
167
174
  {% /field %}
168
175
 
169
176
  {% instructions ref="competitors" %}
@@ -174,12 +181,11 @@ List main competitors with their website and a brief description.
174
181
 
175
182
  {% group id="press_coverage" title="Press & Coverage" %}
176
183
 
177
- {% field kind="table" id="press_articles" label="Press Coverage"
178
- columnIds=["title", "publication", "date", "url"]
179
- columnTypes=["string", "string", "date", "url"]
180
- minRows=1 maxRows=10 %}
184
+ {% field kind="table" id="press_articles" label="Press Coverage" columnIds=["title", "publication", "date", "url"] columnTypes=["string", "string", "date", "url"] minRows=1 maxRows=10 %}
185
+
181
186
  | Title | Publication | Date | URL |
182
187
  |-------|-------------|------|-----|
188
+
183
189
  {% /field %}
184
190
 
185
191
  {% instructions ref="press_articles" %}
@@ -205,7 +211,8 @@ PitchBook company profile URL if available.
205
211
  {% field kind="url_list" id="sources" label="Source URLs" minItems=1 uniqueItems=true %}{% /field %}
206
212
 
207
213
  {% instructions ref="sources" %}
208
- List all source URLs used for this research. Include Crunchbase, company website, and any additional sources consulted.
214
+ List all source URLs used for this research.
215
+ Include Crunchbase, company website, and any additional sources consulted.
209
216
  {% /instructions %}
210
217
 
211
218
  {% /group %}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markform",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Markdown forms for token-friendly workflows",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "author": "Joshua Levy",
@@ -77,7 +77,10 @@
77
77
  "@vitest/coverage-v8": "^4.0.16",
78
78
  "ajv": "^8.17.1",
79
79
  "ajv-formats": "^3.0.1",
80
+ "c8": "^10.1.3",
81
+ "monocart-coverage-reports": "^2.12.9",
80
82
  "publint": "^0.3.16",
83
+ "tryscript": "^0.1.4",
81
84
  "tsdown": "^0.18.3",
82
85
  "typescript": "^5.9.3",
83
86
  "vitest": "^4.0.16"
@@ -92,8 +95,11 @@
92
95
  "test:unit": "vitest run tests/unit",
93
96
  "test:golden": "vitest run tests/golden",
94
97
  "test:golden:regen": "npx tsx scripts/regen-golden-sessions.ts",
95
- "test:coverage": "vitest run --coverage",
96
- "test:coverage:html": "vitest run --coverage && open coverage/index.html",
98
+ "test:coverage": "vitest run --coverage && tryscript run 'tests/cli/**/*.tryscript.md' --coverage --merge-lcov coverage/lcov.info",
99
+ "test:coverage:vitest": "vitest run --coverage",
100
+ "test:coverage:cli": "tryscript run 'tests/cli/**/*.tryscript.md' --coverage --merge-lcov coverage/lcov.info",
101
+ "test:tryscript": "tryscript run 'tests/cli/**/*.tryscript.md'",
102
+ "test:tryscript:update": "tryscript run --update 'tests/cli/**/*.tryscript.md'",
97
103
  "publint": "publint"
98
104
  }
99
105
  }
@@ -1,4 +0,0 @@
1
-
2
- import { a as formatPath, c as logError, d as logTiming, f as logVerbose, g as writeFile, h as shouldUseColors, i as formatOutput, l as logInfo, m as readFile, n as createSpinner, o as getCommandContext, p as logWarn, r as ensureFormsDir, s as logDryRun, t as OUTPUT_FORMATS, u as logSuccess } from "./shared-D3dNi-Gn.mjs";
3
-
4
- export { writeFile };