drybag 0.7.1__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 (406) hide show
  1. drybag-0.7.1/.claude-plugin/icon.png +0 -0
  2. drybag-0.7.1/.claude-plugin/marketplace.json +19 -0
  3. drybag-0.7.1/.claude-plugin/plugin.json +17 -0
  4. drybag-0.7.1/.codex-plugin/plugin.json +14 -0
  5. drybag-0.7.1/CHANGELOG.md +2403 -0
  6. drybag-0.7.1/CODE_OF_CONDUCT.md +38 -0
  7. drybag-0.7.1/CONTRIBUTING.md +544 -0
  8. drybag-0.7.1/LICENSE +21 -0
  9. drybag-0.7.1/PKG-INFO +477 -0
  10. drybag-0.7.1/README.md +450 -0
  11. drybag-0.7.1/RELEASING.md +819 -0
  12. drybag-0.7.1/SECURITY.md +113 -0
  13. drybag-0.7.1/changelog.d/.gitkeep +0 -0
  14. drybag-0.7.1/docs/cli.md +2191 -0
  15. drybag-0.7.1/docs/methodology/README.md +74 -0
  16. drybag-0.7.1/docs/methodology/principles.md +250 -0
  17. drybag-0.7.1/docs/methodology/sources.md +40 -0
  18. drybag-0.7.1/hooks/hooks.json +111 -0
  19. drybag-0.7.1/hooks/run-hook.sh +48 -0
  20. drybag-0.7.1/pyproject.toml +172 -0
  21. drybag-0.7.1/pyproject.toml.orig +170 -0
  22. drybag-0.7.1/scripts/check_artifacts.py +141 -0
  23. drybag-0.7.1/scripts/ci_scope.py +85 -0
  24. drybag-0.7.1/scripts/drybag +18 -0
  25. drybag-0.7.1/scripts/mutation_oracle.py +1018 -0
  26. drybag-0.7.1/scripts/plugin_tree.py +682 -0
  27. drybag-0.7.1/scripts/publish_plugin.py +901 -0
  28. drybag-0.7.1/scripts/publish_template.py +389 -0
  29. drybag-0.7.1/scripts/release.py +716 -0
  30. drybag-0.7.1/scripts/smoke_exfiltration.py +337 -0
  31. drybag-0.7.1/scripts/smoke_hooks.py +361 -0
  32. drybag-0.7.1/skills/README.md +32 -0
  33. drybag-0.7.1/skills/attach/SKILL.md +37 -0
  34. drybag-0.7.1/skills/doctor/SKILL.md +39 -0
  35. drybag-0.7.1/skills/memory-sweep/SKILL.md +23 -0
  36. drybag-0.7.1/skills/memory-sweep/references/protocol.md +53 -0
  37. drybag-0.7.1/skills/setup/SKILL.md +56 -0
  38. drybag-0.7.1/src/drybag/__init__.py +9 -0
  39. drybag-0.7.1/src/drybag/__main__.py +3 -0
  40. drybag-0.7.1/src/drybag/areas.py +114 -0
  41. drybag-0.7.1/src/drybag/attach/__init__.py +18 -0
  42. drybag-0.7.1/src/drybag/attach/api.py +75 -0
  43. drybag-0.7.1/src/drybag/attach/binding.py +497 -0
  44. drybag-0.7.1/src/drybag/attach/check.py +91 -0
  45. drybag-0.7.1/src/drybag/attach/checkout.py +167 -0
  46. drybag-0.7.1/src/drybag/attach/commands.py +180 -0
  47. drybag-0.7.1/src/drybag/attach/doctor.py +639 -0
  48. drybag-0.7.1/src/drybag/attach/exclude.py +432 -0
  49. drybag-0.7.1/src/drybag/attach/hooks.py +270 -0
  50. drybag-0.7.1/src/drybag/attach/items.py +85 -0
  51. drybag-0.7.1/src/drybag/attach/permissions.py +308 -0
  52. drybag-0.7.1/src/drybag/attach/render.py +353 -0
  53. drybag-0.7.1/src/drybag/attach/rules.py +269 -0
  54. drybag-0.7.1/src/drybag/attach/tags.py +51 -0
  55. drybag-0.7.1/src/drybag/attach/write.py +1396 -0
  56. drybag-0.7.1/src/drybag/binding.py +207 -0
  57. drybag-0.7.1/src/drybag/cli.py +176 -0
  58. drybag-0.7.1/src/drybag/command.py +99 -0
  59. drybag-0.7.1/src/drybag/config/__init__.py +5 -0
  60. drybag-0.7.1/src/drybag/config/classes.py +220 -0
  61. drybag-0.7.1/src/drybag/config/layout.py +23 -0
  62. drybag-0.7.1/src/drybag/config/loader.py +692 -0
  63. drybag-0.7.1/src/drybag/config/machine.py +75 -0
  64. drybag-0.7.1/src/drybag/config/overlay.py +44 -0
  65. drybag-0.7.1/src/drybag/config/overlay_layers.py +191 -0
  66. drybag-0.7.1/src/drybag/config/owner.py +247 -0
  67. drybag-0.7.1/src/drybag/config/paths.py +302 -0
  68. drybag-0.7.1/src/drybag/config/plates.py +161 -0
  69. drybag-0.7.1/src/drybag/config/reading.py +234 -0
  70. drybag-0.7.1/src/drybag/config/schema.py +161 -0
  71. drybag-0.7.1/src/drybag/config/session.py +397 -0
  72. drybag-0.7.1/src/drybag/docs/__init__.py +5 -0
  73. drybag-0.7.1/src/drybag/docs/api.py +44 -0
  74. drybag-0.7.1/src/drybag/docs/commands.py +148 -0
  75. drybag-0.7.1/src/drybag/docs/hygiene.py +195 -0
  76. drybag-0.7.1/src/drybag/docs/plans.py +492 -0
  77. drybag-0.7.1/src/drybag/docs/themes.py +153 -0
  78. drybag-0.7.1/src/drybag/docs/trail.py +392 -0
  79. drybag-0.7.1/src/drybag/doctor/__init__.py +26 -0
  80. drybag-0.7.1/src/drybag/doctor/api.py +67 -0
  81. drybag-0.7.1/src/drybag/doctor/checks.py +775 -0
  82. drybag-0.7.1/src/drybag/doctor/commands.py +81 -0
  83. drybag-0.7.1/src/drybag/doctor/model.py +201 -0
  84. drybag-0.7.1/src/drybag/doctor/registry.py +174 -0
  85. drybag-0.7.1/src/drybag/errors.py +37 -0
  86. drybag-0.7.1/src/drybag/findings.py +56 -0
  87. drybag-0.7.1/src/drybag/fsops.py +866 -0
  88. drybag-0.7.1/src/drybag/gitenv.py +631 -0
  89. drybag-0.7.1/src/drybag/grammar.py +45 -0
  90. drybag-0.7.1/src/drybag/guards/__init__.py +5 -0
  91. drybag-0.7.1/src/drybag/guards/api.py +42 -0
  92. drybag-0.7.1/src/drybag/guards/commands.py +189 -0
  93. drybag-0.7.1/src/drybag/guards/commit.py +574 -0
  94. drybag-0.7.1/src/drybag/guards/githooks.py +275 -0
  95. drybag-0.7.1/src/drybag/harnesses.py +321 -0
  96. drybag-0.7.1/src/drybag/hints/__init__.py +6 -0
  97. drybag-0.7.1/src/drybag/hints/bashscan.py +782 -0
  98. drybag-0.7.1/src/drybag/hints/bgcleanup.py +679 -0
  99. drybag-0.7.1/src/drybag/hints/hooks.py +119 -0
  100. drybag-0.7.1/src/drybag/hints/hygiene.py +126 -0
  101. drybag-0.7.1/src/drybag/hints/pipes.py +76 -0
  102. drybag-0.7.1/src/drybag/hints/runners.py +103 -0
  103. drybag-0.7.1/src/drybag/hooks/__init__.py +1 -0
  104. drybag-0.7.1/src/drybag/hooks/api.py +186 -0
  105. drybag-0.7.1/src/drybag/hooks/commands.py +89 -0
  106. drybag-0.7.1/src/drybag/hooks/dispatch.py +210 -0
  107. drybag-0.7.1/src/drybag/hooks/registry.py +30 -0
  108. drybag-0.7.1/src/drybag/hooks/sink.py +201 -0
  109. drybag-0.7.1/src/drybag/jsonobject.py +145 -0
  110. drybag-0.7.1/src/drybag/memory/__init__.py +1 -0
  111. drybag-0.7.1/src/drybag/memory/answers.py +61 -0
  112. drybag-0.7.1/src/drybag/memory/api.py +133 -0
  113. drybag-0.7.1/src/drybag/memory/bundles.py +271 -0
  114. drybag-0.7.1/src/drybag/memory/commands.py +373 -0
  115. drybag-0.7.1/src/drybag/memory/composed.py +155 -0
  116. drybag-0.7.1/src/drybag/memory/doctor.py +215 -0
  117. drybag-0.7.1/src/drybag/memory/hooks.py +109 -0
  118. drybag-0.7.1/src/drybag/memory/index.py +560 -0
  119. drybag-0.7.1/src/drybag/memory/inventory.py +86 -0
  120. drybag-0.7.1/src/drybag/memory/notes.py +463 -0
  121. drybag-0.7.1/src/drybag/memory/reviewed.py +93 -0
  122. drybag-0.7.1/src/drybag/memory/store.py +657 -0
  123. drybag-0.7.1/src/drybag/memory/trust.py +46 -0
  124. drybag-0.7.1/src/drybag/overlay/__init__.py +1 -0
  125. drybag-0.7.1/src/drybag/overlay/api.py +83 -0
  126. drybag-0.7.1/src/drybag/overlay/commands.py +51 -0
  127. drybag-0.7.1/src/drybag/overlay/create.py +360 -0
  128. drybag-0.7.1/src/drybag/overlay/doctor.py +224 -0
  129. drybag-0.7.1/src/drybag/overlay/identity.py +103 -0
  130. drybag-0.7.1/src/drybag/overlay/layout.py +61 -0
  131. drybag-0.7.1/src/drybag/overlay/requires.py +63 -0
  132. drybag-0.7.1/src/drybag/overlay/sync.py +37 -0
  133. drybag-0.7.1/src/drybag/overlay/template.py +78 -0
  134. drybag-0.7.1/src/drybag/overlay/upgrade.py +98 -0
  135. drybag-0.7.1/src/drybag/presets/__init__.py +74 -0
  136. drybag-0.7.1/src/drybag/presets/recommended.toml +104 -0
  137. drybag-0.7.1/src/drybag/printed.py +86 -0
  138. drybag-0.7.1/src/drybag/processes.py +105 -0
  139. drybag-0.7.1/src/drybag/prose.py +175 -0
  140. drybag-0.7.1/src/drybag/release/__init__.py +2 -0
  141. drybag-0.7.1/src/drybag/release/api.py +20 -0
  142. drybag-0.7.1/src/drybag/release/pins.py +15 -0
  143. drybag-0.7.1/src/drybag/result.py +13 -0
  144. drybag-0.7.1/src/drybag/runner.py +141 -0
  145. drybag-0.7.1/src/drybag/scaffold/__init__.py +62 -0
  146. drybag-0.7.1/src/drybag/scaffold/engine.py +187 -0
  147. drybag-0.7.1/src/drybag/scaffold/entries.py +76 -0
  148. drybag-0.7.1/src/drybag/scaffold/manifest.py +171 -0
  149. drybag-0.7.1/src/drybag/scaffold/model.py +80 -0
  150. drybag-0.7.1/src/drybag/scaffold/regions.py +110 -0
  151. drybag-0.7.1/src/drybag/scaffold/report.py +30 -0
  152. drybag-0.7.1/src/drybag/semver.py +125 -0
  153. drybag-0.7.1/src/drybag/setup/__init__.py +7 -0
  154. drybag-0.7.1/src/drybag/setup/api.py +38 -0
  155. drybag-0.7.1/src/drybag/setup/commands.py +414 -0
  156. drybag-0.7.1/src/drybag/setup/machine.py +209 -0
  157. drybag-0.7.1/src/drybag/setup/restore.py +299 -0
  158. drybag-0.7.1/src/drybag/setup/run.py +683 -0
  159. drybag-0.7.1/src/drybag/sync/__init__.py +8 -0
  160. drybag-0.7.1/src/drybag/sync/doctor.py +161 -0
  161. drybag-0.7.1/src/drybag/sync/git.py +170 -0
  162. drybag-0.7.1/src/drybag/sync/hooks.py +46 -0
  163. drybag-0.7.1/src/drybag/sync/job.py +954 -0
  164. drybag-0.7.1/src/drybag/sync/rules.py +357 -0
  165. drybag-0.7.1/src/drybag/sync/scan.py +162 -0
  166. drybag-0.7.1/src/drybag/sync/state.py +342 -0
  167. drybag-0.7.1/src/drybag/sync/trigger.py +139 -0
  168. drybag-0.7.1/src/drybag/templates/__init__.py +1 -0
  169. drybag-0.7.1/src/drybag/templates/overlay/.github/dependabot.yml +15 -0
  170. drybag-0.7.1/src/drybag/templates/overlay/.github/workflows/scan.yml +58 -0
  171. drybag-0.7.1/src/drybag/templates/overlay/.gitignore +6 -0
  172. drybag-0.7.1/src/drybag/templates/overlay/.pre-commit-config.yaml +10 -0
  173. drybag-0.7.1/src/drybag/templates/overlay/README.md +56 -0
  174. drybag-0.7.1/src/drybag/templates/overlay/common/claude/hooks.json +3 -0
  175. drybag-0.7.1/src/drybag/templates/overlay/common/claude/permissions.json +3 -0
  176. drybag-0.7.1/src/drybag/templates/overlay/common/codex/common.rules +2 -0
  177. drybag-0.7.1/src/drybag/templates/overlay/common/memory/_README.md +15 -0
  178. drybag-0.7.1/src/drybag/templates/overlay/drybag-overlay.toml +2 -0
  179. drybag-0.7.1/src/drybag/templates/overlay/projects/README.md +11 -0
  180. drybag-0.7.1/src/drybag/tomlout.py +207 -0
  181. drybag-0.7.1/src/drybag/trust/__init__.py +7 -0
  182. drybag-0.7.1/src/drybag/trust/api.py +49 -0
  183. drybag-0.7.1/src/drybag/trust/boundary.py +132 -0
  184. drybag-0.7.1/src/drybag/trust/record.py +208 -0
  185. drybag-0.7.1/tests/__init__.py +0 -0
  186. drybag-0.7.1/tests/attach/__init__.py +0 -0
  187. drybag-0.7.1/tests/attach/test_binding.py +497 -0
  188. drybag-0.7.1/tests/attach/test_checkout.py +266 -0
  189. drybag-0.7.1/tests/attach/test_commands.py +1022 -0
  190. drybag-0.7.1/tests/attach/test_detach.py +1398 -0
  191. drybag-0.7.1/tests/attach/test_doctor.py +908 -0
  192. drybag-0.7.1/tests/attach/test_hooks.py +557 -0
  193. drybag-0.7.1/tests/attach/test_old_state.py +66 -0
  194. drybag-0.7.1/tests/attach/test_project_choice.py +319 -0
  195. drybag-0.7.1/tests/attach/test_render.py +312 -0
  196. drybag-0.7.1/tests/attach/test_rules.py +201 -0
  197. drybag-0.7.1/tests/attach/test_surface.py +40 -0
  198. drybag-0.7.1/tests/attach/test_tags.py +85 -0
  199. drybag-0.7.1/tests/attach/test_write.py +2672 -0
  200. drybag-0.7.1/tests/boundaries/__init__.py +0 -0
  201. drybag-0.7.1/tests/boundaries/astscan.py +253 -0
  202. drybag-0.7.1/tests/boundaries/test_api_surface.py +187 -0
  203. drybag-0.7.1/tests/boundaries/test_astscan.py +189 -0
  204. drybag-0.7.1/tests/boundaries/test_delivery.py +923 -0
  205. drybag-0.7.1/tests/boundaries/test_discovery.py +331 -0
  206. drybag-0.7.1/tests/boundaries/test_layering.py +300 -0
  207. drybag-0.7.1/tests/cli.py +36 -0
  208. drybag-0.7.1/tests/config/__init__.py +0 -0
  209. drybag-0.7.1/tests/config/test_budgets_raise.py +39 -0
  210. drybag-0.7.1/tests/config/test_classes.py +311 -0
  211. drybag-0.7.1/tests/config/test_deep_toml.py +172 -0
  212. drybag-0.7.1/tests/config/test_loader.py +655 -0
  213. drybag-0.7.1/tests/config/test_loader_note.py +457 -0
  214. drybag-0.7.1/tests/config/test_machine.py +61 -0
  215. drybag-0.7.1/tests/config/test_overlay_layers.py +248 -0
  216. drybag-0.7.1/tests/config/test_overlay_root.py +92 -0
  217. drybag-0.7.1/tests/config/test_owner.py +314 -0
  218. drybag-0.7.1/tests/config/test_paths.py +547 -0
  219. drybag-0.7.1/tests/config/test_plates.py +164 -0
  220. drybag-0.7.1/tests/config/test_schema.py +43 -0
  221. drybag-0.7.1/tests/config/test_session.py +426 -0
  222. drybag-0.7.1/tests/config/test_symlinked_document.py +58 -0
  223. drybag-0.7.1/tests/conftest.py +85 -0
  224. drybag-0.7.1/tests/crafted.py +19 -0
  225. drybag-0.7.1/tests/declarations.py +142 -0
  226. drybag-0.7.1/tests/docs/__init__.py +0 -0
  227. drybag-0.7.1/tests/docs/test_commands.py +343 -0
  228. drybag-0.7.1/tests/docs/test_hygiene.py +279 -0
  229. drybag-0.7.1/tests/docs/test_plans.py +851 -0
  230. drybag-0.7.1/tests/docs/test_prose.py +244 -0
  231. drybag-0.7.1/tests/docs/test_surface.py +22 -0
  232. drybag-0.7.1/tests/docs/test_themes.py +123 -0
  233. drybag-0.7.1/tests/docs/test_trail.py +643 -0
  234. drybag-0.7.1/tests/doctor/__init__.py +0 -0
  235. drybag-0.7.1/tests/doctor/test_checks.py +1366 -0
  236. drybag-0.7.1/tests/doctor/test_command.py +225 -0
  237. drybag-0.7.1/tests/doctor/test_floor_report.py +269 -0
  238. drybag-0.7.1/tests/doctor/test_registry.py +344 -0
  239. drybag-0.7.1/tests/doctor/test_surface.py +51 -0
  240. drybag-0.7.1/tests/fixtures/hostile-project/.claude/settings.json +5 -0
  241. drybag-0.7.1/tests/fixtures/hostile-project/README.md +23 -0
  242. drybag-0.7.1/tests/fixtures/hostile-project/docs/memory/MEMORY.md +4 -0
  243. drybag-0.7.1/tests/fixtures/hostile-project/docs/memory/developer/canary.md +9 -0
  244. drybag-0.7.1/tests/fixtures/hostile-project/docs/memory/volatile/carried.md +10 -0
  245. drybag-0.7.1/tests/fixtures/hostile-project/drybag.toml +13 -0
  246. drybag-0.7.1/tests/fixtures/p6/README.md +71 -0
  247. drybag-0.7.1/tests/fixtures/prepare-commit-msg-0.2.0 +46 -0
  248. drybag-0.7.1/tests/fixtures/smoke-project/.gitignore +4 -0
  249. drybag-0.7.1/tests/fixtures/smoke-project/AGENTS.md +16 -0
  250. drybag-0.7.1/tests/fixtures/smoke-project/CLAUDE.md +1 -0
  251. drybag-0.7.1/tests/fixtures/smoke-project/README.md +5 -0
  252. drybag-0.7.1/tests/fixtures/smoke-project/docs/adr/0000-template.md +22 -0
  253. drybag-0.7.1/tests/fixtures/smoke-project/docs/adr/README.md +4 -0
  254. drybag-0.7.1/tests/fixtures/smoke-project/docs/architecture/README.md +4 -0
  255. drybag-0.7.1/tests/fixtures/smoke-project/docs/architecture/documentation.md +25 -0
  256. drybag-0.7.1/tests/fixtures/smoke-project/docs/memory/MEMORY.md +4 -0
  257. drybag-0.7.1/tests/fixtures/smoke-project/docs/memory/developer/house-style.md +11 -0
  258. drybag-0.7.1/tests/fixtures/smoke-project/docs/memory/volatile/in-flight.md +10 -0
  259. drybag-0.7.1/tests/fixtures/smoke-project/docs/plans/.gitkeep +0 -0
  260. drybag-0.7.1/tests/fixtures/smoke-project/docs/plans/2026-09-19-the-fixtures-own-plan.md +29 -0
  261. drybag-0.7.1/tests/fixtures/smoke-project/docs/plans/README.md +4 -0
  262. drybag-0.7.1/tests/fixtures/smoke-project/docs/roadmap-history.md +4 -0
  263. drybag-0.7.1/tests/fixtures/smoke-project/docs/roadmap.md +25 -0
  264. drybag-0.7.1/tests/fixtures/smoke-project/docs/specs/.gitkeep +0 -0
  265. drybag-0.7.1/tests/fixtures/smoke-project/docs/specs/README.md +4 -0
  266. drybag-0.7.1/tests/fixtures/smoke-project/docs/trail.toml +13 -0
  267. drybag-0.7.1/tests/fixtures/smoke-project/drybag.toml +18 -0
  268. drybag-0.7.1/tests/floor.py +39 -0
  269. drybag-0.7.1/tests/gitfixture.py +268 -0
  270. drybag-0.7.1/tests/guards/__init__.py +0 -0
  271. drybag-0.7.1/tests/guards/test_commands.py +306 -0
  272. drybag-0.7.1/tests/guards/test_commit.py +979 -0
  273. drybag-0.7.1/tests/guards/test_githooks.py +830 -0
  274. drybag-0.7.1/tests/guards/test_surface.py +34 -0
  275. drybag-0.7.1/tests/hints/__init__.py +0 -0
  276. drybag-0.7.1/tests/hints/test_bashscan.py +469 -0
  277. drybag-0.7.1/tests/hints/test_bgcleanup.py +734 -0
  278. drybag-0.7.1/tests/hints/test_hooks.py +472 -0
  279. drybag-0.7.1/tests/hints/test_hygiene.py +130 -0
  280. drybag-0.7.1/tests/hints/test_pipes.py +114 -0
  281. drybag-0.7.1/tests/hints/test_runners.py +57 -0
  282. drybag-0.7.1/tests/hooks/__init__.py +0 -0
  283. drybag-0.7.1/tests/hooks/test_dispatch.py +666 -0
  284. drybag-0.7.1/tests/hooks/test_floor.py +308 -0
  285. drybag-0.7.1/tests/hooks/test_hook_command.py +396 -0
  286. drybag-0.7.1/tests/hooks/test_hooks_json.py +222 -0
  287. drybag-0.7.1/tests/hooks/test_overlay_rules.py +101 -0
  288. drybag-0.7.1/tests/hooks/test_registry.py +85 -0
  289. drybag-0.7.1/tests/hooks/test_sink.py +194 -0
  290. drybag-0.7.1/tests/hooks/test_wrapper.py +538 -0
  291. drybag-0.7.1/tests/memory/__init__.py +0 -0
  292. drybag-0.7.1/tests/memory/test_bundles.py +515 -0
  293. drybag-0.7.1/tests/memory/test_commands.py +674 -0
  294. drybag-0.7.1/tests/memory/test_composed.py +210 -0
  295. drybag-0.7.1/tests/memory/test_doctor.py +262 -0
  296. drybag-0.7.1/tests/memory/test_index.py +1305 -0
  297. drybag-0.7.1/tests/memory/test_notes.py +446 -0
  298. drybag-0.7.1/tests/memory/test_owner_budgets.py +145 -0
  299. drybag-0.7.1/tests/memory/test_remote_binding.py +143 -0
  300. drybag-0.7.1/tests/memory/test_reviewed.py +296 -0
  301. drybag-0.7.1/tests/memory/test_store.py +818 -0
  302. drybag-0.7.1/tests/memory/test_surface.py +74 -0
  303. drybag-0.7.1/tests/memory/test_trust.py +51 -0
  304. drybag-0.7.1/tests/outbound/__init__.py +0 -0
  305. drybag-0.7.1/tests/outbound/policy.py +348 -0
  306. drybag-0.7.1/tests/outbound/walk.py +920 -0
  307. drybag-0.7.1/tests/overlay/__init__.py +0 -0
  308. drybag-0.7.1/tests/overlay/test_create.py +651 -0
  309. drybag-0.7.1/tests/overlay/test_doctor.py +263 -0
  310. drybag-0.7.1/tests/overlay/test_requires.py +221 -0
  311. drybag-0.7.1/tests/overlay/test_surface.py +56 -0
  312. drybag-0.7.1/tests/overlay/test_sync.py +62 -0
  313. drybag-0.7.1/tests/overlay/test_template.py +526 -0
  314. drybag-0.7.1/tests/overlay/test_upgrade.py +220 -0
  315. drybag-0.7.1/tests/parserlimits.py +57 -0
  316. drybag-0.7.1/tests/pathfaults.py +198 -0
  317. drybag-0.7.1/tests/plugintree.py +218 -0
  318. drybag-0.7.1/tests/release/__init__.py +0 -0
  319. drybag-0.7.1/tests/release/test_surface.py +23 -0
  320. drybag-0.7.1/tests/runners.py +136 -0
  321. drybag-0.7.1/tests/sandboxed.py +51 -0
  322. drybag-0.7.1/tests/scaffold/__init__.py +0 -0
  323. drybag-0.7.1/tests/scaffold/test_containment.py +292 -0
  324. drybag-0.7.1/tests/scaffold/test_engine.py +393 -0
  325. drybag-0.7.1/tests/scaffold/test_entries.py +154 -0
  326. drybag-0.7.1/tests/scaffold/test_manifest.py +224 -0
  327. drybag-0.7.1/tests/scaffold/test_model.py +52 -0
  328. drybag-0.7.1/tests/scaffold/test_regions.py +146 -0
  329. drybag-0.7.1/tests/scaffold/test_report.py +48 -0
  330. drybag-0.7.1/tests/scaffold/test_surface.py +63 -0
  331. drybag-0.7.1/tests/scaffold/test_writes.py +166 -0
  332. drybag-0.7.1/tests/scriptload.py +97 -0
  333. drybag-0.7.1/tests/scripts/__init__.py +0 -0
  334. drybag-0.7.1/tests/scripts/test_check_artifacts.py +249 -0
  335. drybag-0.7.1/tests/scripts/test_mutation_oracle.py +1286 -0
  336. drybag-0.7.1/tests/scripts/test_plugin_tree.py +1290 -0
  337. drybag-0.7.1/tests/scripts/test_publish_plugin.py +2142 -0
  338. drybag-0.7.1/tests/scripts/test_publish_template.py +401 -0
  339. drybag-0.7.1/tests/scripts/test_release.py +1375 -0
  340. drybag-0.7.1/tests/scripts/test_script_imports.py +75 -0
  341. drybag-0.7.1/tests/scripts/test_smoke_scripts.py +401 -0
  342. drybag-0.7.1/tests/sessions.py +24 -0
  343. drybag-0.7.1/tests/setup/__init__.py +0 -0
  344. drybag-0.7.1/tests/setup/test_approval_boundary.py +221 -0
  345. drybag-0.7.1/tests/setup/test_commands.py +376 -0
  346. drybag-0.7.1/tests/setup/test_git_hooks.py +295 -0
  347. drybag-0.7.1/tests/setup/test_machine.py +263 -0
  348. drybag-0.7.1/tests/setup/test_restore.py +701 -0
  349. drybag-0.7.1/tests/setup/test_setup.py +1839 -0
  350. drybag-0.7.1/tests/setup/test_surface.py +27 -0
  351. drybag-0.7.1/tests/skills/__init__.py +0 -0
  352. drybag-0.7.1/tests/skills/test_skills.py +185 -0
  353. drybag-0.7.1/tests/snapshot.py +104 -0
  354. drybag-0.7.1/tests/sync/__init__.py +0 -0
  355. drybag-0.7.1/tests/sync/conftest.py +429 -0
  356. drybag-0.7.1/tests/sync/test_commit.py +621 -0
  357. drybag-0.7.1/tests/sync/test_doctor.py +416 -0
  358. drybag-0.7.1/tests/sync/test_git.py +282 -0
  359. drybag-0.7.1/tests/sync/test_hooks.py +530 -0
  360. drybag-0.7.1/tests/sync/test_integrate.py +1122 -0
  361. drybag-0.7.1/tests/sync/test_push.py +680 -0
  362. drybag-0.7.1/tests/sync/test_rules.py +700 -0
  363. drybag-0.7.1/tests/sync/test_run.py +424 -0
  364. drybag-0.7.1/tests/sync/test_scan.py +363 -0
  365. drybag-0.7.1/tests/sync/test_state.py +465 -0
  366. drybag-0.7.1/tests/tagged.py +28 -0
  367. drybag-0.7.1/tests/test_binding.py +160 -0
  368. drybag-0.7.1/tests/test_binding_answers.py +61 -0
  369. drybag-0.7.1/tests/test_ci_scope.py +243 -0
  370. drybag-0.7.1/tests/test_cli.py +347 -0
  371. drybag-0.7.1/tests/test_command.py +166 -0
  372. drybag-0.7.1/tests/test_documents.py +999 -0
  373. drybag-0.7.1/tests/test_findings.py +59 -0
  374. drybag-0.7.1/tests/test_fixtures.py +713 -0
  375. drybag-0.7.1/tests/test_floor.py +71 -0
  376. drybag-0.7.1/tests/test_fork_points.py +97 -0
  377. drybag-0.7.1/tests/test_fsops.py +1072 -0
  378. drybag-0.7.1/tests/test_git_answers.py +227 -0
  379. drybag-0.7.1/tests/test_git_run.py +484 -0
  380. drybag-0.7.1/tests/test_gitfixture.py +236 -0
  381. drybag-0.7.1/tests/test_harnesses.py +349 -0
  382. drybag-0.7.1/tests/test_install_path.py +673 -0
  383. drybag-0.7.1/tests/test_language_neutral.py +181 -0
  384. drybag-0.7.1/tests/test_launcher.py +96 -0
  385. drybag-0.7.1/tests/test_manifests.py +178 -0
  386. drybag-0.7.1/tests/test_name.py +58 -0
  387. drybag-0.7.1/tests/test_neutral.py +633 -0
  388. drybag-0.7.1/tests/test_outbound.py +758 -0
  389. drybag-0.7.1/tests/test_patterns.py +611 -0
  390. drybag-0.7.1/tests/test_payload.py +575 -0
  391. drybag-0.7.1/tests/test_printed.py +126 -0
  392. drybag-0.7.1/tests/test_processes.py +79 -0
  393. drybag-0.7.1/tests/test_public_anchors.py +352 -0
  394. drybag-0.7.1/tests/test_runner.py +162 -0
  395. drybag-0.7.1/tests/test_semver.py +82 -0
  396. drybag-0.7.1/tests/test_snapshot.py +110 -0
  397. drybag-0.7.1/tests/test_surfaces.py +204 -0
  398. drybag-0.7.1/tests/test_tomlout.py +171 -0
  399. drybag-0.7.1/tests/test_undecodable.py +317 -0
  400. drybag-0.7.1/tests/test_workflow_yaml.py +137 -0
  401. drybag-0.7.1/tests/test_workflows.py +1080 -0
  402. drybag-0.7.1/tests/trust/__init__.py +0 -0
  403. drybag-0.7.1/tests/trust/test_boundary.py +53 -0
  404. drybag-0.7.1/tests/trust/test_record.py +401 -0
  405. drybag-0.7.1/tests/trust/test_surface.py +66 -0
  406. drybag-0.7.1/tests/workflow_yaml.py +256 -0
