Every piece of the web publishing system, sorted by layer
That's it. No ALB changes, no new ECS tasks, no S3 buckets.
init/capabilities.py. Provides publish(), unpublish(), respond(), list() methods. Same as how discord capability is registered.init/capabilities.py (or init/processes.py). System channel for inbound HTTP requests. Same as io:discord:dm.These are CogOS concerns baked into the image. Every cogent gets them automatically.
apps/website/init/cog.py (or wherever the cogent wants).
cog = add_cog("website")
cog.make_default_coglet(
entrypoint="main.md",
mode="daemon",
handlers=["io:web:request"], # ← this is the subscription
capabilities=["web", "channels", "file", ...],
...
)
web capability can call web.publish("index.html", content). The files just sit in the file store under web/.A cogent that doesn't want a web presence just... doesn't create a web cog. The infra is there but idle.