hanoman 0.1.13 → 0.1.14
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/dist/build-info.json +3 -3
- package/dist/cli.js +37 -14
- package/dist/server.js +274 -101
- package/docs/agent-integration.md +429 -0
- package/package.json +2 -1
- package/web/assets/{index-DRwKLKdp.js → index-CB1_4DSI.js} +1539 -1535
- package/web/index.html +1 -1
package/dist/build-info.json
CHANGED
package/dist/cli.js
CHANGED
|
@@ -5384,6 +5384,9 @@ var init_api = __esm({
|
|
|
5384
5384
|
limits: `${API}/limits`,
|
|
5385
5385
|
// SPEC-339 · versi codex CLI (peringatan lunak model GPT-5.6).
|
|
5386
5386
|
codexVersion: `${API}/codex/version`,
|
|
5387
|
+
// SPEC-489 · panduan AI agent — markdown MENTAH & PUBLIC (tanpa auth). Satu definisi URL untuk
|
|
5388
|
+
// klien web dan untuk tautan yang disalin operator ke agennya.
|
|
5389
|
+
agentDoc: `${API}/agent-integration.md`,
|
|
5387
5390
|
docs: (id) => `${API}/projects/${id}/docs`,
|
|
5388
5391
|
docFile: (id, path) => `${API}/projects/${id}/docs/${path}`,
|
|
5389
5392
|
// SPEC-210 · dokumen PRD project (freshest-wins: worktree sesi prd hidup > repoDir)
|
|
@@ -5662,6 +5665,7 @@ var init_config_registry = __esm({
|
|
|
5662
5665
|
kind: "url",
|
|
5663
5666
|
apply: "live",
|
|
5664
5667
|
category: "knob",
|
|
5668
|
+
example: "https://hanoman.nafanesia.id",
|
|
5665
5669
|
help: "Base URL hub tujuan sync (REST + WS). Kosong = instance ini murni HUB."
|
|
5666
5670
|
},
|
|
5667
5671
|
{
|
|
@@ -5671,6 +5675,7 @@ var init_config_registry = __esm({
|
|
|
5671
5675
|
kind: "secret",
|
|
5672
5676
|
apply: "live",
|
|
5673
5677
|
category: "credential",
|
|
5678
|
+
example: "43 karakter base64url dari tab Perangkat hub",
|
|
5674
5679
|
help: "Token yang diterbitkan hub (tab Perangkat di hub). Dikirim sebagai Bearer."
|
|
5675
5680
|
},
|
|
5676
5681
|
{
|
|
@@ -5680,6 +5685,7 @@ var init_config_registry = __esm({
|
|
|
5680
5685
|
kind: "int",
|
|
5681
5686
|
apply: "live",
|
|
5682
5687
|
category: "knob",
|
|
5688
|
+
example: "15000",
|
|
5683
5689
|
default: "15000",
|
|
5684
5690
|
min: 1e3
|
|
5685
5691
|
},
|
|
@@ -5691,13 +5697,14 @@ var init_config_registry = __esm({
|
|
|
5691
5697
|
kind: "secret",
|
|
5692
5698
|
apply: "new-session",
|
|
5693
5699
|
category: "credential",
|
|
5700
|
+
example: "sk-ant-oat01-\u2026",
|
|
5694
5701
|
inheritEnv: true,
|
|
5695
5702
|
help: "Token `claude setup-token`. Diwarisi proses claude yang di-spawn."
|
|
5696
5703
|
},
|
|
5697
|
-
{ key: "ANTHROPIC_API_KEY", group: "claude", label: "Anthropic API key", kind: "secret", apply: "new-session", category: "credential", inheritEnv: true },
|
|
5698
|
-
{ key: "HANOMAN_CLAUDE_BIN", group: "claude", label: "Biner claude", kind: "path", apply: "new-session", category: "knob", default: "claude" },
|
|
5704
|
+
{ key: "ANTHROPIC_API_KEY", group: "claude", label: "Anthropic API key", kind: "secret", apply: "new-session", category: "credential", example: "sk-ant-api03-\u2026", inheritEnv: true },
|
|
5705
|
+
{ key: "HANOMAN_CLAUDE_BIN", group: "claude", label: "Biner claude", kind: "path", apply: "new-session", category: "knob", example: "/opt/homebrew/bin/claude", default: "claude" },
|
|
5699
5706
|
// codex (SPEC-338 · ADR-0074)
|
|
5700
|
-
{ key: "HANOMAN_CODEX_BIN", group: "claude", label: "Biner codex", kind: "path", apply: "new-session", category: "knob", default: "codex" },
|
|
5707
|
+
{ key: "HANOMAN_CODEX_BIN", group: "claude", label: "Biner codex", kind: "path", apply: "new-session", category: "knob", example: "/opt/homebrew/bin/codex", default: "codex" },
|
|
5701
5708
|
{
|
|
5702
5709
|
key: "CLAUDE_CONFIG_DIR",
|
|
5703
5710
|
group: "claude",
|
|
@@ -5705,11 +5712,12 @@ var init_config_registry = __esm({
|
|
|
5705
5712
|
kind: "path",
|
|
5706
5713
|
apply: "new-session",
|
|
5707
5714
|
category: "knob",
|
|
5715
|
+
example: "~/.claude",
|
|
5708
5716
|
help: "Default ~/.claude. Sumber .credentials.json untuk panel usage/limit."
|
|
5709
5717
|
},
|
|
5710
5718
|
// vps
|
|
5711
|
-
{ key: "HANOMAN_SSH_KEY_DIR", group: "vps", label: "Dir key SSH", kind: "path", apply: "new-session", category: "knob", help: "Default ~/.hanoman." },
|
|
5712
|
-
{ key: "HANOMAN_SSH_BIN", group: "vps", label: "Biner ssh", kind: "path", apply: "new-session", category: "knob", default: "ssh" },
|
|
5719
|
+
{ key: "HANOMAN_SSH_KEY_DIR", group: "vps", label: "Dir key SSH", kind: "path", apply: "new-session", category: "knob", example: "~/.hanoman", help: "Default ~/.hanoman." },
|
|
5720
|
+
{ key: "HANOMAN_SSH_BIN", group: "vps", label: "Biner ssh", kind: "path", apply: "new-session", category: "knob", example: "/usr/bin/ssh", default: "ssh" },
|
|
5713
5721
|
// github (SPEC-471 · ADR-0095 · tarik issue → backlog). Dua mode auth, satu jalur kode:
|
|
5714
5722
|
// `gh` memakai keyring mesin; bila GITHUB_TOKEN diisi ia diteruskan sebagai GH_TOKEN ke
|
|
5715
5723
|
// proses gh DAN dipakai jalur REST (hub VPS yang tak punya keyring).
|
|
@@ -5720,6 +5728,7 @@ var init_config_registry = __esm({
|
|
|
5720
5728
|
kind: "secret",
|
|
5721
5729
|
apply: "live",
|
|
5722
5730
|
category: "credential",
|
|
5731
|
+
example: "ghp_\u2026",
|
|
5723
5732
|
help: "PAT scope `repo` (atau `public_repo`). Kosong = andalkan `gh auth login` di mesin ini."
|
|
5724
5733
|
},
|
|
5725
5734
|
{
|
|
@@ -5729,6 +5738,7 @@ var init_config_registry = __esm({
|
|
|
5729
5738
|
kind: "path",
|
|
5730
5739
|
apply: "live",
|
|
5731
5740
|
category: "knob",
|
|
5741
|
+
example: "/opt/homebrew/bin/gh",
|
|
5732
5742
|
default: "gh",
|
|
5733
5743
|
help: "Absen = tarik issue lewat HTTPS langsung ke api.github.com."
|
|
5734
5744
|
},
|
|
@@ -5741,6 +5751,7 @@ var init_config_registry = __esm({
|
|
|
5741
5751
|
kind: "secret",
|
|
5742
5752
|
apply: "live",
|
|
5743
5753
|
category: "credential",
|
|
5754
|
+
example: "123456789:AAE\u2026",
|
|
5744
5755
|
pattern: "^\\d{5,}:[A-Za-z0-9_-]{30,}$",
|
|
5745
5756
|
patternError: "format BotFather: <bot_id>:<secret>",
|
|
5746
5757
|
help: "Token dari BotFather. Disimpan terenkripsi; tak pernah dikembalikan utuh."
|
|
@@ -5752,6 +5763,7 @@ var init_config_registry = __esm({
|
|
|
5752
5763
|
kind: "secret",
|
|
5753
5764
|
apply: "live",
|
|
5754
5765
|
category: "credential",
|
|
5766
|
+
example: "hnm_agt_\u2026",
|
|
5755
5767
|
pattern: "^\\S{20,}$",
|
|
5756
5768
|
patternError: "plaintext AgentToken (hnm_agt_\u2026)",
|
|
5757
5769
|
help: "Plaintext AgentToken ber-capability Telegram. Dipakai session operator, bukan bot."
|
|
@@ -5763,6 +5775,7 @@ var init_config_registry = __esm({
|
|
|
5763
5775
|
kind: "string",
|
|
5764
5776
|
apply: "live",
|
|
5765
5777
|
category: "credential",
|
|
5778
|
+
example: "123456789, 987654321",
|
|
5766
5779
|
pattern: "^\\d+(?:[\\s,]+\\d+)*$",
|
|
5767
5780
|
patternError: "numeric user id, dipisah koma/spasi",
|
|
5768
5781
|
help: "Siapa yang boleh memerintah bot. Numeric Telegram user id, bukan username."
|
|
@@ -5774,12 +5787,13 @@ var init_config_registry = __esm({
|
|
|
5774
5787
|
kind: "string",
|
|
5775
5788
|
apply: "live",
|
|
5776
5789
|
category: "knob",
|
|
5790
|
+
example: "-1001234567890",
|
|
5777
5791
|
pattern: "^-?\\d+$",
|
|
5778
5792
|
patternError: "numeric chat id (channel/supergroup negatif)",
|
|
5779
5793
|
help: "Tujuan Test Connection. Kosong = pakai satu-satunya id di allowlist."
|
|
5780
5794
|
},
|
|
5781
5795
|
// runtime
|
|
5782
|
-
{ key: "HANOMAN_EVENTS_TICK_MS", group: "runtime", label: "Interval events (ms)", kind: "int", apply: "live", category: "knob", default: "1000", min: 100 },
|
|
5796
|
+
{ key: "HANOMAN_EVENTS_TICK_MS", group: "runtime", label: "Interval events (ms)", kind: "int", apply: "live", category: "knob", example: "1000", default: "1000", min: 100 },
|
|
5783
5797
|
{ key: "HANOMAN_UPDATE_FETCH", group: "runtime", label: "Deteksi update saat boot", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
5784
5798
|
// SPEC-398 · ADR-0087 · deteksi update kini membandingkan semver dengan registry npm, bukan
|
|
5785
5799
|
// menghitung commit di repo git (HANOMAN_REPO_ROOT dicabut bersama jalur git itu).
|
|
@@ -5790,6 +5804,7 @@ var init_config_registry = __esm({
|
|
|
5790
5804
|
kind: "string",
|
|
5791
5805
|
apply: "live",
|
|
5792
5806
|
category: "knob",
|
|
5807
|
+
example: "https://registry.npmjs.org",
|
|
5793
5808
|
default: "https://registry.npmjs.org",
|
|
5794
5809
|
help: "Sumber versi terbaru paket `hanoman`."
|
|
5795
5810
|
},
|
|
@@ -5800,15 +5815,16 @@ var init_config_registry = __esm({
|
|
|
5800
5815
|
kind: "string",
|
|
5801
5816
|
apply: "restart",
|
|
5802
5817
|
category: "knob",
|
|
5818
|
+
example: "hanoman",
|
|
5803
5819
|
default: "hanoman",
|
|
5804
5820
|
help: "Mengubah ini TIDAK memindahkan sesi tmux yang sudah hidup \u2014 berlaku setelah restart."
|
|
5805
5821
|
},
|
|
5806
5822
|
// gitGraph (SPEC-233 · preferensi tampilan git graph; semua live, dikonsumsi client)
|
|
5807
|
-
{ key: "gitGraph.style", group: "gitGraph", label: "Gaya graph", kind: "string", apply: "live", category: "knob", default: "rounded", help: "rounded | angular" },
|
|
5808
|
-
{ key: "gitGraph.colours", group: "gitGraph", label: "Warna lane (CSV)", kind: "string", apply: "live", category: "knob", help: "Daftar warna hex dipisah koma; kosong = palet bawaan." },
|
|
5809
|
-
{ key: "gitGraph.dateType", group: "gitGraph", label: "Jenis tanggal", kind: "string", apply: "live", category: "knob", default: "author", help: "author | commit" },
|
|
5810
|
-
{ key: "gitGraph.commitsInitialLoad", group: "gitGraph", label: "Muat awal", kind: "int", apply: "live", category: "knob", default: "200", min: 1 },
|
|
5811
|
-
{ key: "gitGraph.commitsLoadMore", group: "gitGraph", label: "Muat lagi", kind: "int", apply: "live", category: "knob", default: "100", min: 1 },
|
|
5823
|
+
{ key: "gitGraph.style", group: "gitGraph", label: "Gaya graph", kind: "string", apply: "live", category: "knob", example: "rounded", default: "rounded", help: "rounded | angular" },
|
|
5824
|
+
{ key: "gitGraph.colours", group: "gitGraph", label: "Warna lane (CSV)", kind: "string", apply: "live", category: "knob", example: "#c9a227, #6b8f71, #b4614e", help: "Daftar warna hex dipisah koma; kosong = palet bawaan." },
|
|
5825
|
+
{ key: "gitGraph.dateType", group: "gitGraph", label: "Jenis tanggal", kind: "string", apply: "live", category: "knob", example: "author", default: "author", help: "author | commit" },
|
|
5826
|
+
{ key: "gitGraph.commitsInitialLoad", group: "gitGraph", label: "Muat awal", kind: "int", apply: "live", category: "knob", example: "200", default: "200", min: 1 },
|
|
5827
|
+
{ key: "gitGraph.commitsLoadMore", group: "gitGraph", label: "Muat lagi", kind: "int", apply: "live", category: "knob", example: "100", default: "100", min: 1 },
|
|
5812
5828
|
{ key: "gitGraph.showRemoteBranches", group: "gitGraph", label: "Tampilkan remote", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
5813
5829
|
{ key: "gitGraph.showTags", group: "gitGraph", label: "Tampilkan tag", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
5814
5830
|
{ key: "gitGraph.showStashes", group: "gitGraph", label: "Tampilkan stash", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
@@ -5818,7 +5834,7 @@ var init_config_registry = __esm({
|
|
|
5818
5834
|
{ key: "gitGraph.combineLocalRemote", group: "gitGraph", label: "Gabung label local+remote", kind: "bool", apply: "live", category: "knob", default: "0" },
|
|
5819
5835
|
{ key: "gitGraph.markdown", group: "gitGraph", label: "Render markdown pesan", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
5820
5836
|
{ key: "gitGraph.emoji", group: "gitGraph", label: "Render emoji shortcode", kind: "bool", apply: "live", category: "knob", default: "1" },
|
|
5821
|
-
{ key: "gitGraph.issueLinkPattern", group: "gitGraph", label: "Pola link issue", kind: "string", apply: "live", category: "knob", help: "URL dengan $1 untuk nomor issue, mis. https://github.com/acme/app/issues/$1" },
|
|
5837
|
+
{ key: "gitGraph.issueLinkPattern", group: "gitGraph", label: "Pola link issue", kind: "string", apply: "live", category: "knob", example: "https://github.com/acme/app/issues/$1", help: "URL dengan $1 untuk nomor issue, mis. https://github.com/acme/app/issues/$1" },
|
|
5822
5838
|
// bootstrap (read-only)
|
|
5823
5839
|
{ key: "DATABASE_URL", group: "bootstrap", label: "DATABASE_URL", kind: "secret", apply: "restart", category: "bootstrap" },
|
|
5824
5840
|
{ key: "TEST_DATABASE_URL", group: "bootstrap", label: "TEST_DATABASE_URL", kind: "secret", apply: "restart", category: "bootstrap" },
|
|
@@ -28701,7 +28717,7 @@ function packageJsonFor(version3, deps) {
|
|
|
28701
28717
|
prepublishOnly: "node dist/cli.js __verify"
|
|
28702
28718
|
},
|
|
28703
28719
|
engines: { node: ">=20" },
|
|
28704
|
-
files: ["bin", "dist", "web", "prisma", "README.md", "LICENSE"],
|
|
28720
|
+
files: ["bin", "dist", "web", "prisma", "docs", "README.md", "LICENSE"],
|
|
28705
28721
|
dependencies: deps,
|
|
28706
28722
|
// MIT: paket ini didistribusikan publik supaya orang `npm i -g`. `UNLICENSED` berarti "tak ada
|
|
28707
28723
|
// izin pakai" — 0.1.0 terbit dengan kontradiksi itu, dan versi terbit tak bisa diperbaiki.
|
|
@@ -28723,6 +28739,9 @@ function copyPlan(repo) {
|
|
|
28723
28739
|
{ from: join10(repo, "server/prisma/schema.prisma"), to: "prisma/schema.prisma" },
|
|
28724
28740
|
{ from: join10(repo, "server/prisma/migrations"), to: "prisma/migrations", dir: true },
|
|
28725
28741
|
{ from: join10(repo, "internal/docs/operations/npm-readme.md"), to: "README.md" },
|
|
28742
|
+
// SPEC-489 · dibaca runtime oleh pickGuideFile (kandidat `<pkg>/docs/…`). Bukan README:
|
|
28743
|
+
// README paket adalah npm-readme.md (berhadapan-MANUSIA), ini naskah berhadapan-AGEN.
|
|
28744
|
+
{ from: join10(repo, "docs/agent-integration.md"), to: "docs/agent-integration.md" },
|
|
28726
28745
|
{ from: join10(repo, "LICENSE"), to: "LICENSE" }
|
|
28727
28746
|
];
|
|
28728
28747
|
}
|
|
@@ -28751,7 +28770,11 @@ var init_pack = __esm({
|
|
|
28751
28770
|
"prisma/schema.prisma",
|
|
28752
28771
|
"web/index.html",
|
|
28753
28772
|
"README.md",
|
|
28754
|
-
"LICENSE"
|
|
28773
|
+
"LICENSE",
|
|
28774
|
+
// SPEC-489 · naskah panduan AI agent — dibaca runtime & disajikan di GET /api/agent-integration.md.
|
|
28775
|
+
// Tanpa gerbang ini paket bisa terbit tanpa dokumen dan endpoint-nya 404 di SETIAP instalasi npm,
|
|
28776
|
+
// sementara checkout dev terlihat sehat.
|
|
28777
|
+
"docs/agent-integration.md"
|
|
28755
28778
|
];
|
|
28756
28779
|
BIN_SHIM = `#!/usr/bin/env node
|
|
28757
28780
|
// SPEC-398 \xB7 shim tipis: seluruh logika ada di dist/cli.js (bundle esbuild).
|