awkno 0.2.0__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 (91) hide show
  1. awkno/__init__.py +25 -0
  2. awkno/_doctor.py +114 -0
  3. awkno/cli.py +497 -0
  4. awkno/corpus.py +216 -0
  5. awkno/generate.py +444 -0
  6. awkno/pages/agent-senses.json +13 -0
  7. awkno/pages/agent-vm.json +14 -0
  8. awkno/pages/aitherconnect.json +11 -0
  9. awkno/pages/aitherkvcache.json +11 -0
  10. awkno/pages/aitherzero.json +11 -0
  11. awkno/pages/awarena.json +14 -0
  12. awkno/pages/awask.json +15 -0
  13. awkno/pages/awbac.json +11 -0
  14. awkno/pages/awbrowse.json +13 -0
  15. awkno/pages/awdit.json +12 -0
  16. awkno/pages/awdk.json +16 -0
  17. awkno/pages/awevolve.json +15 -0
  18. awkno/pages/awfind.json +13 -0
  19. awkno/pages/awgit.json +12 -0
  20. awkno/pages/awgraph.json +12 -0
  21. awkno/pages/awiam.json +12 -0
  22. awkno/pages/awkit.json +13 -0
  23. awkno/pages/awkno.json +13 -0
  24. awkno/pages/awknowledge.json +12 -0
  25. awkno/pages/awm.json +13 -0
  26. awkno/pages/awmail.json +18 -0
  27. awkno/pages/awnboard.json +20 -0
  28. awkno/pages/awnest.json +19 -0
  29. awkno/pages/awnet.json +13 -0
  30. awkno/pages/awnix.json +20 -0
  31. awkno/pages/awnode.json +12 -0
  32. awkno/pages/awpack.json +13 -0
  33. awkno/pages/awpredict.json +11 -0
  34. awkno/pages/awprism.json +14 -0
  35. awkno/pages/awreason.json +14 -0
  36. awkno/pages/awrecover.json +13 -0
  37. awkno/pages/awrecurse.json +13 -0
  38. awkno/pages/awrelay.json +12 -0
  39. awkno/pages/awrepl.json +13 -0
  40. awkno/pages/awresearch.json +14 -0
  41. awkno/pages/awrun.json +13 -0
  42. awkno/pages/awseal.json +12 -0
  43. awkno/pages/awsh.json +13 -0
  44. awkno/pages/awshare.json +12 -0
  45. awkno/pages/awskills.json +12 -0
  46. awkno/pages/awsync.json +16 -0
  47. awkno/pages/awtunnel.json +12 -0
  48. awkno/pages/cited-research.json +14 -0
  49. awkno/pages/gobbonet-agentic.json +14 -0
  50. awkno/pages/guide-00.json +16 -0
  51. awkno/pages/guide-01.json +14 -0
  52. awkno/pages/guide-02.json +14 -0
  53. awkno/pages/guide-03.json +14 -0
  54. awkno/pages/guide-04.json +15 -0
  55. awkno/pages/guide-05.json +16 -0
  56. awkno/pages/guide-06.json +15 -0
  57. awkno/pages/guide-07.json +15 -0
  58. awkno/pages/guide-08.json +17 -0
  59. awkno/pages/guide-09.json +13 -0
  60. awkno/pages/guide.json +22 -0
  61. awkno/pages/law-01.json +11 -0
  62. awkno/pages/law-02.json +11 -0
  63. awkno/pages/law-03.json +11 -0
  64. awkno/pages/law-04.json +11 -0
  65. awkno/pages/law-05.json +11 -0
  66. awkno/pages/law-06.json +11 -0
  67. awkno/pages/law-07.json +11 -0
  68. awkno/pages/law-08.json +11 -0
  69. awkno/pages/law-09.json +11 -0
  70. awkno/pages/law-10.json +11 -0
  71. awkno/pages/law-11.json +11 -0
  72. awkno/pages/law-12.json +11 -0
  73. awkno/pages/law-13.json +11 -0
  74. awkno/pages/law-14.json +11 -0
  75. awkno/pages/law-15.json +11 -0
  76. awkno/pages/law-16.json +11 -0
  77. awkno/pages/law-17.json +11 -0
  78. awkno/pages/law-18.json +11 -0
  79. awkno/pages/law-19.json +11 -0
  80. awkno/pages/one-surface.json +15 -0
  81. awkno/pages/provenance.json +14 -0
  82. awkno/pages/shared-worktree.json +14 -0
  83. awkno/pages/the-front-door.json +15 -0
  84. awkno/pages/the-reasoning-loop.json +14 -0
  85. awkno/pages/who-what-did.json +13 -0
  86. awkno-0.2.0.dist-info/METADATA +321 -0
  87. awkno-0.2.0.dist-info/RECORD +91 -0
  88. awkno-0.2.0.dist-info/WHEEL +5 -0
  89. awkno-0.2.0.dist-info/entry_points.txt +2 -0
  90. awkno-0.2.0.dist-info/licenses/LICENSE +118 -0
  91. awkno-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "adopt": "Install it and ask an agent about the tab you are on.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nYour agent cannot see the page you are looking at, so you paste it in by hand.\n\nInstall\nload unpacked — see the repo",
