@diffohq/diffo 0.0.1 → 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.
Files changed (100) hide show
  1. package/README.md +20 -26
  2. package/dist/cli.mjs +333 -66
  3. package/dist/client/assets/{abnfDiagram-VCTEODGH--nG4YFZf.js → abnfDiagram-VCTEODGH-DNZRM2Rn.js} +1 -1
  4. package/dist/client/assets/{arc-DUDGa5yC.js → arc-s7daVIwl.js} +1 -1
  5. package/dist/client/assets/architecture-7GRP2DOG-DzM3CzOq.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-5GKGNRK7-DvSKG4lO.js → architectureDiagram-5GKGNRK7-DsxTOcye.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-NRAW4CY4-t9YA0Zds.js → blockDiagram-NRAW4CY4-DqGD_dcu.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-UCG6FXSJ-D0NJEiQf.js → c4Diagram-UCG6FXSJ-CMuJod-h.js} +1 -1
  9. package/dist/client/assets/channel-Cftoq4wT.js +1 -0
  10. package/dist/client/assets/{chunk-75Z2AOVW-Bai5ank7.js → chunk-75Z2AOVW-HRLiZN7c.js} +1 -1
  11. package/dist/client/assets/{chunk-DU6HZSFF-D2kJr6Sd.js → chunk-DU6HZSFF-D6gjp2l1.js} +1 -1
  12. package/dist/client/assets/{chunk-F27PBJKO-Bfqt90G-.js → chunk-F27PBJKO-DRqkoKNg.js} +1 -1
  13. package/dist/client/assets/{chunk-G27WJ6UU-BaH77Llj.js → chunk-G27WJ6UU-QUFgr4za.js} +1 -1
  14. package/dist/client/assets/{chunk-GMAD6QVW-DEk8GHWm.js → chunk-GMAD6QVW-DG-OmEbV.js} +1 -1
  15. package/dist/client/assets/{chunk-JQ64N6SF-DSC3eBmu.js → chunk-JQ64N6SF-CPdpoyCu.js} +1 -1
  16. package/dist/client/assets/{chunk-LCL6LL3I-CbXTQnS7.js → chunk-LCL6LL3I-DoHJ4n3V.js} +1 -1
  17. package/dist/client/assets/{chunk-OBVCFTLP-DTR5L5DZ.js → chunk-OBVCFTLP-DOl2OrIN.js} +1 -1
  18. package/dist/client/assets/{chunk-P2QGCYS3-B4CbyKz8.js → chunk-P2QGCYS3-CBWu7ViW.js} +1 -1
  19. package/dist/client/assets/{chunk-POPQ4Y6H-bUwnKEA6.js → chunk-POPQ4Y6H-Dw_D6UWF.js} +1 -1
  20. package/dist/client/assets/{chunk-PWAF6VOD-zdMmz14g.js → chunk-PWAF6VOD-BHpo38Be.js} +1 -1
  21. package/dist/client/assets/{chunk-R7TYR2AO-Bij6COIm.js → chunk-R7TYR2AO-DgC6z76h.js} +1 -1
  22. package/dist/client/assets/{chunk-RHFEMEQ7-B2_qXJHf.js → chunk-RHFEMEQ7-BabrfzF-.js} +1 -1
  23. package/dist/client/assets/{chunk-SVP7TREG-2A6DuC2c.js → chunk-SVP7TREG-CSTzyRmo.js} +1 -1
  24. package/dist/client/assets/{chunk-TEH6E4GO-ByR-u0fj.js → chunk-TEH6E4GO-M22Cr-Sd.js} +1 -1
  25. package/dist/client/assets/{chunk-XXDRQBXY-D_O-C3As.js → chunk-XXDRQBXY-BHwLEQfa.js} +1 -1
  26. package/dist/client/assets/classDiagram-DTDB5LWJ-uMtyQjAg.js +1 -0
  27. package/dist/client/assets/classDiagram-v2-JRS7N3AN-uMtyQjAg.js +1 -0
  28. package/dist/client/assets/{core-Bnn4HFdG.js → core-B9wYK4yO.js} +1 -1
  29. package/dist/client/assets/{cose-bilkent-JH36ORCC-Z148C14w.js → cose-bilkent-JH36ORCC-BL0lTP0k.js} +1 -1
  30. package/dist/client/assets/{cynefin-OW5HDTMX-_nvdHJ_6.js → cynefin-OW5HDTMX-1zOzoEu-.js} +1 -1
  31. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DgjK3dBx.js → cynefinDiagram-5FMLGOSQ-DST_IHb1.js} +1 -1
  32. package/dist/client/assets/{dagre-3AP2YEHR-ZpUDL3As.js → dagre-3AP2YEHR-CoEaLaFu.js} +1 -1
  33. package/dist/client/assets/{diagram-S7CK7UJ4-CkZIS9iX.js → diagram-S7CK7UJ4-BwGXFSb-.js} +1 -1
  34. package/dist/client/assets/{diagram-UQ7AKVKN-CQ18pzfD.js → diagram-UQ7AKVKN-wJMwiRQW.js} +1 -1
  35. package/dist/client/assets/{diagram-VSXAHHWV-BHksZhNT.js → diagram-VSXAHHWV-DRQH2hZ-.js} +1 -1
  36. package/dist/client/assets/{diagram-VX7I27RA-JaMo95UB.js → diagram-VX7I27RA-BWGYUOwn.js} +1 -1
  37. package/dist/client/assets/{diagram-Z3DM3KII-BtbUi7Zp.js → diagram-Z3DM3KII-C2ETOHnp.js} +1 -1
  38. package/dist/client/assets/{dist-frF0Fo17.js → dist-C42IZvNn.js} +1 -1
  39. package/dist/client/assets/{ebnfDiagram-PWID7BFC-CrkTnETC.js → ebnfDiagram-PWID7BFC-CkcgAzr3.js} +1 -1
  40. package/dist/client/assets/{engine-oniguruma-BDMkTjCm.js → engine-oniguruma-D9HVl69n.js} +1 -1
  41. package/dist/client/assets/{erDiagram-SSCWMZ5O-BU_DeMcX.js → erDiagram-SSCWMZ5O-Do6h2U1E.js} +1 -1
  42. package/dist/client/assets/eventmodeling-NTZA5JFV-LK0PWCmm.js +1 -0
  43. package/dist/client/assets/flowDiagram-A5DVABFB-W_CNjdk0.js +1 -0
  44. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DCoVu2Ob.js → ganttDiagram-EL5Y4UJY-cC8gUuqf.js} +1 -1
  45. package/dist/client/assets/{gitGraph-4MIJSDKK-D_vOLjJd.js → gitGraph-4MIJSDKK-Con-0IRc.js} +1 -1
  46. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-CbJeUVdZ.js → gitGraphDiagram-WWUBYQGX-Oj6POMRs.js} +1 -1
  47. package/dist/client/assets/index-BPuQYkRJ.js +90 -0
  48. package/dist/client/assets/index-BpeDzG-X.css +1 -0
  49. package/dist/client/assets/{info-A6RAGUB7-CRcr_2Kl.js → info-A6RAGUB7-Cl45HDP4.js} +1 -1
  50. package/dist/client/assets/{infoDiagram-RXCK75RN-B4UffpYj.js → infoDiagram-RXCK75RN-DIVe-qvk.js} +1 -1
  51. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DO6STczE.js → ishikawaDiagram-5VMMS53U-BB3HsPau.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-EYS64GPL-CJqu4rjo.js → journeyDiagram-EYS64GPL-Cj8ezyBN.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3QL26DDD-ugjVwpzB.js → kanban-definition-3QL26DDD-D3dbth5Z.js} +1 -1
  54. package/dist/client/assets/{line-C42aEa5T.js → line-tg3RVOrp.js} +1 -1
  55. package/dist/client/assets/{linear-CAfNWogY.js → linear-CzAWMsuG.js} +1 -1
  56. package/dist/client/assets/{mermaid-parser.core-DIpynd7a.js → mermaid-parser.core-DKC3l_TU.js} +3 -3
  57. package/dist/client/assets/{mermaid.core-b7ipG6MC.js → mermaid.core-B0ktnMCY.js} +4 -4
  58. package/dist/client/assets/{mindmap-definition-FBJOCRG2-Btow11vP.js → mindmap-definition-FBJOCRG2-CSUjR6w9.js} +1 -1
  59. package/dist/client/assets/{packet-AYTQ26CC-DmMiSJ_n.js → packet-AYTQ26CC-NTsh29Fp.js} +1 -1
  60. package/dist/client/assets/{pegDiagram-XKGWAZYB-ZE6QXs-N.js → pegDiagram-XKGWAZYB-BhLsv72R.js} +1 -1
  61. package/dist/client/assets/{pie-WAS4IAKB-CWO1GXQk.js → pie-WAS4IAKB-DENes_Cx.js} +1 -1
  62. package/dist/client/assets/{pieDiagram-E7YTZNPT-CkYClGbv.js → pieDiagram-E7YTZNPT-Ci9YzLDy.js} +1 -1
  63. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-CLah-4Vu.js → quadrantDiagram-AXDQQJYC-D7D5FwMe.js} +1 -1
  64. package/dist/client/assets/{radar-RG4KPBEZ-VI14cwZd.js → radar-RG4KPBEZ-C3OVgpW0.js} +1 -1
  65. package/dist/client/assets/{railroad-74A4TZTK-s1iFKSLC.js → railroad-74A4TZTK-DHWDkPlt.js} +1 -1
  66. package/dist/client/assets/railroad-abnf-HS5TGJTU-XG9NyE2s.js +1 -0
  67. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BePIURFQ.js +1 -0
  68. package/dist/client/assets/railroad-peg-WCYAUIDC-THfR3kY_.js +1 -0
  69. package/dist/client/assets/{railroadDiagram-O6MQD6OU-DSEEuZLE.js → railroadDiagram-O6MQD6OU-ByO5lwcN.js} +1 -1
  70. package/dist/client/assets/{requirementDiagram-EFPCY7ZU-DKPeLCXy.js → requirementDiagram-EFPCY7ZU-UAUf-JbW.js} +1 -1
  71. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-CoRGTY0Z.js → sankeyDiagram-P5KCCOFB-D3dgv1AD.js} +1 -1
  72. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-vOT2DQAD.js → sequenceDiagram-WJ2MYXX4-DbGvVPa7.js} +1 -1
  73. package/dist/client/assets/{src-COpTHlse.js → src-DQRzrNpT.js} +1 -1
  74. package/dist/client/assets/{stateDiagram-HBIQ2CUA-B1Q5gx1k.js → stateDiagram-HBIQ2CUA-CJznFEjd.js} +1 -1
  75. package/dist/client/assets/stateDiagram-v2-4QOOHH4V-o6PmCsJ0.js +1 -0
  76. package/dist/client/assets/{swimlanes-XN3QIQJK-BHsSTPP_.js → swimlanes-XN3QIQJK-Bp4PtrPm.js} +1 -1
  77. package/dist/client/assets/swimlanesDiagram-VK2B7HYN-W1d9PL3X.js +8 -0
  78. package/dist/client/assets/{timeline-definition-24CTP7MA-gMAK8Huz.js → timeline-definition-24CTP7MA-jqaUS70q.js} +1 -1
  79. package/dist/client/assets/{treeView-Q6P3EWNA-D_ac7x_f.js → treeView-Q6P3EWNA-4uMQTFyy.js} +1 -1
  80. package/dist/client/assets/{treemap-WGGIJYW6-CmKDF5Bk.js → treemap-WGGIJYW6-BEvgQaxX.js} +1 -1
  81. package/dist/client/assets/{vennDiagram-4TSXK5OY-BwoJOmDU.js → vennDiagram-4TSXK5OY-BzSNLT-7.js} +1 -1
  82. package/dist/client/assets/{wardley-WFR3VGLG-DBwnOUBJ.js → wardley-WFR3VGLG-0Vpm3lxj.js} +1 -1
  83. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-DSpTGNPm.js → wardleyDiagram-VM6X3IG4-D9KaADBZ.js} +1 -1
  84. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-I-7pacDu.js → xychartDiagram-S5SC5T6Z-CnrJ3a0c.js} +1 -1
  85. package/dist/client/index.html +2 -2
  86. package/package.json +21 -19
  87. package/plugin.json +1 -1
  88. package/dist/client/assets/architecture-7GRP2DOG-BS3omA-i.js +0 -1
  89. package/dist/client/assets/channel-C2N97jf-.js +0 -1
  90. package/dist/client/assets/classDiagram-DTDB5LWJ-DkiwiYZN.js +0 -1
  91. package/dist/client/assets/classDiagram-v2-JRS7N3AN-DkiwiYZN.js +0 -1
  92. package/dist/client/assets/eventmodeling-NTZA5JFV-C6iBQfJc.js +0 -1
  93. package/dist/client/assets/flowDiagram-A5DVABFB-Dq3MklmQ.js +0 -1
  94. package/dist/client/assets/index-DUY5AD4r.js +0 -90
  95. package/dist/client/assets/index-pWZ6lr0e.css +0 -1
  96. package/dist/client/assets/railroad-abnf-HS5TGJTU-DCYBjW-8.js +0 -1
  97. package/dist/client/assets/railroad-ebnf-LZEXJU2U-Cpg28CUR.js +0 -1
  98. package/dist/client/assets/railroad-peg-WCYAUIDC-D3OHUWgZ.js +0 -1
  99. package/dist/client/assets/stateDiagram-v2-4QOOHH4V-Bq1OmWqW.js +0 -1
  100. package/dist/client/assets/swimlanesDiagram-VK2B7HYN-DACxnx54.js +0 -8
