@wenathlan/saddle 1.8.16 → 1.8.18
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/README.md +38 -13
- package/dist/apps/registry.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/isolation/contracts.d.ts +118 -0
- package/dist/isolation/contracts.d.ts.map +1 -0
- package/dist/isolation/contracts.js +84 -0
- package/dist/isolation/contracts.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -2
- package/dist/scrape/robots.js +1 -1
- package/docs/artifactavailability.md +18 -2
- package/docs/containerplatforms-1.8.17.md +29 -0
- package/docs/releasenotes-1.8.16.md +6 -2
- package/docs/releasenotes-1.8.17.md +43 -0
- package/docs/releasenotes-1.8.18.md +32 -0
- package/docs/research-1.8.18-isolation.md +43 -0
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- package/docs/todo-1.8.16.md +92 -8
- package/docs/todo-1.8.18.md +152 -0
- package/docs/workflowoperations.md +32 -0
- package/extension/manifest.json +1 -1
- package/package.json +3 -2
- package/docs/logs/.gitkeep +0 -0
- package/docs/plans/00.index.md +0 -50
- package/docs/plans/01.architecture.md +0 -86
- package/docs/plans/02.research.computer.use.md +0 -58
- package/docs/plans/03.research.captcha.bypass.md +0 -68
- package/docs/plans/04.research.sandbox.ai.md +0 -52
- package/docs/plans/05.capture.platform.md +0 -57
- package/docs/plans/06.dependencies.md +0 -97
- package/docs/plans/07.captcha.test.page.md +0 -41
- package/docs/plans/08.production.infra.md +0 -70
- package/docs/plans/09.database.schema.md +0 -121
- package/docs/plans/10.cloudinary.storage.md +0 -57
- package/docs/plans/11.movement.logs.json.md +0 -72
- package/docs/plans/12.research.atlas.agent.browser.md +0 -79
- package/docs/plans/13.research.anti.detection.md +0 -898
- package/docs/plans/14.research.proxy.md +0 -1495
- package/docs/plans/15.research.retry.rate.limit.md +0 -1958
- package/docs/plans/16.research.crawling.md +0 -1417
- package/docs/plans/17.research.caching.md +0 -1610
- package/docs/plans/18.research.content.extraction.md +0 -1952
- package/docs/plans/19.research.errors.events.md +0 -1523
- package/docs/plans/20.research.zod.validation.md +0 -1350
- package/docs/plans/21.research.batch.concurrency.md +0 -1888
- package/docs/plans/22.research.universal.runtime.md +0 -944
- package/docs/plans/23.research.ai.integration.md +0 -1465
- package/docs/plans/24.research.memory.persistence.md +0 -1979
- package/docs/plans/25.research.server.api.md +0 -342
- package/docs/plans/26.research.compilation.md +0 -249
- package/docs/plans/27.research.html.parsing.md +0 -251
- package/docs/plans/28.action.plan.md +0 -50
- package/docs/plans/29.api.reference.md +0 -174
- package/docs/plans/30.architecture.plan.md +0 -94
- package/docs/plans/31.auditoria.dados.md +0 -163
- package/docs/plans/32.bots.automacao.computacional.md +0 -214
- package/docs/plans/33.bots.codigo.revisao.md +0 -220
- package/docs/plans/34.bots.seguranca.cicd.md +0 -366
- package/docs/plans/35.comparativo.concorrencia.md +0 -464
- package/docs/plans/36.computational.memory.md +0 -340
- package/docs/plans/37.deploystrategy.md +0 -394
- package/docs/plans/38.flow.md +0 -155
- package/docs/plans/39.multi.platform.bot.md +0 -252
- package/docs/plans/40.npm.publish.md +0 -250
- package/docs/plans/41.o.que.falta.md +0 -407
- package/docs/plans/42.pesquisa.concorrencia.md +0 -721
- package/docs/plans/43.plan.universal.architecture.md +0 -496
- package/docs/plans/44.reference.md +0 -100
- package/docs/plans/45.robotarchitecture.md +0 -237
- package/docs/plans/46.scdnintegration.md +0 -284
- package/docs/plans/47.multiforge.readme.md +0 -129
- package/docs/plans/48.theory.v4.repo.os.md +0 -152
- package/docs/plans/49.third.party.infra.md +0 -12
- package/docs/plans/50.file.as.compute.md +0 -39
- package/docs/plans/51.architecture.virtual.processor.md +0 -80
- package/docs/plans/52.manifesto.v8.md +0 -11
- package/docs/plans/58.cdn.list.md +0 -23
- package/docs/plans/59.sql.frameworks.md +0 -33
- package/docs/plans/60.sql.thirdparty.md +0 -26
- package/docs/plans/61.objective.multiforge.md +0 -63
- package/docs/plans/62.huggingface.upload.md +0 -26
- package/docs/plans/63.kaggle.upload.md +0 -24
- package/docs/plans/64.npm.storage.md +0 -30
- package/docs/plans/65.rclone.terabox.md +0 -32
- package/docs/plans/66.buckets.and.models.todo.md +0 -14
- package/docs/plans/67.database.todo.md +0 -13
- package/docs/plans/68.deploy.packages.todo.md +0 -12
- package/docs/plans/69.report.human.operator.md +0 -133
- package/docs/plans/70.report.brain2qwerty.ems.md +0 -135
- package/docs/plans/71.report.hd.infinito.vram.md +0 -155
- package/docs/plans/72.plan.hd.infinito.node.md +0 -146
- package/docs/plans/73.plan.scifi.repos.md +0 -125
- package/docs/plans/74.000.manifesto.v8.flat.2..md +0 -11
- package/docs/plans/README.md +0 -489
- package/docs/plans/aggregate_platforms.mjs +0 -146
- package/docs/plans/examplesession.json +0 -36
- package/docs/plans/missing-facts.md +0 -192
- package/docs/plans/models.md +0 -64
- package/docs/plans/organize.cjs +0 -270
- package/docs/plans/platforms.md +0 -2887
- package/docs/plans/sites.md +0 -31322
- package/docs/sources/farm.py +0 -117
- package/docs/sources/html/saddle1.html +0 -132
- package/docs/sources/html/saddle2.html +0 -157
- package/docs/sources/html/saddle3.html +0 -119
- package/docs/sources/html/saddle4.html +0 -144
- package/docs/sources/html/saddle5.html +0 -72
- package/docs/sources/html/saddle6.html +0 -171
- package/docs/sources/html/saddle7.html +0 -236
- package/docs/sources/saddle.ts +0 -74
- package/docs/sources/schema.prisma +0 -88
- package/docs/sources/script.sh +0 -64
- package/docs/sources/workflows.yml +0 -458
- package/docs/talks1/_body.txt +0 -14
- package/docs/talks1/_index.md +0 -15
- package/docs/talks1/_screenshot.png +0 -0
- package/docs/talks1/assistant-01.md +0 -5
- package/docs/talks1/assistant-02.md +0 -5
- package/docs/talks1/assistant-03.md +0 -531
- package/docs/talks1/assistant-04.md +0 -26
- package/docs/talks1/assistant-05.md +0 -774
- package/docs/talks1/assistant-06.md +0 -1718
- package/docs/talks1/scrape-share.cjs +0 -185
- package/docs/talks1/scrape-share.ts +0 -183
- package/docs/talks1/user-01.md +0 -3
- package/docs/talks1/user-02.md +0 -3
- package/docs/talks1/user-03.md +0 -88
- package/docs/talks1/user-04.md +0 -3
- package/docs/talks1/user-05.md +0 -3
- package/docs/talks1/user-06.md +0 -88
- package/docs/talks1/user-07.md +0 -88
- package/docs/talks2/_body.txt +0 -14
- package/docs/talks2/_index.md +0 -16
- package/docs/talks2/_screenshot.png +0 -0
- package/docs/talks2/assistant-01.md +0 -5
- package/docs/talks2/assistant-02.md +0 -5
- package/docs/talks2/assistant-03.md +0 -424
- package/docs/talks2/assistant-04.md +0 -598
- package/docs/talks2/assistant-05.md +0 -1280
- package/docs/talks2/assistant-06.md +0 -1227
- package/docs/talks2/assistant-07.md +0 -1252
- package/docs/talks2/user-01.md +0 -3
- package/docs/talks2/user-02.md +0 -3
- package/docs/talks2/user-03.md +0 -88
- package/docs/talks2/user-04.md +0 -88
- package/docs/talks2/user-05.md +0 -88
- package/docs/talks2/user-06.md +0 -88
- package/docs/talks2/user-07.md +0 -3
- package/docs/talks3/_body.txt +0 -467
- package/docs/talks3/_index.md +0 -10
- package/docs/talks3/_screenshot.png +0 -0
- package/docs/talks3/assistant-01.md +0 -417
- package/docs/talks3/assistant-02.md +0 -417
- package/docs/talks3/assistant-03.md +0 -29
- package/docs/talks3/assistant-04.md +0 -727
- package/docs/talks3/user-01.md +0 -88
- package/docs/talks3/user-02.md +0 -88
- package/docs/talks3/user-03.md +0 -3
- package/docs/talks3/user-04.md +0 -3
- package/docs/talks4/_body.txt +0 -14
- package/docs/talks4/_index.md +0 -12
- package/docs/talks4/_screenshot.png +0 -0
- package/docs/talks4/assistant-01.md +0 -5
- package/docs/talks4/assistant-02.md +0 -5
- package/docs/talks4/assistant-03.md +0 -35
- package/docs/talks4/assistant-04.md +0 -512
- package/docs/talks4/assistant-05.md +0 -599
- package/docs/talks4/user-01.md +0 -3
- package/docs/talks4/user-02.md +0 -3
- package/docs/talks4/user-03.md +0 -88
- package/docs/talks4/user-04.md +0 -88
- package/docs/talks4/user-05.md +0 -7
- package/docs/talks5/_body.txt +0 -14
- package/docs/talks5/_index.md +0 -13
- package/docs/talks5/_screenshot.png +0 -0
- package/docs/talks5/assistant-01.md +0 -5
- package/docs/talks5/assistant-02.md +0 -5
- package/docs/talks5/assistant-03.md +0 -690
- package/docs/talks5/assistant-04.md +0 -758
- package/docs/talks5/assistant-05.md +0 -974
- package/docs/talks5/user-01.md +0 -3
- package/docs/talks5/user-02.md +0 -3
- package/docs/talks5/user-03.md +0 -105
- package/docs/talks5/user-04.md +0 -105
- package/docs/talks5/user-05.md +0 -63
- package/docs/talks5/user-06.md +0 -105
- package/docs/talks6/_body.txt +0 -14
- package/docs/talks6/_index.md +0 -9
- package/docs/talks6/_screenshot.png +0 -0
- package/docs/talks6/assistant-01.md +0 -5
- package/docs/talks6/assistant-02.md +0 -5
- package/docs/talks6/assistant-03.md +0 -1499
- package/docs/talks6/user-01.md +0 -3
- package/docs/talks6/user-02.md +0 -3
- package/docs/talks6/user-03.md +0 -88
- package/docs/talks6/user-04.md +0 -88
- package/docs/talks7/_body.txt +0 -14
- package/docs/talks7/_index.md +0 -10
- package/docs/talks7/_screenshot.png +0 -0
- package/docs/talks7/assistant-01.md +0 -5
- package/docs/talks7/assistant-02.md +0 -5
- package/docs/talks7/assistant-03.md +0 -523
- package/docs/talks7/assistant-04.md +0 -617
- package/docs/talks7/user-01.md +0 -3
- package/docs/talks7/user-02.md +0 -3
- package/docs/talks7/user-03.md +0 -105
- package/docs/talks7/user-04.md +0 -67
- package/docs/talks8/conversa1.txt +0 -1322
- package/docs/talks8/conversa2.txt +0 -237
- package/docs/talks9/Beyond the Obvious_ 50 Plataformas Auto-Hospedadas de Forja de C/303/263digo para Al/303/251m de Gitea e GitLab.md" +0 -174
- package/docs/talks9/De NPM a Multi-Linguagem_ Uma Arquitetura T/303/251cnica para a Execu/303/247/303/243o Integrada de C/303/263digo no Ecossistema Node.js.md" +0 -59
- package/docs/talks9/De NPM a VMs Virtuais_ Uma An/303/241lise Arquitet/303/264nica para a Realiza/303/247/303/243o do Ciclo de Vida do Projeto SADDLE.md" +0 -91
- package/docs/talks9/Mapeamento da Engrenagem Computacional_ Uma Arquitetura para Execu/303/247/303/243o Isolada e Persist/303/252ncia em Ambientes Distribu/303/255dos.md" +0 -116
- package/docs/talks9/O Cen/303/241rio Pr/303/241tico do SADDLE_ Uma An/303/241lise de Viabilidade e Modelo de Ciclo de Vida Integrado.md" +0 -128
- package/docs/talks9/README (2).md +0 -489
- package/docs/talks9/README.md +0 -198
- package/docs/talks9/Viabilidade do Saddle_ Uma An/303/241lise T/303/251cnica da Transforma/303/247/303/243o de Armazenamento Remoto em Mem/303/263ria Computacional.md" +0 -80
- package/docs/talks9/conversa.txt +0 -544
- package/docs/talks9/other (2).md +0 -39
- package/docs/talks9/other.md +0 -57
- package/docs/talks9/outro.txt +0 -24
package/docs/sources/farm.py
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# farm.py - Orquestra N repos para multiplicar storage ilimitado
|
|
2
|
-
# Ideia: 1 repo = 500MB artifact free. 10 repos = 5GB, 100 repos = 50GB ilimitado
|
|
3
|
-
|
|
4
|
-
import os, requests
|
|
5
|
-
|
|
6
|
-
# Lista de repos workers (você cria via API)
|
|
7
|
-
WORKER_REPOS = [
|
|
8
|
-
"seuuser/opencode-worker-1",
|
|
9
|
-
"seuuser/opencode-worker-2",
|
|
10
|
-
"seuuser/opencode-worker-3",
|
|
11
|
-
# ... adicione 100
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
TOKEN = os.getenv("GITHUB_TOKEN")
|
|
15
|
-
|
|
16
|
-
def dispatch_to_farm(filename, job_id):
|
|
17
|
-
for repo in WORKER_REPOS:
|
|
18
|
-
owner, name = repo.split("/")
|
|
19
|
-
url = f"https://api.github.com/repos/{owner}/{name}/actions/workflows/process-binary.yml/dispatches"
|
|
20
|
-
payload = {
|
|
21
|
-
"ref": "main",
|
|
22
|
-
"inputs": {"job_id": job_id, "filename": filename, "action": "run"}
|
|
23
|
-
}
|
|
24
|
-
r = requests.post(url, json=payload, headers={
|
|
25
|
-
"Authorization": f"Bearer {TOKEN}",
|
|
26
|
-
"Accept": "application/vnd.github+json"
|
|
27
|
-
})
|
|
28
|
-
print(f"{repo}: {r.status_code}")
|
|
29
|
-
if r.status_code == 204:
|
|
30
|
-
break # conseguiu um worker
|
|
31
|
-
|
|
32
|
-
if __name__ == "__main__":
|
|
33
|
-
dispatch_to_farm("binary.wasm", "job-123")
|
|
34
|
-
|
|
35
|
-
#!/bin/bash
|
|
36
|
-
# Script: Transforma Armazenamento em RAM / Processamento
|
|
37
|
-
# Uso: ./scripts/storage-as-ram.sh
|
|
38
|
-
|
|
39
|
-
echo "=== Transformando Storage em Processamento ==="
|
|
40
|
-
echo "Antes:" && free -h
|
|
41
|
-
|
|
42
|
-
# 1. Swap file - transforma disco em RAM virtual
|
|
43
|
-
echo "[1] Criando swap 16GB em /mnt/swapfile..."
|
|
44
|
-
sudo fallocate -l 16G /mnt/swapfile 2>/dev/null || sudo dd if=/dev/zero of=/mnt/swapfile bs=1G count=16
|
|
45
|
-
sudo chmod 600 /mnt/swapfile
|
|
46
|
-
sudo mkswap /mnt/swapfile
|
|
47
|
-
sudo swapon /mnt/swapfile
|
|
48
|
-
|
|
49
|
-
# 2. tmpfs RAM disk - RAM que parece storage
|
|
50
|
-
echo "[2] Criando RAM disk 8GB em /mnt/ramdisk..."
|
|
51
|
-
sudo mkdir -p /mnt/ramdisk
|
|
52
|
-
sudo mount -t tmpfs -o size=8G tmpfs /mnt/ramdisk
|
|
53
|
-
|
|
54
|
-
# 3. ZRAM - comprime RAM para caber mais
|
|
55
|
-
echo "[3] Ativando ZRAM..."
|
|
56
|
-
sudo modprobe zram 2>/dev/null || true
|
|
57
|
-
echo 2G | sudo tee /sys/block/zram0/disksize 2>/dev/null || true
|
|
58
|
-
|
|
59
|
-
# 4. Usar /dev/shm (já é tmpfs) como workspace ultra rápido
|
|
60
|
-
echo "[4] Usando /dev/shm como workspace..."
|
|
61
|
-
mkdir -p /dev/shm/opencode-workspace
|
|
62
|
-
|
|
63
|
-
echo "Depois:" && free -h && swapon --show && df -h /mnt/ramdisk /dev/shm
|
|
64
|
-
|
|
65
|
-
echo "Pronto: Storage virou RAM. Use /mnt/ramdisk e /dev/shm para processar binários sem pesar disco."
|
|
66
|
-
|
|
67
|
-
# buckets/huggingface_upload.py - Usa Hugging Face como bucket ilimitado de terceiros
|
|
68
|
-
from huggingface_hub import HfApi, upload_folder
|
|
69
|
-
import os
|
|
70
|
-
|
|
71
|
-
# Free: public best-effort ilimitado, private 100GB
|
|
72
|
-
# PRO $9/mo: 10TB public + 1TB private
|
|
73
|
-
# Cada arquivo até 500GB com Xet backend
|
|
74
|
-
|
|
75
|
-
api = HfApi(token=os.getenv("HF_TOKEN"))
|
|
76
|
-
|
|
77
|
-
REPO_ID = "seuuser/opencode-storage" # dataset repo
|
|
78
|
-
REPO_TYPE = "dataset" # dataset tem viewer, melhor para binários
|
|
79
|
-
|
|
80
|
-
# Cria repo se não existe
|
|
81
|
-
api.create_repo(REPO_ID, repo_type=REPO_TYPE, exist_ok=True, private=False)
|
|
82
|
-
|
|
83
|
-
# Upload pasta dumps como dataset
|
|
84
|
-
upload_folder(
|
|
85
|
-
folder_path="docs/results",
|
|
86
|
-
repo_id=REPO_ID,
|
|
87
|
-
repo_type=REPO_TYPE,
|
|
88
|
-
commit_message="feat: dump from browser via third-party"
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
print(f"Upload feito: https://huggingface.co/datasets/{REPO_ID}")
|
|
92
|
-
# Acesso via CDN: https://huggingface.co/datasets/{REPO_ID}/resolve/main/arquivo.bin
|
|
93
|
-
|
|
94
|
-
# buckets/kaggle_upload.py - Kaggle como bucket 200GB por dataset, público ilimitado
|
|
95
|
-
# Limite: 200GB por dataset, 50 arquivos top-level, privado total 200GB, público ilimitado
|
|
96
|
-
|
|
97
|
-
import os, json, subprocess, pathlib
|
|
98
|
-
|
|
99
|
-
DATASET_NAME = "seuuser-opencode-storage-part-001" # cada dataset 200GB
|
|
100
|
-
DATASET_PATH = pathlib.Path("docs/results")
|
|
101
|
-
|
|
102
|
-
# dataset-metadata.json
|
|
103
|
-
meta = {
|
|
104
|
-
"title": "opencode-storage-part-001",
|
|
105
|
-
"id": f"seuuser/{DATASET_NAME}",
|
|
106
|
-
"licenses": [{"name": "mit"}],
|
|
107
|
-
"resources": [{"path": "results", "description": "binários processados"}]
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
(DATASET_PATH / "dataset-metadata.json").write_text(json.dumps(meta, indent=2))
|
|
111
|
-
|
|
112
|
-
# Cria ou versiona
|
|
113
|
-
# kaggle datasets create -p docs/results --dir-mode tar
|
|
114
|
-
# kaggle datasets version -p docs/results -m "add more bins"
|
|
115
|
-
|
|
116
|
-
print("Kaggle: cada dataset público = 200GB free ilimitado. Crie N datasets para N*200GB")
|
|
117
|
-
print("10 datasets = 2TB free, 100 datasets = 20TB")
|