5
+ "see_also": [
6
+ "awdk"
7
+ ],
8
+ "status": "public",
9
+ "synopsis": "Browser extension",
10
+ "topic": "AitherConnect"
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "adopt": "Quantize the cache on one model you already serve and measure the headroom.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nKV cache, not weights, is what runs a GPU out of room during real serving, and it grows with every token of every concurrent request.\n\nInstall\npip install aither-kvcache",
5
+ "see_also": [
6
+ "awnode"
7
+ ],
8
+ "status": "public",
9
+ "synopsis": "Near-optimal KV cache quantization for LLM inference",
10
+ "topic": "aitherkvcache"
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "adopt": "Run one numbered script and read what it says it did.",
3
+ "category": "brick",
4
+ "description": "Kind: corpus\n\nProblem\nOps knowledge lives in people's shell history, so the same recovery gets improvised differently every time it is needed.\n\nInstall\ngit clone https://github.com/Aitherium/AitherZero",
5
+ "see_also": [
6
+ "awrecover"
7
+ ],
8
+ "status": "public",
9
+ "synopsis": "PowerShell 7+ automation framework",
10
+ "topic": "AitherZero"
11
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "adopt": "Run one judged head-to-head between two agents and read the scored verdict.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nEveryone claims their agent is better and nobody can settle it. The comparisons that exist are a screenshot of two chats, or a leaderboard whose numbers arrived from somewhere nobody can name -- so \"which of these is actually better at this\" stays an argument. And the moment a result is worth something, the vote is worth gaming: an audience score with no check on who is voting is a bot flood with extra steps, and a verdict nobody signed can be edited afterwards by whoever owns the database.\n\nInstall\npip install awarena",
5
+ "see_also": [
6
+ "awrelay",
7
+ "awnest",
8
+ "awseal",
9
+ "awnboard"
10
+ ],
11
+ "status": "planned",
12
+ "synopsis": "Put two agents head to head and get a verdict you can check.",
13
+ "topic": "awarena"
14
+ }
awkno/pages/awask.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "adopt": "Ask a human a question from a script, and keep working on their answer.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nA decision buried in terminal prose is a stream event — it scrolls past, and the agent either stalls waiting for someone who is not reading, or guesses and does days of the wrong work. Every agent framework can print a question; almost none can carry the ANSWER back into the run that asked it, so the human is a bottleneck exactly when they are least able to be one.\n\nInstall\npip install awask",
5
+ "see_also": [
6
+ "awdk",
7
+ "awrelay",
8
+ "awmail",
9
+ "awsh",
10
+ "awnest"
11
+ ],
12
+ "status": "unpublished",
13
+ "synopsis": "Your agent asks you a question",
14
+ "topic": "awask"
15
+ }
awkno/pages/awbac.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "adopt": "Gate one endpoint and read the explanation it gives for a denial.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nMost authz answers \"no\" without saying why, so every denial becomes a debugging session — and the ones that fail OPEN never announce themselves at all.\n\nInstall\npip install awbac",
5
+ "see_also": [
6
+ "awdit"
7
+ ],
8
+ "status": "public",
9
+ "synopsis": "Role-based access control that fails closed and explains itself.",
10
+ "topic": "awbac"
11
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Drive one page and get back what is on it in a form worth reasoning about.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nHanding an agent a screenshot makes it read a picture of text; handing it raw DOM makes it read a megabyte of markup. Neither of those is the page.\n\nInstall\npip install awbrowse",
5
+ "see_also": [
6
+ "awdk",
7
+ "awfind",
8
+ "awsh"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "A portable browser client",
12
+ "topic": "awbrowse"
13
+ }
awkno/pages/awdit.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Write one sensitive action to it and then try to remove the record.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn audit log you can silently delete from is decoration. Most are. The property that matters is not \"it records\" but \"a missing record is visible\".\n\nInstall\npip install awdit",
5
+ "see_also": [
6
+ "awbac",
7
+ "awseal"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "An append-only audit trail whose gaps are DETECTABLE.",
11
+ "topic": "awdit"
12
+ }
awkno/pages/awdk.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "adopt": "Point it at a backend you already pay for and run one agent loop.",
3
+ "category": "brick",
4
+ "description": "Kind: runtime\n\nProblem\nRunning one agent is easy and running fifty is a different job: budgets, retries, which model, whose machine. Most frameworks make you adopt their whole world to find out.\n\nInstall\npip install awdk",
5
+ "see_also": [
6
+ "awskills",
7
+ "awm",
8
+ "awnode",
9
+ "awrun",
10
+ "awask",
11
+ "AitherConnect"
12
+ ],
13
+ "status": "public",
14
+ "synopsis": "Build AI agent fleets",
15
+ "topic": "awdk"
16
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "adopt": "Point it at a file and a command that scores that file, and watch an agent improve it -- keeping every version and the score it earned.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAutomated improvement loops fail silently and look identical while doing it. A run that explored honestly and found nothing produces the same logs, the same records and the same stop reason as a run that changed nothing at all -- there is no exception to catch and no failing request, so the loop keeps running and a human periodically concludes the search space is just hard. And the loops that DO work are usually one-shot generators: the model is asked for a candidate, handed no history, and never allowed to test its own idea before committing it.\n\nInstall\npip install awevolve",
5
+ "see_also": [
6
+ "awdk",
7
+ "awrun",
8
+ "awgit",
9
+ "awm",
10
+ "awpredict"
11
+ ],
12
+ "status": "unpublished",
13
+ "synopsis": "Point an agent at a file and a command that scores it, and let it improve.",
14
+ "topic": "awevolve"
15
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Ask one question and get ranked answers back instead of a page of results.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent with no search guesses from training data; an agent handed a raw web API gets ten blue links and burns its context reading them.\n\nInstall\npip install awfind",
5
+ "see_also": [
6
+ "awdk",
7
+ "awbrowse",
8
+ "awsh"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "A portable search client",
12
+ "topic": "awfind"
13
+ }
awkno/pages/awgit.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Take a lease on a file before you edit it in a shared checkout.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nSeveral agents editing one worktree silently sweep each other's work; a diff tells you WHAT changed but not who meant it or whether they were mid-edit.\n\nInstall\npip install awgit",
5
+ "see_also": [
6
+ "awgraph",
7
+ "awrelay"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Semantic version control on top of git",
11
+ "topic": "awgit"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Index one repo and ask it who calls one function.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\n\"Who calls this?\" answered by grep is a guess. Agents burn enormous context re-reading files to rebuild a graph the parser already knows.\n\nInstall\npip install awgraph",
5
+ "see_also": [
6
+ "awm",
7
+ "awdk"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "A semantic code graph for agents",
11
+ "topic": "awgraph"
12
+ }
awkno/pages/awiam.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Deactivate one session and watch it stop working immediately.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nDeactivation that takes effect \"eventually\" is not deactivation, and a store that cannot be read reports zero users — which every caller reads as \"nobody is authorised\" or, worse, as an empty directory to helpfully repopulate.\n\nInstall\npip install awiam",
5
+ "see_also": [
6
+ "awbac",
7
+ "awdit"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Who is this caller? A directory and session store that fails honestly.",
11
+ "topic": "awiam"
12
+ }
awkno/pages/awkit.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Point it at one MCP tool result and get a panel you can put in your own page.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nEvery agent surface re-implements the same panel by hand, so each one rots separately: a catalogue lists an app the renderer cannot draw, a tab is declared with an id no component answers to, and nothing compares the two. Measured 2026-08-19 on ONE tenant: 18 apps listed and 0 deployed, and 2 of 6 declared panels were ids with no component — they rendered NOTHING, with no error, no boundary and no log line, which is indistinguishable from a feature nobody wanted.\n\nInstall\nnpm i @aitherium/awkit",
5
+ "see_also": [
6
+ "awdk",
7
+ "awnode",
8
+ "awiam"
9
+ ],
10
+ "status": "planned",
11
+ "synopsis": "Render an agent panel from a tool result",
12
+ "topic": "awkit"
13
+ }
awkno/pages/awkno.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Ask it what a brick does and get the answer with your network cable out.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nThe family is only useful if you can find it. Its registry lives in one yaml in one monorepo and the laws live in a public skills pack, so a stranger with a terminal and no browser can reach neither — which makes \"what exists and what should this talk to\" a question asked of a person instead of a tool.\n\nInstall\npip install awkno",
5
+ "see_also": [
6
+ "awskills",
7
+ "awfind",
8
+ "awm"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "The man page for the Aither World",
12
+ "topic": "awkno"
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Read one law and apply it to the next thing you ship.",
3
+ "category": "brick",
4
+ "description": "Kind: corpus\n\nProblem\nEveryone learns the same lessons about agent-written code the same expensive way, and writes none of them down where the next person looks.\n\nInstall\nread it — https://aitherium.github.io/awknowledge/",
5
+ "see_also": [
6
+ "awskills",
7
+ "awkno"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "How to run a coding agent so the result survives",
11
+ "topic": "awknowledge"
12
+ }
awkno/pages/awm.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Give one agent a memory scoped to one project and watch it stop re-asking.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent that forgets everything between sessions re-derives the same facts forever; one that remembers everything globally leaks context across projects.\n\nInstall\npip install awm",
5
+ "see_also": [
6
+ "awpredict",
7
+ "awdk",
8
+ "awgraph"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "A portable, scoped agent memory.",
12
+ "topic": "awm"
13
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "adopt": "Send one email from an agent using a mailbox you already own, in about a minute.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent that cannot send email cannot finish most real errands: it drafts the invitation, the receipt, the reply, and then hands a human a block of text to paste somewhere. The usual fix is a transactional provider, which means a domain, DNS records, a paid account and a warm-up period before the first message — an afternoon of setup to send one email from a mailbox you already own. Receiving is worse: almost nothing gives an agent an inbox, so agents are write-only and cannot close a loop that a person answers by replying.\n\nInstall\npip install awmail",
5
+ "see_also": [
6
+ "awnboard",
7
+ "awnest",
8
+ "awseal",
9
+ "awdit",
10
+ "awiam",
11
+ "awrelay",
12
+ "awdk",
13
+ "awshare"
14
+ ],
15
+ "status": "public",
16
+ "synopsis": "Give an agent an email address",
17
+ "topic": "awmail"
18
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "adopt": "Put a gate in front of one URL and let exactly one person through it with a code you sent them.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nLetting one specific person reach one specific thing is still, in 2026, either a whole identity deployment or a link anyone who sees it can use. So everybody ships the link: an unguessable URL in an email, no expiry, no audience, no record of who walked through it -- and no way to take it back without breaking it for everyone.\n\nInstall\npip install awnboard",
5
+ "see_also": [
6
+ "awnest",
7
+ "awiam",
8
+ "awbac",
9
+ "awdit",
10
+ "awseal",
11
+ "awshare",
12
+ "awtunnel",
13
+ "awnet",
14
+ "awdk",
15
+ "awmail"
16
+ ],
17
+ "status": "public",
18
+ "synopsis": "A front gate you can put in front of anything, and hand someone the key to.",
19
+ "topic": "awnboard"
20
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "adopt": "Gate one action behind a human check and watch an automated caller fail it.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAny surface an agent can use, a bot can flood. CAPTCHA is hostile to the humans it is meant to serve and is beaten by the machines it is meant to stop, so the check has to be something other than a puzzle -- and every check that does exist fails OPEN, because \"we could not tell\" and \"it is fine\" reach the caller as the same empty value.\n\nInstall\npip install awnest",
5
+ "see_also": [
6
+ "awiam",
7
+ "awbac",
8
+ "awdit",
9
+ "awseal",
10
+ "awrelay",
11
+ "awgit",
12
+ "awnet",
13
+ "awtunnel",
14
+ "awdk"
15
+ ],
16
+ "status": "public",
17
+ "synopsis": "Prove there is a human before you let them into the nest.",
18
+ "topic": "awnest"
19
+ }
awkno/pages/awnet.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Host a mesh on one machine and join it from another.",
3
+ "category": "brick",
4
+ "description": "Kind: runtime\n\nProblem\nAgents are islands. Every deployment reinvents how a peer is found, addressed and trusted, so two agents on two machines cost more to introduce than either cost to build — and the answers (port forwards, a VPN per pair, public IPs, a broker somebody has to run) all become permanent maintenance.\n\nInstall\npip install awnet",
5
+ "see_also": [
6
+ "awnode",
7
+ "awdk",
8
+ "awrelay"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "The agentic web",
12
+ "topic": "awnet"
13
+ }
awkno/pages/awnix.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "adopt": "Boot one throwaway box and try to make a change you cannot reproduce.",
3
+ "category": "brick",
4
+ "description": "Kind: base\n\nProblem\nAn agent with root on a mutable host eventually produces a machine nobody can reproduce.\n\nInstall\nsee the repo — image builder",
5
+ "see_also": [
6
+ "awdk",
7
+ "awrecover",
8
+ "awnode",
9
+ "awgit",
10
+ "awgraph",
11
+ "awrelay",
12
+ "awm",
13
+ "awrecover",
14
+ "awseal",
15
+ "awshare"
16
+ ],
17
+ "status": "public",
18
+ "synopsis": "A Linux you can hand to an agent",
19
+ "topic": "awnix"
20
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Run it once and point one app at it instead of a vendor URL.",
3
+ "category": "brick",
4
+ "description": "Kind: runtime\n\nProblem\nEvery app hardcodes a different provider SDK, so switching backends means editing every app.\n\nInstall\npip install awnode",
5
+ "see_also": [
6
+ "awdk",
7
+ "aitherkvcache"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "A lightweight local gateway",
11
+ "topic": "awnode"
12
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Install one pack and run it. Each carries its own manifest, licence and version, so taking one costs you nothing else.",
3
+ "category": "brick",
4
+ "description": "Kind: corpus\n\nProblem\nA pack bundled into the SDK inherits the SDK's licence and the SDK's release cadence. That is backwards in both directions: a proprietary pack blocks the SDK's public publish (measured — the adk sync gate aborts on exactly this and names it), and a good pack cannot ship a fix without an SDK release. Packs and the runtime that loads them are different products with different audiences.\n\nInstall\ngit clone https://github.com/Aitherium/awpack",
5
+ "see_also": [
6
+ "awdk",
7
+ "awskills",
8
+ "awsh"
9
+ ],
10
+ "status": "planned",
11
+ "synopsis": "First-party agent packs",
12
+ "topic": "awpack"
13
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "adopt": "Wrap an environment you already have and ask it what happens next.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent that cannot anticipate its environment can only react. Every framework that offers this makes you adopt its whole training stack to find out whether a learned model beats the lookup table you already have.\n\nInstall\npip install awpredict",
5
+ "see_also": [
6
+ "awm"
7
+ ],
8
+ "status": "public",
9
+ "synopsis": "Predict what your environment does next, and how surprised you were.",
10
+ "topic": "awpredict"
11
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "adopt": "Hand it a failure and get back ranked candidate causes, each with the one observation that would rule it in or out.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nDebugging with an agent collapses onto the first plausible story, because nothing forces a second. The cost is not the wrong guess, it is the hours spent proving it — measured repeatedly here, where five hypotheses were spent on a service that was genuinely correct, and where a symptom named the wrong component so consistently that \"the symptom names the INNOCENT service\" had to be written down as a standing rule.\n\nInstall\npip install awprism",
5
+ "see_also": [
6
+ "awreason",
7
+ "awrepl",
8
+ "awgraph",
9
+ "awdit"
10
+ ],
11
+ "status": "public",
12
+ "synopsis": "Turn a failure into ranked hypotheses",
13
+ "topic": "awprism"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "adopt": "Run one hard question as a session you can open up afterwards — the phases, the thoughts, the tool calls — instead of a paragraph you have to take on faith.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent that reasoned well and an agent that reasoned badly return the same shape: one paragraph. So a wrong answer is indistinguishable from a right one until it has been acted on, and the only available debugging tool is asking again. The structure exists inside the model turn and is discarded at the boundary, which is why nothing downstream can ever check it.\n\nInstall\npip install awreason",
5
+ "see_also": [
6
+ "awdk",
7
+ "awfind",
8
+ "awbrowse",
9
+ "awm"
10
+ ],
11
+ "status": "public",
12
+ "synopsis": "A portable reasoning client",
13
+ "topic": "awreason"
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Snapshot one directory, break it, restore it, diff it.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nA restore that half-succeeds is worse than one that fails, because you now have a state that never existed.\n\nInstall\npip install awrecover",
5
+ "see_also": [
6
+ "awnix",
7
+ "awshare",
8
+ "AitherZero"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "Labelled snapshots with an all-or-nothing restore.",
12
+ "topic": "awrecover"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Ask a question about a document far bigger than your model's context, and get an answer that names which parts it actually read.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nA context window that overflows does not raise. The middle is dropped, the model answers fluently from the ends, and the reply looks exactly like one drawn from the whole document. The failure is a SILENCE — no error, no truncation warning, no shorter answer — and the only signal is that it is quietly wrong about the part nobody checked.\n\nInstall\npip install awrecurse",
5
+ "see_also": [
6
+ "awreason",
7
+ "awm",
8
+ "awfind"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "Answer a question over a context far larger than the window",
12
+ "topic": "awrecurse"
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Have one agent post a finding to a channel a human can also read.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nOne agent's transcript is invisible to every other agent, so a conclusion reached once gets re-derived by the next session that hits the same symptom.\n\nInstall\npip install awrelay",
5
+ "see_also": [
6
+ "awgit",
7
+ "awdk"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Portable agent messaging",
11
+ "topic": "awrelay"
12
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Give an agent a live session it can keep poking at, so the next question is asked of the object instead of of its own memory.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent given one-shot shell commands rebuilds its whole world on every call, so it guesses instead of looking — and in a transcript a guess is indistinguishable from a reading. Every variable it wanted is gone the moment the command exits, which is why agents describe state rather than inspect it.\n\nInstall\npip install awrepl",
5
+ "see_also": [
6
+ "awprism",
7
+ "awdk",
8
+ "awnix"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "A REPL an agent can actually use",
12
+ "topic": "awrepl"
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "adopt": "Ask one question and get back a report where every claim carries the source it came from.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nAn agent asked to research something returns a fluent report whose citations were never read. The failure is not a refusal and not an error — it is a plausible document, which is the most expensive possible output, because checking it costs more than writing it did.\n\nInstall\npip install awresearch",
5
+ "see_also": [
6
+ "awfind",
7
+ "awbrowse",
8
+ "awreason",
9
+ "awgraph"
10
+ ],
11
+ "status": "public",
12
+ "synopsis": "Ask a research question, get a cited report you can check.",
13
+ "topic": "awresearch"
14
+ }
awkno/pages/awrun.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Queue two runs at different priorities and watch the urgent one overtake.",
3
+ "category": "brick",
4
+ "description": "Kind: runtime\n\nProblem\nA shared runner pool serves whoever asked first, so an urgent one-line fix waits behind a queue of speculative work — and the only lever anyone has is asking people to stop pushing.\n\nInstall\npip install awrun",
5
+ "see_also": [
6
+ "awdk",
7
+ "awrelay",
8
+ "awevolve"
9
+ ],
10
+ "status": "public",
11
+ "synopsis": "A priority-aware queue and dispatcher for agentic runs and ad-hoc CI builds.",
12
+ "topic": "awrun"
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Sign one release file and hand someone the verify command.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\n\"Download this and run it\" is a request for trust with nothing behind it.\n\nInstall\npip install awseal",
5
+ "see_also": [
6
+ "awshare",
7
+ "awdit"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Sign an artifact so a stranger can verify it.",
11
+ "topic": "awseal"
12
+ }
awkno/pages/awsh.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "adopt": "Type a question at your prompt and get an answer instead of \"command not found\".",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nA shell has exactly one response to a line it does not recognise: command not found. So the moment you want to look something up you leave the terminal for a browser and lose the directory, the environment and the session you were already in -- when everything needed to answer you was right there.\n\nInstall\nnpm i -g @aitherium/shell-cli",
5
+ "see_also": [
6
+ "awdk",
7
+ "awfind",
8
+ "awbrowse"
9
+ ],
10
+ "status": "unpublished",
11
+ "synopsis": "Your terminal answers you -- type a question where a command would go.",
12
+ "topic": "awsh"
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Publish one file and fetch it on another machine with verification on.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nPublishing is easy; proving the bytes that arrived are the bytes you sent is the part everyone skips.\n\nInstall\npip install awshare",
5
+ "see_also": [
6
+ "awseal",
7
+ "awrecover"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Publish an artifact and fetch it back verified.",
11
+ "topic": "awshare"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Copy one.md into your agent's skills dir and tell it to use that skill.",
3
+ "category": "brick",
4
+ "description": "Kind: corpus\n\nProblem\nPrompt knowledge dies in a transcript. A skill is a procedure written once, in a file, that any agent can load when the situation calls for it.\n\nInstall\ngit clone https://github.com/Aitherium/awskills",
5
+ "see_also": [
6
+ "awdk",
7
+ "awknowledge"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Portable agent skills",
11
+ "topic": "awskills"
12
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "adopt": "Send a heartbeat up and receive pack updates down, and know exactly what changed.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nA deployment that drifts is worse than one that breaks: it is silently out of sync, reporting success while the platform has moved on. Every sync daemon hides this by collapsing network failures into empty results, so \"could not tell\" reads as \"in step\".\n\nInstall\nships inside AitherConnect",
5
+ "see_also": [
6
+ "awnode",
7
+ "awrelay",
8
+ "awrecover",
9
+ "awshare",
10
+ "awtunnel",
11
+ "awm"
12
+ ],
13
+ "status": "merged",
14
+ "synopsis": "Keep one client in step with a platform",
15
+ "topic": "awsync"
16
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "adopt": "Expose one local port to one remote caller and take it away again.",
3
+ "category": "brick",
4
+ "description": "Kind: tool\n\nProblem\nEverything an agent runs is behind NAT on somebody's laptop, and every workaround (a port forward, a public IP, a broker somebody maintains) becomes permanent.\n\nInstall\npip install awtunnel",
5
+ "see_also": [
6
+ "awnet",
7
+ "awnode"
8
+ ],
9
+ "status": "public",
10
+ "synopsis": "Reach a service that has no public address.",
11
+ "topic": "awtunnel"
12
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "adopt": null,
3
+ "category": "stack",
4
+ "description": "A research question answered against real sources, where the report names what it read (awresearch), the sources are found and actually opened rather than hallucinated (awfind, awbrowse), and what was learned survives the session (awm). The one failure this set exists for is the plausible document: fluent, well-formed, citing pages nobody fetched.\n\nIncludes: awresearch, awfind, awbrowse, awm",
5
+ "see_also": [
6
+ "awresearch",
7
+ "awfind",
8
+ "awbrowse",
9
+ "awm"
10
+ ],
11
+ "status": "partial",
12
+ "synopsis": "Research you can check",
13
+ "topic": "cited-research"
14
+ }