redraft-local 0.1.0
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 +143 -0
- package/bin/redraft.js +5 -0
- package/bin/redraft.mjs +5 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/apl-B4CMkyY2.js +1 -0
- package/dist/assets/arc-BgLKgAzo.js +1 -0
- package/dist/assets/architectureDiagram-3BPJPVTR-DUjZFSch.js +36 -0
- package/dist/assets/asciiarmor-Df11BRmG.js +1 -0
- package/dist/assets/asn1-EdZsLKOL.js +1 -0
- package/dist/assets/asterisk-B-8jnY81.js +1 -0
- package/dist/assets/blockDiagram-GPEHLZMM-B5lXfnYt.js +132 -0
- package/dist/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/assets/c4Diagram-AAUBKEIU-BvClm0qm.js +10 -0
- package/dist/assets/channel-7EQqZR3B.js +1 -0
- package/dist/assets/chunk-2J33WTMH-CEHXzvmq.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-DSC0P7-r.js +1 -0
- package/dist/assets/chunk-55IACEB6--6omHD3y.js +1 -0
- package/dist/assets/chunk-727SXJPM-_oYajenN.js +206 -0
- package/dist/assets/chunk-AQP2D5EJ-CtBEk7Wt.js +231 -0
- package/dist/assets/chunk-FMBD7UC4-CUG06_Py.js +15 -0
- package/dist/assets/chunk-ND2GUHAM-ByZ-QCVp.js +1 -0
- package/dist/assets/chunk-QZHKN3VN-DyKKbGn5.js +1 -0
- package/dist/assets/classDiagram-4FO5ZUOK-E-KsPQ0n.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-E-KsPQ0n.js +1 -0
- package/dist/assets/clike-B9uivgTg.js +1 -0
- package/dist/assets/clojure-BMjYHr_A.js +1 -0
- package/dist/assets/cmake-BQqOBYOt.js +1 -0
- package/dist/assets/cobol-CWcv1MsR.js +1 -0
- package/dist/assets/coffeescript-S37ZYGWr.js +1 -0
- package/dist/assets/commonlisp-DBKNyK5s.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DO1d36Xa.js +1 -0
- package/dist/assets/crystal-SjHAIU92.js +1 -0
- package/dist/assets/css-BnMrqG3P.js +1 -0
- package/dist/assets/cypher-C_CwsFkJ.js +1 -0
- package/dist/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
- package/dist/assets/d-pRatUO7H.js +1 -0
- package/dist/assets/dagre-BM42HDAG-CtijaGW4.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-2AECGRRQ-CLuIxwuH.js +43 -0
- package/dist/assets/diagram-5GNKFQAL-C1SsZ_SX.js +10 -0
- package/dist/assets/diagram-KO2AKTUF-0Q55p83r.js +3 -0
- package/dist/assets/diagram-LMA3HP47-Cxe6Lxmi.js +24 -0
- package/dist/assets/diagram-OG6HWLK6-DdRxQD4N.js +24 -0
- package/dist/assets/diff-DbItnlRl.js +1 -0
- package/dist/assets/dockerfile-BKs6k2Af.js +1 -0
- package/dist/assets/dtd-DF_7sFjM.js +1 -0
- package/dist/assets/dylan-DwRh75JA.js +1 -0
- package/dist/assets/ebnf-CDyGwa7X.js +1 -0
- package/dist/assets/ecl-Cabwm37j.js +1 -0
- package/dist/assets/eiffel-CnydiIhH.js +1 -0
- package/dist/assets/elm-vLlmbW-K.js +1 -0
- package/dist/assets/erDiagram-TEJ5UH35-Br4OpnN3.js +85 -0
- package/dist/assets/erlang-BNw1qcRV.js +1 -0
- package/dist/assets/factor-kuTfRLto.js +1 -0
- package/dist/assets/fcl-Kvtd6kyn.js +1 -0
- package/dist/assets/flowDiagram-I6XJVG4X-BiWm4cMT.js +162 -0
- package/dist/assets/forth-Ffai-XNe.js +1 -0
- package/dist/assets/fortran-DYz_wnZ1.js +1 -0
- package/dist/assets/ganttDiagram-6RSMTGT7-Brtf61gk.js +292 -0
- package/dist/assets/gas-Bneqetm1.js +1 -0
- package/dist/assets/gherkin-heZmZLOM.js +1 -0
- package/dist/assets/gitGraphDiagram-PVQCEYII-B_3TyVGw.js +106 -0
- package/dist/assets/graph-DtBDQa9e.js +1 -0
- package/dist/assets/groovy-D9Dt4D0W.js +1 -0
- package/dist/assets/haskell-Cw1EW3IL.js +1 -0
- package/dist/assets/haxe-H-WmDvRZ.js +1 -0
- package/dist/assets/http-DBlCnlav.js +1 -0
- package/dist/assets/idl-BEugSyMb.js +1 -0
- package/dist/assets/index-2ky3dpil.js +1 -0
- package/dist/assets/index-4KK6bEqw.js +1 -0
- package/dist/assets/index-5ZUGo5ij.js +1 -0
- package/dist/assets/index-7FKqtxp0.js +13 -0
- package/dist/assets/index-B-96Htfw.js +6 -0
- package/dist/assets/index-BADfuR--.js +1 -0
- package/dist/assets/index-BD8MFdSo.js +1 -0
- package/dist/assets/index-BR9BrISk.js +1 -0
- package/dist/assets/index-BfnTu5JW.js +1 -0
- package/dist/assets/index-BgooUBR3.js +1 -0
- package/dist/assets/index-BkakCAI-.js +1 -0
- package/dist/assets/index-CBjB7xM7.js +1 -0
- package/dist/assets/index-CZY06TRX.js +1381 -0
- package/dist/assets/index-CiPTn2KW.js +2 -0
- package/dist/assets/index-CymWWySw.js +1 -0
- package/dist/assets/index-DKi-lLAL.js +1 -0
- package/dist/assets/index-Da6DydBE.js +1 -0
- package/dist/assets/index-Df2jy_bv.js +7 -0
- package/dist/assets/index-Ds7udwcB.js +3 -0
- package/dist/assets/index-MfTARqwV.css +1 -0
- package/dist/assets/index-OT6ZQvoz.js +1 -0
- package/dist/assets/index-Ot1nLBuC.js +1 -0
- package/dist/assets/index-PN8t7sGq.js +1 -0
- package/dist/assets/index-qn0Rsj7y.js +1 -0
- package/dist/assets/infoDiagram-5YYISTIA-DXpolhhW.js +2 -0
- package/dist/assets/init-Gi6I4Gst.js +1 -0
- package/dist/assets/ishikawaDiagram-YF4QCWOH-CaMQv6HD.js +70 -0
- package/dist/assets/javascript-iXu5QeM3.js +1 -0
- package/dist/assets/journeyDiagram-JHISSGLW-grFPpRCE.js +139 -0
- package/dist/assets/julia-DuME0IfC.js +1 -0
- package/dist/assets/kanban-definition-UN3LZRKU-BXTf-nUc.js +89 -0
- package/dist/assets/katex-HP8lGamR.js +257 -0
- package/dist/assets/layout-BfOOH1Wh.js +1 -0
- package/dist/assets/linear-DzLvWW3N.js +1 -0
- package/dist/assets/livescript-BwQOo05w.js +1 -0
- package/dist/assets/lua-VAEuO923.js +1 -0
- package/dist/assets/mathematica-DTrFuWx2.js +1 -0
- package/dist/assets/mbox-CNhZ1qSd.js +1 -0
- package/dist/assets/mindmap-definition-RKZ34NQL-DnhBS8H1.js +96 -0
- package/dist/assets/mirc-CjQqDB4T.js +1 -0
- package/dist/assets/mllike-CXdrOF99.js +1 -0
- package/dist/assets/modelica-Dc1JOy9r.js +1 -0
- package/dist/assets/mscgen-BA5vi2Kp.js +1 -0
- package/dist/assets/mumps-BT43cFF4.js +1 -0
- package/dist/assets/nginx-DdIZxoE0.js +1 -0
- package/dist/assets/nsis-LdVXkNf5.js +1 -0
- package/dist/assets/ntriples-BfvgReVJ.js +1 -0
- package/dist/assets/octave-Ck1zUtKM.js +1 -0
- package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/assets/oz-BzwKVEFT.js +1 -0
- package/dist/assets/pascal--L3eBynH.js +1 -0
- package/dist/assets/perl-CdXCOZ3F.js +1 -0
- package/dist/assets/pieDiagram-4H26LBE5-DjWB8MBQ.js +30 -0
- package/dist/assets/pig-CevX1Tat.js +1 -0
- package/dist/assets/powershell-CFHJl5sT.js +1 -0
- package/dist/assets/properties-C78fOPTZ.js +1 -0
- package/dist/assets/protobuf-ChK-085T.js +1 -0
- package/dist/assets/pug-DeIclll2.js +1 -0
- package/dist/assets/puppet-DMA9R1ak.js +1 -0
- package/dist/assets/python-BuPzkPfP.js +1 -0
- package/dist/assets/q-pXgVlZs6.js +1 -0
- package/dist/assets/quadrantDiagram-W4KKPZXB-AbXkFaom.js +7 -0
- package/dist/assets/r-B6wPVr8A.js +1 -0
- package/dist/assets/requirementDiagram-4Y6WPE33-Dmvesc_X.js +84 -0
- package/dist/assets/rpm-CTu-6PCP.js +1 -0
- package/dist/assets/ruby-B2Rjki9n.js +1 -0
- package/dist/assets/sankeyDiagram-5OEKKPKP-CTvY1DJo.js +40 -0
- package/dist/assets/sas-B4kiWyti.js +1 -0
- package/dist/assets/scheme-C41bIUwD.js +1 -0
- package/dist/assets/sequenceDiagram-3UESZ5HK-ejgTSjfJ.js +162 -0
- package/dist/assets/shell-CjFT_Tl9.js +1 -0
- package/dist/assets/sieve-C3Gn_uJK.js +1 -0
- package/dist/assets/simple-mode-GW_nhZxv.js +1 -0
- package/dist/assets/smalltalk-CnHTOXQT.js +1 -0
- package/dist/assets/solr-DehyRSwq.js +1 -0
- package/dist/assets/sparql-DkYu6x3z.js +1 -0
- package/dist/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/dist/assets/sql-D0XecflT.js +1 -0
- package/dist/assets/stateDiagram-AJRCARHV-Drx8IQcv.js +1 -0
- package/dist/assets/stateDiagram-v2-BHNVJYJU-BWYCpSzu.js +1 -0
- package/dist/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/assets/stylus-B533Al4x.js +1 -0
- package/dist/assets/swift-BzpIVaGY.js +1 -0
- package/dist/assets/tcl-DVfN8rqt.js +1 -0
- package/dist/assets/textile-CnDTJFAw.js +1 -0
- package/dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/dist/assets/tiki-DGYXhP31.js +1 -0
- package/dist/assets/timeline-definition-PNZ67QCA-DXznZ8i_.js +120 -0
- package/dist/assets/toml-Bm5Em-hy.js +1 -0
- package/dist/assets/troff-wAsdV37c.js +1 -0
- package/dist/assets/ttcn-CfJYG6tj.js +1 -0
- package/dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/dist/assets/turtle-B1tBg_DP.js +1 -0
- package/dist/assets/vb-CmGdzxic.js +1 -0
- package/dist/assets/vbscript-BuJXcnF6.js +1 -0
- package/dist/assets/velocity-D8B20fx6.js +1 -0
- package/dist/assets/vennDiagram-CIIHVFJN-CLIExu7h.js +34 -0
- package/dist/assets/verilog-C6RDOZhf.js +1 -0
- package/dist/assets/vhdl-lSbBsy5d.js +1 -0
- package/dist/assets/wardley-L42UT6IY-CJGVDUi0.js +161 -0
- package/dist/assets/wardleyDiagram-YWT4CUSO-DB0Z_Z7a.js +78 -0
- package/dist/assets/webidl-ZXfAyPTL.js +1 -0
- package/dist/assets/xquery-DzFWVndE.js +1 -0
- package/dist/assets/xychartDiagram-2RQKCTM6-CLdNuotp.js +7 -0
- package/dist/assets/yacas-BJ4BC0dw.js +1 -0
- package/dist/assets/z80-Hz9HOZM7.js +1 -0
- package/dist/favicon.png +0 -0
- package/dist/index.html +14 -0
- package/dist/logo.png +0 -0
- package/dist-server/cli.mjs +725 -0
- package/package.json +79 -0
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<img src="public/logo.png" alt="ReDraft" height="48" />
|
|
2
|
+
|
|
3
|
+
# ReDraft
|
|
4
|
+
|
|
5
|
+
ReDraft is a proposal review workspace for markdown documents. It lets teams browse proposals, discuss them with inline comment threads, and edit them in either a rich-text editor or raw markdown — backed by GitHub in remote mode or the local filesystem in local mode.
|
|
6
|
+
|
|
7
|
+
## What it does
|
|
8
|
+
|
|
9
|
+
- Organizes proposals from a `proposals/` directory
|
|
10
|
+
- Renders markdown documents with comments, activity, and Mermaid diagrams
|
|
11
|
+
- Supports inline comment threads, replies, and resolution
|
|
12
|
+
- Lets different users work in the mode that fits them best
|
|
13
|
+
|
|
14
|
+
| Mode | Best for | Data source | Editing style |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| **Remote WYSIWYG** | Non-technical reviewers | GitHub repository | Rich-text editing in the browser |
|
|
17
|
+
| **Remote Markdown** | Technical contributors | GitHub repository | Raw markdown + preview |
|
|
18
|
+
| **Local + AI** | Power users and AI agents | Local files on disk | Browser UI + direct file edits |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Remote mode — for reviewers and contributors
|
|
23
|
+
|
|
24
|
+
Remote mode is the hosted GitHub-backed experience. You connect ReDraft to a repository that contains proposal files under `proposals/`.
|
|
25
|
+
|
|
26
|
+
### For non-technical reviewers
|
|
27
|
+
|
|
28
|
+
Use **View** and **WYSIWYG** modes when you want to read, comment, and make light edits without working directly in markdown syntax.
|
|
29
|
+
|
|
30
|
+
Typical workflow:
|
|
31
|
+
1. Open the hosted ReDraft site.
|
|
32
|
+
2. Enter a fine-grained GitHub PAT and `owner/repo`.
|
|
33
|
+
3. Choose a proposal from the tree.
|
|
34
|
+
4. Read in **View** mode or switch to **WYSIWYG**.
|
|
35
|
+
5. Select text, add comments, reply to threads, and resolve feedback.
|
|
36
|
+
|
|
37
|
+
### For technical contributors
|
|
38
|
+
|
|
39
|
+
Use **Raw** mode when you want direct markdown control while still keeping the browser review workflow.
|
|
40
|
+
|
|
41
|
+
Typical workflow:
|
|
42
|
+
1. Connect to the target repository.
|
|
43
|
+
2. Open a proposal from the tree.
|
|
44
|
+
3. Switch between **View**, **WYSIWYG**, and **Raw** as needed.
|
|
45
|
+
4. Edit markdown directly in **Raw** mode.
|
|
46
|
+
5. Save changes back to GitHub with SHA-based conflict protection.
|
|
47
|
+
|
|
48
|
+
### Remote mode requirements
|
|
49
|
+
|
|
50
|
+
ReDraft expects a fine-grained GitHub PAT with:
|
|
51
|
+
- **Contents: Read/Write**
|
|
52
|
+
- **Metadata: Read**
|
|
53
|
+
|
|
54
|
+
Repository conventions:
|
|
55
|
+
- Proposal documents live under `proposals/`
|
|
56
|
+
- Comment threads live in sidecar `*.comments.json` files
|
|
57
|
+
- Proposal content and comment files are written with SHA checks for conflict detection
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Local mode — for power users and AI agents
|
|
62
|
+
|
|
63
|
+
Local mode serves the same UI from your machine, but reads and writes local files instead of going through the GitHub API.
|
|
64
|
+
|
|
65
|
+
### Quick start
|
|
66
|
+
|
|
67
|
+
**Install once globally, or use directly via npx:**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx redraft-local ./proposals
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Or install globally and reuse:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm install -g redraft-local
|
|
77
|
+
redraft-local ./proposals
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This starts a local ReDraft server at `http://127.0.0.1:4200` by default. The frontend is bundled into the package — no separate build step required.
|
|
81
|
+
|
|
82
|
+
**Options:**
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
redraft [directory] [options]
|
|
86
|
+
redraft serve [directory] [options]
|
|
87
|
+
|
|
88
|
+
--port <number> Port to listen on (default: 4200)
|
|
89
|
+
--host <string> Bind address (default: 127.0.0.1)
|
|
90
|
+
--open Open the browser automatically
|
|
91
|
+
--no-ui API-only mode, skip serving the frontend
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Contributing / running from source:**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm install
|
|
98
|
+
npm run build
|
|
99
|
+
npm run serve -- ./proposals
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
What local mode gives you:
|
|
103
|
+
- No PAT prompt
|
|
104
|
+
- Direct read/write access to local `.md` and `.comments.json` files
|
|
105
|
+
- Live UI updates when files change on disk
|
|
106
|
+
- Optional git convenience endpoints for status and commits
|
|
107
|
+
|
|
108
|
+
### Working with AI agents
|
|
109
|
+
|
|
110
|
+
Local mode is the intended environment for AI-assisted proposal workflows.
|
|
111
|
+
|
|
112
|
+
The design target is:
|
|
113
|
+
- Agents edit proposal markdown directly on disk
|
|
114
|
+
- Agents use the local ReDraft API for structured comment operations
|
|
115
|
+
|
|
116
|
+
Planned/common AI workflows include:
|
|
117
|
+
- Review unresolved comment threads one by one
|
|
118
|
+
- Draft or post replies
|
|
119
|
+
- Resolve completed threads
|
|
120
|
+
- Revise a proposal based on accumulated feedback
|
|
121
|
+
- Summarize open discussions across proposals
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## How ReDraft works
|
|
126
|
+
|
|
127
|
+
ReDraft uses one React frontend across all modes.
|
|
128
|
+
|
|
129
|
+
- In **remote mode**, the browser talks to the GitHub REST API.
|
|
130
|
+
- In **local mode**, the browser talks to a local server that mimics the GitHub contents API while reading and writing the filesystem.
|
|
131
|
+
- Comment threads are stored separately from proposal markdown, so review discussion remains structured and portable.
|
|
132
|
+
|
|
133
|
+
For architecture details, see `docs/architecture.md`.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Related documentation
|
|
138
|
+
|
|
139
|
+
- `docs/architecture.md` — system architecture and data flow
|
|
140
|
+
- `docs/development.md` — development setup, build, test, and deployment details
|
|
141
|
+
- `docs/specs/` — design specs and approved technical decisions
|
|
142
|
+
- `docs/plans/` — implementation plans and execution notes
|
|
143
|
+
- `AGENTS.md` — repository guidance for coding agents
|
package/bin/redraft.js
ADDED
package/bin/redraft.mjs
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var l={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},t=/[\.\/⌿⍀¨⍣]/,a=/⍬/,i=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,u=/←/,o=/[⍝#].*$/,s=function(r){var n;return n=!1,function(e){return n=e,e===r?n==="\\":!0}};const f={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(r,n){var e;return r.eatSpace()?null:(e=r.next(),e==='"'||e==="'"?(r.eatWhile(s(e)),r.next(),n.prev=!0,"string"):/[\[{\(]/.test(e)?(n.prev=!1,null):/[\]}\)]/.test(e)?(n.prev=!0,null):a.test(e)?(n.prev=!1,"atom"):/[¯\d]/.test(e)?(n.func?(n.func=!1,n.prev=!1):n.prev=!0,r.eatWhile(/[\w\.]/),"number"):t.test(e)||u.test(e)?"operator":i.test(e)?(n.func=!0,n.prev=!1,l[e]?"variableName.function.standard":"variableName.function"):o.test(e)?(r.skipToEnd(),"comment"):e==="∘"&&r.peek()==="."?(r.next(),"variableName.function"):(r.eatWhile(/[\w\$_]/),n.prev=!0,"keyword"))}};export{f as apl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a8 as ln,a9 as an,aa as g,ab as tn,ac as G,ad as j,ae as _,af as un,ag as rn,ah as K,ai as o,aj as z,ak as sn,al as on,am as fn}from"./index-CZY06TRX.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,E,q,v,A,B,a){var I=E-l,i=q-h,n=B-v,d=a-A,u=d*I-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*I,h+u*i]}function V(l,h,E,q,v,A,B){var a=l-E,I=h-q,i=(B?A:-A)/K(a*a+I*I),n=i*I,d=-i*a,u=l+n,s=h+d,f=E+n,c=q+d,C=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,O=(y<0?-1:1)*K(fn(0,T*T*R-P*P)),S=(P*y-m*O)/R,k=(-P*m-y*O)/R,w=(P*y+m*O)/R,p=(-P*m+y*O)/R,x=S-C,e=k-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&(S=w,k=p),{cx:S,cy:k,x01:-n,y01:-d,x11:S*(v/T-1),y11:k*(v/T-1)}}function hn(){var l=cn,h=gn,E=z(0),q=null,v=yn,A=dn,B=mn,a=null,I=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,C=un(c-f),t=c>f;if(a||(a=n=I()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(C>tn-g)a.moveTo(s*G(f),s*j(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*G(c),u*j(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,k=S>g&&(q?+q.apply(this,arguments):K(u*u+s*s)),w=_(un(s-u)/2,+E.apply(this,arguments)),p=w,x=w,e,r;if(k>g){var F=sn(k/u*j(S)),L=sn(k/s*j(S));(P-=F*2)>g?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>g?(L*=t?1:-1,m+=L,y-=L):(O=0,m=y=(f+c)/2)}var H=s*G(m),J=s*j(m),M=u*G(T),N=u*j(T);if(w>g){var Q=s*G(y),U=s*j(y),W=u*G(R),X=u*j(R),D;if(C<rn)if(D=pn(H,J,W,X,Q,U,M,N)){var Y=H-D[0],Z=J-D[1],$=Q-D[0],b=U-D[1],nn=1/j(on((Y*$+Z*b)/(K(Y*Y+Z*Z)*K($*$+b*b)))/2),en=K(D[0]*D[0]+D[1]*D[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}O>g?x>g?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,y,!t)):a.moveTo(H,J),!(u>g)||!(P>g)?a.lineTo(M,N):p>g?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[G(d)*n,j(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:z(+n),i):E},i.padRadius=function(n){return arguments.length?(q=n==null?null:typeof n=="function"?n:z(+n),i):q},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|