flowjet 2.1.7__tar.gz → 2.1.9__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 (280) hide show
  1. {flowjet-2.1.7 → flowjet-2.1.9}/CHANGELOG.md +32 -0
  2. {flowjet-2.1.7 → flowjet-2.1.9}/PKG-INFO +1 -1
  3. {flowjet-2.1.7 → flowjet-2.1.9}/pyproject.toml +1 -1
  4. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/LICENSE +21 -0
  5. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/SKILL.md +107 -0
  6. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/agents/openai.yaml +8 -0
  7. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/autoresearch.md +110 -0
  8. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/debug.md +97 -0
  9. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/evals.md +118 -0
  10. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/fix.md +102 -0
  11. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/improve.md +116 -0
  12. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/learn.md +136 -0
  13. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/plan.md +95 -0
  14. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/predict.md +94 -0
  15. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/probe.md +116 -0
  16. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/reason.md +109 -0
  17. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/references/orchestrator-routing.md +89 -0
  18. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/references/predict-personas.md +65 -0
  19. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/references/reason-judge-protocol.md +87 -0
  20. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/references/security-checklist.md +76 -0
  21. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/regression.md +110 -0
  22. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/scenario.md +106 -0
  23. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/scripts/orchestrate.sh +448 -0
  24. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/scripts/score-regression.sh +205 -0
  25. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/security.md +101 -0
  26. flowjet-2.1.9/src/flowjet/builtin_skills/autoresearch/ship.md +120 -0
  27. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/SKILL.md +184 -0
  28. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/plans/brief-template.md +40 -0
  29. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/plans/decision-template.md +51 -0
  30. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/plans/evidence-map-template.md +36 -0
  31. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/plans/judgment-template.md +42 -0
  32. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/plans/plan-template.md +27 -0
  33. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/synth/_citation-map.md +13 -0
  34. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/synth/_continuity.md +64 -0
  35. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/synth/_document.json +44 -0
  36. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/synth/_narrative-audit.md +30 -0
  37. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/synth/_outline.md +67 -0
  38. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/templates/AGENTS.md.template +76 -0
  39. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/templates/idea-note-template.md +27 -0
  40. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/templates/tree-state.json +6 -0
  41. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/assets/think/methods.csv +31 -0
  42. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/evidence-deep.json +34 -0
  43. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/evidence-first.json +21 -0
  44. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/idea-first.json +27 -0
  45. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/loop.json +42 -0
  46. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/rapid.json +19 -0
  47. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/patterns/stance-first.json +26 -0
  48. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/ANALYZE/analyze.md +187 -0
  49. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/COLLECT/agents/bucket-worker.md +78 -0
  50. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/COLLECT/collect.md +198 -0
  51. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/DECIDE/decide.md +33 -0
  52. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/GATES.md +429 -0
  53. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/GRAPH.md +144 -0
  54. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/IDEA/idea.md +28 -0
  55. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/INIT/init.md +47 -0
  56. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/LANGUAGE.md +133 -0
  57. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/LLM-STATE.md +223 -0
  58. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/RECONCILE/reconcile.md +34 -0
  59. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/REFERENCE.md +120 -0
  60. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/SYNTH/long-report.md +335 -0
  61. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/SYNTH/narrative-coherence.md +200 -0
  62. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/SYNTH/native-expression.md +132 -0
  63. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/SYNTH/synth.md +242 -0
  64. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/README.md +55 -0
  65. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/abstraction-laddering.md +29 -0
  66. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/assumption-audit.md +66 -0
  67. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/chain-of-thought.md +29 -0
  68. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/comparative-analysis-matrix.md +29 -0
  69. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/critique-and-refine.md +29 -0
  70. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/explain-reasoning.md +29 -0
  71. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/feynman-technique.md +29 -0
  72. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/first-principles.md +71 -0
  73. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/inversion.md +29 -0
  74. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/literature-review-personas.md +30 -0
  75. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/occams-razor.md +29 -0
  76. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/pre-mortem.md +66 -0
  77. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/problem-decomposition.md +29 -0
  78. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/red-team-vs-blue-team.md +64 -0
  79. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/reframe-the-question.md +30 -0
  80. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/second-order-thinking.md +64 -0
  81. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/socratic-questioning.md +30 -0
  82. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/source-triangulation.md +68 -0
  83. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/steelmanning.md +64 -0
  84. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods/thesis-defense.md +30 -0
  85. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/methods.md +55 -0
  86. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/THINK/think.md +94 -0
  87. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/VERSION/version.md +105 -0
  88. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/WORKFLOW/workflow-overview.md +111 -0
  89. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/references/WORKFLOW/workflow-phases.md +75 -0
  90. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/README.md +70 -0
  91. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/collect_cli.py +436 -0
  92. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/export_report.py +2402 -0
  93. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/material_to_markdown.py +694 -0
  94. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/prefer_language.py +526 -0
  95. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/prose_lint.py +492 -0
  96. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/report_lint.py +257 -0
  97. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/requirements.txt +2 -0
  98. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/skill_version.py +301 -0
  99. flowjet-2.1.9/src/flowjet/builtin_skills/oh-my-research/scripts/version_control.py +145 -0
  100. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/SKILL.md +44 -18
  101. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/brainstorming/spec-document-reviewer-prompt.md +1 -1
  102. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/implementation/impl-guide-template.md +70 -3
  103. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-drafts-readme.md +2 -2
  104. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-namespace-index.md +42 -0
  105. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-platonic.yml +53 -0
  106. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-history.md +0 -1
  107. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-index.md +77 -0
  108. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-namings.md +0 -1
  109. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-standard.md +44 -6
  110. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/BRAINSTORM/brainstorm.md +36 -24
  111. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-code.md +14 -13
  112. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-create-guide.md +16 -10
  113. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-full.md +48 -0
  114. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-update-guide.md +1 -1
  115. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-validate-guide.md +4 -4
  116. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-plan-modular-specs.md +29 -14
  117. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-scaffold.md +27 -26
  118. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-scan.md +5 -3
  119. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/REFERENCE.md +223 -0
  120. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/REVIEW/review-spec-compliance.md +2 -2
  121. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-check-compliance.md +175 -0
  122. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-check-taxonomy.md +1 -1
  123. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-history.md +6 -5
  124. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-index.md +92 -0
  125. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-namings.md +3 -3
  126. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-partition.md +161 -0
  127. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-refine.md +16 -7
  128. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-validate-consistency.md +18 -15
  129. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-overview.md +16 -14
  130. flowjet-2.1.9/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-1.md +25 -0
  131. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-2.md +6 -7
  132. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-3.md +6 -6
  133. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/workspace.py +70 -6
  134. flowjet-2.1.7/src/flowjet/builtin_skills/README.md +0 -10
  135. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/assets/implementation/coding-plan-template.md +0 -82
  136. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-platonic.yml +0 -22
  137. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-index.md +0 -57
  138. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-full.md +0 -51
  139. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/references/REFERENCE.md +0 -180
  140. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-check-compliance.md +0 -160
  141. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-index.md +0 -119
  142. flowjet-2.1.7/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-1.md +0 -25
  143. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/SKILL.md +0 -109
  144. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/evidence-deep.json +0 -41
  145. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/evidence-first.json +0 -36
  146. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/idea-first.json +0 -40
  147. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/loop.json +0 -44
  148. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/paper-pipeline.json +0 -38
  149. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/rapid.json +0 -30
  150. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/rigor-first.json +0 -42
  151. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/stance-first.json +0 -39
  152. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/systematic-review.json +0 -47
  153. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/patterns/verify-loop.json +0 -42
  154. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/references/backends.md +0 -72
  155. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/references/handoff-ars-omr.md +0 -44
  156. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/references/handoff-omr-ars.md +0 -51
  157. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/references/routing.md +0 -51
  158. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/scripts/csljson_to_omr.py +0 -136
  159. flowjet-2.1.7/src/flowjet/builtin_skills/research-bootstrap/scripts/papers_index_to_csljson.py +0 -199
  160. {flowjet-2.1.7 → flowjet-2.1.9}/.gitignore +0 -0
  161. {flowjet-2.1.7 → flowjet-2.1.9}/LICENSE +0 -0
  162. {flowjet-2.1.7 → flowjet-2.1.9}/README.md +0 -0
  163. {flowjet-2.1.7 → flowjet-2.1.9}/config/nano-local.yml +0 -0
  164. {flowjet-2.1.7 → flowjet-2.1.9}/config/nano-sandbox-soothe.yml +0 -0
  165. {flowjet-2.1.7 → flowjet-2.1.9}/config/nano.yml +0 -0
  166. {flowjet-2.1.7 → flowjet-2.1.9}/deploy/README.md +0 -0
  167. {flowjet-2.1.7 → flowjet-2.1.9}/docs/completion-design.md +0 -0
  168. {flowjet-2.1.7 → flowjet-2.1.9}/docs/impl/IG-001-openai-compatible-server.md +0 -0
  169. {flowjet-2.1.7 → flowjet-2.1.9}/docs/impl/IG-002-isolated-thread-pool-runtime.md +0 -0
  170. {flowjet-2.1.7 → flowjet-2.1.9}/docs/impl/IG-003-production-isolation-hardening.md +0 -0
  171. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/RFC-001-openai-compatible-api.md +0 -0
  172. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/RFC-002-isolated-thread-pool-runtime.md +0 -0
  173. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/RFC-003-production-isolation-hardening.md +0 -0
  174. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/RFC-004-unified-package.md +0 -0
  175. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/RFC-005-arcbox-tool-sandbox.md +0 -0
  176. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/rfc-history.md +0 -0
  177. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/rfc-index.md +0 -0
  178. {flowjet-2.1.7 → flowjet-2.1.9}/docs/specs/rfc-namings.md +0 -0
  179. {flowjet-2.1.7 → flowjet-2.1.9}/examples/README.md +0 -0
  180. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/__init__.py +0 -0
  181. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/__main__.py +0 -0
  182. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/gws-drive/SKILL.md +0 -0
  183. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/gws-drive-upload/SKILL.md +0 -0
  184. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/.env.example +0 -0
  185. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/README.md +0 -0
  186. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/SKILL.md +0 -0
  187. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/assets/background_library.html +0 -0
  188. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/assets/showcase_template.html +0 -0
  189. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/references/background_styles.md +0 -0
  190. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/references/design_patterns.md +0 -0
  191. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/references/webgl_backgrounds.md +0 -0
  192. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/requirements.txt +0 -0
  193. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/scripts/generate_showcase.py +0 -0
  194. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/logo-generator-skill/scripts/svg_to_png.py +0 -0
  195. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/review/pr-review-template.md +0 -0
  196. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/review/review-checklist.md +0 -0
  197. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/rfc-template.md +0 -0
  198. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-architecture-design.md +0 -0
  199. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-conceptual-design.md +0 -0
  200. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-impl-interface-design.md +0 -0
  201. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-impl-readme.md +0 -0
  202. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-architecture.md +0 -0
  203. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-conceptual.md +0 -0
  204. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-impl-interface.md +0 -0
  205. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/__init__.py +0 -0
  206. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/__main__.py +0 -0
  207. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/agent.py +0 -0
  208. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/cli.py +0 -0
  209. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/completion/__init__.py +0 -0
  210. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/completion/context.py +0 -0
  211. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/completion/engine.py +0 -0
  212. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/doctor_cmd.py +0 -0
  213. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/doctor_fix_cmd.py +0 -0
  214. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/progress.py +0 -0
  215. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/serve_cmd.py +0 -0
  216. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/setup_cmd.py +0 -0
  217. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/shell/__init__.py +0 -0
  218. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/shell/_fj.zsh +0 -0
  219. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/shell/fj.bash +0 -0
  220. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/stream.py +0 -0
  221. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/threads.py +0 -0
  222. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/cli/tool_stream.py +0 -0
  223. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/__init__.py +0 -0
  224. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/_warnings.py +0 -0
  225. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/__init__.py +0 -0
  226. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/config.py +0 -0
  227. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/factory.py +0 -0
  228. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/skills.py +0 -0
  229. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/agent/wiring.py +0 -0
  230. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/backend_config.py +0 -0
  231. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/base.py +0 -0
  232. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/nano/__init__.py +0 -0
  233. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/nano/adapter.py +0 -0
  234. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/nano/backend.py +0 -0
  235. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/nano/interrupts.py +0 -0
  236. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/nano/mapping.py +0 -0
  237. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/soothe/__init__.py +0 -0
  238. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/soothe/adapter.py +0 -0
  239. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/bridges/soothe/backend.py +0 -0
  240. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/events.py +0 -0
  241. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/identity.py +0 -0
  242. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/modes.py +0 -0
  243. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/protocol.py +0 -0
  244. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/__init__.py +0 -0
  245. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/direct.py +0 -0
  246. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/fake.py +0 -0
  247. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/__init__.py +0 -0
  248. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/adapter.py +0 -0
  249. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/admission.py +0 -0
  250. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/backend.py +0 -0
  251. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/errors.py +0 -0
  252. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/mode_gate.py +0 -0
  253. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/pool.py +0 -0
  254. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/request.py +0 -0
  255. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/runtime/isolation/workspace.py +0 -0
  256. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/sandbox/__init__.py +0 -0
  257. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/sandbox/arbox.py +0 -0
  258. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/sandbox/resolver.py +0 -0
  259. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/sandbox/settings.py +0 -0
  260. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/streaming/__init__.py +0 -0
  261. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/streaming/presentation.py +0 -0
  262. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/streaming/tool_results.py +0 -0
  263. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/core/streaming/tool_stream.py +0 -0
  264. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/home.py +0 -0
  265. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/__init__.py +0 -0
  266. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/__main__.py +0 -0
  267. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/acp/__init__.py +0 -0
  268. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/acp/agent.py +0 -0
  269. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/acp/routes.py +0 -0
  270. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/config.py +0 -0
  271. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/http/__init__.py +0 -0
  272. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/http/app.py +0 -0
  273. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/http/auth.py +0 -0
  274. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/__init__.py +0 -0
  275. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/errors.py +0 -0
  276. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/projection.py +0 -0
  277. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/routes.py +0 -0
  278. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/schemas.py +0 -0
  279. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/service.py +0 -0
  280. {flowjet-2.1.7 → flowjet-2.1.9}/src/flowjet/server/openai_compat/store.py +0 -0
