autoforge-cli 0.1.0a0__py3-none-any.whl

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 (81) hide show
  1. autoforge/__init__.py +5 -0
  2. autoforge/agent_worktree.py +653 -0
  3. autoforge/certificate.py +495 -0
  4. autoforge/child_env.py +871 -0
  5. autoforge/claims.py +726 -0
  6. autoforge/claude_stream.py +501 -0
  7. autoforge/cli.py +2884 -0
  8. autoforge/config.py +2178 -0
  9. autoforge/config_fingerprint.py +374 -0
  10. autoforge/doctor.py +1551 -0
  11. autoforge/doctor_sandbox.py +691 -0
  12. autoforge/effect_ops.py +1272 -0
  13. autoforge/effects.py +3210 -0
  14. autoforge/engine.py +16637 -0
  15. autoforge/epic_commands.py +1486 -0
  16. autoforge/epic_graph.py +852 -0
  17. autoforge/errors.py +536 -0
  18. autoforge/evidence.py +1722 -0
  19. autoforge/executor.py +1601 -0
  20. autoforge/executor_duplex.py +985 -0
  21. autoforge/executor_supervised.py +144 -0
  22. autoforge/git_transport.py +970 -0
  23. autoforge/github.py +3402 -0
  24. autoforge/interaction.py +1027 -0
  25. autoforge/local_workspace.py +1253 -0
  26. autoforge/locking.py +1050 -0
  27. autoforge/loop_detect.py +660 -0
  28. autoforge/loop_guard.py +404 -0
  29. autoforge/materialize.py +722 -0
  30. autoforge/ownership.py +240 -0
  31. autoforge/pi_rpc.py +713 -0
  32. autoforge/premerge.py +181 -0
  33. autoforge/profiles.py +106 -0
  34. autoforge/progress.py +392 -0
  35. autoforge/prompts/__init__.py +173 -0
  36. autoforge/prompts/acceptance_actions.md +39 -0
  37. autoforge/prompts/analyze_execute.md +128 -0
  38. autoforge/prompts/common.md +132 -0
  39. autoforge/prompts/correction.md +12 -0
  40. autoforge/prompts/fix.md +252 -0
  41. autoforge/prompts/local_analyze_execute.md +69 -0
  42. autoforge/prompts/local_common.md +149 -0
  43. autoforge/prompts/local_fix.md +96 -0
  44. autoforge/prompts/local_review.md +103 -0
  45. autoforge/prompts/operator_acceptance.md +61 -0
  46. autoforge/prompts/replan_reexecute.md +991 -0
  47. autoforge/prompts/review.md +312 -0
  48. autoforge/prompts/update_epic.md +120 -0
  49. autoforge/prompts/update_epic_rerequest.md +85 -0
  50. autoforge/prompts/validation_evidence.md +26 -0
  51. autoforge/prompts/validation_failure.md +22 -0
  52. autoforge/prompts/worktree_state.md +45 -0
  53. autoforge/providers.py +2893 -0
  54. autoforge/read_context.py +389 -0
  55. autoforge/redaction.py +408 -0
  56. autoforge/replan.py +208 -0
  57. autoforge/replan_txn.py +1930 -0
  58. autoforge/result_parser.py +2234 -0
  59. autoforge/roadmap.py +151 -0
  60. autoforge/run_contract.py +408 -0
  61. autoforge/run_namespace.py +839 -0
  62. autoforge/runlog.py +764 -0
  63. autoforge/safefs.py +1717 -0
  64. autoforge/sandbox.py +1313 -0
  65. autoforge/sandbox_bwrap.py +815 -0
  66. autoforge/sandbox_pin.py +170 -0
  67. autoforge/sandbox_policy.py +1107 -0
  68. autoforge/scheduler.py +1143 -0
  69. autoforge/scheduler_state.py +2316 -0
  70. autoforge/scheduler_stop.py +421 -0
  71. autoforge/sdk_policy.py +988 -0
  72. autoforge/state.py +2417 -0
  73. autoforge/transitions.py +388 -0
  74. autoforge/validation.py +324 -0
  75. autoforge/worker.py +568 -0
  76. autoforge_cli-0.1.0a0.dist-info/METADATA +525 -0
  77. autoforge_cli-0.1.0a0.dist-info/RECORD +81 -0
  78. autoforge_cli-0.1.0a0.dist-info/WHEEL +5 -0
  79. autoforge_cli-0.1.0a0.dist-info/entry_points.txt +2 -0
  80. autoforge_cli-0.1.0a0.dist-info/licenses/LICENSE +21 -0
  81. autoforge_cli-0.1.0a0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,61 @@
