hanoman 0.9.26 → 0.9.28

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 (26) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/cli.js +86 -0
  3. package/dist/server.js +677 -207
  4. package/docs/agent-integration.md +1 -0
  5. package/package.json +1 -1
  6. package/web/assets/{DalangHanomanScreen-BMQjWbwC.js → DalangHanomanScreen-C3UMPHFg.js} +1 -1
  7. package/web/assets/{DocPreviewModal-Vysb114M.js → DocPreviewModal-Bp5stb4M.js} +1 -1
  8. package/web/assets/{DocsWorkspace-Bo2dJRqt.js → DocsWorkspace-C9yFxK4D.js} +1 -1
  9. package/web/assets/{IdeScreen-1V2L_82g.js → IdeScreen-CRFRAP6E.js} +1 -1
  10. package/web/assets/{LeadScreen-D7njTsNH.js → LeadScreen-DfVUawoK.js} +1 -1
  11. package/web/assets/{ReviewScreen-BytyE-o3.js → ReviewScreen-CMHOlmgX.js} +1 -1
  12. package/web/assets/{SchedulerScreen-b4hvb1Sy.js → SchedulerScreen-CK5QvX5c.js} +1 -1
  13. package/web/assets/{SettingsScreen-C9YeMz1R.js → SettingsScreen-D7P5JgjU.js} +1 -1
  14. package/web/assets/{TeamScreen-WvQNIYf0.js → TeamScreen-D4tA34Mj.js} +1 -1
  15. package/web/assets/TerminalScreen-BjFMJnq6.css +1 -0
  16. package/web/assets/TerminalScreen-CKySL63X.js +2 -0
  17. package/web/assets/{TriageScreen-CfzqvbI2.js → TriageScreen-B8ZCexaX.js} +1 -1
  18. package/web/assets/{VpsScreen-XWHjdq4i.js → VpsScreen-BCrLfZh7.js} +1 -1
  19. package/web/assets/{index-BvFCEJud.js → index-BRR3JL_o.js} +210 -210
  20. package/web/assets/{index-B8xChq6y.css → index-BqAP-VDq.css} +1 -1
  21. package/web/assets/{live-B2RFSX3l.js → live-DuBdI0MZ.js} +1 -1
  22. package/web/assets/{sched-lead-shared-0mpQqjza.js → sched-lead-shared-QqbtjoVv.js} +1 -1
  23. package/web/assets/{settings-rebase-BVFljdPX.js → settings-rebase-Cbh-JGJ-.js} +1 -1
  24. package/web/index.html +2 -2
  25. package/web/assets/TerminalScreen-BYx1OK27.js +0 -2
  26. package/web/assets/TerminalScreen-D0NdFmR-.css +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.9.26",
3
- "sha": "ac8ce8f9",
4
- "builtAt": "2026-10-12T10:29:02.653Z"
2
+ "version": "0.9.28",
3
+ "sha": "c6800c59",
4
+ "builtAt": "2026-10-13T10:52:38.565Z"
5
5
  }