@@ -10,6 +10,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [2.1.9] — 2026-10-27
14
+
15
+ ### Changed
16
+
17
+ - **Refreshed builtin skills bundle.** Shipped two new research skills and
18
+ retired a stale one: added `autoresearch` (an autonomous research loop with an
19
+ orchestrator, scoring, and a security checklist) and `oh-my-research` (a
20
+ structured evidence → synthesis pipeline with scripts and pattern presets),
21
+ and removed the superseded `research-bootstrap` skill. The `platonic-coding`
22
+ skill was reworked — its spec/IMPL/WORKFLOW references were tightened, a new
23
+ `specs-partition.md` reference added, and the old `coding-plan-template.md` /
24
+ `impl-guide-template.md` drafts dropped in favor of the consolidated template
25
+ namespace. The top-level `builtin_skills/README.md` (a stale pointer) was
26
+ removed; skills are still auto-registered via `register_builtin_skill_root`.
27
+
28
+ ## [2.1.8] — 2026-10-26
29
+
30
+ ### Fixed
31
+
32
+ - **PostgreSQL checkpointer is now wired for the server surface.**
33
+ `Checkpointers.open()` (the `/v1/responses` + ACP server path) used to warn
34
+ “Checkpointer backend 'postgresql' is not wired for the flowjet server surface
35
+ yet” and yield `None`, so thread state never survived a turn — a deployment
36
+ whose `persistence.default_backend` is `postgresql` silently ran every turn as
37
+ a fresh conversation. It now builds an `AsyncPostgresSaver` on nano's shared
38
+ checkpoints pool (`resolve_checkpointer()` → `(None, pool)`), opens the pool,
39
+ and runs `setup()` once per process under nano's advisory lock
40
+ (`SharedCheckpointerPool.setup_checkpointer`), so concurrent workers cannot
41
+ race LangGraph's DDL. The shared pool is deliberately **not** closed on exit
42
+ (it is process-wide). Failure still degrades to “no persistence” with a
43
+ warning instead of failing startup; unknown backends keep the old behavior.
44
+
13
45
  ## [2.1.7] — 2026-10-25