Binary file
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "drybag",
3
+ "description": "drybag, private layers for coding agents, published from its own repository.",
4
+ "owner": {
5
+ "name": "drybag"
6
+ },
7
+ "plugins": [
8
+ {
9
+ "name": "drybag",
10
+ "source": {
11
+ "source": "url",
12
+ "url": "https://github.com/dry-bag/drybag-plugin.git",
13
+ "ref": "v0.7.1",
14
+ "sha": "48a20a428a4427cf7d5073e3a98bc8a71b96de8a"
15
+ },
16
+ "description": "Private layers for coding agents, delivered into their sessions with nothing tracked in the project: memory and note sync, machine restore, session hints, plan and doc linting, and a commit-attribution check."
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "drybag",
3
+ "version": "0.7.1",
4
+ "description": "Private layers for coding agents, delivered into their sessions with nothing tracked in the project: memory and note sync, machine restore, session hints, plan and doc linting, and a commit-attribution check.",
5
+ "author": { "name": "Nezhinskiy" },
6
+ "repository": "https://github.com/dry-bag/drybag",
7
+ "license": "MIT",
8
+ "keywords": ["overlay", "memory", "sync", "hooks", "codex"],
9
+ "userConfig": {
10
+ "preset": {
11
+ "type": "string",
12
+ "title": "Preset",
13
+ "description": "Preset applied by setup.",
14
+ "default": "recommended"
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "drybag",
3
+ "version": "0.7.1",
4
+ "description": "Private layers for coding agents, delivered into their sessions with nothing tracked in the project: memory and note sync, machine restore, session hints, plan and doc linting, and a commit-attribution check.",
5
+ "author": { "name": "Nezhinskiy" },
6
+ "repository": "https://github.com/dry-bag/drybag",
7
+ "license": "MIT",
8
+ "interface": {
9
+ "displayName": "drybag",
10
+ "shortDescription": "Private layers, memory and note sync for coding agents",
11
+ "developerName": "Nezhinskiy",
12
+ "category": "Developer Tools"
13
+ }
14
+ }