1
+ A finding, or an acceptance criterion of the issue, may need text on *other*
2
+ issues of this repository (for example coordination notes on the issues the
3
+ run's issue names). You hold no GitHub credential and the controller does
4
+ not post such text either: a finding may be resolved as
5
+ `operator_acceptance`, which asks the **operator** to post comments you
6
+ prepare (at most {{MAX_OPERATOR_ACTIONS_PER_FIX}} in one result). The controller only
7
+ verifies them: it reads each target issue's complete comment listing and
8
+ counts an action as done only when exactly one comment carries the action's
9
+ marker with exactly the prepared bytes, or when the operator binds an
10
+ existing comment as the evidence. Until then the run waits and sends nothing
11
+ else; your commits stay unpushed in this worktree.
12
+
13
+ Use it only when you can write each note completely from your work in this
14
+ worktree. It is never a deferral and never a claim that anything was posted:
15
+ work that needs a secret, a repository setting, hardware, a manual check or
16
+ any other change outside this worktree stays `"status": "blocked"` with a
17
+ `"message"`.
18
+
19
+ The issues this FIX entry allows, read by the controller from the run's
20
+ issue body (and the run's EPIC) when the phase was entered; any other number
21
+ is refused:
22
+
23
+ {{OPERATOR_TARGETS}}
24
+
25
+ You give only each target's issue **number** and the note's text. The
26
+ controller derives everything else: the issue URL, and its own header line
27
+ (naming this PR, the review round, the finding and the target, and saying
28
+ the text is yours) above your text and the action's marker below it. An
29
+ action names no URL, repository, owner, target, method, path or command; a
30
+ result carrying any of them is refused.
31
+
32
+ Shape (in `resolutions`):
33
+
34
+ ```json
35
+ {"finding_id": "<finding id>", "resolution": "operator_acceptance",
36
+ "rationale": "<why these notes resolve the finding>",
37
+ "operator_acceptance": {"actions": [
38
+ {"kind": "related_issue_comment", "issue": 16, "body": "<Markdown>"},
39
+ {"kind": "related_issue_comment", "issue": 158, "body": "<Markdown>"}
40
+ ]}}
41
+ ```
42
+
43
+ - `kind` is `related_issue_comment`, the only kind there is.
44
+ - `issue` is a JSON integer from the list above: never a string, a URL,
45
+ `#16` or `owner/repo#16`. At most one action per issue for a finding.
46
+ - `body` is Markdown of at most {{MAX_OPERATOR_COMMENT_CHARS}} characters,
47
+ under the rules of "What published text may contain" below, and also: no
48
+ image, no raw HTML tag, and no link or URL other than
49
+ `https://github.com/{{REPOSITORY}}/...` (no other host or repository, no
50
+ relative link, no `www.` form, no e-mail address).
51
+ - `rationale` follows the rules of `no_change_with_rationale` (at least
52
+ {{MIN_RATIONALE_CHARS}} characters of concrete reasoning).
53
+ - No `commit_sha`, `follow_up_issue_url`, `follow_up_issue` or
54
+ `acceptance_action` on this resolution; a result carries
55
+ `acceptance_action` or `operator_acceptance` resolutions, never both, and
56
+ at most {{MAX_OPERATOR_ACTIONS_PER_FIX}} actions in total.
57
+ - Never request again a note the controller already verified in this round
58
+ (listed below): the finding already has that evidence.
59
+
60
+ The finding counts as resolved only after the controller has verified every
61
+ action, and the next review still judges whether the notes are adequate.