Skip to main content
Jenks Guo

Dokumentaro / reference

Administra API

Aŭtentigitaj finpunktoj kiuj redaktas la enhavon de la retejo per validigitaj git commit-oj.

Ĉiuj administraj finpunktoj bezonas agentan servĵetonon: Authorization: Bearer jgx_agt_… (la CLI legas env JENKSGUO_ADMIN_TOKEN). Jenks kreas ĵetonojn en la konzolo ĉe https://admin.jenksguo.xyz/admin → Access post ensaluto per Google (Cloudflare Access); ĉiu estas nomita, limigita ( content, media, publish; ĉiu ĵetono povas legi), eksvalidiĝas kaj povas esti revokita. Skribi al branĉo main ankaŭ bezonas publish. Ĉiu skribo kaj ĉiu rifuzita provo iras al la aŭdita protokolo. Vidu Give an AI agent access. Skriboj estas validigitaj per la sama skemo kiel la konstruo, poste enmetitaj en GitHub. CI tradukas ŝanĝitajn enskribojn al ĉiuj lingvoj, rekonstruas kaj deplojas: main → jenksguo.pages.dev kaj jenksguo.xyz, dev → dev.jenksguo.xyz.

Metodo Pado Ilo
GET · POST /api/admin/tokens — (nur por homoj: listigi aŭ krei agentajn ĵetonojn; SSO)
DELETE /api/admin/tokens/{id} — (nur por homoj: revoki; SSO)
POST /api/admin/login · /api/admin/logout — (nur loka evoluigo)
GET /api/admin/whoami admin_whoami
GET /api/admin/audit admin_audit_log
GET /api/admin/schema admin_schema
GET /api/admin/files admin_list_files
GET /api/admin/file admin_read_file
POST /api/admin/validate admin_validate
PUT /api/admin/file admin_write_file
DELETE /api/admin/file admin_delete_file
POST /api/admin/changes admin_commit_changes
POST /api/admin/ai-edit admin_ai_edit
GET /api/admin/translation admin_read_translation
PUT /api/admin/translation admin_write_translation
GET /api/admin/copy admin_read_copy
PUT /api/admin/copy admin_write_copy
GET /api/admin/deploys admin_deploy_status
POST /api/admin/promote admin_promote
POST /api/admin/cv admin_publish_cv
GET /api/admin/media admin_list_media
POST /api/admin/media admin_upload_media
PATCH /api/admin/media admin_update_media
DELETE /api/admin/media admin_delete_media

Eraroj: 401 unauthorized · unknown_token · token_expired · token_revoked, 403 missing_scope (kun needs[]) · sso_required · forbidden_path (nur enhavaj dosieroj estas skribeblaj), 422 invalid kun errors[], 409/502 github_error, 503 github_not_configured.

admin_whoami — Kiu mi estas

