pwn 0.5.781 → 0.5.782
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.
- checksums.yaml +4 -4
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +37 -92
- data/documentation/diagrams/dot/memory-skills-detailed.dot +33 -98
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +54 -32
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +53 -30
- data/documentation/diagrams/dot/reinforcement-learning.dot +46 -111
- data/documentation/diagrams/dot/swarm-multi-agent.dot +36 -61
- data/documentation/diagrams/extrospection-world-awareness.svg +139 -510
- data/documentation/diagrams/memory-skills-detailed.svg +126 -475
- data/documentation/diagrams/overall-pwn-architecture.svg +116 -266
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +158 -244
- data/documentation/diagrams/reinforcement-learning.svg +238 -529
- data/documentation/diagrams/swarm-multi-agent.svg +104 -233
- data/lib/pwn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 15a843d292cc4872961ee750110b60f259e14c1f50185522ee9a219f8dabf75d
|
|
4
|
+
data.tar.gz: 00c12b64346f6e35d8f6d44b638c1e9e0edb856390db76834fb72a65471d0ac7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cb8ac9969959a5403b761a906497337852619dcbeef1c9f5a12956eb062963409426feaba0a188c3d10a278a422364c602fb30947ea28ef63b8f49d477e49b63
|
|
7
|
+
data.tar.gz: 0c79e7ce4c8f77974f25574bf309ce72e5b46ad40e562de334d653765b66f130959a65a157d567242f1756ed493a5e7c8d6febf435579ef1243ea969d8a57f9e
|
|
@@ -1,105 +1,50 @@
|
|
|
1
1
|
digraph "PWN_Extrospection" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>PWN::AI::Agent::Extrospection - On-demand sensing + ambient baseline</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">
|
|
3
|
+
label=<<B>PWN::AI::Agent::Extrospection - On-demand sensing + ambient baseline</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">automatic host / repo / env only · other probes and actions are on demand · observations are not completion proof</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
-
rankdir=
|
|
6
|
-
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.
|
|
5
|
+
rankdir=TB, splines=polyline, nodesep=0.45, ranksep=0.5,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.4, newrank=true, compound=true
|
|
7
7
|
];
|
|
8
8
|
node [fontname="Helvetica", fontsize=11, style="filled,rounded",
|
|
9
|
-
shape=box, penwidth=1.
|
|
10
|
-
|
|
9
|
+
shape=box, penwidth=1.3, color="#334155", fontcolor="#0f172a",
|
|
10
|
+
fillcolor="#fcd34d", margin="0.22,0.16", width=3.8];
|
|
11
|
+
edge [fontname="Helvetica", fontsize=10, color="#94a3b8",
|
|
11
12
|
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Tool [label="toolchain (presence)\nnmap/git (safe --ver)\nburp/msf/gqrx PATH only", fillcolor="#fda4af"];
|
|
20
|
-
Repo [label="repo · env\nHEAD · dirty · ruby/gem", fillcolor="#fda4af"];
|
|
21
|
-
RFhw [label="rf 📡\nrtl-sdr · hackrf · flipper\ngqrx sock · serial devs", fillcolor="#fda4af"];
|
|
22
|
-
Web [label="web 🌐\nanchors · targets\nrendered DOM · TLS cert", fillcolor="#fda4af"];
|
|
23
|
-
Feeds [label="intel feeds\nNVD · CIRCL · Exploit-DB", fillcolor="#fda4af"];
|
|
24
|
-
OSINT [label="osint 🕵️\nphone · FCC · patent\nIP/ASN · CT · person", fillcolor="#fda4af"];
|
|
25
|
-
Serial[label="serial 🔌\nttyUSB/ACM · by-id\nUART / AT modem", fillcolor="#fda4af"];
|
|
26
|
-
Telco [label="telecomm ☎️\nBareSIP · SIP ports\nPSTN / VoIP", fillcolor="#fda4af"];
|
|
27
|
-
Pkt [label="packet 📦\ntshark · tcpdump\npcap summarise", fillcolor="#fda4af"];
|
|
28
|
-
Vis [label="vision 👁\ntesseract OCR\nzbar QR/barcode", fillcolor="#fda4af"];
|
|
29
|
-
Voice [label="voice 🔊\nespeak TTS · whisper STT\nsox / festival", fillcolor="#fda4af"];
|
|
14
|
+
subgraph cluster_auto {
|
|
15
|
+
label="AMBIENT BASELINE · automatic scope"; fontsize=12;
|
|
16
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
17
|
+
Baseline [fillcolor="#7dd3fc", label="AUTO_SECTIONS = host / repo / env\nHost: OS / distribution / architecture\nRepository: HEAD / dirty state\nEnvironment: Ruby / gem information\nNo automatic network / RF / browser sensing"];
|
|
18
|
+
Snapshot [label="SNAPSHOT + DRIFT\nextro_snapshot: selected probes\nextro_drift: delta against prior baseline\nExplicit snapshots can request other sections\nToolchain inventory uses safe version checks\nor PATH presence; not general tool execution"];
|
|
19
|
+
Baseline -> Snapshot [label="auto_extrospect", color="#38bdf8"];
|
|
30
20
|
}
|
|
31
|
-
{rank=same; Host; Net; Tool; Repo; RFhw; Web; Feeds; OSINT; Serial; Telco; Pkt; Vis; Voice}
|
|
32
21
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
label="Extrospection Engine"; fontcolor="#fde68a"; style=rounded;
|
|
40
|
-
color="#a16207"; bgcolor="#422006"; penwidth=2;
|
|
41
|
-
Snap [label="extro_snapshot\nprobe_host/net/toolchain/repo/env\nrf/web/osint/serial/telecomm\npacket/vision/voice\n(auto = host/repo/env only)", fillcolor="#fcd34d"];
|
|
42
|
-
Drift [label="extro_drift\ndelta vs baseline", fillcolor="#fcd34d"];
|
|
43
|
-
Obs [label="extro_observe\nrecon · vuln · intel · target\nnetwork · env · rf · web\nosint · serial · telecomm\npacket · vision · voice", fillcolor="#fcd34d"];
|
|
44
|
-
Intel [label="extro_intel\nCVE / exploit lookup", fillcolor="#fcd34d"];
|
|
45
|
-
Watch [label="extro_watch\nrender → DOM SHA-256\nscreenshot · TLS fp", fillcolor="#fcd34d"];
|
|
46
|
-
Verify[label="extro_verify\n:cve · :version · :doc · :generic\nheuristic: confirmed | refuted | unknown", fillcolor="#fcd34d", penwidth=2];
|
|
47
|
-
RFTune[label="extro_rf_tune 📡\ntune GQRX · demod · strength\nRDS PI/PS/RadioText → now_playing", fillcolor="#fcd34d", penwidth=2];
|
|
48
|
-
OsintT[label="extro_osint 🕵️\npublic APIs aggregate\nphone · FCC · patent · person", fillcolor="#fcd34d", penwidth=2];
|
|
49
|
-
SerT [label="extro_serial 🔌\nopen · payload · drain\nPWN::Plugins::Serial", fillcolor="#fcd34d", penwidth=2];
|
|
50
|
-
TelT [label="extro_telecomm ☎️\nBareSIP status/dial\ninventory SIP", fillcolor="#fcd34d", penwidth=2];
|
|
51
|
-
PktT [label="extro_packet 📦\ncapture · summarise pcap\ntshark/PacketFu", fillcolor="#fcd34d", penwidth=2];
|
|
52
|
-
VisT [label="extro_vision 👁\nOCR · barcode/QR", fillcolor="#fcd34d", penwidth=2];
|
|
53
|
-
VoxT [label="extro_voice 🔊\nTTS · STT · inventory", fillcolor="#fcd34d", penwidth=2];
|
|
54
|
-
Corr [label="extro_correlate\ncandidate correlations\nLearning + Mistakes + Memory", fillcolor="#fcd34d", penwidth=2];
|
|
22
|
+
subgraph cluster_web {
|
|
23
|
+
label="ON DEMAND · web / public intelligence"; fontsize=12;
|
|
24
|
+
style="rounded,dashed,filled"; color="#94a3b8"; fillcolor="#1e293b";
|
|
25
|
+
Web [fillcolor="#6ee7b7", label="INDEPENDENT LOOKUPS / WATCHES\nextro_intel: NVD / CIRCL / Exploit-DB\nextro_osint: phone / FCC / patent / IP / person\nextro_watch: DOM hash / screenshot / TLS\nextro_verify: CVE / version / doc / generic\nWeb: TransparentBrowser headless → REST fallback"];
|
|
26
|
+
Verdict [label="RECORDING / HEURISTIC VERDICTS\nIntel records when record:true; watch stores web data\nVerify: confirmed / refuted / unknown\nWith commit: confirmed → intel; refuted → Mistakes\nrevalidate_memory: confident refutation marks\n:fact [UNVERIFIED date] + stale web observation"];
|
|
27
|
+
Web -> Verdict [label="selected operation"];
|
|
55
28
|
}
|
|
56
|
-
{rank=same; Snap; Drift; Obs; Intel; Watch; Verify; RFTune; OsintT; SerT; TelT; PktT; VisT; VoxT; Corr}
|
|
57
|
-
|
|
58
|
-
/* col 2 ─ store + prompt + feedback sinks */
|
|
59
|
-
Store [label="~/.pwn/\nextrospection.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
60
|
-
Shots [label="~/.pwn/extrospection/\nweb/*.png", shape=cylinder, fillcolor="#fcd34d"];
|
|
61
|
-
Prompt [label="EXTROSPECTION\nblock in system prompt", fillcolor="#c4b5fd"];
|
|
62
|
-
Mist [label="Mistakes.record\n(tool:'assumption')\n→ KNOWN MISTAKES", fillcolor="#fca5a5", penwidth=2];
|
|
63
|
-
Mem [label="PWN::Memory :fact\n[UNVERIFIED yyyy-mm-dd]\n(revalidate_memory)", fillcolor="#c4b5fd"];
|
|
64
|
-
{rank=same; Store; Shots; Prompt; Mist; Mem}
|
|
65
|
-
|
|
66
|
-
Host -> Snap [color="#fb7185"];
|
|
67
|
-
Net -> Snap [color="#fb7185"];
|
|
68
|
-
Tool -> Drift [color="#fb7185"];
|
|
69
|
-
Repo -> Drift [color="#fb7185"];
|
|
70
|
-
RFhw -> Obs [label="probe_rf", color="#fb7185"];
|
|
71
|
-
RFhw -> RFTune[label="tune · RDS", color="#fb7185", penwidth=2];
|
|
72
|
-
Feeds -> Intel [color="#fb7185"];
|
|
73
29
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
30
|
+
subgraph cluster_sense {
|
|
31
|
+
label="ON DEMAND · devices / media / observations"; fontsize=12;
|
|
32
|
+
style="rounded,dashed,filled"; color="#94a3b8"; fillcolor="#1e293b";
|
|
33
|
+
Sense [fillcolor="#6ee7b7", label="INDEPENDENT TOOLS / ACTIONS\nextro_rf_tune: GQRX / strength / RDS\nextro_serial: UART open / payload / drain\nextro_telecomm: BareSIP status / dial\nextro_packet: capture / pcap summary\nextro_vision: OCR / QR; extro_voice: TTS / STT"];
|
|
34
|
+
Observe [label="OBSERVATION BOUNDARY\nOn-demand calls use available plugins / hardware\nActions may affect devices or external services\nextro_observe records supplied observations\nCategories: recon / vuln / intel / target / network\nenv / RF / web / OSINT / serial / telecomm\npacket / vision / voice"];
|
|
35
|
+
Sense -> Observe [label="record operation results"];
|
|
36
|
+
}
|
|
37
|
+
{rank=same; Baseline; Web; Sense}
|
|
38
|
+
{rank=same; Snapshot; Verdict; Observe}
|
|
78
39
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
Pkt -> PktT [label="capture", color="#fb7185", penwidth=2];
|
|
90
|
-
Vis -> VisT [label="OCR", color="#fb7185", penwidth=2];
|
|
91
|
-
Voice -> VoxT [label="TTS/STT", color="#fb7185", penwidth=2];
|
|
92
|
-
OsintT-> Store [label="category::osint", color="#f59e0b", penwidth=2];
|
|
93
|
-
SerT -> Store [label="category::serial", color="#f59e0b"];
|
|
94
|
-
TelT -> Store [label="category::telecomm", color="#f59e0b"];
|
|
95
|
-
PktT -> Store [label="category::packet", color="#f59e0b"];
|
|
96
|
-
VisT -> Store [label="category::vision", color="#f59e0b"];
|
|
97
|
-
VoxT -> Store [label="category::voice", color="#f59e0b"];
|
|
98
|
-
Verify-> Mist [label=":refuted", color="#fb7185", penwidth=2];
|
|
99
|
-
Verify-> Store [label=":confirmed\n:intel obs (ttl 30d)", color="#f59e0b"];
|
|
100
|
-
Verify-> Mem [label="revalidate_memory\nmark stale :fact", color="#a78bfa", style=dashed];
|
|
101
|
-
Corr -> Prompt[label="findings", color="#a78bfa", penwidth=2];
|
|
102
|
-
Store -> Prompt[label="inject", style=dashed, color="#fbbf24"];
|
|
103
|
-
Store -> Corr [style=dashed, color="#fbbf24", constraint=false];
|
|
104
|
-
Mem -> Corr [label="rule (f)\nstale :fact", style=dashed, color="#a78bfa", constraint=false];
|
|
40
|
+
subgraph cluster_retention {
|
|
41
|
+
label="RETAINED WORLD MODEL · not ground truth"; fontsize=12;
|
|
42
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
43
|
+
Store [label="~/.pwn/extrospection.json\nSnapshot + baseline / categorized observations\nWatch screenshots: ~/.pwn/extrospection/web/*.png\nPersistence depends on operation / options", width=5.2];
|
|
44
|
+
Context [fillcolor="#c4b5fd", label="extro_correlate: candidate correlations, not causal proof\nJoin world state with Metrics / Learning / Mistakes / Memory\nPromptBuilder: EXTROSPECTION when context is expanded\nBudgeted advisory context; recheck before relying on stale data", width=5.2];
|
|
45
|
+
Store -> Context [label="read retained state", style=dashed];
|
|
46
|
+
}
|
|
47
|
+
Snapshot -> Store [ltail=cluster_auto, lhead=cluster_retention, label="snapshot / delta", color="#f59e0b"];
|
|
48
|
+
Verdict -> Store [ltail=cluster_web, lhead=cluster_retention, label="recorded observations", color="#f59e0b"];
|
|
49
|
+
Observe -> Store [ltail=cluster_sense, lhead=cluster_retention, label="categorized results", color="#f59e0b"];
|
|
105
50
|
}
|
|
@@ -1,108 +1,43 @@
|
|
|
1
1
|
digraph "PWN_MemorySkills" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>Persistent Knowledge - Memory · Skills · Learning · Mistakes · Policy · Sessions</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">
|
|
3
|
+
label=<<B>Persistent Knowledge - Memory · Skills · Learning · Mistakes · Policy · Sessions</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">durable context · explicit maintenance / export · storage is not verified success</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
-
rankdir=TB, splines=
|
|
6
|
-
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.
|
|
5
|
+
rankdir=TB, splines=polyline, nodesep=0.5, ranksep=0.48,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.4, newrank=true
|
|
7
7
|
];
|
|
8
|
-
node [fontname="Helvetica", fontsize=
|
|
9
|
-
shape=box, penwidth=1.3, color="#334155", fontcolor="#0f172a"
|
|
10
|
-
|
|
8
|
+
node [fontname="Helvetica", fontsize=11, style="filled,rounded",
|
|
9
|
+
shape=box, penwidth=1.3, color="#334155", fontcolor="#0f172a",
|
|
10
|
+
fillcolor="#c4b5fd", margin="0.22,0.16", width=5.0];
|
|
11
|
+
edge [fontname="Helvetica", fontsize=10, color="#94a3b8",
|
|
11
12
|
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
// Store families replace one arrow per read/write API. Maintenance cards
|
|
15
|
+
// are independent operations, not a chain invoked for every memory write.
|
|
16
|
+
subgraph cluster_context {
|
|
17
|
+
label="CONTEXT LIFECYCLE · read top to bottom"; fontsize=12;
|
|
18
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
19
|
+
Write [fillcolor="#6ee7b7", label="1 RECORD THROUGH THE OWNING API\nMemory: memory_remember / lean\nSkills: skill_create / skill_add_reference\nLearning: note_outcome / reflect; Mistakes: record / resolve\nSessions: transcript append; Policy: episode accounting"];
|
|
20
|
+
Stores [fillcolor="#fcd34d", label="2 RETAIN UNDER ~/.pwn/\nmemory.json: facts / preferences / lessons / environment\nmemory.idx: embedding index (incremental re-embed)\nskills/<n>/SKILL.md + references; default skill seeds\nlearning.jsonl + mistakes.json + sessions/*.jsonl\npolicy.json + policy_traj.jsonl; extrospection.json"];
|
|
21
|
+
Read [label="3 SELECT RELEVANT CONTEXT\nMemory.recall / MemoryIndex.recall_semantic\nSkills list / view; Learning outcomes / stats\nSessions view / current; Mistakes list / correction_hint\nPolicy stats / evaluate / recommend: advisory only"];
|
|
22
|
+
Prompt [fillcolor="#7dd3fc", label="4 PromptBuilder.build(request:)\nEngine-aware budget; relevance-ranked memory\nRecent turns + skills + learning + known mistakes / fixes\nExpanded / stuck context: metrics + policy + extrospection\nThin mode omits full memory / harness blocks"];
|
|
23
|
+
Reuse [fillcolor="#7dd3fc", label="5 INFORM THE NEXT TURN\nSelected context, not a dump of every stored file\nLearning.exemplars_for: local-only few-shot traces\nStored lessons / judge claims are not host verification\nPositive policy credit needs independent action attribution"];
|
|
24
|
+
Write -> Stores [color="#f59e0b"];
|
|
25
|
+
Stores -> Read -> Prompt -> Reuse;
|
|
24
26
|
}
|
|
25
|
-
{rank=same; Rem; Skc; Note; Dist; Mrec; Xft; Rdpo; PolW}
|
|
26
27
|
|
|
27
|
-
subgraph
|
|
28
|
-
label="
|
|
29
|
-
color="#
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Fext [label="extrospection.json\nsnapshot · rf · web · obs", shape=cylinder, fillcolor="#fcd34d"];
|
|
37
|
-
Fftn [label="finetune/*.jsonl\nShareGPT / OpenAI / DPO", shape=cylinder, fillcolor="#fcd34d"];
|
|
38
|
-
Fprf [label="preferences.jsonl\nDPO (prompt,rejected,chosen)", shape=cylinder, fillcolor="#fcd34d"];
|
|
39
|
-
Fpol [label="policy.json + policy_traj.jsonl\nQ table · REINFORCE · MDP log", shape=cylinder, fillcolor="#fcd34d"];
|
|
28
|
+
subgraph cluster_operations {
|
|
29
|
+
label="MAINTENANCE / EXPORT · independently invoked"; fontsize=12;
|
|
30
|
+
style="rounded,dashed,filled"; color="#94a3b8"; fillcolor="#1e293b";
|
|
31
|
+
Skill [fillcolor="#6ee7b7", label="SKILL MAINTENANCE\nlearning_distill_skill: explicit reviewed session distillation\nSkillReview: recommend by default\nauto-safe: small proven append to existing non-pwn/ SOP\nNot automatic skill creation after routine success"];
|
|
32
|
+
Reflect [label="REFLECTION + CORRECTIONS\nReflect.on: teacher reads transcript → memory :lesson\nMistakes.resolve: correction → memory lesson\nResolution can also record a preference pair\nRetain source provenance; do not treat prose as proof"];
|
|
33
|
+
Revalidate [label="WORLD-FACT REVALIDATION\nExtrospection.revalidate_memory (cron / explicit)\nSelect :fact entries containing CVE / version / URL\nRefuted with confidence ≥ 0.6 → [UNVERIFIED date]\nRecord stale web observation in extrospection.json"];
|
|
34
|
+
Export [fillcolor="#fcd34d", label="DATASET EXPORT\nLearning.export_finetune: eligible verified outcomes\n+ session traces → ShareGPT / OpenAI datasets\nReward.record_preference → preferences.jsonl\nReward.export_dpo → finetune/*.jsonl\nExport does not train or promote a model"];
|
|
35
|
+
Context [fillcolor="#1e293b", fontcolor="#cbd5e1", style="rounded,dashed,filled",
|
|
36
|
+
label="READ / WRITE BOUNDARY\nThese operations read selected retained sources\nand write only their corresponding stores / artifacts.\nThey are not prerequisites for PromptBuilder.\nFrozen policy evaluation / promotion is a separate workflow."];
|
|
40
37
|
}
|
|
41
|
-
{rank=same;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Rec [label="memory_recall", fillcolor="#c4b5fd"];
|
|
47
|
-
Midx [label="MemoryIndex\nrecall_semantic\n(cosine top-K)", fillcolor="#c4b5fd", penwidth=2];
|
|
48
|
-
Skv [label="skill_list · view", fillcolor="#c4b5fd"];
|
|
49
|
-
Out [label="learning_outcomes\nlearning_stats", fillcolor="#c4b5fd"];
|
|
50
|
-
Sesv [label="sessions_view\nsessions_current", fillcolor="#c4b5fd"];
|
|
51
|
-
Mlst [label="mistakes_list\ncorrection_hint", fillcolor="#c4b5fd"];
|
|
52
|
-
Exem [label="Learning.exemplars_for\n(few-shot trace)", fillcolor="#c4b5fd"];
|
|
53
|
-
PolR [label="policy_stats · evaluate\npolicy_recommend", fillcolor="#c4b5fd"];
|
|
54
|
-
}
|
|
55
|
-
{rank=same; Rec; Midx; Skv; Out; Sesv; Mlst; Exem; PolR}
|
|
56
|
-
|
|
57
|
-
Prompt [label="PromptBuilder.build(request:)\nengine-aware .budget\nMEMORY (relevance-ranked) + SKILLS\n+ LEARNING + KNOWN MISTAKES/FIXES\n+ METRICS (per-engine) + POLICY + EXTRO", fillcolor="#7dd3fc", penwidth=2];
|
|
58
|
-
|
|
59
|
-
Rem -> Fmem [color="#f59e0b"];
|
|
60
|
-
Skc -> Fskl [color="#f59e0b"];
|
|
61
|
-
Note -> Flrn [color="#f59e0b"];
|
|
62
|
-
Dist -> Fskl [color="#f59e0b"];
|
|
63
|
-
Dist -> Fses [dir=back, style=dashed, color="#fbbf24", label="mine"];
|
|
64
|
-
Mrec -> Fmis [color="#f59e0b"];
|
|
65
|
-
Mrec -> Fmem [label="resolve→lesson", style=dashed, color="#fbbf24"];
|
|
66
|
-
|
|
67
|
-
Fmem -> Rec [color="#a78bfa"];
|
|
68
|
-
Fskl -> Skv [color="#a78bfa"];
|
|
69
|
-
Flrn -> Out [color="#a78bfa"];
|
|
70
|
-
Fses -> Sesv [color="#a78bfa"];
|
|
71
|
-
Fmis -> Mlst [color="#a78bfa"];
|
|
72
|
-
|
|
73
|
-
Rec -> Prompt [color="#38bdf8"];
|
|
74
|
-
Skv -> Prompt [color="#38bdf8"];
|
|
75
|
-
Out -> Prompt [color="#38bdf8"];
|
|
76
|
-
Sesv -> Prompt [color="#38bdf8"];
|
|
77
|
-
Mlst -> Prompt [label="do NOT repeat", color="#fb7185", penwidth=2];
|
|
78
|
-
|
|
79
|
-
Rem -> Fidx [label="incremental\nre-embed", style=dashed, color="#fbbf24"];
|
|
80
|
-
Xft -> Fftn [color="#f59e0b"];
|
|
81
|
-
Xft -> Fses [dir=back, style=dashed, color="#fbbf24", label="mine"];
|
|
82
|
-
Xft -> Flrn [dir=back, style=dashed, color="#fbbf24", label="eligible verified outcomes"];
|
|
83
|
-
|
|
84
|
-
Fidx -> Midx [color="#a78bfa"];
|
|
85
|
-
Fmem -> Midx [style=dashed, color="#a78bfa"];
|
|
86
|
-
Flrn -> Exem [color="#a78bfa"];
|
|
87
|
-
Fses -> Exem [style=dashed, color="#a78bfa"];
|
|
88
|
-
|
|
89
|
-
Midx -> Prompt [label="MEMORY block\n(top-K by cosine)", color="#38bdf8", penwidth=2];
|
|
90
|
-
Exem -> Prompt [label="few-shot msgs\n(local only)", color="#38bdf8"];
|
|
91
|
-
|
|
92
|
-
ReVal [label="Extrospection.verify\nrevalidate_memory (cron)\nbrowser-backed GC", fillcolor="#fcd34d"];
|
|
93
|
-
ReVal -> Fmem [label="[UNVERIFIED yyyy-mm-dd]\nprefix stale :fact", color="#fb7185", style=dashed, penwidth=2];
|
|
94
|
-
ReVal -> Fext [label=":confirmed → :intel obs\n:refuted → observe stale", color="#f59e0b", style=dashed];
|
|
95
|
-
Fmem -> ReVal [label=":fact w/ CVE|ver|URL", style=dashed, color="#94a3b8", constraint=false];
|
|
96
|
-
|
|
97
|
-
Teach [label="Reflect.on\n(engine: reflect_engine)\nteacher-student", fillcolor="#fda4af", penwidth=2];
|
|
98
|
-
Fses -> Teach [label="transcript", style=dashed, color="#94a3b8", constraint=false];
|
|
99
|
-
Teach -> Fmem [label="frontier-authored\n:lesson", color="#fb7185", penwidth=2];
|
|
100
|
-
|
|
101
|
-
PolW -> Fpol [color="#f59e0b"];
|
|
102
|
-
Fpol -> PolR [color="#a78bfa"];
|
|
103
|
-
PolR -> Prompt [label="POLICY block\nadvisory only", color="#38bdf8"];
|
|
104
|
-
Rdpo -> Fprf [color="#f59e0b"];
|
|
105
|
-
Mrec -> Fprf [label="resolve → pair", style=dashed, color="#fbbf24"];
|
|
106
|
-
Fprf -> Fftn [label="export_dpo", style=dashed, color="#fbbf24", constraint=false];
|
|
107
|
-
|
|
38
|
+
{rank=same; Write; Skill}
|
|
39
|
+
{rank=same; Stores; Reflect}
|
|
40
|
+
{rank=same; Read; Revalidate}
|
|
41
|
+
{rank=same; Prompt; Export}
|
|
42
|
+
{rank=same; Reuse; Context}
|
|
108
43
|
}
|
|
@@ -1,34 +1,56 @@
|
|
|
1
1
|
digraph PWN_Architecture {
|
|
2
|
-
graph [
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
2
|
+
graph [
|
|
3
|
+
label=<<B>PWN - Overall Architecture</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">runtime ownership · evidence flow · verified outcomes</FONT>>,
|
|
4
|
+
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
+
rankdir=TB, splines=polyline, nodesep=0.5, ranksep=0.48,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.4, newrank=true, compound=true
|
|
7
|
+
];
|
|
8
|
+
node [fontname="Helvetica", fontsize=11, shape=box, style="filled,rounded",
|
|
9
|
+
fillcolor="#c4b5fd", penwidth=1.3, color="#334155", fontcolor="#0f172a", margin="0.22,0.16"];
|
|
10
|
+
edge [fontname="Helvetica", fontsize=10, color="#94a3b8",
|
|
11
|
+
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
12
|
+
|
|
13
|
+
// Ownership map, not a complete call graph. Internal repetition is summarized
|
|
14
|
+
// inside Runtime; shared state and asynchronous work are not return arrows.
|
|
15
|
+
subgraph cluster_entry {
|
|
16
|
+
label="01 ACCESS · operator / CI"; labelloc=t; fontsize=12;
|
|
17
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
18
|
+
Entry [fillcolor="#7dd3fc", width=5.1,
|
|
19
|
+
label="pwn / pwn-ai · REPL, curses and headless CLI\npwn-mesh: received @ai + private channel + whitelist\nCron: asynchronous prompt jobs; curriculum opt-in"];
|
|
20
|
+
}
|
|
21
|
+
subgraph cluster_control {
|
|
22
|
+
label="02 CONTROL · request-owned agent runtime"; fontsize=12;
|
|
23
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
24
|
+
Runtime [width=5.1,
|
|
25
|
+
label="RequestRuntime + Loop\nOwn objective, additive steering and checkpoints\nPromptBuilder + Registry: context and available tools\nRepeat tool / observation turns; optional Swarm / Solve"];
|
|
26
|
+
}
|
|
27
|
+
subgraph cluster_execution {
|
|
28
|
+
label="03 EXECUTION · host-owned tools"; fontsize=12;
|
|
29
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
30
|
+
Execute [fillcolor="#6ee7b7", width=5.1,
|
|
31
|
+
label="Dispatch + ToolGuard + confirmation + sandbox\nPlugins / SAST / AWS / WWW / SDR / Blockchain / Reports\nShell, Ruby and MCP integrations\nDirect REPL / driver calls can also use these capabilities"];
|
|
32
|
+
}
|
|
33
|
+
subgraph cluster_evidence {
|
|
34
|
+
label="04 ACCEPTANCE · evidence, not model prose"; fontsize=12;
|
|
35
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
36
|
+
Accept [width=5.1,
|
|
37
|
+
label="Host observations + exact-target artifact receipts\nFinalization arbiter + Verification: all obligations\nParent rechecks child artifacts; authored checks / current bytes\nRelease verified, failed, or unknown / incomplete result"];
|
|
38
|
+
}
|
|
39
|
+
subgraph cluster_state {
|
|
40
|
+
label="05 RETENTION · durable evidence and advisory context"; fontsize=12;
|
|
41
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
42
|
+
State [fillcolor="#fcd34d", width=5.1,
|
|
43
|
+
label="Sessions / Learning / Mistakes / Metrics / Policy\nDefault ~/.pwn stores; explicit artifacts may live elsewhere\nLater PromptBuilder reads memory, skills, lessons and policy\nCron hygiene is asynchronous; improvement is not automatic"];
|
|
44
|
+
}
|
|
45
|
+
Provider [fillcolor="#fda4af", label="MODEL BOUNDARY\nConfigured provider adapter\nRequest-local routing and retries\nModel output is not host evidence"];
|
|
46
|
+
Target [fillcolor="#fda4af", label="WORLD BOUNDARY\nExternal services / targets / hardware\nLive behavior needs separate validation\nRadio submission is not RF delivery"];
|
|
47
|
+
|
|
48
|
+
{rank=same; Runtime; Provider}
|
|
49
|
+
{rank=same; Execute; Target}
|
|
50
|
+
Entry -> Runtime [ltail=cluster_entry, lhead=cluster_control, label="agent requests", color="#38bdf8", weight=10];
|
|
51
|
+
Runtime -> Execute [ltail=cluster_control, lhead=cluster_execution, label="selected tool calls", color="#38bdf8", weight=10];
|
|
52
|
+
Execute -> Accept [ltail=cluster_execution, lhead=cluster_evidence, label="observed results / receipts", color="#38bdf8", weight=10];
|
|
53
|
+
Accept -> State [ltail=cluster_evidence, lhead=cluster_state, label="record outcomes and evidence", weight=10];
|
|
54
|
+
Runtime -> Provider [dir=both, label="context / proposals", constraint=false];
|
|
55
|
+
Execute -> Target [dir=both, label="as required", style=dashed, constraint=false];
|
|
34
56
|
}
|
|
@@ -1,32 +1,55 @@
|
|
|
1
1
|
digraph PWN_Feedback {
|
|
2
|
-
graph [
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
2
|
+
graph [
|
|
3
|
+
label=<<B>PWN::AI::Agent - Feedback + Learning Loop</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">evidence-backed feedback · not automatic improvement</FONT>>,
|
|
4
|
+
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
+
rankdir=TB, splines=polyline, nodesep=0.55, ranksep=0.42,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.4, newrank=true
|
|
7
|
+
];
|
|
8
|
+
node [fontname="Helvetica", fontsize=11, shape=box, style="filled,rounded",
|
|
9
|
+
fillcolor="#c4b5fd", penwidth=1.3, color="#334155", fontcolor="#0f172a", margin="0.22,0.16", width=4.6];
|
|
10
|
+
edge [fontname="Helvetica", fontsize=10, color="#94a3b8",
|
|
11
|
+
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
12
|
+
|
|
13
|
+
// Two independently initiated lifecycles. The evaluation lane reads explicitly
|
|
14
|
+
// selected frozen state, not a live automatic handoff from every request.
|
|
15
|
+
subgraph cluster_turn {
|
|
16
|
+
label="REQUEST LIFECYCLE · read top to bottom"; fontsize=12;
|
|
17
|
+
style="rounded,filled"; color="#334155"; fillcolor="#1e293b";
|
|
18
|
+
Prepare [fillcolor="#7dd3fc", label="1 PREPARE\nOriginal request + additive amendments\nPromptBuilder: recalled memory / skills / lessons / policy\nHOST: DetectOS summary + PreflightChecker"];
|
|
19
|
+
Execute [label="2 ACT + OBSERVE\nLoop + Registry + Dispatch: repeat tool / observation turns\nPermissions, confirmation and sandbox\nExtrospection on demand; auto baseline: host / repo / env"];
|
|
20
|
+
Verify [fillcolor="#fcd34d", label="3 CHECK THE EVIDENCE\nHost receipts + exact-target bytes / digests\nAuthored checks + complete original obligation coverage\nCompletion arbiter: verified / failed / unknown"];
|
|
21
|
+
Account [fillcolor="#6ee7b7", label="4 RECORD FEEDBACK\nReward + Learning: judge claim != verified completion\nFalse-completion rate uses checked claims\nMistakes / Metrics / Reflect: diagnostic lessons"];
|
|
22
|
+
Retain [fillcolor="#fcd34d", label="5 RETAIN ADVISORY CONTEXT\nPolicy accounting + ranking: positive training credit\nrequires independent action attribution\nSkillReview: recommend by default; limited auto-safe SOP edits"];
|
|
23
|
+
Reuse [fillcolor="#7dd3fc", label="6 INFORM A LATER TURN\nPromptBuilder recalls retained context as budget permits\nThis closes the context loop, not a proof of improvement\nTaskSummarizer compass is UX, never acceptance"];
|
|
24
|
+
Prepare -> Execute [color="#38bdf8"];
|
|
25
|
+
Execute -> Verify [label="host evidence boundary", color="#38bdf8"];
|
|
26
|
+
Verify -> Account [label="preserve failed / unknown", color="#38bdf8"];
|
|
27
|
+
Account -> Retain;
|
|
28
|
+
Retain -> Reuse [label="later context read", style=dashed];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
subgraph cluster_evaluation {
|
|
32
|
+
label="EVALUATION / PROMOTION · explicit operator workflow"; fontsize=12;
|
|
33
|
+
style="rounded,dashed,filled"; color="#94a3b8"; fillcolor="#1e293b";
|
|
34
|
+
Select [label="A SELECT FROZEN INPUTS\nExplicit baseline + candidate policy snapshots\nRead recorded policy state, not live online writers\nNo automatic handoff from the request lifecycle"];
|
|
35
|
+
Regression [label="B KEEP EVALUATION SPLITS SEPARATE\nOptional Learning.regression_task: persisted verifier failure\nExact request digest + operator-authored file / JSON gold\nInert regression recipe; never relabel as held-out"];
|
|
36
|
+
Evaluate [label="C EVALUATE LOCALLY\nPolicyEvaluation: disposable HOME + frozen bytes\nOff / baseline / candidate; public fixed held-out tasks\nRegression replay stays separate from held-out evidence"];
|
|
37
|
+
Promote [fillcolor="#6ee7b7", label="D GATE + EXPLICITLY PROMOTE\nFresh replay; per-task + aggregate nonregression\nHeld-out gain; both filesystem environments\nApproval + stopped writers + explicit live policy target"];
|
|
38
|
+
Receipt [fillcolor="#fcd34d", label="E VERSION + RETAIN ROLLBACK EVIDENCE\nRouting-policy replacement only; versioned receipt\nDigest-bound rollback refuses intervening live writes\nNo claim of general live LLM improvement"];
|
|
39
|
+
Select -> Regression;
|
|
40
|
+
Regression -> Evaluate [label="reviewed inputs; distinct splits"];
|
|
41
|
+
Evaluate -> Promote [label="acceptance gates", style=dashed];
|
|
42
|
+
Promote -> Receipt [label="only after approval and passing gates"];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Alignment only: no fabricated flow between independently initiated lanes.
|
|
46
|
+
{rank=same; Prepare; Select}
|
|
47
|
+
{rank=same; Execute; Regression}
|
|
48
|
+
{rank=same; Verify; Evaluate}
|
|
49
|
+
{rank=same; Account; Promote}
|
|
50
|
+
{rank=same; Retain; Receipt}
|
|
51
|
+
|
|
52
|
+
Trainer [fillcolor="#1e293b", fontcolor="#cbd5e1", style="rounded,dashed,filled",
|
|
53
|
+
label="SEPARATE OPTIONAL WEIGHT PATH\nCurriculum export / configured trainer is opt-in\nNot routing-policy promotion or proof of adapter gains\nScheduled curriculum jobs are disabled by default"];
|
|
54
|
+
{rank=same; Reuse; Trainer}
|
|
32
55
|
}
|