hanoman 0.1.6 → 0.1.7

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.6",
3
- "sha": "0969f50",
4
- "builtAt": "2026-07-31T08:27:27.058Z"
2
+ "version": "0.1.7",
3
+ "sha": "33ae716",
4
+ "builtAt": "2026-07-31T15:10:07.810Z"
5
5
  }
package/dist/cli.js CHANGED
@@ -4337,22 +4337,20 @@ var init_zod = __esm({
4337
4337
  });
4338
4338
 
4339
4339
  // ../shared/src/enums.ts
4340
- var zStage, zSpecSource, zDocStatus, zPriority, zProjectKind, zAgent, zSeverity, zErrorStatus, zTicketCategory, zTicketStatus, zLinkKind, VERIFY_SCOPES, zVerifyScope;
4340
+ var zStage, zSpecSource, zDocStatus, zPriority, zProjectKind, zAgent, zSeverity, zTicketCategory, zTicketStatus, VERIFY_SCOPES, zVerifyScope;
4341
4341
  var init_enums = __esm({
4342
4342
  "../shared/src/enums.ts"() {
4343
4343
  "use strict";
4344
4344
  init_zod();
4345
4345
  zStage = external_exports.enum(["brainstorming", "objective", "spec-ready", "planned", "executing", "done"]);
4346
- zSpecSource = external_exports.enum(["brief", "qa", "audit", "cross-audit", "help", "goal"]);
4346
+ zSpecSource = external_exports.enum(["brief", "qa", "audit", "help", "goal"]);
4347
4347
  zDocStatus = external_exports.enum(["ok", "drift", "broken"]);
4348
4348
  zPriority = external_exports.enum(["tinggi", "sedang", "rendah"]);
4349
4349
  zProjectKind = external_exports.enum(["from-scratch", "existing"]);
4350
4350
  zAgent = external_exports.enum(["claude", "codex"]);
4351
4351
  zSeverity = external_exports.enum(["critical", "major", "minor"]);
4352
- zErrorStatus = external_exports.enum(["new", "escalated", "resolved"]);
4353
4352
  zTicketCategory = external_exports.enum(["bug", "fitur", "pertanyaan", "lainnya"]);
4354
4353
  zTicketStatus = external_exports.enum(["new", "accepted", "rejected"]);
4355
- zLinkKind = external_exports.enum(["api", "sdk", "data", "event", "lainnya"]);
4356
4354
  VERIFY_SCOPES = ["changed", "full"];
4357
4355
  zVerifyScope = external_exports.enum(VERIFY_SCOPES);
4358
4356
  }
@@ -4394,9 +4392,7 @@ var init_entities = __esm({
4394
4392
  expected: external_exports.string(),
4395
4393
  actual: external_exports.string(),
4396
4394
  env: external_exports.string(),
4397
- fromAudit: external_exports.string().optional(),
4398
- // SPEC-244 · qa dinaikkan dari audit → sinyal skip fase Audit (ADR-0059)
4399
- fromErrorGroup: external_exports.string().optional()
4395
+ fromAudit: external_exports.string().optional()
4400
4396
  });
4401
4397
  zGoalPayload = external_exports.object({
4402
4398
  goal: external_exports.string(),
@@ -4457,7 +4453,6 @@ var init_entities = __esm({
4457
4453
  // dikonsumsi daun #5
4458
4454
  sources: external_exports.object({
4459
4455
  backlog: external_exports.object({ ...zSourceCommon, everyMin: external_exports.number().int().min(1).default(15) }).default({}),
4460
- errors: external_exports.object({ ...zSourceCommon, everyMin: external_exports.number().int().min(1).default(15), minCount: external_exports.number().int().min(1).default(5) }).default({}),
4461
4456
  triase: external_exports.object({ ...zSourceCommon, everyMin: external_exports.number().int().min(1).default(30) }).default({})
4462
4457
  }).default({})
4463
4458
  });
@@ -4490,8 +4485,12 @@ var init_entities = __esm({
4490
4485
  // rem per project (AC-15/US-4)
4491
4486
  everyMin: external_exports.number().int().min(1).max(1440).default(5),
4492
4487
  // denyut proaktif (OQ-2)
4493
- timeoutSec: external_exports.number().int().min(10).max(900).default(120),
4494
- // batas waktu satu putusan (AC-4/35)
4488
+ // SPEC-432 · batas waktu satu putusan (AC-4/35). Default 120 dtk MELAWAN prompt lead sendiri
4489
+ // ("kumpulkan bukti dulu: SoT, ADR, plan, kode, riwayat git") dan kalah: satu keputusan `order`
4490
+ // nyata terukur 306 dtk pada claude-opus-5 · xhigh, jadi 7/7 baris jejak operator berstatus
4491
+ // `gagal`. 600 dtk memberi kelonggaran di atas ongkos terukur itu; yang memangkas ongkosnya
4492
+ // sendiri adalah paragraf anggaran waktu di `leadPrompt` (306 dtk → 101 dtk).
4493
+ timeoutSec: external_exports.number().int().min(10).max(900).default(600),
4495
4494
  // AC-11 / OQ-10 · berapa jawaban otomatis berturut-turut untuk SATU sesi sebelum lead berhenti.
4496
4495
  maxAutoAnswers: external_exports.number().int().min(1).max(20).default(3),
4497
4496
  // OQ-3 · syarat objektif sebelum lead boleh mengintegrasikan ke branch utama. Default MENYALA:
@@ -4533,10 +4532,11 @@ var init_entities = __esm({
4533
4532
  });
4534
4533
  zNotification = external_exports.object({
4535
4534
  id: external_exports.string(),
4536
- // SPEC-249 · +error; SPEC-253 · +ticket; SPEC-298 · +fail (sesi scheduler gagal/limit)
4535
+ // SPEC-253 · +ticket; SPEC-298 · +fail (sesi scheduler gagal/limit)
4537
4536
  // SPEC-409 · +lead (ADR-0091): keputusan berbobot / ragu / tindakan terkunci ditolak. MEMBERI
4538
4537
  // TAHU, bukan meminta izin — tak ada pekerjaan yang menunggu notifikasi ini dibaca (AC-25).
4539
- type: external_exports.enum(["done", "decision", "error", "ticket", "fail", "lead"]).default("done"),
4538
+ // SPEC-384 · error (ADR-0092) · dicabut bersama error monitoring.
4539
+ type: external_exports.enum(["done", "decision", "ticket", "fail", "lead"]).default("done"),
4540
4540
  specId: external_exports.string().nullable(),
4541
4541
  sessionId: external_exports.string().nullable(),
4542
4542
  title: external_exports.string(),
@@ -4690,7 +4690,7 @@ var init_lead = __esm({
4690
4690
  });
4691
4691
 
4692
4692
  // ../shared/src/dto.ts
4693
- var zIssueDeviceToken, zSessionResult, zSessionHistory, zCreateProject, zProjectId, zRenameProject, zCreateLink, zUpdateProject, zCreateSpec, zPatchSpec, zIntegrate, zSessionSummary, zProjectView, zSchedulerQueueItem, zSchedulerSourceView, zSchedulerSessionView, zSchedulerState, zLeadDecisionView, zLeadAnswer, zLeadProjectStatus, zLeadStatusView, zFlow, zPrdBrief, zPrdDoc, zBreakdownItem, zBreakdownDoc, zBatchCreateSpec, zEscalationTarget, zEscalationPrefill, zAuditEscalation, zAuditEscalationView, zTerminalSession, zDocFileContent, zDocIndexCat, zDocIndex, HOST_RE, USER_RE, zCreateVps, zPatchVps, zLogin, zSignup, zChangePassword, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, UPDATE_RESTART_EXIT, zUpdateApplyBody, zStackFrame, zSymbolicatedFrame, zSourceMapUpload, zIngestPayload, zErrorGroupView, zErrorEventView, zErrorGroupDetail, zIngestKeyView, zTicketView, zTicketAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus;
4693
+ var zIssueDeviceToken, zSessionResult, zSessionHistory, zCreateProject, zProjectId, zRenameProject, zUpdateProject, zCreateSpec, zPatchSpec, zIntegrate, zSessionSummary, zProjectView, zSchedulerQueueItem, zSchedulerSourceView, zSchedulerSessionView, zSchedulerState, zLeadDecisionView, zLeadAnswer, zLeadProjectStatus, zLeadStatusView, zFlow, zPrdBrief, zPrdDoc, zBreakdownItem, zBreakdownDoc, zBatchCreateSpec, zEscalationTarget, zEscalationPrefill, zAuditEscalation, zAuditEscalationView, zTerminalSession, zDocFileContent, zDocIndexCat, zDocIndex, HOST_RE, USER_RE, zCreateVps, zPatchVps, zLogin, zSignup, zChangePassword, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, UPDATE_RESTART_EXIT, zUpdateApplyBody, zTicketView, zTicketAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus;
4694
4694
  var init_dto = __esm({
4695
4695
  "../shared/src/dto.ts"() {
4696
4696
  "use strict";
@@ -4740,11 +4740,6 @@ var init_dto = __esm({
4740
4740
  });
4741
4741
  zProjectId = external_exports.string().regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/, "slug tak sah");
4742
4742
  zRenameProject = external_exports.object({ newId: zProjectId });
4743
- zCreateLink = external_exports.object({
4744
- to: external_exports.string().min(1),
4745
- kind: zLinkKind,
4746
- note: external_exports.string().max(2e3).optional()
4747
- });
4748
4743
  zUpdateProject = external_exports.object({
4749
4744
  name: external_exports.string().min(1).optional(),
4750
4745
  desc: external_exports.string().optional(),
@@ -4797,10 +4792,6 @@ var init_dto = __esm({
4797
4792
  session: zSessionSummary,
4798
4793
  activity: external_exports.string(),
4799
4794
  commit: external_exports.string(),
4800
- monitoringEnabled: external_exports.boolean().default(false),
4801
- // SPEC-249 · error monitoring aktif (ingest key ada)
4802
- ingestKeyPrefix: external_exports.string().nullable().default(null),
4803
- // SPEC-249 · hint prefix DSN (bukan hash/rahasia)
4804
4795
  helpEnabled: external_exports.boolean().default(false),
4805
4796
  // SPEC-253 · Help Center publik aktif
4806
4797
  schedulerOptIn: external_exports.boolean().default(false),
@@ -4823,8 +4814,6 @@ var init_dto = __esm({
4823
4814
  id: external_exports.string(),
4824
4815
  enabled: external_exports.boolean(),
4825
4816
  everyMin: external_exports.number(),
4826
- minCount: external_exports.number().optional(),
4827
- // hanya errors
4828
4817
  lastRunAt: external_exports.string().nullable(),
4829
4818
  nextRunAt: external_exports.string().nullable()
4830
4819
  });
@@ -4889,7 +4878,7 @@ var init_dto = __esm({
4889
4878
  // id sesi ber-marker keputusan terisi
4890
4879
  lastPulseAt: external_exports.string().nullable()
4891
4880
  });
4892
- zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "cross-audit", "goal"]);
4881
+ zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "goal"]);
4893
4882
  zPrdBrief = external_exports.object({
4894
4883
  title: external_exports.string().min(1),
4895
4884
  context: external_exports.string(),
@@ -4964,8 +4953,6 @@ var init_dto = __esm({
4964
4953
  }),
4965
4954
  // SPEC-273 · sesi breakdown project-level: pecah SATU PRD (prdPath) → manifest N backlog.
4966
4955
  external_exports.object({ project: external_exports.string(), flow: external_exports.literal("breakdown"), prdPath: external_exports.string().min(1) }),
4967
- // SPEC-337 · ADR-0075 · sesi audit lintas project LEPAS (tanya-jawab): tanpa Spec, tanpa fase.
4968
- external_exports.object({ project: external_exports.string(), flow: external_exports.literal("cross-audit") }),
4969
4956
  // SPEC-222 · scaffold: sesi project-level from-scratch, menyusun SoT dari ide. Tanpa brief
4970
4957
  // (diseed dari Project.desc), tanpa Spec — cermin reverse.
4971
4958
  external_exports.object({ project: external_exports.string(), flow: external_exports.literal("scaffold") }),
@@ -5037,75 +5024,6 @@ var init_dto = __esm({
5037
5024
  zRemediate = external_exports.object({ items: external_exports.array(external_exports.string()).min(1).max(64) });
5038
5025
  UPDATE_RESTART_EXIT = 75;
5039
5026
  zUpdateApplyBody = external_exports.object({ confirm: external_exports.boolean().optional() });
5040
- zStackFrame = external_exports.object({
5041
- function: external_exports.string().max(500).optional(),
5042
- filename: external_exports.string().max(2e3).optional(),
5043
- lineno: external_exports.number().int().optional(),
5044
- colno: external_exports.number().int().optional(),
5045
- in_app: external_exports.boolean().optional()
5046
- });
5047
- zSymbolicatedFrame = zStackFrame.extend({
5048
- source: external_exports.string().optional(),
5049
- sourceLine: external_exports.number().int().optional(),
5050
- sourceColumn: external_exports.number().int().optional(),
5051
- contextLine: external_exports.string().optional(),
5052
- preContext: external_exports.array(external_exports.string()).optional(),
5053
- postContext: external_exports.array(external_exports.string()).optional(),
5054
- symbolicated: external_exports.boolean()
5055
- });
5056
- zSourceMapUpload = external_exports.object({
5057
- release: external_exports.string().min(1).max(200),
5058
- artifacts: external_exports.array(external_exports.object({
5059
- filename: external_exports.string().min(1).max(2e3),
5060
- map: external_exports.string().min(1),
5061
- debugId: external_exports.string().max(200).optional()
5062
- })).min(1).max(200)
5063
- });
5064
- zIngestPayload = external_exports.object({
5065
- type: external_exports.string().min(1).max(500),
5066
- message: external_exports.string().min(1),
5067
- stack: external_exports.string().optional(),
5068
- frames: external_exports.array(zStackFrame).max(200).optional(),
5069
- // SPEC-276 · opsional → kompatibel mundur
5070
- environment: external_exports.string().max(120).optional(),
5071
- release: external_exports.string().max(200).optional(),
5072
- context: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
5073
- });
5074
- zErrorGroupView = external_exports.object({
5075
- id: external_exports.string(),
5076
- projectId: external_exports.string(),
5077
- type: external_exports.string(),
5078
- message: external_exports.string(),
5079
- environment: external_exports.string(),
5080
- status: zErrorStatus,
5081
- count: external_exports.number().int(),
5082
- firstSeenAt: external_exports.string(),
5083
- lastSeenAt: external_exports.string(),
5084
- specId: external_exports.string().nullable(),
5085
- release: external_exports.string().nullable()
5086
- // SPEC-276 · release terakhir grup (korelasi build)
5087
- });
5088
- zErrorEventView = external_exports.object({
5089
- id: external_exports.string(),
5090
- type: external_exports.string(),
5091
- message: external_exports.string(),
5092
- stack: external_exports.string().nullable(),
5093
- environment: external_exports.string(),
5094
- release: external_exports.string().nullable(),
5095
- receivedAt: external_exports.string()
5096
- });
5097
- zErrorGroupDetail = zErrorGroupView.extend({
5098
- sampleStack: external_exports.string().nullable(),
5099
- sampleFrames: external_exports.array(zSymbolicatedFrame).nullable(),
5100
- // SPEC-276 · frame tersimbolikasi (bila map ada)
5101
- events: external_exports.array(zErrorEventView)
5102
- });
5103
- zIngestKeyView = external_exports.object({
5104
- enabled: external_exports.boolean(),
5105
- prefix: external_exports.string().nullable(),
5106
- key: external_exports.string().optional(),
5107
- dsnUrl: external_exports.string().optional()
5108
- });
5109
5027
  zTicketView = external_exports.object({
5110
5028
  id: external_exports.string(),
5111
5029
  projectId: external_exports.string(),
@@ -5294,15 +5212,6 @@ var init_api = __esm({
5294
5212
  agentTokens: `${API}/agent-tokens`,
5295
5213
  agentToken: (id) => `${API}/agent-tokens/${id}`,
5296
5214
  agentCapabilities: `${API}/agent-tokens/capabilities`,
5297
- // SPEC-249 · error monitoring. ingest publik ber-DSN (bypass gate cookie, ADR-0060).
5298
- ingest: (slug) => `${API}/ingest/${encodeURIComponent(slug)}`,
5299
- errors: `${API}/errors`,
5300
- errorsGuide: `${API}/errors/integration-guide`,
5301
- error: (id) => `${API}/errors/${id}`,
5302
- errorEscalate: (id) => `${API}/errors/${id}/escalate`,
5303
- errorUnlink: (id) => `${API}/errors/${id}/unlink`,
5304
- // SPEC-271 · lepas tautan backlog
5305
- projectIngestKey: (id) => `${API}/projects/${encodeURIComponent(id)}/ingest-key`,
5306
5215
  // SPEC-253 · Help Center publik (bypass gate cookie; otorisasi helpEnabled + kunci opaque tiket).
5307
5216
  help: (slug) => `${API}/help/${encodeURIComponent(slug)}`,
5308
5217
  helpTickets: (slug) => `${API}/help/${encodeURIComponent(slug)}/tickets`,
@@ -5316,9 +5225,6 @@ var init_api = __esm({
5316
5225
  ticketUnlink: (id) => `${API}/tickets/${id}/unlink`,
5317
5226
  // SPEC-271 · lepas tautan backlog
5318
5227
  ticketReject: (id) => `${API}/tickets/${id}/reject`,
5319
- // SPEC-337 · ADR-0075 · relasi integrasi antar project (LOCAL-only) + log lintas project.
5320
- projectLinks: (id) => `${API}/projects/${encodeURIComponent(id)}/links`,
5321
- projectLink: (id, linkId) => `${API}/projects/${encodeURIComponent(id)}/links/${encodeURIComponent(linkId)}`,
5322
5228
  // SPEC-361 · ADR-0078 · unduh dokumen: query ditempelkan ke URL endpoint dokumen yang sudah ada
5323
5229
  // (tak ada endpoint ekspor terpisah). `base` bisa sudah membawa query, mis. ideFile(?path=…).
5324
5230
  download: (base, fmt) => `${base}${base.includes("?") ? "&" : "?"}download=${fmt}`
@@ -5398,7 +5304,6 @@ var init_session_kind = __esm({
5398
5304
  "prd",
5399
5305
  "scaffold",
5400
5306
  "breakdown",
5401
- "cross-audit",
5402
5307
  "vps",
5403
5308
  "shell",
5404
5309
  "worktree",
@@ -6205,7 +6110,6 @@ var init_migrate_pg = __esm({
6205
6110
  init_start();
6206
6111
  PG_ORDER = [
6207
6112
  "Project",
6208
- "ProjectLink",
6209
6113
  "Spec",
6210
6114
  "Setting",
6211
6115
  "Notification",
@@ -6226,9 +6130,6 @@ var init_migrate_pg = __esm({
6226
6130
  "SchedulerQueueItem",
6227
6131
  "RuntimeConfig",
6228
6132
  "LeadDecision",
6229
- "ErrorGroup",
6230
- "ErrorEvent",
6231
- "SourceMapArtifact",
6232
6133
  "Ticket",
6233
6134
  "TicketAttachment"
6234
6135
  ];