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.
- autoforge/__init__.py +5 -0
- autoforge/agent_worktree.py +653 -0
- autoforge/certificate.py +495 -0
- autoforge/child_env.py +871 -0
- autoforge/claims.py +726 -0
- autoforge/claude_stream.py +501 -0
- autoforge/cli.py +2884 -0
- autoforge/config.py +2178 -0
- autoforge/config_fingerprint.py +374 -0
- autoforge/doctor.py +1551 -0
- autoforge/doctor_sandbox.py +691 -0
- autoforge/effect_ops.py +1272 -0
- autoforge/effects.py +3210 -0
- autoforge/engine.py +16637 -0
- autoforge/epic_commands.py +1486 -0
- autoforge/epic_graph.py +852 -0
- autoforge/errors.py +536 -0
- autoforge/evidence.py +1722 -0
- autoforge/executor.py +1601 -0
- autoforge/executor_duplex.py +985 -0
- autoforge/executor_supervised.py +144 -0
- autoforge/git_transport.py +970 -0
- autoforge/github.py +3402 -0
- autoforge/interaction.py +1027 -0
- autoforge/local_workspace.py +1253 -0
- autoforge/locking.py +1050 -0
- autoforge/loop_detect.py +660 -0
- autoforge/loop_guard.py +404 -0
- autoforge/materialize.py +722 -0
- autoforge/ownership.py +240 -0
- autoforge/pi_rpc.py +713 -0
- autoforge/premerge.py +181 -0
- autoforge/profiles.py +106 -0
- autoforge/progress.py +392 -0
- autoforge/prompts/__init__.py +173 -0
- autoforge/prompts/acceptance_actions.md +39 -0
- autoforge/prompts/analyze_execute.md +128 -0
- autoforge/prompts/common.md +132 -0
- autoforge/prompts/correction.md +12 -0
- autoforge/prompts/fix.md +252 -0
- autoforge/prompts/local_analyze_execute.md +69 -0
- autoforge/prompts/local_common.md +149 -0
- autoforge/prompts/local_fix.md +96 -0
- autoforge/prompts/local_review.md +103 -0
- autoforge/prompts/operator_acceptance.md +61 -0
- autoforge/prompts/replan_reexecute.md +991 -0
- autoforge/prompts/review.md +312 -0
- autoforge/prompts/update_epic.md +120 -0
- autoforge/prompts/update_epic_rerequest.md +85 -0
- autoforge/prompts/validation_evidence.md +26 -0
- autoforge/prompts/validation_failure.md +22 -0
- autoforge/prompts/worktree_state.md +45 -0
- autoforge/providers.py +2893 -0
- autoforge/read_context.py +389 -0
- autoforge/redaction.py +408 -0
- autoforge/replan.py +208 -0
- autoforge/replan_txn.py +1930 -0
- autoforge/result_parser.py +2234 -0
- autoforge/roadmap.py +151 -0
- autoforge/run_contract.py +408 -0
- autoforge/run_namespace.py +839 -0
- autoforge/runlog.py +764 -0
- autoforge/safefs.py +1717 -0
- autoforge/sandbox.py +1313 -0
- autoforge/sandbox_bwrap.py +815 -0
- autoforge/sandbox_pin.py +170 -0
- autoforge/sandbox_policy.py +1107 -0
- autoforge/scheduler.py +1143 -0
- autoforge/scheduler_state.py +2316 -0
- autoforge/scheduler_stop.py +421 -0
- autoforge/sdk_policy.py +988 -0
- autoforge/state.py +2417 -0
- autoforge/transitions.py +388 -0
- autoforge/validation.py +324 -0
- autoforge/worker.py +568 -0
- autoforge_cli-0.1.0a0.dist-info/METADATA +525 -0
- autoforge_cli-0.1.0a0.dist-info/RECORD +81 -0
- autoforge_cli-0.1.0a0.dist-info/WHEEL +5 -0
- autoforge_cli-0.1.0a0.dist-info/entry_points.txt +2 -0
- autoforge_cli-0.1.0a0.dist-info/licenses/LICENSE +21 -0
- 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.
|