Kontrolu vian atestilon: kiu vi estas (SSO-retpoŝto aŭ nomo de agenta ĵetono), viaj ampleksoj, kiam via ĵetono eksvalidiĝas, kaj ĉu publikigado (GitHub) estas agordita.

  • MCP: admin_whoami ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/whoami (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin whoami

Neniuj argumentoj.

curl -s "https://jenksguo.pages.dev/api/admin/whoami" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_audit_log — Aŭdita protokolo

Lastatempaj administraj agoj, plej novaj unue: kiu (SSO-retpoŝto aŭ agenta ĵetono), kio, kiuj dosieroj, branĉo, gastiganto kaj rezulto. Agenta ĵetono vidas nur siajn proprajn agojn.

  • MCP: admin_audit_log ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/audit?limit=&token= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin audit [--limit 50]
Argumento Tipo Deviga Notoj
limit integer ne
token string ne Nur ĉi tiu identigilo de agenta ĵetono (nur por homoj)
curl -s "https://jenksguo.pages.dev/api/admin/audit" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_schema — Enhava skemo

La enhava modelo: kampoj kaj reguloj de enskriboj, etikedoj, lensoj, specoj, skribeblaj vojoj, dokumentoj, kaj redaktaj kutimoj. Legu ĉi tion antaŭ ol skribi.

  • MCP: admin_schema ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/schema (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin schema

Neniuj argumentoj.

curl -s "https://jenksguo.pages.dev/api/admin/schema" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_list_files — Listigi enhavajn dosierojn

Listigu redakteblajn enhavajn dosierojn en branĉo (pado, grandeco, sha), laŭvole interne de unu dosierujo kiel content/corpus/experiences.

  • MCP: admin_list_files ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/files?dir=&branch= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin ls [dir]
Argumento Tipo Deviga Notoj
dir string ne ekz. content/corpus/projects (defaŭlte: tuta enhavo)
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s "https://jenksguo.pages.dev/api/admin/files" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_read_file — Legi enhavan dosieron

Legu la krudan Markdown/JSON-fonton de enhava dosiero (kun ĝia sha). Transdonu path, aŭ slug por enskribo, lenso aŭ lerto.

  • MCP: admin_read_file ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/file?path=&slug=&branch= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin get <slug|path>
Argumento Tipo Deviga Notoj
path string ne
slug string ne
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s "https://jenksguo.pages.dev/api/admin/file" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_validate — Validigi ŝanĝon

Validigu dosierenhavon kontraŭ la enhava skemo sen enmeti. Redonas liston de problemoj (malplena = valida).

  • MCP: admin_validate ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/validate (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin validate <path> <file>
Argumento Tipo Deviga Notoj
path string jes
content string jes
curl -s -X POST https://jenksguo.pages.dev/api/admin/validate \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","content":"<content>"}'

admin_write_file — Krei aŭ ĝisdatigi enhavan dosieron

Validigu kaj enmetu unu enhavan dosieron (krei aŭ anstataŭigi). Publikigado estas aŭtomata: CI retradukas ŝanĝitajn enskribojn al ĉiuj lingvoj, rekonstruas kaj deplojas (main → jenksguo.pages.dev kaj jenksguo.xyz, dev → dev.jenksguo.xyz) post kelkaj minutoj.

  • MCP: admin_write_file ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: PUT /api/admin/file (agenta ĵetono)
  • Amplekso: content (+ publish por branĉo main)
  • CLI: jenks admin put <path> <file> -m <message>
Argumento Tipo Deviga Notoj
path string jes
content string jes
message string jes Komentmesaĝo
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X PUT https://jenksguo.pages.dev/api/admin/file \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","content":"<content>","message":"<message>"}'

admin_delete_file — Forigi enhavan dosieron

Forigu unu enhavan dosieron (ekz. forigi enskribon) kun komentmesaĝo. Git-historio konservas ĝin rehavebla.

  • MCP: admin_delete_file ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: DELETE /api/admin/file?path=&message=&branch= (agenta ĵetono)
  • Amplekso: content (+ publish por branĉo main)
  • CLI: jenks admin rm <path> -m <message>
Argumento Tipo Deviga Notoj
path string jes
message string jes
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X DELETE https://jenksguo.pages.dev/api/admin/file \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","message":"<message>"}'

admin_commit_changes — Enmeti plurajn dosierojn samtempe

Validigu kaj enmetu plurajn dosierŝanĝojn kiel UNU komiton. Ĉiu ŝanĝo estas {path, content} aŭ {path, delete: true}.

  • MCP: admin_commit_changes ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/changes (agenta ĵetono)
  • Amplekso: content (+ publish por branĉo main)
  • CLI: jenks admin commit <changes.json> -m <message>
Argumento Tipo Deviga Notoj
changes array jes
message string jes
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X POST https://jenksguo.pages.dev/api/admin/changes \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"changes":"<changes>","message":"<message>"}'

admin_ai_edit — Skizi redakton per AI

Petu la modelon de la retejo priskribi denove unu enhavan dosieron el simpl-angla instrukcio. Redonas la proponitan enhavon, diferencon kaj validigajn problemojn. NE enmetas — kontrolu, poste voku admin_write_file.

  • MCP: admin_ai_edit ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/ai-edit (agenta ĵetono)
  • Amplekso: content
  • CLI: jenks admin ai-edit <slug|path> "<instruction>" [--apply]
Argumento Tipo Deviga Notoj
path string ne
slug string ne
instruction string jes
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
content string ne Laŭvola nekonservita dosierteksto el kiu skizi (defaŭlte: la konservita dosiero).
curl -s -X POST https://jenksguo.pages.dev/api/admin/ai-edit \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"instruction":"<instruction>"}'

admin_read_translation — Legi tradukon

Unu enhava dosiero en alia lingvo: la anglaj fontkampoj, la nuna traduko kaj ĝia stato (nuna, malaktuala, mane redaktita, mankanta). Funkcias por enskriboj, lensoj, CV-oj, argumentoj, mondrigardaj paĝoj, atestiloj, prelegoj kaj la dokumentaro. Lingvoj: zh, zh-hant, ja, fr, es, eo.

  • MCP: admin_read_translation ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/translation?path=&slug=&locale=&branch= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin tr get <slug|path> <locale>
Argumento Tipo Deviga Notoj
path string ne
slug string ne
locale zh · zh-hant · ja · fr · es · eo jes
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s "https://jenksguo.pages.dev/api/admin/translation" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_write_translation — Redakti tradukon

Skribu la tekston de unu enhava dosiero en alia lingvo (zh, zh-hant, ja, fr, es, eo) — ekzemple pli bonan ĉinan resumon. Donu nur la kampojn por ŝanĝi; legu unue admin_read_translation por la kampnomoj. Markdown devas konservi la anglajn titolojn, kodblokojn kaj ligilojn. La redakto restas ĝis la angla ŝanĝiĝas; tiam tiu lingvo estas retradukita aŭtomate. La angla estas la fonto: ŝanĝu ĝin per admin_write_file.

  • MCP: admin_write_translation ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: PUT /api/admin/translation (agenta ĵetono)
  • Amplekso: content (+ publish por branĉo main)
  • CLI: jenks admin tr put <slug|path> <locale> <fields.json> -m <message>
Argumento Tipo Deviga Notoj
path string ne
slug string ne
locale zh · zh-hant · ja · fr · es · eo jes
fields object jes ekz. {"summary": "…", "body": "## …"}
message string ne Komentmesaĝo
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X PUT https://jenksguo.pages.dev/api/admin/translation \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"locale":"<locale>","fields":"<fields>"}'

admin_read_copy — Legi interfacan tekston

La interfacaj tekstoj de la retejo en unu lingvo — menuoj, paĝotitoloj, la unu-liniaj paĝaj enkondukoj, la ĉeftitolo, butonoj, SEO-priskriboj — kiel ŝlosilo → teksto, kun la angla (kaj ĉina por zh-hant) apudaj. Filtru per prefikso, ekz. hero aŭ career.

  • MCP: admin_read_copy ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/copy?locale=&prefix=&branch= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin copy get <locale> [prefix]
Argumento Tipo Deviga Notoj
locale en · zh · zh-hant · ja · fr · es · eo jes
prefix string ne
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s "https://jenksguo.pages.dev/api/admin/copy" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_write_copy — Redakti interfacan tekston

Ŝanĝu interfacan tekston en unu lingvo: values estas ŝlosilo → teksto ("" forigas vian redakton). en kaj zh estas la mane verkitaj fontoj: angla ŝanĝo estas tradukata al ja, fr, es kaj eo aŭtomate — ankaŭ agordu zh. Redakto en alia lingvo restas ĝis ĝia fontteksto ŝanĝiĝas. Konservu {placeholders} ekzakte.

  • MCP: admin_write_copy ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: PUT /api/admin/copy (agenta ĵetono)
  • Amplekso: content (+ publish por branĉo main)
  • CLI: jenks admin copy set <locale> <key> "<text>" -m <message>
Argumento Tipo Deviga Notoj
locale en · zh · zh-hant · ja · fr · es · eo jes
values object jes ekz. {"hero.sub": "…"}
message string ne
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X PUT https://jenksguo.pages.dev/api/admin/copy \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"locale":"<locale>","values":"<values>"}'

admin_deploy_status — Deploja stato

Lastatempaj CI-lanĉoj (traduki → konstrui → deploji) kun stato, branĉo, komito kaj ligiloj.

  • MCP: admin_deploy_status ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/deploys?branch= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin deploys
Argumento Tipo Deviga Notoj
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s "https://jenksguo.pages.dev/api/admin/deploys" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_promote — Altgradigi dev al produkta medio

Kunfandu la branĉon dev en main, publikigante ĉion antaŭrigarditan ĉe dev.jenksguo.xyz al la viva retejo (jenksguo.pages.dev kaj jenksguo.xyz).

  • MCP: admin_promote ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/promote (agenta ĵetono)
  • Amplekso: publish
  • CLI: jenks admin promote
Argumento Tipo Deviga Notoj
message string ne
curl -s -X POST https://jenksguo.pages.dev/api/admin/promote \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{}'

admin_publish_cv — Publikigi novan version de CV

Alŝutu novan PDF-on por CV (ai, web3 aŭ nova slug) kaj faru ĝin la nuna versio en unu paŝo: la PDF iras al la amaskomunikila biblioteko, la antaŭa versio moviĝas al la historio de la CV (ankoraŭ elŝutebla), kaj la ŝanĝo estas enmetita (CI publikigas ĝin). Laŭvola antaŭrigarda bildo kaj nova titolo/resumo. La stabila url /cv/.pdf poste liveras la novan dosieron.

  • MCP: admin_publish_cv ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/cv (agenta ĵetono)
  • Amplekso: content + media (+ publish por branĉo main)
  • CLI: jenks admin cv publish <slug> <file.pdf> --cv-version 2026.10 [--preview /media/…]
Argumento Tipo Deviga Notoj
slug string jes ai, web3, aŭ nova kebab-case identigilo
version string jes ekz. 2026.10
filename string ne
data string ne PDF-bajtoj, base64
url string ne Alternativo al data: https-URL de la PDF
preview string ne Laŭvola: jam alŝutita /media/… bildo de paĝo 1
title string ne
summary string ne
message string ne Komentmesaĝo
branch main · dev ne main publikigas la vivan retejon (jenksguo.pages.dev kaj ĝia spegulo jenksguo.xyz); dev montras antaŭrigardojn ĉe dev.jenksguo.xyz (defaŭlte main).
curl -s -X POST https://jenksguo.pages.dev/api/admin/cv \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"slug":"<slug>","version":"<version>"}'

admin_list_media — Listigi amaskomunikilaron

Listigu alŝutitajn bildojn, videoj kaj PDF-ojn (plej novaj unue): url, tipo, grandeco, dimensioj, alt-teksto, tuj-enmetebla Markdown, kaj kiuj enskriboj uzas ĉiun dosieron.

  • MCP: admin_list_media ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: GET /api/admin/media?prefix=&cursor=&limit= (agenta ĵetono)
  • Amplekso: read
  • CLI: jenks admin media ls [prefix]
Argumento Tipo Deviga Notoj
prefix string ne Ŝlosilprefikso kiel 2026/10
cursor string ne
limit integer ne
curl -s "https://jenksguo.pages.dev/api/admin/media" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_upload_media — Alŝuti amaskomunikilaron

Konservu bildon (webp, jpg, png, gif, avif, svg), videon (mp4, webm) aŭ PDF ĝis 25 MB en Cloudflare R2 kaj akiru ĝian publikan /media/… url kaj Markdown. Sendu base64 data kun filename, aŭ publikan https-url por importi. Dosieroj estas publikaj per URL tuj; referencu ilin el enhavo per admin_write_file. La REST-finpunkto ankaŭ akceptas multipart/form-data (kampo file).

  • MCP: admin_upload_media ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: POST /api/admin/media (agenta ĵetono)
  • Amplekso: media
  • CLI: jenks admin media upload <file|https-url> [--alt "…"]
Argumento Tipo Deviga Notoj
filename string ne Origina dosiernomo; fariĝas la legebla parto de la url.
data string ne Dosierbajtoj, base64 (permesita estas data:-URL-prefikso).
url string ne Alternativo al data: https-URL kiun la servilo elŝutas.
alt string ne Alt-teksto: kion la bildo montras, por ekranlegiloj kaj la bota modelo.
width integer ne
height integer ne
curl -s -X POST https://jenksguo.pages.dev/api/admin/media \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{}'

admin_update_media — Ĝisdatigi alt-tekston de amaskomunikilaro

Ŝanĝu la konservitan alt-tekston de alŝutita dosiero (la defaŭlta alt kiam ĝi estas enmetata en enhavon).

  • MCP: admin_update_media ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: PATCH /api/admin/media (agenta ĵetono)
  • Amplekso: media
  • CLI: jenks admin media alt <key> "<alt text>"
Argumento Tipo Deviga Notoj
key string jes Amaskomunikila ŝlosilo aŭ url, ekz. 2026/10/xero-talk-1a2b3c4d5e.webp
alt string jes
curl -s -X PATCH https://jenksguo.pages.dev/api/admin/media \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"key":"<key>","alt":"<alt>"}'

admin_delete_media — Forigi amaskomunikilaron

Nerevokeble forigu alŝutitan dosieron. Rifuzita dum publikigita enhavo ankoraŭ uzas ĝin, krom se force estas true. Ne rehavebla — male al enhavaj dosieroj ne ekzistas git-historio.

  • MCP: admin_delete_media ĉe https://jenksguo.pages.dev/mcp/admin
  • REST: DELETE /api/admin/media?key=&force= (agenta ĵetono)
  • Amplekso: media
  • CLI: jenks admin media rm <key> [--force]
Argumento Tipo Deviga Notoj
key string jes
force boolean ne
curl -s -X DELETE https://jenksguo.pages.dev/api/admin/media \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"key":"<key>"}'

.mdĈi tiu paĝo estas tradukita kun helpo de AI; oficialaj titoloj restas en la angla.