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.
- package/dist/build-info.json +3 -3
- package/dist/cli.js +14 -113
- package/dist/server.js +199 -1623
- package/package.json +1 -1
- package/prisma/migrations/20260731180000_drop_errors_sdk_crossaudit/migration.sql +58 -0
- package/prisma/schema.prisma +4 -88
- package/web/assets/{index-DB8a8_aD.js → index-BWyQwoAk.js} +1536 -1537
- package/web/index.html +1 -1
package/dist/build-info.json
CHANGED
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,
|
|
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", "
|
|
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
|
-
|
|
4494
|
-
//
|
|
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-
|
|
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
|
-
|
|
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,
|
|
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", "
|
|
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
|
];
|