package/dist/cli.js CHANGED
@@ -7584,6 +7584,8 @@ var init_api = __esm({
7584
7584
  // SPEC-199 · WebSocket siar dashboard (global, bukan per-sesi)
7585
7585
  // SPEC-919 · ADR-0147 · muat awal + fallback halaman Klien. Selama WS sehat tak ada yang men-poll-nya.
7586
7586
  presence: `${API}/presence`,
7587
+ // ADR-0220 · muat awal agen/MCP untuk agregat Overview; dashboard menerimanya lewat grup siar `overview`.
7588
+ overview: `${API}/overview`,
7587
7589
  wsTickets: `${API}/ws-tickets`,
7588
7590
  vps: `${API}/vps`,
7589
7591
  vpsOne: (id) => `${API}/vps/${id}`,
@@ -7867,6 +7869,77 @@ var init_session_end = __esm({
7867
7869
  }
7868
7870
  });
7869
7871
 
7872
+ // ../shared/src/overview.ts
7873
+ var zHeadlinePart, zOverviewDay, zOverviewRiver, zOverviewTokens, zOverviewWait, BENSIN_VERDICTS, zOverviewBensin, zOverviewHeatmap, zOverviewRecords, zOverview;
7874
+ var init_overview = __esm({
7875
+ "../shared/src/overview.ts"() {
7876
+ "use strict";
7877
+ init_zod();
7878
+ zHeadlinePart = external_exports.object({ text: external_exports.string(), tone: external_exports.enum(["bad", "good"]).optional() });
7879
+ zOverviewDay = external_exports.object({ landed: external_exports.number().int(), failed: external_exports.number().int() });
7880
+ zOverviewRiver = external_exports.object({
7881
+ created: external_exports.number().int(),
7882
+ started: external_exports.number().int(),
7883
+ landed: external_exports.number().int(),
7884
+ // Median 7 hari terakhir atas spec yang selesai; null bila tak ada.
7885
+ leadTimeMedMs: external_exports.number().nullable(),
7886
+ cycleTimeMedMs: external_exports.number().nullable()
7887
+ });
7888
+ zOverviewTokens = external_exports.object({
7889
+ input: external_exports.number(),
7890
+ output: external_exports.number(),
7891
+ cached: external_exports.number(),
7892
+ total: external_exports.number(),
7893
+ cacheHitPct: external_exports.number().nullable(),
7894
+ perLanded: external_exports.number().nullable(),
7895
+ topAgent: external_exports.object({ name: external_exports.string(), total: external_exports.number() }).nullable(),
7896
+ yesterdayTotal: external_exports.number()
7897
+ });
7898
+ zOverviewWait = external_exports.object({
7899
+ todayMin: external_exports.number(),
7900
+ yesterdayMin: external_exports.number(),
7901
+ pctOfLive: external_exports.number().nullable()
7902
+ });
7903
+ BENSIN_VERDICTS = ["habis", "aman", "stabil", "kurang-data"];
7904
+ zOverviewBensin = external_exports.object({
7905
+ source: external_exports.enum(["claude", "codex"]),
7906
+ key: external_exports.string(),
7907
+ label: external_exports.string(),
7908
+ usedPct: external_exports.number(),
7909
+ resetsAt: external_exports.string().nullable(),
7910
+ exhaustAt: external_exports.string().nullable(),
7911
+ verdict: external_exports.enum(BENSIN_VERDICTS),
7912
+ samples: external_exports.array(external_exports.object({ at: external_exports.string(), pct: external_exports.number() }))
7913
+ });
7914
+ zOverviewHeatmap = external_exports.object({
7915
+ days: external_exports.array(external_exports.string()),
7916
+ // YYYY-MM-DD lokal, terlama dulu
7917
+ minutes: external_exports.array(external_exports.array(external_exports.number()))
7918
+ // [hari][jam 0..23] = menit sesi agen hidup
7919
+ });
7920
+ zOverviewRecords = external_exports.object({
7921
+ streakDays: external_exports.number().int(),
7922
+ bestStreak: external_exports.number().int(),
7923
+ bestLandedDay: external_exports.object({ date: external_exports.string(), count: external_exports.number().int() }).nullable(),
7924
+ landedRecordToday: external_exports.boolean()
7925
+ });
7926
+ zOverview = external_exports.object({
7927
+ generatedAt: external_exports.string(),
7928
+ recordingSince: external_exports.string(),
7929
+ // awal perekam di memori (menunggu & bensin); restart mengulangnya
7930
+ today: zOverviewDay.nullable(),
7931
+ yesterday: zOverviewDay.nullable(),
7932
+ river: zOverviewRiver.nullable(),
7933
+ tokens: zOverviewTokens.nullable(),
7934
+ wait: zOverviewWait.nullable(),
7935
+ bensin: external_exports.array(zOverviewBensin).nullable(),
7936
+ heatmap: zOverviewHeatmap.nullable(),
7937
+ records: zOverviewRecords.nullable(),
7938
+ headline: external_exports.object({ text: external_exports.string(), parts: external_exports.array(zHeadlinePart) })
7939
+ });
7940
+ }
7941
+ });
7942
+
7870
7943
  // ../shared/src/config.ts
7871
7944
  var zHanomanConfig;
7872
7945
  var init_config = __esm({
@@ -12509,6 +12582,18 @@ var init_system = __esm({
12509
12582
  build: () => ({ method: "GET", path: "/limits/codex" }),
12510
12583
  shape: (raw) => raw
12511
12584
  },
12585
+ {
12586
+ name: "hanoman_overview_get",
12587
+ title: "Ringkasan kinerja hari ini (Overview)",
12588
+ description: 'Agregat kinerja workspace hari ini vs kemarin, persis yang tampil di layar Overview "Koran Pagi": spec mendarat, sesi agen tumbang, menit agen menunggu jawaban manusia, token agen tercatat (hanya subagen/agen fase), prakiraan kapan limit habis dibanding reset, peta panas jam kerja agen 7\xD724, streak/rekor, dan headline-nya. Menit menunggu & prakiraan limit direkam di memori server dan hilang saat restart (`recordingSince`). Panel `null` = sumbernya gagal dibaca. Tak menuntut capability apa pun.',
12589
+ inputSchema: obj({ properties: {} }),
12590
+ mode: "read",
12591
+ capability: null,
12592
+ samplePath: "/overview",
12593
+ sampleMethod: "GET",
12594
+ build: () => ({ method: "GET", path: "/overview" }),
12595
+ shape: (raw) => raw
12596
+ },
12512
12597
  {
12513
12598
  name: "hanoman_update_status",
12514
12599
  title: "Status versi & pembaruan",
@@ -14870,6 +14955,7 @@ var init_src = __esm({
14870
14955
  init_session_kind();
14871
14956
  init_session_admission();
14872
14957
  init_session_end();
14958
+ init_overview();
14873
14959
  init_config();
14874
14960
  init_config_registry();
14875
14961
  init_semver();