markform 0.1.5 → 0.1.7
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.
- package/README.md +126 -68
- package/dist/ai-sdk.d.mts +1 -2
- package/dist/ai-sdk.mjs +3 -2
- package/dist/{apply-BCCiJzQr.mjs → apply-g23rRn7p.mjs} +29 -24
- package/dist/bin.d.mts +0 -1
- package/dist/bin.mjs +3 -6
- package/dist/{cli-D469amuk.mjs → cli-Bqlm-WWw.mjs} +1528 -730
- package/dist/cli.d.mts +0 -1
- package/dist/cli.mjs +2 -6
- package/dist/coreTypes-DCvD7feM.d.mts +3203 -0
- package/dist/{coreTypes-pyctKRgc.mjs → coreTypes-__Cwxz5q.mjs} +10 -3
- package/dist/index.d.mts +164 -8
- package/dist/index.mjs +6 -5
- package/dist/{session-uF0e6m6k.mjs → session-CgCNni0e.mjs} +3 -2
- package/dist/session-DruaYPZ1.mjs +4 -0
- package/dist/{shared-CZsyShck.mjs → shared-C9yW5FLZ.mjs} +2 -1
- package/dist/{shared-BqPnYXrn.mjs → shared-DQ6y3Ggc.mjs} +4 -2
- package/dist/{src-Df0XX7UB.mjs → src-BiuxbzF3.mjs} +495 -91
- package/docs/markform-apis.md +52 -1
- package/docs/markform-spec.md +11 -2
- package/examples/earnings-analysis/earnings-analysis.form.md +1 -0
- package/examples/movie-research/movie-research-basic.form.md +1 -0
- package/examples/movie-research/movie-research-deep.form.md +1 -0
- package/examples/movie-research/{movie-research-minimal.form.md → movie-research-demo.form.md} +4 -3
- package/examples/simple/simple.form.md +1 -0
- package/examples/simple/simple.schema.json +374 -0
- package/examples/startup-deep-research/startup-deep-research.form.md +1 -0
- package/examples/startup-research/startup-research.form.md +1 -0
- package/package.json +11 -9
- package/dist/coreTypes-9XZSNOv6.d.mts +0 -8951
- package/dist/session-B_stoXQn.mjs +0 -4
package/README.md
CHANGED
|
@@ -1,23 +1,59 @@
|
|
|
1
1
|
# Markform
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Markform** turns Markdown documents into executable specifications for structured data
|
|
4
|
+
collection.
|
|
5
|
+
Define fields, validation rules, and instructions in a single `.form.md` file
|
|
6
|
+
that is readable by humans, parseable by machines, and fillable by LLM agents.
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
The core idea: **a form combines structure, unstructured context, and memory in a simple
|
|
9
|
+
text document**. Users can give inputs via UIs or CLI. Agents can fill fields
|
|
10
|
+
incrementally via tools or APIs.
|
|
11
|
+
Validation catches errors early and humans can review or intervene at any point.
|
|
12
|
+
The entire workflow is visible in a token-friendly text file you can read, diff, and
|
|
13
|
+
version control.
|
|
8
14
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
validation rules.
|
|
12
|
-
Fields, validation rules, and instructions are encoded as Markdoc tags.
|
|
15
|
+
Syntax is [Markdoc](https://github.com/markdoc/markdoc), which is Markdown extended with
|
|
16
|
+
`{% tag %}` annotations, so LLMs are already quite good at writing Markform docs.
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
agent
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
## Why?
|
|
19
|
+
|
|
20
|
+
Many agent workflow frameworks emphasize *prompts* and the *flow* of information (the
|
|
21
|
+
*how*) over the desired *structure* of the results (the *what*). Markform lets you build
|
|
22
|
+
agent workflows by structuring and validating *what* you want (the structure of
|
|
23
|
+
information, validations, and reviews encoded in a form) instead of *how* to run a
|
|
24
|
+
workflow as code (via explicit workflows or just an unstructured swarm of agents).
|
|
25
|
+
|
|
26
|
+
For centuries, humans have used paper forms to systematize and manage processes.
|
|
27
|
+
A well-designed form with instructions, field definitions, and validations is a concise
|
|
28
|
+
way to share context: background knowledge, goals, process rules, and memories.
|
|
29
|
+
I don’t think AI changes this essential aspect of knowledge work.
|
|
30
|
+
It’s time to bring bureaucracy to the agents.
|
|
31
|
+
|
|
32
|
+
There’s one more key benefit to this approach: LLMs are good at writing forms!
|
|
33
|
+
Because the syntax is just Markdown with Jinja-style tags, agents can convert an
|
|
34
|
+
informal Markdown doc describing a process to a precise Markform process easily.
|
|
35
|
+
|
|
36
|
+
(For more, see [the FAQ](#faq).)
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Copy example forms to ./forms/ and run one interactively
|
|
42
|
+
# Set OPENAI_API_KEY or ANTHROPIC_API_KEY (or put in .env) for research examples
|
|
43
|
+
npx markform examples # Copy examples to ./forms/, then offers to run one
|
|
44
|
+
|
|
45
|
+
# Or run forms directly
|
|
46
|
+
npx markform run # Browse and run forms interactively
|
|
47
|
+
|
|
48
|
+
# Read the docs (tell your agents to run these; they are agent-friendly!)
|
|
49
|
+
npx markform # CLI help
|
|
50
|
+
npx markform readme # This file
|
|
51
|
+
npx markform docs # Quick reference for writing Markforms
|
|
52
|
+
npx markform spec # Read the full spec
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The `markform examples` command copies sample forms locally and prompts you to run one.
|
|
56
|
+
Pick `movie-research-demo.form.md` for a quick example.
|
|
21
57
|
|
|
22
58
|
## Installation
|
|
23
59
|
|
|
@@ -31,17 +67,6 @@ npm install -g markform
|
|
|
31
67
|
npm install markform
|
|
32
68
|
```
|
|
33
69
|
|
|
34
|
-
## Quick Start
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
# Try it without installing
|
|
38
|
-
npx markform examples
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
This walks you through an example form interactively, with optional AI agent filling.
|
|
42
|
-
You’ll need at least one [API key](#supported-providers) form a provider with a model
|
|
43
|
-
that supports web search to have LLMs fill in forms.
|
|
44
|
-
|
|
45
70
|
## Example: Research a Movie
|
|
46
71
|
|
|
47
72
|
### Form Definition
|
|
@@ -53,7 +78,7 @@ It combines YAML frontmatter with Markdoc-tagged content:
|
|
|
53
78
|
---
|
|
54
79
|
markform:
|
|
55
80
|
spec: MF/0.1
|
|
56
|
-
title: Movie Research (
|
|
81
|
+
title: Movie Research (Demo)
|
|
57
82
|
description: Quick movie lookup with just the essentials (title, year, ratings, summary).
|
|
58
83
|
roles:
|
|
59
84
|
- user
|
|
@@ -62,9 +87,9 @@ markform:
|
|
|
62
87
|
user: "Enter the movie title."
|
|
63
88
|
agent: |
|
|
64
89
|
Quickly identify the movie and fill in basic info from IMDB.
|
|
65
|
-
This is a
|
|
90
|
+
This is a demo lookup - just get the core facts.
|
|
66
91
|
---
|
|
67
|
-
{% form id="
|
|
92
|
+
{% form id="movie_research_demo" title="Movie Research (Demo)" %}
|
|
68
93
|
|
|
69
94
|
## Movie Research Example
|
|
70
95
|
|
|
@@ -122,11 +147,12 @@ What movie do you want to research? \[*This field is filled in by the user (`rol
|
|
|
122
147
|
|
|
123
148
|
### Form Report Output
|
|
124
149
|
|
|
125
|
-
Run
|
|
126
|
-
|
|
150
|
+
Run `npx markform examples` to copy examples, then `npx markform run` and select `Movie
|
|
151
|
+
Research (Demo)` to fill it.
|
|
152
|
+
The report output looks like:
|
|
127
153
|
|
|
128
154
|
```markdown
|
|
129
|
-
# Movie Research (
|
|
155
|
+
# Movie Research (Demo)
|
|
130
156
|
|
|
131
157
|
## Movie Identification
|
|
132
158
|
|
|
@@ -156,51 +182,55 @@ Convicted banker Andy Dufresne is sent to Shawshank State Penitentiary, where he
|
|
|
156
182
|
|
|
157
183
|
### More Example Forms
|
|
158
184
|
|
|
159
|
-
The package includes example forms
|
|
160
|
-
|
|
161
|
-
|
|
185
|
+
The package includes example forms.
|
|
186
|
+
View them with `markform examples --list`, copy with `markform examples`, and run with
|
|
187
|
+
`markform run`:
|
|
188
|
+
|
|
189
|
+
- [`simple.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/simple/simple.form.md)
|
|
190
|
+
\- Basic form demonstrating all field kinds.
|
|
162
191
|
|
|
163
|
-
- [`movie-research
|
|
192
|
+
- [`movie-research-demo.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/movie-research/movie-research-demo.form.md)
|
|
164
193
|
\- The quick example above.
|
|
165
194
|
|
|
166
|
-
- [`movie-research
|
|
195
|
+
- [`movie-research-basic.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/movie-research/movie-research-basic.form.md)
|
|
167
196
|
\- Standard movie research with IMDB, Rotten Tomatoes, Metacritic.
|
|
168
197
|
|
|
169
|
-
- [`movie-research
|
|
198
|
+
- [`movie-research-deep.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/movie-research/movie-research-deep.form.md)
|
|
170
199
|
\- Comprehensive movie analysis with streaming, box office, analysis.
|
|
171
200
|
|
|
172
|
-
- [`
|
|
173
|
-
\- Basic form demonstrating all field kinds.
|
|
174
|
-
|
|
175
|
-
- [`earnings-analysis/earnings-analysis.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/earnings-analysis/earnings-analysis.form.md)
|
|
201
|
+
- [`earnings-analysis.form.md`](https://github.com/jlevy/markform/blob/main/packages/markform/examples/earnings-analysis/earnings-analysis.form.md)
|
|
176
202
|
\- Financial analysis form.
|
|
177
203
|
|
|
178
|
-
## Why?
|
|
179
|
-
|
|
180
|
-
Many agent workflow frameworks emphasize the *flow* of information (the *how*) over its
|
|
181
|
-
*structure* (the *what*). But the *how* is constantly changing.
|
|
182
|
-
|
|
183
|
-
What we often really want is to express *desired structure and validation rules* for
|
|
184
|
-
content directly in a way that provides clear context to agents and humans at all times.
|
|
185
|
-
|
|
186
|
-
Humans have for centuries used paper forms to systematize and manage processes.
|
|
187
|
-
The key insight of Markform is that the most natural way to express the state and
|
|
188
|
-
context for a workflow is often *forms*. Just as Markdown is a transparent format for
|
|
189
|
-
documents, Markform is a transparent text format for structured information.
|
|
190
|
-
|
|
191
204
|
## CLI Commands
|
|
192
205
|
|
|
193
|
-
###
|
|
206
|
+
### Copy and Run Examples
|
|
194
207
|
|
|
195
208
|
```bash
|
|
196
|
-
#
|
|
209
|
+
# Copy all bundled examples to ./forms/
|
|
197
210
|
markform examples
|
|
198
211
|
|
|
199
212
|
# List available examples
|
|
200
213
|
markform examples --list
|
|
201
214
|
|
|
202
|
-
#
|
|
203
|
-
markform examples --name
|
|
215
|
+
# Copy a specific example
|
|
216
|
+
markform examples --name movie-research-demo
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Browse and Run Forms
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Browse forms in ./forms/ and run one interactively
|
|
223
|
+
markform run
|
|
224
|
+
|
|
225
|
+
# Run a specific form directly
|
|
226
|
+
markform run forms/movie-research-demo.form.md
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Check Form Status
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Show fill progress with per-role breakdown
|
|
233
|
+
markform status my-form.form.md
|
|
204
234
|
```
|
|
205
235
|
|
|
206
236
|
### Inspect Forms
|
|
@@ -415,6 +445,19 @@ const result = await generateText({
|
|
|
415
445
|
|
|
416
446
|
## FAQ
|
|
417
447
|
|
|
448
|
+
### Can you say more why this is a good idea?
|
|
449
|
+
|
|
450
|
+
Yes! I’ve come to believe forms are a missing piece of the workflow problem with agents.
|
|
451
|
+
For deep research or complex multi-step workflows, key pieces need to be *precisely
|
|
452
|
+
controlled*, *domain-specific*, and *always improving*. You need precise documentation
|
|
453
|
+
on the key intermediate states and final output from an AI pipeline.
|
|
454
|
+
|
|
455
|
+
But you don’t want structure in a GUI (not token friendly) or code (hard to update) or
|
|
456
|
+
dependent on the whims of a thinking model (changes all the time).
|
|
457
|
+
Forms define these pieces and are easy to edit.
|
|
458
|
+
All other choices can be left to the agents themselves, with the structure and
|
|
459
|
+
validations enforced by the form-filling tools the agents use.
|
|
460
|
+
|
|
418
461
|
### Is this mature?
|
|
419
462
|
|
|
420
463
|
No! I just wrote it.
|
|
@@ -423,10 +466,24 @@ But it’s been useful for me already.
|
|
|
423
466
|
|
|
424
467
|
### Was it Vibe Coded?
|
|
425
468
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
469
|
+
This is 100% agent-written code and the planning specs are also 100% agent written,
|
|
470
|
+
using a mix of Opus 4.5, GPT 5.2, GPT-5 Pro, Gemini 3, and occasionally others.
|
|
471
|
+
|
|
472
|
+
But it’s not slop. It is written via a strongly spec-driven process, using rules from my
|
|
473
|
+
[Speculate](https://github.com/jlevy/speculate) repo and Steve Yegge’s
|
|
474
|
+
[beads](https://github.com/steveyegge/beads) for tracking work.
|
|
475
|
+
|
|
476
|
+
See
|
|
477
|
+
[my post](https://github.com/jlevy/speculate/blob/main/about/lessons_in_spec_coding.md)
|
|
478
|
+
for more thoughts on how this works.
|
|
479
|
+
And see [the complete history of
|
|
480
|
+
specs](https://github.com/jlevy/markform/tree/main/docs/project/specs/done) for examples
|
|
481
|
+
of how everything is done with specs and with
|
|
482
|
+
|
|
483
|
+
Although I didn’t have to write much there was a *lot* of management and review by me
|
|
484
|
+
and a lot of thought and iteration for all design decisions.
|
|
485
|
+
And this doc is written by me.
|
|
486
|
+
:)
|
|
430
487
|
|
|
431
488
|
### What are the goals of Markform?
|
|
432
489
|
|
|
@@ -467,7 +524,8 @@ This enables powerful AI workflows that assemble information in a defined struct
|
|
|
467
524
|
|
|
468
525
|
### Does anything like this already exist?
|
|
469
526
|
|
|
470
|
-
Not
|
|
527
|
+
Not that I have seen.
|
|
528
|
+
The closest alternatives are:
|
|
471
529
|
|
|
472
530
|
- Plain Markdown docs can be used as templates and filled in by agents.
|
|
473
531
|
These are more expressive, but it is hard to edit them programmatically or use LLMs to
|
|
@@ -481,13 +539,13 @@ Not really. The closest alternatives are:
|
|
|
481
539
|
human-friendly UI. But these do not have a human-friendly text format for use by
|
|
482
540
|
agents as well as humans.
|
|
483
541
|
|
|
484
|
-
| Approach | Has GUI | Human-readable
|
|
542
|
+
| Approach | Has GUI | Human-readable source format | Agent-editable | APIs and validation rules |
|
|
485
543
|
| --- | :---: | :---: | :---: | :---: |
|
|
486
544
|
| Plain Markdown | ☑️ existing tools | ✅ | ⚠️ fragile | ❌ |
|
|
487
|
-
| JSON with schema |
|
|
545
|
+
| JSON with schema | ⚠️ in some apps | ⚠️ um it’s JSON | ✅ | ✅ |
|
|
488
546
|
| SaaS tools (Typeform, Docusign, PDF forms) | ✅ | ⚠️ rarely | ⚠️ if they add it | ⚠️ if they add it |
|
|
489
|
-
| Excel/Google Sheets | ✅ | ❌ .xlsx | ⚠️ with tools | ✅ |
|
|
490
|
-
| **Markform** | ☑️ existing tools | ✅ | ✅ | ✅ |
|
|
547
|
+
| Excel/Google Sheets | ✅ | ❌ .csv (poor) or .xlsx (worse) | ⚠️ with tools | ✅ with some coding |
|
|
548
|
+
| **Markform** | ☑️ existing tools | ✅ | ✅ with this package | ✅ with this package |
|
|
491
549
|
|
|
492
550
|
### What are example use cases?
|
|
493
551
|
|
package/dist/ai-sdk.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
|
|
3
|
-
import { Dt as
|
|
2
|
+
import { Dt as ParsedForm, Ot as Patch, Q as Id, V as FieldResponse, kt as PatchSchema, lr as ValidatorRegistry, q as FormSchema, r as ApplyResult, rt as InspectResult } from "./coreTypes-DCvD7feM.mjs";
|
|
4
3
|
import { z } from "zod";
|
|
5
4
|
|
|
6
5
|
//#region src/integrations/toolTypes.d.ts
|
package/dist/ai-sdk.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
|
|
2
|
+
import { L as PatchSchema } from "./coreTypes-__Cwxz5q.mjs";
|
|
3
|
+
import { d as serialize, i as inspect, t as applyPatches } from "./apply-g23rRn7p.mjs";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
|
|
5
6
|
//#region src/integrations/vercelAiSdkTools.ts
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
2
1
|
|
|
3
2
|
//#region src/llms.ts
|
|
4
3
|
/**
|
|
@@ -113,13 +112,6 @@ function getWebSearchConfig(provider) {
|
|
|
113
112
|
//#endregion
|
|
114
113
|
//#region src/settings.ts
|
|
115
114
|
/**
|
|
116
|
-
* Global settings and constants for Markform.
|
|
117
|
-
*
|
|
118
|
-
* This file consolidates non-changing default values that were previously
|
|
119
|
-
* scattered across the codebase. These are NOT runtime configurable - they
|
|
120
|
-
* are compile-time constants.
|
|
121
|
-
*/
|
|
122
|
-
/**
|
|
123
115
|
* The current Markform spec version in full notation (e.g., "MF/0.1").
|
|
124
116
|
* This is distinct from npm package version and tracks the format that
|
|
125
117
|
* .form.md files conform to.
|
|
@@ -165,25 +157,19 @@ function parseRolesFlag(raw) {
|
|
|
165
157
|
*/
|
|
166
158
|
const DEFAULT_PRIORITY = "medium";
|
|
167
159
|
/**
|
|
168
|
-
* The default port for the serve command.
|
|
169
|
-
*/
|
|
170
|
-
const DEFAULT_PORT = 3344;
|
|
171
|
-
/**
|
|
172
160
|
* Default forms directory for CLI output (relative to cwd).
|
|
173
161
|
* Commands write form outputs here to avoid cluttering the workspace.
|
|
174
162
|
*/
|
|
175
163
|
const DEFAULT_FORMS_DIR = "./forms";
|
|
176
164
|
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* @param override Optional override path from CLI --forms-dir option
|
|
181
|
-
* @param cwd Base directory for resolving relative paths (defaults to process.cwd())
|
|
182
|
-
* @returns Absolute path to the forms directory
|
|
165
|
+
* Maximum forms to display in 'markform run' menu.
|
|
166
|
+
* Additional forms are not shown but can be run directly by path.
|
|
183
167
|
*/
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
168
|
+
const MAX_FORMS_IN_MENU = 30;
|
|
169
|
+
/**
|
|
170
|
+
* The default port for the serve command.
|
|
171
|
+
*/
|
|
172
|
+
const DEFAULT_PORT = 3344;
|
|
187
173
|
/**
|
|
188
174
|
* Default maximum turns for the fill harness.
|
|
189
175
|
* Prevents runaway loops during agent execution.
|
|
@@ -223,12 +209,18 @@ const EXPORT_EXTENSIONS = {
|
|
|
223
209
|
*/
|
|
224
210
|
const REPORT_EXTENSION = ".report.md";
|
|
225
211
|
/**
|
|
212
|
+
* Schema extension - generated JSON Schema for form structure.
|
|
213
|
+
* Used for validation, code generation, and LLM tooling.
|
|
214
|
+
*/
|
|
215
|
+
const SCHEMA_EXTENSION = ".schema.json";
|
|
216
|
+
/**
|
|
226
217
|
* All recognized markform file extensions.
|
|
227
|
-
* Combines export formats with report
|
|
218
|
+
* Combines export formats with report and schema formats.
|
|
228
219
|
*/
|
|
229
220
|
const ALL_EXTENSIONS = {
|
|
230
221
|
...EXPORT_EXTENSIONS,
|
|
231
|
-
report: REPORT_EXTENSION
|
|
222
|
+
report: REPORT_EXTENSION,
|
|
223
|
+
schema: SCHEMA_EXTENSION
|
|
232
224
|
};
|
|
233
225
|
/**
|
|
234
226
|
* Detect file type from path based on extension.
|
|
@@ -239,6 +231,7 @@ function detectFileType(filePath) {
|
|
|
239
231
|
if (filePath.endsWith(ALL_EXTENSIONS.raw)) return "raw";
|
|
240
232
|
if (filePath.endsWith(ALL_EXTENSIONS.report)) return "report";
|
|
241
233
|
if (filePath.endsWith(ALL_EXTENSIONS.yaml)) return "yaml";
|
|
234
|
+
if (filePath.endsWith(ALL_EXTENSIONS.schema)) return "schema";
|
|
242
235
|
if (filePath.endsWith(ALL_EXTENSIONS.json)) return "json";
|
|
243
236
|
if (filePath.endsWith(".md")) return "raw";
|
|
244
237
|
return "unknown";
|
|
@@ -267,6 +260,18 @@ function deriveReportPath(basePath) {
|
|
|
267
260
|
}
|
|
268
261
|
return base + REPORT_EXTENSION;
|
|
269
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Derive schema path from any markform file path.
|
|
265
|
+
* Strips known extensions and appends .schema.json.
|
|
266
|
+
*/
|
|
267
|
+
function deriveSchemaPath(basePath) {
|
|
268
|
+
let base = basePath;
|
|
269
|
+
for (const ext of Object.values(ALL_EXTENSIONS)) if (base.endsWith(ext)) {
|
|
270
|
+
base = base.slice(0, -ext.length);
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
return base + SCHEMA_EXTENSION;
|
|
274
|
+
}
|
|
270
275
|
|
|
271
276
|
//#endregion
|
|
272
277
|
//#region src/utils/keySort.ts
|
|
@@ -2824,4 +2829,4 @@ function applyPatches(form, patches) {
|
|
|
2824
2829
|
}
|
|
2825
2830
|
|
|
2826
2831
|
//#endregion
|
|
2827
|
-
export {
|
|
2832
|
+
export { deriveSchemaPath as A, DEFAULT_ROLES as C, USER_ROLE as D, REPORT_EXTENSION as E, formatSuggestedLlms as F, getWebSearchConfig as I, hasWebSearchSupport as L, parseRolesFlag as M, SUGGESTED_LLMS as N, deriveExportPath as O, WEB_SEARCH_CONFIG as P, parseModelIdForDisplay as R, DEFAULT_RESEARCH_MAX_PATCHES_PER_TURN as S, MAX_FORMS_IN_MENU as T, DEFAULT_MAX_PATCHES_PER_TURN as _, validate as a, DEFAULT_PRIORITY as b, computeProgressSummary as c, serialize as d, serializeRawMarkdown as f, DEFAULT_MAX_ISSUES_PER_TURN as g, DEFAULT_FORMS_DIR as h, inspect as i, detectFileType as j, deriveReportPath as k, computeStructureSummary as l, AGENT_ROLE as m, getAllFields as n, computeAllSummaries as o, serializeReportMarkdown as p, getFieldsForRoles as r, computeFormState as s, applyPatches as t, isFormComplete as u, DEFAULT_MAX_TURNS as v, DEFAULT_ROLE_INSTRUCTIONS as w, DEFAULT_RESEARCH_MAX_ISSUES_PER_TURN as x, DEFAULT_PORT as y };
|
package/dist/bin.d.mts
CHANGED
package/dist/bin.mjs
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import "./
|
|
5
|
-
import "./session-uF0e6m6k.mjs";
|
|
6
|
-
import "./shared-BqPnYXrn.mjs";
|
|
7
|
-
import { t as runCli } from "./cli-D469amuk.mjs";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { t as runCli } from "./cli-Bqlm-WWw.mjs";
|
|
8
5
|
import { resolve } from "node:path";
|
|
9
6
|
import { existsSync } from "node:fs";
|
|
10
7
|
import { config } from "dotenv";
|