14
46
 
15
47
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: flowjet
3
- Version: 2.1.7
3
+ Version: 2.1.9
4
4
  Summary: FlowJet — a fast, open agent runtime for CLI and HTTP, powered by Soothe
5
5
  Project-URL: Homepage, https://github.com/caesar0301/flowjet
6
6
  Project-URL: Repository, https://github.com/caesar0301/flowjet
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "flowjet"
7
- version = "2.1.7"
7
+ version = "2.1.9"
8
8
  description = "FlowJet — a fast, open agent runtime for CLI and HTTP, powered by Soothe"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Udit Goenka
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.
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: autoresearch
3
+ description: "Autonomous iteration loop: modify, verify, keep/discard against any metric"
4
+ version: 2.2.2
5
+ ---
6
+
7
+ # Autoresearch — Autonomous Goal-directed Iteration
8
+
9
+ ## Safety Invariants (all subcommands)
10
+ - Never push, publish, or deploy without explicit user approval.
11
+ - Bounded by default. Override with `Iterations: unlimited`.
12
+ - All results logged to `autoresearch/{subcommand}-{YYMMDD}-{HHMM}/` directory.
13
+ - Chain handoff via `handoff.json`. Evals reads `*-results.tsv`.
14
+
15
+ ## Dispatch (bare `$autoresearch`)
16
+
17
+ Parse the invocation in this order:
18
+
19
+ | Condition | Mode |
20
+ |---|---|
21
+ | `Metric:` or `Verify:` present | **Classic** — existing metric loop, unchanged |
22
+ | Free-form natural-language goal, no metric/verify | **Orchestrator** — see Orchestrator section |
23
+ | Nothing | **Setup wizard** — interactive config builder |
24
+ | `--classic` flag | Force Classic regardless of goal text |
25
+ | `--auto` flag | Force Orchestrator regardless of goal text |
26
+
27
+ Print a banner on every invocation: `[autoresearch] mode: classic | orchestrator | wizard`.
28
+
29
+ ## Subcommands
30
+
31
+ | Command | Does | Default Iterations |
32
+ |---|---|---|
33
+ | `$autoresearch` | Iterate against a metric: modify → verify → keep/discard | 25 |
34
+ | `$autoresearch plan` | Convert a goal into validated Scope, Metric, Verify config | N/A |
35
+ | `$autoresearch debug` | Hunt bugs: hypothesize → test → falsify → repeat | 15 |
36
+ | `$autoresearch fix` | Crush errors one-by-one until zero remain | 20 |
37
+ | `$autoresearch security` | STRIDE + OWASP audit with red-team personas | 15 |
38
+ | `$autoresearch ship` | Ship through 8 phases: checklist → dry-run → deploy → verify | N/A |
39
+ | `$autoresearch scenario` | Generate edge cases across 12 dimensions | 20 |
40
+ | `$autoresearch predict` | 5 expert personas debate before implementation | N/A |
41
+ | `$autoresearch learn` | Scout codebase → generate docs or wiki → validate → fix loop | 10 |
42
+ | `$autoresearch reason` | Adversarial debate with blind judges until convergence | 8 |
43
+ | `$autoresearch probe` | 8 personas interrogate requirements until saturation | 15 |
44
+ | `$autoresearch improve` | Research ICP challenges, discover improvements, generate PRDs | 15 |
45
+ | `$autoresearch evals` | Analyze iteration results: trends, plateaus, regressions | N/A |
46
+ | `$autoresearch regression` | Regression stability gate: baseline vs candidate, verdict STABLE/UNSTABLE | N/A |
47
+
48
+ ## Universal Flags
49
+
50
+ | Flag | Applies To | Purpose |
51
+ |---|---|---|
52
+ | `Iterations: N` | All looping | Set iteration count |
53
+ | `Iterations: unlimited` | All looping | Opt-in unbounded |
54
+ | `--evals` | All looping | Mid-loop checkpoints + final summary |
55
+ | `--evals-interval N` | All looping | Override checkpoint frequency |
56
+ | `--chain <targets>` | All | Sequential handoff after completion |
57
+ | `--<subcommand>` | All | Shorthand for `--chain <subcommand>` |
58
+ | `--dry-run` | Orchestrator | Print derived config + planned pipeline; no execution |
59
+ | `--max-cycles N` | Orchestrator | Hard ceiling on orchestration cycles (default 50) |
60
+ | `--classic` | Bare `$autoresearch` | Force Classic metric-loop mode |
61
+ | `--auto` | Bare `$autoresearch` | Force Orchestrator mode |
62
+
63
+ ## Orchestrator
64
+
65
+ Activated when a plain-language goal is given without `Metric:`/`Verify:`. Classifies the goal into a **Goal archetype** — see `references/orchestrator-routing.md` for the archetype table and router decision table.
66
+
67
+ Resolve every `scripts/...` path below relative to this installed skill directory, never relative to the caller's working directory.
68
+
69
+ **Two modes based on archetype:**
70
+ - **Orchestration loop** — predicate-bearing archetypes (ship-ready, optimize-metric, fix-broken, harden, build-feature, explore). Goal has a mechanical Success predicate; the loop runs until that predicate is met.
71
+ - **Single-pass dispatch** — subjective/terminal archetypes (document, what-to-build, decide-design). Routes once to the fitting subcommand (learn / improve / reason), lets it self-terminate, then reports. No loop, no Plateau, no ship gate.
72
+
73
+ ### Orchestration Loop Steps
74
+
75
+ Backed by `scripts/orchestrate.sh` (deterministic seam — all routing logic lives there). Subcommands exposed: `classify`, `next-hop`, `units`, `plateau`, `screen-cmd`, `verdict`, `validate-state`, `screen-state-predicate`.
76
+
77
+ 1. **Classify** — `scripts/orchestrate.sh classify "<goal>"` → archetype label + mode.
78
+ 2. **Derive predicate** — reuse `plan` logic to produce a concrete Success predicate: exact shell command + expected output. For `optimize-metric`, run the full plan/wizard derivation internally.
79
+ 3. **Confirm** — ONE `request_user_input` showing: archetype, mode, concrete predicate (command + expected output), terminal choice (stop-at-verified vs proceed-to-ship). Misclassifications are caught here, not mid-run.
80
+ 4. **Round-0 dry-run** — prove the predicate command runs and returns a value; safety-screen every derived command via `screen-cmd`; print projected cycle budget. Stop here if `--dry-run`.
81
+ 5. **Loop** until predicate satisfied:
82
+ a. Assess state via cheap signals (last `handoff.json`, regression verdict, error count) + affected-test verify.
83
+ b. `scripts/orchestrate.sh next-hop orchestrator-state.json` → next subcommand.
84
+ c. Run subcommand (its own bounded inner loop).
85
+ d. Record per-hop outcome ∈ {progressed, no-op, failed, blocked}.
86
+ e. Fold hop's `handoff.json` into `orchestrator-state.json`.
87
+ f. `scripts/orchestrate.sh units` → recompute **Units remaining**.
88
+ 6. **Stop conditions** (checked after each hop):
89
+ - Predicate met → ship gate (only if ship is in the pipeline) else `CONVERGED`.
90
+ - `scripts/orchestrate.sh plateau orchestrator-state.json` → true → stop + report `PLATEAU`.
91
+ - Cycles > ceiling (default 50, override `--max-cycles N`) → stop + report `CEILING`.
92
+ - Hop outcome `blocked`/`failed` with no alternative route → checkpoint + stop + report `BLOCKED`.
93
+
94
+ ### Orchestrator State
95
+
96
+ `orchestrator-state.json` — orchestrator-owned, additive. Tracks: goal, archetype, predicate, terminal-choice, `units_remaining` history, cycle count, per-hop pipeline log with outcomes, current incumbent. Each hop's `handoff.json` is unchanged (single-hop bridge); the orchestrator reads it and folds it in. Two clearly-owned state objects, no overlap.
97
+
98
+ ### Orchestrator Safety Invariants
99
+
100
+ - **Never auto-approve ship/deploy/push.** The orchestrator never passes `--auto` to `ship`; deploy always requires explicit user approval.
101
+ - **Data-migration behind anchored DB-URL allowlist.** Reuses regression's allowlist — host must be `localhost`/`127.0.0.1`/container hostname, or database name carries `_test`/`_ci` suffix. Bare substring match does not qualify. Anything else refused.
102
+ - **screen-cmd on every derived command** — run before the loop starts AND on every command read from a persisted state file on resume. Persisted commands are never trusted; resume re-screens the pinned predicate via `screen-state-predicate` and refuses on `refuse`.
103
+ - **No un-screened commands mid-loop.** The autonomous loop cannot introduce new shell commands that bypass `screen-cmd`.
104
+ - **Predicate pinned, not re-derived.** Round-0 writes the derived Success predicate verbatim into `orchestrator-state.json`; every cycle and every resume reuses that exact string so "done" is reproducible across runs.
105
+ - **Validate the ledger before routing.** `validate-state` gates `orchestrator-state.json` (required fields + coarse types); a malformed ledger is not trusted to route from.
106
+ - **Independent verify before convergence.** High-impact changes accepted on the working signal set `pending_verify`; `next-hop` routes to a `verify` hop (held-out / adversarial check) before `DONE` or ship. The verify hop never auto-approves ship.
107
+ - **Unknown-units cycles excluded from Plateau counter.** A cycle where `units` returns `unknown` (e.g. runner crash) is not counted as zero-progress; repeated `unknown` routes to `BLOCKED`.
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Autoresearch"
3
+ short_description: "Autonomous goal-directed iteration engine"
4
+ brand_color: "#7C3AED"
5
+ default_prompt: "Set a goal, define a metric, let Codex loop until done"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: autoresearch
3
+ description: "Autonomous iteration loop: modify, verify, keep/discard against any metric"
4
+ argument-hint: "[Goal: <text>] [Scope: <glob>] [Metric: <text>] [Verify: <cmd>] [Guard: <cmd>] [Iterations: N] [--evals]"
5
+ ---
6
+
7
+ EXECUTE IMMEDIATELY — do not deliberate before reading this protocol.
8
+
9
+ ## Parse Arguments
10
+
11
+ Extract from $ARGUMENTS:
12
+ - `Goal:` — what to improve
13
+ - `Scope:` or `--scope` — file globs
14
+ - `Metric:` — what to measure
15
+ - `Direction:` — higher_is_better (default) or lower_is_better
16
+ - `Verify:` — shell command that outputs a number
17
+ - `Guard:` — optional safety command (must always pass)
18
+ - `Iterations:` or `--iterations` — integer N for bounded mode (default: 25). "unlimited" for unbounded.
19
+ - `--evals` — enable mid-loop checkpoints
20
+ - `--evals-interval N` — checkpoint frequency override
21
+ - `--chain <targets>` — comma-separated downstream commands
22
+
23
+ ## Setup (if required context missing)
24
+
25
+ If Goal, Scope, Metric, or Verify missing → use request_user_input (single batched call):
26
+ Q1 (Goal): "What do you want to improve?"
27
+ Q2 (Scope): "Which files?" — suggest globs from project
28
+ Q3 (Metric+Verify): "How to measure? Provide a shell command that outputs a number"
29
+ Q4 (Guard): "Safety command that must always pass?" — options: test cmd, build cmd, skip
30
+ If ALL provided inline → skip setup, proceed directly.
31
+
32
+ ## Precondition Checks
33
+
34
+ 1. Verify git repo exists (`git rev-parse --git-dir`)
35
+ 2. Check clean working tree (`git status --porcelain`) — warn if dirty
36
+ 3. Check for stale lock files, detached HEAD
37
+ 4. If Guard set → run Guard to establish guard baseline
38
+ 5. Fail fast on any critical issue. Warn on non-critical.
39
+
40
+ ## Verify Safety Screen
41
+
42
+ Before first dry-run, screen Verify command for: rm -rf, fork bombs, curl|sh, embedded credentials, outbound writes. Block dangerous commands.
43
+
44
+ ## Establish Baseline (Iteration 0)
45
+
46
+ 1. Run Verify command → extract numeric metric
47
+ 2. Record as iteration 0 in TSV: `0\t{timestamp}\t{commit}\t{metric}\t0.0\t{guard}\t-\tbaseline\tinitial state`
48
+ 3. Create output directory: `autoresearch/loop-{YYMMDD}-{HHMM}/`
49
+ 4. Write TSV header: `# metric_direction: {direction}\niteration\ttimestamp\tcommit\tmetric\tdelta\tguard\tguard-metric\tstatus\tdescription`
50
+
51
+ ## Iteration Loop
52
+
53
+ For each iteration (1 to max_iterations, or unbounded):
54
+
55
+ ### Phase 1: Review (read git history as memory)
56
+ - Read last 10-20 lines of results TSV
57
+ - Run `git log --oneline -20` — see what worked/failed
58
+ - If last iteration was "keep" → run `git diff HEAD~1` to see what improved metric
59
+ - Identify: what worked, what failed, what's untried
60
+
61
+ ### Phase 2: Modify
62
+ - Based on review, make ONE focused change to improve the metric
63
+ - Change must be atomic — one logical unit of work
64
+
65
+ ### Phase 3: Commit
66
+ - Stage and commit with `experiment: {description}` prefix
67
+ - Record commit SHA
68
+
69
+ ### Phase 4: Verify
70
+ - Run Verify command → extract new metric value
71
+ - Calculate delta from previous iteration
72
+ - Metric improved (correct direction) → candidate for keep
73
+
74
+ ### Phase 5: Guard (if configured)
75
+ - Run Guard command. If fails → revert regardless of metric improvement
76
+
77
+ ### Phase 6: Decide
78
+ - **keep** — metric improved, guard passed → commit stays
79
+ - **discard** — metric worsened → `git revert HEAD --no-edit`
80
+ - **crash** — verify/guard command failed → `git revert HEAD --no-edit`
81
+ - **no-op** — no change made this iteration
82
+ - **hook-blocked** — git hook blocked the commit
83
+ - **metric-error** — verify output not a valid number → `git revert HEAD --no-edit`
84
+
85
+ ### Phase 7: Log
86
+ Append row to TSV: iteration, timestamp, commit/-, metric, delta, guard status, guard-metric, status, description
87
+
88
+ ### Eval Checkpoint
89
+ If --evals: check if current_iteration % interval == 0 → run checkpoint analysis.
90
+
91
+ ### Bounded Check
92
+ If bounded: current_iteration >= max_iterations → exit loop, print summary.
93
+
94
+ ## Summary (after loop ends)
95
+
96
+ Print: total iterations, kept/discarded counts, starting metric → final metric, improvement %, top 3 most effective changes.
97
+
98
+ ## Eval Checkpoint (--evals flag)
99
+
100
+ If --evals present:
101
+ - Compute interval: floor(max_iterations / 3), min 1. Fixed 10 if unbounded. Override: --evals-interval N.
102
+ - Every {interval} iterations, pause and analyze current results TSV.
103
+ - Print: `--- Eval Checkpoint (iterations {X}-{Y}) ---\nMetric: {start} → {end} ({delta}) | Kept: {n}/{total} | Trend: {up/flat/down}\n{one-line recommendation}\n---`
104
+ - If plateau 3+ checkpoints → recommend early stop.
105
+ - At loop end → full evals summary to evals-summary.md in output directory.
106
+
107
+ ## Chain Handoff
108
+
109
+ After completion, write handoff.json to output directory: version "2.1.0", source "loop", timestamp, status (COMPLETE|USER_INTERRUPT|BOUNDED|ERROR), results_tsv path, findings[], config{goal, scope, metric, direction, verify}.
110
+ Invoke next target in --chain order. Propagate --evals flag.
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: autoresearch:debug
3
+ description: "Hunt bugs with scientific method: hypothesize, test, falsify, repeat"
4
+ argument-hint: "[Scope: <glob>] [Symptom: <text>] [Iterations: N] [--fix] [--evals]"
5
+ ---
6
+
7
+ EXECUTE IMMEDIATELY.
8
+
9
+ ## Parse Arguments
10
+
11
+ Extract from $ARGUMENTS:
12
+ - `Scope:` or `--scope` — file globs to investigate
13
+ - `Symptom:` or `--symptom` — error message or behavior description
14
+ - `Iterations:` or `--iterations` — default 15. "unlimited" for unbounded.
15
+ - `--fix` — shorthand for `--chain fix`
16
+ - `--severity` — filter: critical, high, medium, low
17
+ - `--technique` — force specific technique
18
+ - `--evals`, `--evals-interval N`, `--chain`
19
+
20
+ ## Setup (if required context missing)
21
+
22
+ If Scope and Symptom both missing:
23
+ 1. Auto-scan: run tests, lint, typecheck to detect existing failures
24
+ 2. request_user_input (single batch):
25
+ Q1 (Issue): "What's the problem?" — hunt all bugs, specific error, failing tests, CI failure, performance
26
+ Q2 (Scope): "Which files?" — suggested globs + entire codebase
27
+ Q3 (Depth): "How deep?" — quick (5), standard (15), deep (30+), unlimited
28
+ Q4 (After): "When bugs found?" — report only, find and fix (--chain fix), chain to other, ask each time
29
+ If all provided → skip.
30
+
31
+ ## Investigation Techniques
32
+
33
+ | Technique | When to Use |
34
+ |---|---|
35
+ | Binary search | Know when it worked, find when it broke |
36
+ | Differential | Compare working vs broken state |
37
+ | Minimal reproduction | Simplify to smallest failing case |
38
+ | Trace | Follow execution path through code |
39
+ | Pattern search | Grep for known anti-patterns |
40
+ | Working backwards | Start from error, trace to root cause |
41
+
42
+ ## Establish Baseline (before loop)
43
+
44
+ 1. Auto-scan for failures if no symptom provided
45
+ 2. Create output directory: `autoresearch/debug-{YYMMDD}-{HHMM}/`
46
+ 3. TSV header: `# metric_direction: higher_is_better\niteration\ttimestamp\thypothesis\tstatus\ttechnique\tevidence\tfile_line`
47
+ 4. Metric = cumulative confirmed findings count
48
+
49
+ ## Iteration Loop
50
+
51
+ ### Phase 1: Review Context
52
+ - Read results TSV (past findings)
53
+ - Assess: what's been tested, what vectors remain
54
+ - If no hypotheses left → early stop
55
+
56
+ ### Phase 2: Hypothesize
57
+ - Form ONE specific, falsifiable hypothesis
58
+ - Format: "I hypothesize that {X} because {evidence}. Test by {Y}."
59
+ - Hypothesis must be testable and different from all previous
60
+
61
+ ### Phase 3: Investigate
62
+ - Apply appropriate technique for this hypothesis
63
+ - Read relevant code, run targeted tests, check logs
64
+ - Collect evidence (file:line references required)
65
+
66
+ ### Phase 4: Classify
67
+ - **confirmed** — hypothesis correct, bug found with evidence
68
+ - **disproven** — hypothesis wrong, evidence against it
69
+ - **inconclusive** — can't prove or disprove, needs different approach
70
+
71
+ ### Phase 5: Log
72
+ Append to TSV: iteration, timestamp, hypothesis, status, technique, evidence, file_line
73
+
74
+ ### Eval Checkpoint
75
+ If --evals: check if current_iteration % interval == 0 → run checkpoint analysis.
76
+
77
+ ### Bounded Check
78
+ If bounded: current_iteration >= max_iterations → exit loop, print summary.
79
+
80
+ ## Summary
81
+
82
+ Print: total hypotheses tested, confirmed/disproven/inconclusive counts, all confirmed bugs with severity and file:line.
83
+
84
+ ## Eval Checkpoint (--evals flag)
85
+
86
+ If --evals present:
87
+ - Compute interval: floor(max_iterations / 3), min 1. Fixed 10 if unbounded. Override: --evals-interval N.
88
+ - Every {interval} iterations, pause and analyze current results TSV.
89
+ - Print: `--- Eval Checkpoint (iterations {X}-{Y}) ---\nFindings: {confirmed} confirmed | Trend: {up/flat/down}\n{one-line recommendation}\n---`
90
+ - If plateau 3+ checkpoints (no new confirmed) → recommend early stop.
91
+ - At loop end → full evals summary to evals-summary.md in output directory.
92
+
93
+ ## Chain Handoff
94
+
95
+ After completion, write handoff.json to output directory: version "2.1.0", source "debug", timestamp, status (COMPLETE|USER_INTERRUPT|BOUNDED|ERROR), results_tsv path, findings = confirmed bugs with severity + file:line, config{scope, symptom}.
96
+ If --fix flag → chain to fix automatically.
97
+ Invoke next target in --chain order. Propagate --evals flag.
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: autoresearch:evals
3
+ description: "Analyze iteration results: trends, plateaus, regressions, recommendations"
4
+ argument-hint: "[path/to/results.tsv] [--format text|json|md]"
5
+ ---
6
+
7
+ EXECUTE IMMEDIATELY.
8
+
9
+ ## Parse Arguments
10
+
11
+ Extract from $ARGUMENTS:
12
+ - Positional path to a specific TSV file
13
+ - `--format` — output format: text (default console), json, md (markdown file)
14
+ - `--compare <path>` — (v2.2.0 placeholder, not yet implemented)
15
+
16
+ ## Input Discovery
17
+
18
+ 1. If path provided → use that TSV directly
19
+ 2. If no path → scan current directory + `autoresearch/*/` for `*-results.tsv` files
20
+ 3. If multiple found → request_user_input: "Which results to analyze?" — list found files
21
+ 4. If none found → request_user_input: "Provide path to results TSV"
22
+ 5. Also scan project root for v2.0.03 legacy TSV files (backward compat)
23
+
24
+ ## Parse TSV
25
+
26
+ 1. Read line 1: extract `# metric_direction: higher_is_better|lower_is_better` comment
27
+ - If missing → infer from column names (metric/error_count → guess, or ask user)
28
+ 2. Read line 2: header row → detect available columns
29
+ 3. Read remaining lines: data rows
30
+ 4. Handle missing `timestamp` column gracefully (v2.0.03 compat)
31
+
32
+ ## Column Detection & Analysis
33
+
34
+ Activate analysis based on columns present in header:
35
+
36
+ | Column | Analysis |
37
+ |---|---|
38
+ | `metric` | Trend direction, plateau detection (3+ flat iterations), diminishing returns, biggest single-iteration jumps |
39
+ | `delta` | Per-iteration efficiency, cumulative improvement, effort-to-gain ratio |
40
+ | `status` | Keep/discard rate, crash frequency, success streaks, failure clusters, longest winning streak |
41
+ | `guard` + `guard-metric` | Guard failure rate, metric-improved-but-guard-failed analysis |
42
+ | `severity` | Severity distribution (critical/high/medium/low/info), critical discovery rate per iteration |
43
+ | `hypothesis` + `status` | Confirmation rate, investigation efficiency, most productive techniques |
44
+ | `commit` | File hotspot analysis (cross-ref with `git diff` for kept commits), change size correlation |
45
+ | `technique` | Technique effectiveness ranking |
46
+ | `dimension` | Dimension coverage completeness (X/12) |
47
+ | `candidate_label` + `judge_verdict` | Convergence speed, oscillation count |
48
+ | `error_type` | Error category distribution, fix rate per category |
49
+ | `classification` | New vs extension vs duplicate ratio, saturation curve |
50
+ | `convergence_count` | Convergence trajectory |
51
+
52
+ Unknown columns: report presence but skip analysis. Forward-compatible with future subcommands.
53
+
54
+ ## Report Structure
55
+
56
+ ```
57
+ ## Evals Summary — {subcommand} ({N} iterations)
58
+
59
+ ### Key Metrics
60
+ - Total iterations: N | Kept: X | Reverted: Y | Revert rate: Z%
61
+ - Starting metric: A | Final metric: B | Improvement: C%
62
+
63
+ ### Trend Analysis
64
+ - Metric progression: [description of trajectory]
65
+ - Plateau detected at iteration N (metric stable for M iterations)
66
+ - Biggest win: iteration X (+delta, description)
67
+ - Biggest loss: iteration Y (-delta, description)
68
+ - Diminishing returns: [after iteration N, average delta dropped below threshold]
69
+
70
+ ### Patterns
71
+ - What types of changes succeeded: [extracted from descriptions of kept iterations]
72
+ - What types of changes failed: [extracted from descriptions of discarded iterations]
73
+ - File hotspots: [files changed most in kept iterations, if commit data available]
74
+ - Technique effectiveness: [ranked by confirmation rate, if technique column present]
75
+
76
+ ### Recommendation
77
+ - [continue / stop / change strategy — based on trend, plateau, revert rate]
78
+ - [specific actionable suggestion based on pattern analysis]
79
+ ```
80
+
81
+ ## Output
82
+
83
+ - Console: structured report (30-50 lines)
84
+ - If `--format md` → write `evals-summary.md` in same directory as input TSV
85
+ - If `--format json` → write `evals-summary.json` with structured data
86
+
87
+ ## Mid-Loop Checkpoint Protocol (for --evals flag in other commands)
88
+
89
+ This section documents the checkpoint protocol that looping commands embed:
90
+
91
+ - **Adaptive interval:** `floor(max_iterations / 3)`, minimum 1. Fixed 10 for unbounded. Override: `--evals-interval N`.
92
+ - **Checkpoint format (5 lines max):**
93
+ ```
94
+ --- Eval Checkpoint (iterations {X}-{Y}) ---
95
+ Metric: {start} → {end} ({delta}) | Kept: {n}/{total} | Trend: {up/flat/down}
96
+ {one-line recommendation}
97
+ ---
98
+ ```
99
+ - **Early stop recommendation:** if plateau detected for 3+ consecutive checkpoints
100
+ - **Final summary:** at loop end, produce full evals report to console + evals-summary.md
101
+
102
+ ### Adaptive Interval Examples
103
+
104
+ | Subcommand | Default Iterations | Interval | Checkpoints At |
105
+ |---|---|---|---|
106
+ | reason | 8 | 2 | 2, 4, 6, 8 |
107
+ | learn | 10 | 3 | 3, 6, 9, final |
108
+ | debug/security | 15 | 5 | 5, 10, 15 |
109
+ | fix/scenario | 20 | 6 | 6, 12, 18, final |
110
+ | core | 25 | 8 | 8, 16, 24, final |
111
+ | unbounded | unlimited | 10 | every 10 |
112
+
113
+ ## Backward Compatibility
114
+
115
+ - v2.0.03 TSV files: column names preserved, `timestamp` absence handled gracefully
116
+ - Fuzzy column matching: `metric_value` → `metric`, `error_count` → `metric`
117
+ - Files in project root (not `autoresearch/` subdirectory) → discovered during scan
118
+ - v2.0.03 status values all supported: baseline, keep, keep (reworked), discard, crash, no-op, hook-blocked, metric-error
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: autoresearch:fix
3
+ description: "Crush errors one-by-one until zero remain: tests, types, lint, build"
4
+ argument-hint: "[Target: <cmd>] [Scope: <glob>] [Guard: <cmd>] [Iterations: N] [--evals] [--from-debug]"
5
+ ---
6
+
7
+ EXECUTE IMMEDIATELY.
8
+
9
+ ## Parse Arguments
10
+
11
+ Extract from $ARGUMENTS:
12
+ - `Target:` or `--target` — command that shows errors (e.g., `npm test`, `tsc --noEmit`)
13
+ - `Scope:` or `--scope` — file globs to modify
14
+ - `Guard:` or `--guard` — safety command (must always pass)
15
+ - `Iterations:` or `--iterations` — default 20. "unlimited" for unbounded.
16
+ - `--from-debug` — read handoff.json from previous debug run
17
+ - `--category` — filter: test, type, lint, build
18
+ - `--evals`, `--evals-interval N`, `--chain`
19
+
20
+ ## Setup (if required context missing)
21
+
22
+ If Target and Scope both missing:
23
+ 1. Auto-detect failures: run test suite, type checker, linter, build
24
+ 2. Present results via request_user_input (single batched call):
25
+ Q1 (Fix What): "Found [N] test failures, [M] type errors, [K] lint errors. Fix what?" — everything, only tests, only types, only lint
26
+ Q2 (Guard): "Safety command that must always pass?" — npm test, tsc, npm run build, skip
27
+ Q3 (Scope): "Which files can I modify?" — suggested globs from error locations + all
28
+ Q4 (Launch): "Ready?" — fix until zero, fix with limit, cancel
29
+ If all provided → skip setup.
30
+ If --from-debug → read handoff.json for scope and findings.
31
+
32
+ ## Precondition Checks
33
+
34
+ Verify: git repo exists, clean working tree, no lock files, no detached HEAD. Fail fast on critical issues.
35
+
36
+ ## Establish Baseline (Iteration 0)
37
+
38
+ 1. Run Target command → count errors (metric = error count, direction = lower_is_better)
39
+ 2. Record baseline in TSV
40
+ 3. Create output directory: `autoresearch/fix-{YYMMDD}-{HHMM}/`
41
+ 4. TSV header: `# metric_direction: lower_is_better\niteration\ttimestamp\terror_type\terror_fixed\tcommit\tmetric\tdelta\tguard\tstatus\tdescription`
42
+
43
+ ## Iteration Loop (until zero errors or max_iterations)
44
+
45
+ ### Phase 1: Review
46
+ - Read results TSV + git log
47
+ - Run Target to get current error list
48
+ - If error count == 0 → exit loop (SUCCESS)
49
+
50
+ ### Phase 2: Prioritize
51
+ Order: crash/fatal → test failures → type errors → lint → warnings.
52
+ Within category: easiest first (single-file fixes before cross-file).
53
+
54
+ ### Phase 3: Fix ONE Thing
55
+ - Pick the highest-priority error
56
+ - Make ONE focused fix (atomic — addresses exactly one error)
57
+ - Record error type and which error was fixed
58
+
59
+ ### Phase 4: Commit
60
+ - Stage and commit: `experiment: fix {error_type} — {description}`
61
+
62
+ ### Phase 5: Verify
63
+ - Run Target → count errors → compute delta
64
+ - Expected: error count decreased by 1 or more
65
+
66
+ ### Phase 6: Guard
67
+ - If Guard set → run Guard. If fails → revert.
68
+
69
+ ### Phase 7: Decide
70
+ - **keep** — error count decreased AND guard passes
71
+ - **keep (reworked)** — fix needed adjustment, second attempt worked
72
+ - **discard** — error count same/increased → `git revert HEAD --no-edit`
73
+ - **crash** — target/guard command failed → revert
74
+ - **hook-blocked** — git hook blocked the commit
75
+ - **metric-error** — target output not parseable → revert
76
+
77
+ ### Phase 8: Log
78
+ Append row: iteration, timestamp, error_type, error_fixed, commit/-, metric (error count), delta, guard, status, description
79
+
80
+ ### Eval Checkpoint
81
+ If --evals: check if current_iteration % interval == 0 → run checkpoint analysis.
82
+
83
+ ### Bounded Check
84
+ If bounded: current_iteration >= max_iterations → exit loop, print summary.
85
+
86
+ ## Summary
87
+
88
+ Print: total errors fixed, remaining errors, error types distribution, fix success rate.
89
+
90
+ ## Eval Checkpoint (--evals flag)
91
+
92
+ If --evals present:
93
+ - Compute interval: floor(max_iterations / 3), min 1. Fixed 10 if unbounded. Override: --evals-interval N.
94
+ - Every {interval} iterations, pause and analyze current results TSV.
95
+ - Print: `--- Eval Checkpoint (iterations {X}-{Y}) ---\nErrors: {start} → {end} ({delta}) | Kept: {n}/{total} | Trend: {up/flat/down}\n{one-line recommendation}\n---`
96
+ - If plateau 3+ checkpoints → recommend early stop.
97
+ - At loop end → full evals summary to evals-summary.md in output directory.
98
+
99
+ ## Chain Handoff
100
+
101
+ After completion, write handoff.json to output directory: version "2.1.0", source "fix", timestamp, status (COMPLETE|USER_INTERRUPT|BOUNDED|ERROR), results_tsv path, findings = unfixed errors, config{target, scope, guard}.
102
+ Invoke next target in --chain order. Propagate --evals flag.