@giamme/forge 0.0.0-stage → 0.8.0
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.
- package/CHANGELOG.md +181 -0
- package/LICENSE +21 -0
- package/README.md +1854 -2
- package/SKILL.md +122 -0
- package/VERSION +1 -0
- package/forge +74 -0
- package/package.json +26 -4
- package/references/dataset.md +329 -0
- package/references/decompose.md +667 -0
- package/references/fractal-dashboard.md +21 -0
- package/references/fractal.md +307 -0
- package/references/harnesses.md +353 -0
- package/references/jev.md +865 -0
- package/references/memory.md +228 -0
- package/references/planning.md +42 -0
- package/references/ripwire.md +47 -0
- package/references/runtime.md +64 -0
- package/references/solo.md +113 -0
- package/references/ui.md +112 -0
- package/registry.tsv +81 -0
- package/scripts/forge-artifact.sh +78 -0
- package/scripts/forge-contract.py +430 -0
- package/scripts/forge-dataset.py +6 -0
- package/scripts/forge-dispatch.sh +665 -0
- package/scripts/forge-fail-first.py +195 -0
- package/scripts/forge-fractal-dispatch.sh +4 -0
- package/scripts/forge-fractal-options.sh +54 -0
- package/scripts/forge-fractal.py +6 -0
- package/scripts/forge-guard.py +266 -0
- package/scripts/forge-install-fractal.sh +4 -0
- package/scripts/forge-install-ripwire.sh +52 -0
- package/scripts/forge-install.sh +135 -0
- package/scripts/forge-jev-options.sh +259 -0
- package/scripts/forge-jev.py +6 -0
- package/scripts/forge-lib-plans.sh +785 -0
- package/scripts/forge-lib-review.sh +494 -0
- package/scripts/forge-lib-task.sh +302 -0
- package/scripts/forge-lib-verify.sh +30 -0
- package/scripts/forge-memory.sh +575 -0
- package/scripts/forge-metrics.sh +39 -0
- package/scripts/forge-parallel-options.sh +76 -0
- package/scripts/forge-parallel.sh +1717 -0
- package/scripts/forge-plan-check.py +118 -0
- package/scripts/forge-prompt.py +45 -0
- package/scripts/forge-ripwire.py +136 -0
- package/scripts/forge-route.py +344 -0
- package/scripts/forge-runtime.py +533 -0
- package/scripts/forge-schedule.py +312 -0
- package/scripts/forge-shadow.py +305 -0
- package/scripts/forge-solo.sh +347 -0
- package/scripts/forge-ui-options.sh +42 -0
- package/scripts/forge-ui.py +435 -0
- package/scripts/forge-update.sh +71 -0
- package/scripts/forge-verify-coverage.py +956 -0
- package/scripts/forge-version.py +198 -0
- package/scripts/forge_dataset/__init__.py +439 -0
- package/scripts/forge_dataset/capture.py +330 -0
- package/scripts/forge_dataset/checks.py +109 -0
- package/scripts/forge_dataset/cli.py +233 -0
- package/scripts/forge_dataset/export.py +1009 -0
- package/scripts/forge_dataset/harvest.py +716 -0
- package/scripts/forge_dataset/importer.py +412 -0
- package/scripts/forge_dataset/outcomes.py +275 -0
- package/scripts/forge_dataset/routing.py +278 -0
- package/scripts/forge_fractal/__init__.py +83 -0
- package/scripts/forge_fractal/bridge.py +46 -0
- package/scripts/forge_fractal/cli.py +202 -0
- package/scripts/forge_fractal/dashboard.css +138 -0
- package/scripts/forge_fractal/dashboard.html +41 -0
- package/scripts/forge_fractal/dashboard.js +687 -0
- package/scripts/forge_fractal/decomposition.py +262 -0
- package/scripts/forge_fractal/execution.py +659 -0
- package/scripts/forge_fractal/inspection.py +261 -0
- package/scripts/forge_fractal/install.py +158 -0
- package/scripts/forge_fractal/invocation.py +94 -0
- package/scripts/forge_fractal/pipeline.py +124 -0
- package/scripts/forge_fractal/selection.py +179 -0
- package/scripts/forge_jev/__init__.py +376 -0
- package/scripts/forge_jev/backtest.py +322 -0
- package/scripts/forge_jev/cli.py +980 -0
- package/scripts/forge_jev/client.py +418 -0
- package/scripts/forge_jev/corpus.py +156 -0
- package/scripts/forge_jev/coupling.py +244 -0
- package/scripts/forge_jev/features.py +24 -0
- package/scripts/forge_jev/gates.py +100 -0
- package/scripts/forge_jev/memory.py +163 -0
- package/scripts/forge_jev/outcome.py +49 -0
- package/scripts/forge_jev/predict.py +204 -0
- package/scripts/forge_jev/questions.py +661 -0
- package/scripts/forge_jev/review.py +73 -0
- package/scripts/forge_jev/routing.py +271 -0
- package/scripts/forge_jev/subset.py +123 -0
- package/scripts/forge_jev/verify.py +453 -0
- package/scripts/forge_registry.py +140 -0
- package/ui/README.md +287 -0
- package/ui/THIRD_PARTY_NOTICES.md +69 -0
- package/ui/docs/api.md +888 -0
- package/ui/forge_ui/__init__.py +20 -0
- package/ui/forge_ui/__main__.py +135 -0
- package/ui/forge_ui/diffs.py +454 -0
- package/ui/forge_ui/executions.py +436 -0
- package/ui/forge_ui/export.py +204 -0
- package/ui/forge_ui/findings.py +132 -0
- package/ui/forge_ui/fractal.py +583 -0
- package/ui/forge_ui/models.py +216 -0
- package/ui/forge_ui/reader.py +1336 -0
- package/ui/forge_ui/server.py +303 -0
- package/ui/forge_ui/static/app.js +924 -0
- package/ui/forge_ui/static/cloud3d.js +646 -0
- package/ui/forge_ui/static/cloudmodel.js +375 -0
- package/ui/forge_ui/static/cloudui.js +394 -0
- package/ui/forge_ui/static/diffview.js +216 -0
- package/ui/forge_ui/static/favicon.svg +1 -0
- package/ui/forge_ui/static/files.js +776 -0
- package/ui/forge_ui/static/gantt.js +97 -0
- package/ui/forge_ui/static/graph.js +266 -0
- package/ui/forge_ui/static/index.html +55 -0
- package/ui/forge_ui/static/iso.js +765 -0
- package/ui/forge_ui/static/leaderboard.js +315 -0
- package/ui/forge_ui/static/map3d.js +45 -0
- package/ui/forge_ui/static/modelstats.js +249 -0
- package/ui/forge_ui/static/notify.js +179 -0
- package/ui/forge_ui/static/panel.js +526 -0
- package/ui/forge_ui/static/runmodel.js +651 -0
- package/ui/forge_ui/static/scene3d.js +996 -0
- package/ui/forge_ui/static/search.js +119 -0
- package/ui/forge_ui/static/style.css +618 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Flags shared by several forge-parallel.sh subcommands, parsed in one place.
|
|
3
|
+
#
|
|
4
|
+
# Sourced at the top of forge-parallel.sh (an option parser sourced from inside a
|
|
5
|
+
# function, after that function already walked its arguments, cannot parse anything).
|
|
6
|
+
# Each subcommand's own `case` handles its private flags and falls through to this for
|
|
7
|
+
# the rest, before the Jev hook and its own "unknown option" error.
|
|
8
|
+
#
|
|
9
|
+
# forge_pp_flag <subcommand> <plan-dir> <args...>
|
|
10
|
+
# 0 the flag was ours and valid; PP_SHIFT holds how many arguments it used
|
|
11
|
+
# 1 not ours, or not accepted by this subcommand
|
|
12
|
+
# A malformed value exits through die (2).
|
|
13
|
+
#
|
|
14
|
+
# Persisted options become files in the plan dir, like --verify and --setup, so a later
|
|
15
|
+
# `retry` or the scheduler's task processes see them. Cost-bearing options that change
|
|
16
|
+
# what a run is allowed to spend (--retry-failed, --infra-retries) are deliberately NOT
|
|
17
|
+
# persisted: they apply to the invocation that asked for them.
|
|
18
|
+
#
|
|
19
|
+
# --timeout S run retry $PLAN/timeout dispatch timeout, seconds (0 = none)
|
|
20
|
+
# --retry-failed N run (this run only) automatic reviewer-driven retries
|
|
21
|
+
# --infra-retries M run (this run only) waits out quota/auth/network stops
|
|
22
|
+
# --qa-threshold Pn|none run retry $PLAN/qa_threshold least severe finding that still blocks
|
|
23
|
+
# --verify-retries N run retry integrate $PLAN/verify_retries reruns of a failed verify command
|
|
24
|
+
# --escalate-after N run retry $PLAN/escalate_after failed attempts on one model before the
|
|
25
|
+
# next goes a tier up (default 3; 0 = off)
|
|
26
|
+
# --final-review SPEC integrate $PLAN/final_qa QA spec for the whole-run review
|
|
27
|
+
PP_SHIFT=2
|
|
28
|
+
PP_RETRY_FAILED=0
|
|
29
|
+
PP_INFRA_RETRIES=0
|
|
30
|
+
PP_FINAL_REVIEW=""
|
|
31
|
+
|
|
32
|
+
pp_nonneg() { # pp_nonneg <flag> <value>
|
|
33
|
+
case "$2" in ''|*[!0-9]*) die "$1 needs a non-negative integer" ;; esac
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
forge_pp_flag() {
|
|
37
|
+
local cmd="$1" plan="$2"; shift 2
|
|
38
|
+
PP_SHIFT=2
|
|
39
|
+
case "${1:-}" in
|
|
40
|
+
--timeout)
|
|
41
|
+
case "$cmd" in run|retry) ;; *) return 1 ;; esac
|
|
42
|
+
pp_nonneg --timeout "${2:-}"
|
|
43
|
+
printf '%s' "$2" > "$plan/timeout" ;;
|
|
44
|
+
--retry-failed)
|
|
45
|
+
[ "$cmd" = run ] || return 1
|
|
46
|
+
pp_nonneg --retry-failed "${2:-}"; PP_RETRY_FAILED="$2" ;;
|
|
47
|
+
--infra-retries)
|
|
48
|
+
[ "$cmd" = run ] || return 1
|
|
49
|
+
pp_nonneg --infra-retries "${2:-}"; PP_INFRA_RETRIES="$2" ;;
|
|
50
|
+
--qa-threshold)
|
|
51
|
+
case "$cmd" in run|retry|review) ;; *) return 1 ;; esac
|
|
52
|
+
case "${2:-}" in
|
|
53
|
+
P0|P1|P2|P3) printf '%s' "$2" > "$plan/qa_threshold" ;;
|
|
54
|
+
none|off) rm -f "$plan/qa_threshold" ;;
|
|
55
|
+
*) die "--qa-threshold needs P0, P1, P2, P3 or none" ;;
|
|
56
|
+
esac ;;
|
|
57
|
+
--escalate-after)
|
|
58
|
+
case "$cmd" in run|retry) ;; *) return 1 ;; esac
|
|
59
|
+
pp_nonneg --escalate-after "${2:-}"
|
|
60
|
+
printf '%s' "$2" > "$plan/escalate_after"
|
|
61
|
+
# Off means off: the policy's own stop markers go too, so the scheduler retries again.
|
|
62
|
+
if [ "$2" = 0 ]; then
|
|
63
|
+
rm -f "$plan"/tasks/*/escalation.stop "$plan"/tasks/*/split.suggested "$plan"/tasks/*/escalation.next
|
|
64
|
+
fi ;;
|
|
65
|
+
--verify-retries)
|
|
66
|
+
case "$cmd" in run|retry|integrate) ;; *) return 1 ;; esac
|
|
67
|
+
pp_nonneg --verify-retries "${2:-}"
|
|
68
|
+
printf '%s' "$2" > "$plan/verify_retries" ;;
|
|
69
|
+
--final-review)
|
|
70
|
+
[ "$cmd" = integrate ] || return 1
|
|
71
|
+
PP_FINAL_REVIEW="${2:?--final-review needs a QA spec}"
|
|
72
|
+
printf '%s' "$PP_FINAL_REVIEW" > "$plan/final_qa" ;;
|
|
73
|
+
*) return 1 ;;
|
|
74
|
+
esac
|
|
75
|
+
return 0
|
|
76
|
+
}
|