AtlatestRepositoryfolio

folio / treepackage.sgl

1;;; sigil-folio - Markdown-native knowledge and project management via MCP
2;;;
3;;; A structured markdown convention paired with MCP tools for task management,
4;;; project tracking, and knowledge accumulation. All state stored as
5;;; human-readable, git-committable markdown files.
6
7(package
8 name: "folio"
9 version: "0.3.4"
10 sigil: "0.22.15"
11 description: "Markdown-native knowledge and project management via MCP"
12 url: "https://codeberg.org/sigil/folio"
13 license: "BSD-3-Clause"
14 authors: (list "David Wilson <david@daviwil.com>")
16 ;; `(folio entry)`, NOT `(folio main)`.
17 ;;
18 ;; The entry library's `main` dispatches on the FOLIO_DOC_WORKER environment
19 ;; marker: set, this binary runs the bounded parse worker; unset, it runs the
20 ;; MCP server. `src/folio/main.sgl` is untouched and still refuses subcommands
21 ;; -- mode selection happens before any argument is looked at, so no argument
22 ;; can become a mode. See `src/folio/entry.sgl`.
23 ;;
24 ;; Note `entry:` takes a FLAT library name and the runtime calls a procedure
25 ;; literally named `main` (hardcoded in both `sigil-run/src/main.c` and
26 ;; `cps-emit-native.c`). The `'((lib) proc)` form in the manifest docstring is
27 ;; stale -- it belongs to the inert `executables:` record, and passing it here
28 ;; raises, because the consumer does `(map symbol->string entry)`.
29 entry: '(folio entry)
30 bundle-name: "folio"
32 configs: (list
33 (config
34 name: 'dev
35 output-dir: "build/dev"
36 static?: #f
37 debug?: #t
38 optimize: 0
39 bundle?: #t)
40 (config
41 name: 'release
42 output-dir: "build/release"
43 backend: 'native
44 static?: #f
45 debug?: #f
46 optimize: 2
47 bundle?: #t))
49 dependencies: (list
50 ;; Pin the runtime family used by the installed runner toolchain. This
51 ;; version includes nanosecond file fingerprints for external edits.
52 (from-git url: "codeberg:sigil/sigil"
53 package: "sigil-stdlib" version: "0.22.15")
54 ;; Explicit sigil-lib pin. Two independent reasons, both measured:
55 ;; 1. Without it, sigil-lib is derived transitively and does not track
56 ;; the `sigil:` field, so a relock can silently leave the C runtime
57 ;; behind while `sigil deps install` exits 0.
58 ;; 2. sigil-lib's resolution does NOT respect its declared range: with
59 ;; no explicit pin, a fresh resolve records `ref: "^0.17"` alongside
60 ;; `version: "0.18.2"` in the same lock entry, on any toolchain,
61 ;; while sigil-stdlib in that same resolve correctly stays at
62 ;; 0.17.20. Pinning explicitly is what makes the resolved runtime
63 ;; match what this manifest actually asks for.
64 ;; Verify in sigil.lock (the `version:`/`sha:` fields, not `ref:`).
65 (from-git url: "codeberg:sigil/sigil"
66 package: "sigil-lib" version: "0.22.15")
67 (from-git url: "codeberg:sigil/sigil" package: "sigil-run" version: "0.22.15")
68 (from-git url: "codeberg:sigil/sigil" package: "sigil-repl" version: "0.22.15")
69 (from-git url: "codeberg:sigil/sigil-json" version: "^0.16.2")
70 (from-git url: "codeberg:sigil/sigil-log" version: "^0.16.0")
71 ;; Deferred HTTP tool dispatch requires the opt-in 0.18.4 API.
72 (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.18.4")
73 (from-git url: "codeberg:sigil/sigil-http" version: "^0.18.8")
74 (from-git url: "codeberg:sigil/sigil-crypto" version: "^0.16.0")
75 (from-git url: "codeberg:sigil/sigil-sqlite" version: "^0.16.0")
76 (from-git url: "codeberg:sigil/sigil-yaml" version: "^0.9")
77 (from-git url: "codeberg:sigil/sigil-sxml" version: "^0.15.0")
78 (from-git url: "codeberg:sigil/sigil-markdown" version: "^0.9")
79 (from-git url: "codeberg:sigil/sigil-web-styles" version: "^0.2.0")
80 ;; `folio/doc` is a profile over `sigil/doc` (D1), so the folio semantic
81 ;; containers hold ordinary Sigil Doc block nodes and reuse its inline
82 ;; nodes -- including `url-link`, which is the node F1a waited for SD-P2
83 ;; to land.
84 ;;
85 ;; RESOLVED 2026-08-12 BY sigil-doc v0.1.3 (f83d8d8), recorded rather than
86 ;; deleted so a reader can tell a fixed caveat from a forgotten one. The
87 ;; caveat used to say that no RELEASED sigil-doc contained `url-link`, that
88 ;; v0.1.1 (42a0686) predated SD-P2, and that a green build here was
89 ;; therefore not evidence about any tag. All three have expired: v0.1.3 is
90 ;; the first release carrying BOTH `url-link` and SD-P7's section-child
91 ;; content profile, which is what `(folio doc reader)` delegates to.
92 ;;
93 ;; The public lock pins sigil-doc 0.1.4, including that released API.
94 ;; Development redirects are optional and explicitly selected; release
95 ;; builds and qualification use the public lock without overrides.
96 (from-git url: "codeberg:sigil/sigil-doc" version: "^0.1"))
98 dev-dependencies: (list
99 (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "0.22.15")
100 (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "0.22.15"))
102 tasks: (list
103 (task
104 name: 'build
105 description: "Compile folio modules"
106 steps: (list
107 (compile-sigil-modules sources: "src/**/*.sgl"
108 output-dir: (config-output-subdir "lib"))))))