wwxd 0.1.0__tar.gz

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 (289) hide show
  1. wwxd-0.1.0/.claude-plugin/marketplace.json +15 -0
  2. wwxd-0.1.0/.claude-plugin/plugin.json +12 -0
  3. wwxd-0.1.0/.github/ISSUE_TEMPLATE/bug.md +22 -0
  4. wwxd-0.1.0/.github/ISSUE_TEMPLATE/config.yml +1 -0
  5. wwxd-0.1.0/.github/ISSUE_TEMPLATE/opt-out.md +11 -0
  6. wwxd-0.1.0/.github/ISSUE_TEMPLATE/recipe.md +13 -0
  7. wwxd-0.1.0/.github/workflows/ci.yml +51 -0
  8. wwxd-0.1.0/.github/workflows/release.yml +43 -0
  9. wwxd-0.1.0/.gitignore +8 -0
  10. wwxd-0.1.0/.python-version +1 -0
  11. wwxd-0.1.0/CHANGELOG.md +21 -0
  12. wwxd-0.1.0/CONTRIBUTING.md +107 -0
  13. wwxd-0.1.0/ETHICS.md +36 -0
  14. wwxd-0.1.0/LICENSE +21 -0
  15. wwxd-0.1.0/PKG-INFO +469 -0
  16. wwxd-0.1.0/README.md +446 -0
  17. wwxd-0.1.0/bench/README.md +144 -0
  18. wwxd-0.1.0/bench/RESULTS.md +562 -0
  19. wwxd-0.1.0/bench/charts/make_charts.py +362 -0
  20. wwxd-0.1.0/bench/gold/hormozi-ask12.yaml +136 -0
  21. wwxd-0.1.0/bench/gold/hormozi-heldout.yaml +248 -0
  22. wwxd-0.1.0/bench/gold/hormozi-honesty.yaml +77 -0
  23. wwxd-0.1.0/bench/gold/hormozi-inference.yaml +9 -0
  24. wwxd-0.1.0/bench/gold/hormozi-opinion.yaml +13 -0
  25. wwxd-0.1.0/bench/gold/hormozi.yaml +446 -0
  26. wwxd-0.1.0/bench/gold/yc-ask12.yaml +144 -0
  27. wwxd-0.1.0/bench/gold/yc-heldout.yaml +254 -0
  28. wwxd-0.1.0/bench/gold/yc-honesty.yaml +86 -0
  29. wwxd-0.1.0/bench/gold/yc-inference.yaml +9 -0
  30. wwxd-0.1.0/bench/gold/yc-opinion.yaml +13 -0
  31. wwxd-0.1.0/bench/gold/yc.yaml +461 -0
  32. wwxd-0.1.0/bench/prompts/answer_persona.md +3 -0
  33. wwxd-0.1.0/bench/prompts/answer_raw.md +1 -0
  34. wwxd-0.1.0/bench/prompts/answer_wwxd.md +3 -0
  35. wwxd-0.1.0/bench/prompts/answer_wwxd_extrapolate.md +3 -0
  36. wwxd-0.1.0/bench/prompts/judge_inference.md +23 -0
  37. wwxd-0.1.0/bench/prompts/judge_opinion.md +24 -0
  38. wwxd-0.1.0/bench/prompts/judge_pairwise.md +31 -0
  39. wwxd-0.1.0/bench/prompts/judge_rank.md +23 -0
  40. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/judge-raw-vs-wwxd-haiku.jsonl +20 -0
  41. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/judge-raw-vs-wwxd-muse.jsonl +20 -0
  42. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/judge-raw-vs-wwxd-nemotron.jsonl +20 -0
  43. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/judge-raw-vs-wwxd.jsonl +20 -0
  44. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/raw-answers.jsonl +20 -0
  45. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/summary.json +144 -0
  46. wwxd-0.1.0/bench/runs/2026-10-08/hormozi/wwxd-answers.jsonl +20 -0
  47. wwxd-0.1.0/bench/runs/2026-10-08/yc/judge-raw-vs-wwxd-haiku.jsonl +20 -0
  48. wwxd-0.1.0/bench/runs/2026-10-08/yc/judge-raw-vs-wwxd-muse.jsonl +20 -0
  49. wwxd-0.1.0/bench/runs/2026-10-08/yc/judge-raw-vs-wwxd-nemotron.jsonl +20 -0
  50. wwxd-0.1.0/bench/runs/2026-10-08/yc/judge-raw-vs-wwxd.jsonl +20 -0
  51. wwxd-0.1.0/bench/runs/2026-10-08/yc/raw-answers.jsonl +20 -0
  52. wwxd-0.1.0/bench/runs/2026-10-08/yc/summary.json +111 -0
  53. wwxd-0.1.0/bench/runs/2026-10-08/yc/wwxd-answers.jsonl +20 -0
  54. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/heldout-answers.jsonl +10 -0
  55. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/heldout-v2-answers.jsonl +10 -0
  56. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/heldout-v3-answers.jsonl +10 -0
  57. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/heldout2-answers.jsonl +10 -0
  58. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-heldout-v2-vs-heldout-v3.jsonl +10 -0
  59. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw-vs-heldout-v2.jsonl +10 -0
  60. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw-vs-heldout-v3.jsonl +10 -0
  61. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw-vs-heldout.jsonl +10 -0
  62. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw2-vs-heldout2.jsonl +10 -0
  63. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-nemotron.jsonl +10 -0
  64. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-v2-haiku.jsonl +10 -0
  65. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-v2-muse.jsonl +10 -0
  66. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-v2-nemotron.jsonl +10 -0
  67. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-v3-haiku.jsonl +10 -0
  68. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/judge-raw3-vs-heldout-v3-muse.jsonl +10 -0
  69. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/raw-answers.jsonl +10 -0
  70. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/raw2-answers.jsonl +10 -0
  71. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-heldout/raw3-answers.jsonl +10 -0
  72. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-honesty-v2/judge-raw-vs-wwxd-v2.jsonl +5 -0
  73. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-honesty-v2/wwxd-v2-answers.jsonl +5 -0
  74. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/inf-persona-answers.jsonl +8 -0
  75. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/inf-raw-answers.jsonl +8 -0
  76. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/inf-wwxd-v2-answers.jsonl +8 -0
  77. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/inf-wwxd-v3-answers.jsonl +8 -0
  78. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-haiku.jsonl +8 -0
  79. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-haiku.summary.json +65 -0
  80. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-muse.jsonl +8 -0
  81. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-muse.summary.json +65 -0
  82. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-nemotron.jsonl +3 -0
  83. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3.jsonl +8 -0
  84. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3.summary.json +65 -0
  85. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/op-persona-answers.jsonl +12 -0
  86. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/op-raw-answers.jsonl +12 -0
  87. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/op-wwxd-answers.jsonl +12 -0
  88. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/op-wwxd-short-answers.jsonl +12 -0
  89. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-haiku.jsonl +12 -0
  90. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-haiku.summary.json +47 -0
  91. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-muse.jsonl +12 -0
  92. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-muse.summary.json +47 -0
  93. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-nemotron.jsonl +12 -0
  94. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd-nemotron.summary.json +47 -0
  95. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd.jsonl +12 -0
  96. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-raw-op-persona-op-wwxd.summary.json +47 -0
  97. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-wwxd-op-wwxd-short.jsonl +12 -0
  98. wwxd-0.1.0/bench/runs/2026-10-09/hormozi-opinion/rank-op-wwxd-op-wwxd-short.summary.json +33 -0
  99. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/heldout-answers.jsonl +10 -0
  100. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/heldout-v2-answers.jsonl +10 -0
  101. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/heldout-v3-answers.jsonl +10 -0
  102. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/heldout2-answers.jsonl +10 -0
  103. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-heldout-v2-vs-heldout-v3.jsonl +10 -0
  104. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw-vs-heldout-v2.jsonl +10 -0
  105. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw-vs-heldout-v3.jsonl +10 -0
  106. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw-vs-heldout.jsonl +10 -0
  107. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw2-vs-heldout2.jsonl +10 -0
  108. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw3-vs-heldout-nemotron.jsonl +10 -0
  109. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw3-vs-heldout-v2-haiku.jsonl +10 -0
  110. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw3-vs-heldout-v2-muse.jsonl +10 -0
  111. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw3-vs-heldout-v2-nemotron.jsonl +10 -0
  112. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/judge-raw3-vs-heldout-v3-haiku.jsonl +10 -0
  113. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/raw-answers.jsonl +10 -0
  114. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/raw2-answers.jsonl +10 -0
  115. wwxd-0.1.0/bench/runs/2026-10-09/yc-heldout/raw3-answers.jsonl +10 -0
  116. wwxd-0.1.0/bench/runs/2026-10-09/yc-honesty-v2/judge-raw-vs-wwxd-v2.jsonl +5 -0
  117. wwxd-0.1.0/bench/runs/2026-10-09/yc-honesty-v2/wwxd-v2-answers.jsonl +5 -0
  118. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/inf-persona-answers.jsonl +8 -0
  119. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/inf-raw-answers.jsonl +8 -0
  120. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/inf-wwxd-v2-answers.jsonl +8 -0
  121. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/inf-wwxd-v3-answers.jsonl +8 -0
  122. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-haiku.jsonl +8 -0
  123. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-haiku.summary.json +65 -0
  124. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3-muse.jsonl +2 -0
  125. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3.jsonl +8 -0
  126. wwxd-0.1.0/bench/runs/2026-10-09/yc-inference/rank-inf-raw-inf-persona-inf-wwxd-v2-inf-wwxd-v3.summary.json +65 -0
  127. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/op-persona-answers.jsonl +12 -0
  128. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/op-raw-answers.jsonl +12 -0
  129. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/op-wwxd-answers.jsonl +12 -0
  130. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/op-wwxd-short-answers.jsonl +12 -0
  131. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-haiku.jsonl +12 -0
  132. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-haiku.summary.json +47 -0
  133. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-muse.jsonl +12 -0
  134. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-muse.summary.json +47 -0
  135. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-nemotron.jsonl +12 -0
  136. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd-nemotron.summary.json +47 -0
  137. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd.jsonl +12 -0
  138. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-raw-op-persona-op-wwxd.summary.json +47 -0
  139. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-wwxd-op-wwxd-short.jsonl +12 -0
  140. wwxd-0.1.0/bench/runs/2026-10-09/yc-opinion/rank-op-wwxd-op-wwxd-short.summary.json +33 -0
  141. wwxd-0.1.0/bench/runs/2026-10-10/README.md +67 -0
  142. wwxd-0.1.0/bench/runs/2026-10-10/compile-metrics.json +128 -0
  143. wwxd-0.1.0/bench/runs/2026-10-10/compile-sessions.csv +37 -0
  144. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-gemini-judge/judge-raw-vs-wwxd-gemini-3.5-flash-lite.jsonl +20 -0
  145. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-gemini-judge/rank-9-arms-gemini-3.5-flash-lite.jsonl +6 -0
  146. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-gemini-judge/rank-op-raw-op-persona-op-wwxd-gemini-3.5-flash-lite.jsonl +12 -0
  147. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-haiku-high-answers.jsonl +6 -0
  148. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-haiku-medium-answers.jsonl +6 -0
  149. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-haiku-xhigh-answers.jsonl +6 -0
  150. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-opus-high-answers.jsonl +6 -0
  151. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-opus-medium-answers.jsonl +6 -0
  152. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-opus-xhigh-answers.jsonl +6 -0
  153. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-sonnet-high-answers.jsonl +6 -0
  154. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-sonnet-medium-answers.jsonl +6 -0
  155. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/ask-sonnet-xhigh-answers.jsonl +6 -0
  156. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-haiku-high-haiku.jsonl +6 -0
  157. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-haiku-medium-haiku.jsonl +6 -0
  158. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-haiku-xhigh-haiku.jsonl +6 -0
  159. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-opus-high-haiku.jsonl +6 -0
  160. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-opus-medium-haiku.jsonl +6 -0
  161. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-opus-xhigh-haiku.jsonl +6 -0
  162. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-sonnet-high-haiku.jsonl +6 -0
  163. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-sonnet-medium-haiku.jsonl +6 -0
  164. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/judge-raw-vs-ask-sonnet-xhigh-haiku.jsonl +6 -0
  165. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/quote-check.json +88 -0
  166. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/rank-9-arms-haiku.jsonl +6 -0
  167. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/rank-9-arms-haiku.summary.json +140 -0
  168. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/rank-9-arms-opus.jsonl +6 -0
  169. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/rank-9-arms-opus.summary.json +140 -0
  170. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-model-effort/raw-answers.jsonl +6 -0
  171. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/judge-ask-opus-high-vs-prose-opus-high-lite.jsonl +6 -0
  172. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/judge-ask-opus-high-vs-prose-opus-high-opus.jsonl +6 -0
  173. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/op-old-high-answers.jsonl +12 -0
  174. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/op-prose-answers.jsonl +12 -0
  175. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/prose-opus-high-answers.jsonl +6 -0
  176. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/rank-op-old-high-op-prose-op-raw-lite.jsonl +12 -0
  177. wwxd-0.1.0/bench/runs/2026-10-10/hormozi-prose/rank-op-old-high-op-prose-op-raw-opus.jsonl +12 -0
  178. wwxd-0.1.0/bench/runs/2026-10-10/scripts/gemini_judge.sh +5 -0
  179. wwxd-0.1.0/bench/runs/2026-10-10/scripts/gemini_judges.sh +15 -0
  180. wwxd-0.1.0/bench/runs/2026-10-10/scripts/prose_bench.sh +19 -0
  181. wwxd-0.1.0/bench/runs/2026-10-10/scripts/prose_opus_judge.sh +9 -0
  182. wwxd-0.1.0/bench/runs/2026-10-10/scripts/study_ask.sh +18 -0
  183. wwxd-0.1.0/bench/runs/2026-10-10/scripts/study_ask_eval.py +26 -0
  184. wwxd-0.1.0/bench/runs/2026-10-10/scripts/study_compile.sh +18 -0
  185. wwxd-0.1.0/bench/runs/2026-10-10/scripts/study_eval.py +64 -0
  186. wwxd-0.1.0/bench/runs/2026-10-10/scripts/study_rank.sh +13 -0
  187. wwxd-0.1.0/bench/runs/2026-10-10/scripts/wer2.py +24 -0
  188. wwxd-0.1.0/bench/runs/2026-10-10/yc-gemini-judge/judge-raw-vs-wwxd-gemini-3.5-flash-lite.jsonl +20 -0
  189. wwxd-0.1.0/bench/runs/2026-10-10/yc-gemini-judge/rank-9-arms-gemini-3.5-flash-lite.jsonl +6 -0
  190. wwxd-0.1.0/bench/runs/2026-10-10/yc-gemini-judge/rank-op-raw-op-persona-op-wwxd-gemini-3.5-flash-lite.jsonl +12 -0
  191. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-haiku-high-answers.jsonl +6 -0
  192. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-haiku-medium-answers.jsonl +6 -0
  193. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-haiku-xhigh-answers.jsonl +6 -0
  194. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-opus-high-answers.jsonl +6 -0
  195. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-opus-medium-answers.jsonl +6 -0
  196. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-opus-xhigh-answers.jsonl +6 -0
  197. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-sonnet-high-answers.jsonl +6 -0
  198. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-sonnet-medium-answers.jsonl +6 -0
  199. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/ask-sonnet-xhigh-answers.jsonl +6 -0
  200. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-haiku-high-haiku.jsonl +6 -0
  201. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-haiku-medium-haiku.jsonl +6 -0
  202. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-haiku-xhigh-haiku.jsonl +6 -0
  203. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-opus-high-haiku.jsonl +6 -0
  204. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-opus-medium-haiku.jsonl +6 -0
  205. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-opus-xhigh-haiku.jsonl +6 -0
  206. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-sonnet-high-haiku.jsonl +6 -0
  207. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-sonnet-medium-haiku.jsonl +6 -0
  208. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/judge-raw-vs-ask-sonnet-xhigh-haiku.jsonl +6 -0
  209. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/quote-check.json +92 -0
  210. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/rank-9-arms-haiku.jsonl +6 -0
  211. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/rank-9-arms-haiku.summary.json +140 -0
  212. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/rank-9-arms-opus.jsonl +6 -0
  213. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/rank-9-arms-opus.summary.json +140 -0
  214. wwxd-0.1.0/bench/runs/2026-10-10/yc-model-effort/raw-answers.jsonl +6 -0
  215. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/judge-ask-opus-high-vs-prose-opus-high-lite.jsonl +6 -0
  216. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/judge-ask-opus-high-vs-prose-opus-high-opus.jsonl +6 -0
  217. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/op-old-high-answers.jsonl +12 -0
  218. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/op-prose-answers.jsonl +12 -0
  219. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/prose-opus-high-answers.jsonl +6 -0
  220. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/rank-op-old-high-op-prose-op-raw-lite.jsonl +12 -0
  221. wwxd-0.1.0/bench/runs/2026-10-10/yc-prose/rank-op-old-high-op-prose-op-raw-opus.jsonl +12 -0
  222. wwxd-0.1.0/docs/design.md +96 -0
  223. wwxd-0.1.0/docs/img/chart-judges.png +0 -0
  224. wwxd-0.1.0/docs/img/chart-model-effort.png +0 -0
  225. wwxd-0.1.0/docs/img/chart-opinion.png +0 -0
  226. wwxd-0.1.0/docs/img/wwxd-vs-persona.html +46 -0
  227. wwxd-0.1.0/docs/img/wwxd-vs-persona.png +0 -0
  228. wwxd-0.1.0/pyproject.toml +37 -0
  229. wwxd-0.1.0/skills/wwxd/SKILL.md +83 -0
  230. wwxd-0.1.0/skills/wwxd/references/ask.md +110 -0
  231. wwxd-0.1.0/skills/wwxd/references/compile.md +117 -0
  232. wwxd-0.1.0/skills/wwxd/references/consolidate.md +119 -0
  233. wwxd-0.1.0/skills/wwxd/references/curate.md +49 -0
  234. wwxd-0.1.0/skills/wwxd/references/format.md +163 -0
  235. wwxd-0.1.0/skills/wwxd/references/panel.md +87 -0
  236. wwxd-0.1.0/skills/wwxd/references/thinking.md +69 -0
  237. wwxd-0.1.0/src/wwxd/__init__.py +1 -0
  238. wwxd-0.1.0/src/wwxd/__main__.py +3 -0
  239. wwxd-0.1.0/src/wwxd/bench.py +307 -0
  240. wwxd-0.1.0/src/wwxd/cli.py +627 -0
  241. wwxd-0.1.0/src/wwxd/config.py +24 -0
  242. wwxd-0.1.0/src/wwxd/costs.py +81 -0
  243. wwxd-0.1.0/src/wwxd/digest.py +92 -0
  244. wwxd-0.1.0/src/wwxd/discover.py +274 -0
  245. wwxd-0.1.0/src/wwxd/doctor.py +182 -0
  246. wwxd-0.1.0/src/wwxd/examples/hormozi/vault.yaml +19 -0
  247. wwxd-0.1.0/src/wwxd/examples/karpathy/vault.yaml +20 -0
  248. wwxd-0.1.0/src/wwxd/examples/naval/vault.yaml +20 -0
  249. wwxd-0.1.0/src/wwxd/examples/rams/vault.yaml +20 -0
  250. wwxd-0.1.0/src/wwxd/examples/yc/vault.yaml +43 -0
  251. wwxd-0.1.0/src/wwxd/fetchers/__init__.py +64 -0
  252. wwxd-0.1.0/src/wwxd/fetchers/podcast.py +53 -0
  253. wwxd-0.1.0/src/wwxd/fetchers/transcripts.py +178 -0
  254. wwxd-0.1.0/src/wwxd/fetchers/web.py +49 -0
  255. wwxd-0.1.0/src/wwxd/fetchers/whisper.py +113 -0
  256. wwxd-0.1.0/src/wwxd/fetchers/youtube.py +130 -0
  257. wwxd-0.1.0/src/wwxd/health.py +154 -0
  258. wwxd-0.1.0/src/wwxd/lint.py +380 -0
  259. wwxd-0.1.0/src/wwxd/rawdoc.py +88 -0
  260. wwxd-0.1.0/src/wwxd/search.py +44 -0
  261. wwxd-0.1.0/src/wwxd/templates/custom_vault.yaml +18 -0
  262. wwxd-0.1.0/src/wwxd/templates/derived_readme.md +5 -0
  263. wwxd-0.1.0/src/wwxd/templates/index.md +9 -0
  264. wwxd-0.1.0/src/wwxd/templates/profile.md +18 -0
  265. wwxd-0.1.0/src/wwxd/templates/tensions.md +11 -0
  266. wwxd-0.1.0/src/wwxd/timeline.py +97 -0
  267. wwxd-0.1.0/src/wwxd/vault.py +163 -0
  268. wwxd-0.1.0/src/wwxd/voice.py +286 -0
  269. wwxd-0.1.0/src/wwxd/wikimap.py +306 -0
  270. wwxd-0.1.0/src/wwxd/ytdl.py +207 -0
  271. wwxd-0.1.0/tests/__init__.py +0 -0
  272. wwxd-0.1.0/tests/test_backoff.py +120 -0
  273. wwxd-0.1.0/tests/test_bench.py +78 -0
  274. wwxd-0.1.0/tests/test_digest.py +48 -0
  275. wwxd-0.1.0/tests/test_doctor.py +120 -0
  276. wwxd-0.1.0/tests/test_feed_transcripts.py +114 -0
  277. wwxd-0.1.0/tests/test_health.py +52 -0
  278. wwxd-0.1.0/tests/test_lint.py +139 -0
  279. wwxd-0.1.0/tests/test_packaging.py +34 -0
  280. wwxd-0.1.0/tests/test_podcast_transcripts.py +168 -0
  281. wwxd-0.1.0/tests/test_structure.py +142 -0
  282. wwxd-0.1.0/tests/test_timeline.py +72 -0
  283. wwxd-0.1.0/tests/test_update.py +40 -0
  284. wwxd-0.1.0/tests/test_vault.py +0 -0
  285. wwxd-0.1.0/tests/test_voice.py +49 -0
  286. wwxd-0.1.0/tests/test_whisper_model.py +73 -0
  287. wwxd-0.1.0/tests/test_youtube.py +42 -0
  288. wwxd-0.1.0/tests/test_ytdl.py +176 -0
  289. wwxd-0.1.0/uv.lock +2497 -0
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "wwxd",
3
+ "description": "The wwxd skill for building and querying cited knowledge wikis of a person's thinking.",
4
+ "owner": {
5
+ "name": "MSliwa01",
6
+ "url": "https://github.com/MSliwa01"
7
+ },
8
+ "plugins": [
9
+ {
10
+ "name": "wwxd",
11
+ "source": "./",
12
+ "description": "What would X do? Build and query cited knowledge wikis of a person's talks, podcasts and essays."
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "wwxd",
3
+ "description": "What would X do? Build and query cited knowledge wikis of a person's talks, podcasts and essays.",
4
+ "author": {
5
+ "name": "MSliwa01",
6
+ "url": "https://github.com/MSliwa01"
7
+ },
8
+ "homepage": "https://github.com/MSliwa01/wwxd",
9
+ "repository": "https://github.com/MSliwa01/wwxd",
10
+ "license": "MIT",
11
+ "keywords": ["knowledge-base", "wiki", "transcripts", "podcasts", "youtube", "citations"]
12
+ }
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Bug
3
+ about: Something in the CLI or the skill doesn't work
4
+ labels: bug
5
+ ---
6
+
7
+ **What you ran**
8
+
9
+ ```
10
+ wwxd ...
11
+ ```
12
+
13
+ **What happened** (paste the output)
14
+
15
+ **What you expected**
16
+
17
+ **Output of `wwxd doctor`**
18
+
19
+ ```
20
+ ```
21
+
22
+ **OS and how you installed wwxd** (plugin, uv tool, pip)
@@ -0,0 +1 @@
1
+ blank_issues_enabled: true
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: Remove a recipe (opt-out)
3
+ about: You, or someone you represent, want an example recipe removed
4
+ labels: opt-out
5
+ ---
6
+
7
+ **Which recipe** (for example `src/wwxd/examples/hormozi`)
8
+
9
+ **Your relation to the person**
10
+
11
+ We remove recipes on request, without debate. See ETHICS.md.
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: New example recipe
3
+ about: Suggest a person or group to add under src/wwxd/examples
4
+ labels: recipe
5
+ ---
6
+
7
+ **Who** (name, and what they're worth learning from)
8
+
9
+ **Their own sources** (YouTube channels, podcast feeds, blog or essay index pages)
10
+
11
+ **Why first-hand material is enough** (long-form talks, essays, interviews where they speak at length)
12
+
13
+ Recipes ship source lists only, never content. See ETHICS.md.
@@ -0,0 +1,51 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ os: [ubuntu-latest]
18
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
19
+ include:
20
+ - os: macos-latest
21
+ python-version: "3.12"
22
+ - os: windows-latest
23
+ python-version: "3.12"
24
+ steps:
25
+ - uses: actions/checkout@v7
26
+ - uses: astral-sh/setup-uv@v10.2.0
27
+ with:
28
+ python-version: ${{ matrix.python-version }} # sets UV_PYTHON, which overrides .python-version
29
+ - run: uv sync --locked --group dev
30
+ - run: uv run --group dev pytest -q
31
+
32
+ build:
33
+ runs-on: ubuntu-latest
34
+ steps:
35
+ - uses: actions/checkout@v7
36
+ - uses: astral-sh/setup-uv@v10.2.0
37
+ - run: uv build
38
+ - name: Check the wheel ships the skill, examples and templates
39
+ run: |
40
+ files=$(unzip -Z1 dist/*.whl)
41
+ missing=0
42
+ for f in wwxd/skill/SKILL.md wwxd/skill/references/format.md wwxd/examples/yc/vault.yaml \
43
+ $(cd src && find wwxd/templates -type f | sort); do
44
+ grep -qxF "$f" <<< "$files" || { echo "::error::missing from wheel: $f"; missing=1; }
45
+ done
46
+ exit $missing
47
+ - name: Install the skill from the wheel
48
+ run: |
49
+ cd "$(mktemp -d)"
50
+ uvx --from "$GITHUB_WORKSPACE"/dist/*.whl wwxd install-skill --project
51
+ test -f .claude/skills/wwxd/references/format.md
@@ -0,0 +1,43 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v7
15
+ - uses: astral-sh/setup-uv@v10.2.0
16
+ - name: Check the tag matches the package version
17
+ run: |
18
+ version=$(uv version --short)
19
+ if [ "v$version" != "$GITHUB_REF_NAME" ]; then
20
+ echo "::error::tag $GITHUB_REF_NAME does not match version $version in pyproject.toml"
21
+ exit 1
22
+ fi
23
+ - run: uv run --locked --group dev pytest -q
24
+ - run: uv build
25
+ - uses: actions/upload-artifact@v7
26
+ with:
27
+ name: dist
28
+ path: dist/
29
+
30
+ publish:
31
+ needs: build
32
+ runs-on: ubuntu-latest
33
+ environment:
34
+ name: pypi
35
+ url: https://pypi.org/project/wwxd/
36
+ permissions:
37
+ id-token: write # trusted publishing, no API token
38
+ steps:
39
+ - uses: actions/download-artifact@v8
40
+ with:
41
+ name: dist
42
+ path: dist/
43
+ - uses: pypa/gh-action-pypi-publish@release/v1
wwxd-0.1.0/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ __pycache__/
2
+ *.pyc
3
+ .venv/
4
+ dist/
5
+ .pytest_cache/
6
+ .env
7
+ vaults/
8
+ bench/results/
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,21 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0 (2026-10-11)
4
+
5
+ First release.
6
+
7
+ - Build a vault from YouTube videos, podcast feeds, articles and local files:
8
+ `discover`, curate with `approve` and `reject`, `fetch`. Captions first, then
9
+ transcripts published in podcast feeds, then local Whisper (`wwxd[whisper]`).
10
+ - A Claude Code skill compiles each source into a tree of cited wiki pages and
11
+ answers "what would X do?" as plain advice with the sources listed underneath.
12
+ It also covers group vaults, thinking pages (how a person decides), panels of
13
+ several people, and keeping a vault current with `update`.
14
+ - `wwxd lint` checks every quote against the raw transcripts. `wwxd voice` checks
15
+ who said each quote by voice (`wwxd[voice]`).
16
+ - `wwxd estimate` prices compiling and asking per model before you spend anything.
17
+ - `wwxd health`, `timeline`, `digest`, `search`, `status`, `doctor`.
18
+ - `wwxd bench` runs blind comparisons with any agent as the answerer or the judge.
19
+ Results are in `bench/RESULTS.md`.
20
+ - Install as a Claude Code plugin (`/plugin marketplace add MSliwa01/wwxd`) or with
21
+ `wwxd install-skill`.
@@ -0,0 +1,107 @@
1
+ # Contributing
2
+
3
+ Thanks for helping. The most useful contributions, roughly in order:
4
+
5
+ 1. **Gold sets** for the example vaults (`bench/gold/`): questions tied to specific public sources, including `expect: abstain` questions.
6
+ 2. **Bench results**: tree vs. flat, prompt and skill variants. Open a PR with the numbers and the setup.
7
+ 3. **Fetchers** for new source types.
8
+ 4. **Example recipes** (`src/wwxd/examples/<name>/vault.yaml`): source configs only, never content. Prefer people with lots of first-hand, long-form, publicly available material.
9
+
10
+ ## Dev setup
11
+
12
+ ```bash
13
+ uv sync --group dev
14
+ uv run pytest
15
+ uv run wwxd --help
16
+ ```
17
+
18
+ The vault grammar lives in `skills/wwxd/references/format.md`. If you change it,
19
+ change `src/wwxd/lint.py` and the tests in the same PR.
20
+
21
+ ## Fetcher plugins
22
+
23
+ A fetcher turns an approved source into a raw doc. Plugins are ordinary Python
24
+ packages that register under the `wwxd.fetchers` entry point:
25
+
26
+ ```toml
27
+ # your plugin's pyproject.toml
28
+ [project.entry-points."wwxd.fetchers"]
29
+ epub = "wwxd_epub:fetch"
30
+ ```
31
+
32
+ ```python
33
+ # wwxd_epub.py
34
+ import datetime as dt
35
+ from pathlib import Path
36
+
37
+ from wwxd.rawdoc import RawDoc
38
+
39
+
40
+ def fetch(source, vault, **options):
41
+ if source.type != "file" or not source.url.endswith(".epub"):
42
+ return None # not mine; let other fetchers try
43
+ text = my_epub_to_text(Path(source.url))
44
+ return RawDoc(
45
+ meta={
46
+ "id": source.id,
47
+ "type": "file",
48
+ "url": source.url,
49
+ "title": source.title,
50
+ "date": source.date,
51
+ "transcript": "file",
52
+ "expected_speakers": source.expected_speakers,
53
+ "fetched": dt.date.today().isoformat(),
54
+ },
55
+ body=text,
56
+ )
57
+ ```
58
+
59
+ Plugins run before the built-in fetchers. Only fetch content the user is allowed
60
+ to access. Plugins that pull from piracy sites won't be accepted into this repo
61
+ or linked from it.
62
+
63
+ ## Ground rules
64
+
65
+ - Never commit vault content (`vaults/` is gitignored).
66
+ - Keep the CLI deterministic; judgment belongs in the skill.
67
+ - Every claim in a vault must stay checkable against `raw/`.
68
+
69
+ ## Releasing
70
+
71
+ `.github/workflows/release.yml` publishes to PyPI with trusted publishing, so the repo
72
+ holds no PyPI token.
73
+
74
+ One-time setup:
75
+
76
+ 1. On pypi.org, open [Publishing](https://pypi.org/manage/account/publishing/) in your
77
+ account and add a pending GitHub publisher with these values.
78
+
79
+ | Field | Value |
80
+ |---|---|
81
+ | PyPI project name | `wwxd` |
82
+ | Owner | `MSliwa01` |
83
+ | Repository name | `wwxd` |
84
+ | Workflow name | `release.yml` |
85
+ | Environment name | `pypi` |
86
+
87
+ 2. On GitHub, create an environment named `pypi` (Settings > Environments). Add
88
+ yourself as a required reviewer if you want to approve each upload.
89
+
90
+ The first upload turns the pending publisher into a regular one.
91
+
92
+ To cut a release:
93
+
94
+ 1. Set the new version in `pyproject.toml` and `src/wwxd/__init__.py` (a test fails
95
+ if they differ), then run `uv lock`.
96
+ 2. Merge to `main` and wait for CI to pass.
97
+ 3. Tag the merge commit and push the tag.
98
+
99
+ ```bash
100
+ git tag v0.2.0
101
+ git push origin v0.2.0
102
+ ```
103
+
104
+ The workflow checks that the tag matches the version, runs the tests, builds and
105
+ uploads. PyPI rejects a version it already has, so fix a bad release with a new
106
+ version, not a moved tag. The Claude Code plugin has no version of its own and
107
+ tracks `main`.
wwxd-0.1.0/ETHICS.md ADDED
@@ -0,0 +1,36 @@
1
+ # Ethics
2
+
3
+ wwxd is for learning from what people have said and written in public. It turns
4
+ their talks, podcasts and essays into a wiki where every quote points back to its
5
+ source. Use it in that spirit.
6
+
7
+ ## Rules
8
+
9
+ - **Cite your sources.** Every answer must show where the person said what it
10
+ claims. When the sources don't cover a question, the answer says so, and any
11
+ extrapolation is marked as the agent's, not the person's. Keep the citations
12
+ when you share an answer.
13
+ - **Don't impersonate.** A vault answer is a cited summary of someone's public
14
+ positions. Never present it as the real person speaking, endorsing something or
15
+ giving advice. Don't use a vault to write posts, messages or reviews in their
16
+ name.
17
+ - **Public people, public material.** Build vaults of people who publish their
18
+ thinking, from material they chose to make public. Don't build vaults of private
19
+ individuals, such as a coworker, a former partner or a neighbor. Don't add
20
+ leaked recordings, private messages or paywalled content you haven't paid for.
21
+ - **Respect platform terms and copyright.** wwxd fetches public captions, articles
22
+ and podcast audio for your own use. You are responsible for following the terms
23
+ of the sites you fetch from and for respecting copyright. This repo ships source
24
+ configs, never content.
25
+ - **Don't publish what you can't share.** A vault holds full transcripts and long
26
+ quotes. Keep it private unless you have the right to share that material.
27
+
28
+ ## Opt-out
29
+
30
+ The example recipes in `src/wwxd/examples/` name real people. If you are one of
31
+ them, or represent one of them, and want your recipe removed,
32
+ [open an issue](https://github.com/MSliwa01/wwxd/issues/new) with the recipe name.
33
+ We remove the recipe and don't add it back. You don't need to give a reason.
34
+
35
+ Removing a recipe doesn't delete vaults that people already built on their own
36
+ machines, because wwxd keeps no central copy.
wwxd-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MSliwa01 and wwxd contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.