package/README.md CHANGED
@@ -1,9 +1,3 @@
1
- > [!IMPORTANT]
2
- > **Diffo is pre-release.** The loop works end to end and this repo is reviewed with it
3
- > daily. The skill installs from this repository; the CLI it runs comes from npm as
4
- > **`@diffohq/diffo`** — scoped because the bare `diffo` name belongs to an unrelated
5
- > package. See [Status](#status) for what works today.
6
-
7
1
  <div align="center">
8
2
 
9
3
  <a href="https://diffohq.github.io/diffo/">
@@ -23,6 +17,7 @@ come back as fixes.
23
17
  [Quick start](#quick-start) · [Why Diffo](#why-diffo) · [Docs](#docs) · [Status](#status) · [Contributing](#contributing)
24
18
 
25
19
  [![CI](https://img.shields.io/github/actions/workflow/status/DiffoHQ/diffo/ci.yml?branch=main&label=CI)](https://github.com/DiffoHQ/diffo/actions/workflows/ci.yml)
20
+ [![npm](https://img.shields.io/npm/v/%40diffohq%2Fdiffo?label=npm&color=cb3837)](https://www.npmjs.com/package/@diffohq/diffo)
26
21
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
27
22
  [![Node](https://img.shields.io/badge/node-%E2%89%A5%2024-brightgreen)](#quick-start)
28
23
  [![Docs](https://img.shields.io/badge/docs-diffo-8b5cf6)](https://diffohq.github.io/diffo/)
@@ -83,7 +78,7 @@ node dist/cli.mjs setup # or `node dist/cli.mjs` from any repo to review it
83
78
 
84
79
  </details>
85
80
 
86
- New here? [**Your first review, end to end**](docs/tutorial.md) takes about five minutes.
81
+ New here? [**Your first review, end to end**](https://diffohq.github.io/diffo/tutorial) takes about five minutes.
87
82
 
88
83
  ## Why Diffo
89
84
 
@@ -114,9 +109,9 @@ The judgement stays yours. You just stop reading alone.
114
109
 
115
110
  **A thread is a decision**
116
111
 
117
- Each comment is one small call: change this, explain that, leave it alone. Mark it a Change
118
- or a Question and the agent is told which. The review is the sum of those decisions, not a
119
- verdict at the end.
112
+ Each comment is one small call: change this, explain that, leave it alone. Drop it on a
113
+ line or drag down the gutter for a range of them. Mark it a Change or a Question and the
114
+ agent is told which. The review is the sum of those decisions, not a verdict at the end.
120
115
 
121
116
  </td>
122
117
  <td width="50%">
@@ -205,14 +200,14 @@ cheapest to change.
205
200
 
206
201
  | | |
207
202
  | --- | --- |
208
- | [**Your first review**](docs/tutorial.md) | The whole loop end to end, about five minutes |
209
- | [**Getting started**](docs/guide/getting-started.md) | Install, and where each agent gets wired |
210
- | [**The review loop**](docs/guide/the-loop.md) | Reading, commenting, and what the agent receives |
211
- | [**How it works**](docs/guide/how-it-works.md) | The components and the server lifecycle |
212
- | [**The agent side**](docs/agents.md) | The agent protocol: every command, every payload |
213
- | [**Architecture**](docs/architecture.md) | Diff pipeline, delivery queue, SQLite state |
214
- | [**CLI**](docs/reference/cli.md) and [**Keyboard shortcuts**](docs/reference/keyboard-shortcuts.md) | Reference |
215
- | [**FAQ**](docs/faq.md) | The short answers |
203
+ | [**Your first review**](https://diffohq.github.io/diffo/tutorial) | The whole loop end to end, about five minutes |
204
+ | [**Getting started**](https://diffohq.github.io/diffo/guide/getting-started) | Install, and where each agent gets wired |
205
+ | [**The review loop**](https://diffohq.github.io/diffo/guide/the-loop) | Reading, commenting, and what the agent receives |
206
+ | [**How it works**](https://diffohq.github.io/diffo/guide/how-it-works) | The components and the server lifecycle |
207
+ | [**The agent side**](https://diffohq.github.io/diffo/agents) | The agent protocol: every command, every payload |
208
+ | [**Architecture**](https://diffohq.github.io/diffo/architecture) | Diff pipeline, delivery queue, SQLite state |
209
+ | [**CLI**](https://diffohq.github.io/diffo/reference/cli) and [**Keyboard shortcuts**](https://diffohq.github.io/diffo/reference/keyboard-shortcuts) | Reference |
210
+ | [**FAQ**](https://diffohq.github.io/diffo/faq) | The short answers |
216
211
 
217
212
  ## Under the hood
218
213
 
@@ -223,7 +218,7 @@ there is no database to install. **Zero network calls.** 859 tests across 54 fil
223
218
 
224
219
  Reviews are scoped per repo **and branch**, and the server is loopback-only, rejecting
225
220
  non-loopback `Host` and `Origin` headers so a web page can't reach into your repo through
226
- it. The full walkthrough is in [**Architecture**](docs/architecture.md).
221
+ it. The full walkthrough is in [**Architecture**](https://diffohq.github.io/diffo/architecture).
227
222
 
228
223
  <details>
229
224
  <summary><b>Why read marks survive a live diff</b></summary>
@@ -254,12 +249,13 @@ we commit to: **anything that runs on your machine for one reviewer is core.**
254
249
 
255
250
  ## Status
256
251
 
257
- What works today:
252
+ Diffo is pre-1.0: the loop below works end to end — this repo is reviewed with it
253
+ daily — and the edges are still moving. What works today:
258
254
 
259
- - [x] [Live review of any changeset](docs/guide/how-it-works.md): the working tree, or anything since `--base`.
260
- - [x] [The comment loop](docs/guide/the-loop.md): threads that reach the session that wrote the code.
261
- - [x] [One setup, every agent](docs/guide/getting-started.md): Claude Code, Codex, Cursor, VS Code, Copilot CLI, Gemini CLI, Amp, Goose, OpenCode.
262
- - [x] [Reading tools](docs/reference/keyboard-shortcuts.md): unified and split diffs, word-level marks, coverage tracking.
255
+ - [x] [Live review of any changeset](https://diffohq.github.io/diffo/guide/how-it-works): the working tree, or anything since `--base`.
256
+ - [x] [The comment loop](https://diffohq.github.io/diffo/guide/the-loop): threads that reach the session that wrote the code.
257
+ - [x] [One setup, every agent](https://diffohq.github.io/diffo/guide/getting-started): Claude Code, Codex, Cursor, VS Code, Copilot CLI, Gemini CLI, Amp, Goose, OpenCode.
258
+ - [x] [Reading tools](https://diffohq.github.io/diffo/reference/keyboard-shortcuts): unified and split diffs, word-level marks, coverage tracking.
263
259
 
264
260
  ## Contributing
265
261
 
@@ -282,11 +278,9 @@ on your first pull request, and signing is one reply.
282
278
  Found a security problem? Please don't open a public issue. The
283
279
  [Security Policy](SECURITY.md) says where to send it and what's in scope.
284
280
 
285
- <!-- Contributors grid: contrib.rocks 404s until DiffoHQ/diffo is public. Uncomment at launch.
286
281
  <a href="https://github.com/DiffoHQ/diffo/graphs/contributors">
287
282
  <img src="https://contrib.rocks/image?repo=DiffoHQ/diffo" alt="Contributors">
288
283
  </a>
289
- -->
290
284
 
291
285
  ## License & trademark
292
286