hanoman 0.1.6 → 0.1.8
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 +38 -118
- package/dist/server.js +444 -1645
- package/package.json +1 -1
- package/prisma/migrations/20260731180000_drop_errors_sdk_crossaudit/migration.sql +58 -0
- package/prisma/migrations/20260731210000_spec_depends_on/migration.sql +7 -0
- package/prisma/schema.prisma +10 -88
- package/web/assets/{index-DB8a8_aD.js → index-D6AOUdRy.js} +1540 -1541
- package/web/index.html +1 -1
package/dist/build-info.json
CHANGED
package/dist/cli.js
CHANGED
|
@@ -4337,29 +4337,27 @@ 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
|
}
|
|
4359
4357
|
});
|
|
4360
4358
|
|
|
4361
4359
|
// ../shared/src/entities.ts
|
|
4362
|
-
var zProject, zBriefPayload, zQaPayload, zGoalPayload, zSpec, NOTIFY_SOUNDS, zCodex, CODEX_DEFAULTS, zSourceCommon, zScheduler, SCHEDULER_DEFAULTS, zGoal, GOAL_DEFAULTS, zConflict, CONFLICT_DEFAULTS, zLeadEngine, zLead, LEAD_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
|
|
4360
|
+
var zProject, zBriefPayload, zQaPayload, zGoalPayload, zSpecBlocker, zSpec, NOTIFY_SOUNDS, zCodex, CODEX_DEFAULTS, zSourceCommon, zScheduler, SCHEDULER_DEFAULTS, zGoal, GOAL_DEFAULTS, zConflict, CONFLICT_DEFAULTS, zLeadEngine, zLead, LEAD_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
|
|
4363
4361
|
var init_entities = __esm({
|
|
4364
4362
|
"../shared/src/entities.ts"() {
|
|
4365
4363
|
"use strict";
|
|
@@ -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(),
|
|
@@ -4404,6 +4400,10 @@ var init_entities = __esm({
|
|
|
4404
4400
|
constraints: external_exports.string(),
|
|
4405
4401
|
priority: zPriority
|
|
4406
4402
|
});
|
|
4403
|
+
zSpecBlocker = external_exports.object({
|
|
4404
|
+
id: external_exports.string(),
|
|
4405
|
+
reason: external_exports.enum(["missing", "unfinished", "unmerged"])
|
|
4406
|
+
});
|
|
4407
4407
|
zSpec = external_exports.object({
|
|
4408
4408
|
id: external_exports.string(),
|
|
4409
4409
|
projectId: external_exports.string(),
|
|
@@ -4422,7 +4422,13 @@ var init_entities = __esm({
|
|
|
4422
4422
|
// SPEC-408 · ADR-0090 · stempel waktu backlog (ISO string di wire — kolom DateTime di DB).
|
|
4423
4423
|
// `startedAt` null = belum pernah dikerjakan; ia tak pernah ditulis ulang saat sesi dilanjutkan.
|
|
4424
4424
|
createdAt: external_exports.string(),
|
|
4425
|
-
startedAt: external_exports.string().nullable()
|
|
4425
|
+
startedAt: external_exports.string().nullable(),
|
|
4426
|
+
// SPEC-447 · ADR-0093 · id backlog yang harus selesai & ter-merge lebih dulu. Server selalu
|
|
4427
|
+
// menormalkannya ke array (kolom DB-nya `Json?`); `.default([])` menjaga respons lama.
|
|
4428
|
+
dependsOn: external_exports.array(external_exports.string()).default([]),
|
|
4429
|
+
// Turunan (bukan kolom): dihitung `liveSpecs` dari stage dependency + git. Klien tak pernah
|
|
4430
|
+
// mengirimkannya — `.default([])` supaya bentuk lama tetap parse.
|
|
4431
|
+
blockedBy: external_exports.array(zSpecBlocker).default([])
|
|
4426
4432
|
});
|
|
4427
4433
|
NOTIFY_SOUNDS = [
|
|
4428
4434
|
"off",
|
|
@@ -4457,7 +4463,6 @@ var init_entities = __esm({
|
|
|
4457
4463
|
// dikonsumsi daun #5
|
|
4458
4464
|
sources: external_exports.object({
|
|
4459
4465
|
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
4466
|
triase: external_exports.object({ ...zSourceCommon, everyMin: external_exports.number().int().min(1).default(30) }).default({})
|
|
4462
4467
|
}).default({})
|
|
4463
4468
|
});
|
|
@@ -4490,8 +4495,12 @@ var init_entities = __esm({
|
|
|
4490
4495
|
// rem per project (AC-15/US-4)
|
|
4491
4496
|
everyMin: external_exports.number().int().min(1).max(1440).default(5),
|
|
4492
4497
|
// denyut proaktif (OQ-2)
|
|
4493
|
-
|
|
4494
|
-
//
|
|
4498
|
+
// SPEC-432 · batas waktu satu putusan (AC-4/35). Default 120 dtk MELAWAN prompt lead sendiri
|
|
4499
|
+
// ("kumpulkan bukti dulu: SoT, ADR, plan, kode, riwayat git") dan kalah: satu keputusan `order`
|
|
4500
|
+
// nyata terukur 306 dtk pada claude-opus-5 · xhigh, jadi 7/7 baris jejak operator berstatus
|
|
4501
|
+
// `gagal`. 600 dtk memberi kelonggaran di atas ongkos terukur itu; yang memangkas ongkosnya
|
|
4502
|
+
// sendiri adalah paragraf anggaran waktu di `leadPrompt` (306 dtk → 101 dtk).
|
|
4503
|
+
timeoutSec: external_exports.number().int().min(10).max(900).default(600),
|
|
4495
4504
|
// AC-11 / OQ-10 · berapa jawaban otomatis berturut-turut untuk SATU sesi sebelum lead berhenti.
|
|
4496
4505
|
maxAutoAnswers: external_exports.number().int().min(1).max(20).default(3),
|
|
4497
4506
|
// OQ-3 · syarat objektif sebelum lead boleh mengintegrasikan ke branch utama. Default MENYALA:
|
|
@@ -4533,10 +4542,11 @@ var init_entities = __esm({
|
|
|
4533
4542
|
});
|
|
4534
4543
|
zNotification = external_exports.object({
|
|
4535
4544
|
id: external_exports.string(),
|
|
4536
|
-
// SPEC-
|
|
4545
|
+
// SPEC-253 · +ticket; SPEC-298 · +fail (sesi scheduler gagal/limit)
|
|
4537
4546
|
// SPEC-409 · +lead (ADR-0091): keputusan berbobot / ragu / tindakan terkunci ditolak. MEMBERI
|
|
4538
4547
|
// TAHU, bukan meminta izin — tak ada pekerjaan yang menunggu notifikasi ini dibaca (AC-25).
|
|
4539
|
-
|
|
4548
|
+
// SPEC-384 · −error (ADR-0092) · dicabut bersama error monitoring.
|
|
4549
|
+
type: external_exports.enum(["done", "decision", "ticket", "fail", "lead"]).default("done"),
|
|
4540
4550
|
specId: external_exports.string().nullable(),
|
|
4541
4551
|
sessionId: external_exports.string().nullable(),
|
|
4542
4552
|
title: external_exports.string(),
|
|
@@ -4690,7 +4700,7 @@ var init_lead = __esm({
|
|
|
4690
4700
|
});
|
|
4691
4701
|
|
|
4692
4702
|
// ../shared/src/dto.ts
|
|
4693
|
-
var zIssueDeviceToken, zSessionResult, zSessionHistory, zCreateProject, zProjectId, zRenameProject,
|
|
4703
|
+
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
4704
|
var init_dto = __esm({
|
|
4695
4705
|
"../shared/src/dto.ts"() {
|
|
4696
4706
|
"use strict";
|
|
@@ -4740,11 +4750,6 @@ var init_dto = __esm({
|
|
|
4740
4750
|
});
|
|
4741
4751
|
zProjectId = external_exports.string().regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/, "slug tak sah");
|
|
4742
4752
|
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
4753
|
zUpdateProject = external_exports.object({
|
|
4749
4754
|
name: external_exports.string().min(1).optional(),
|
|
4750
4755
|
desc: external_exports.string().optional(),
|
|
@@ -4763,7 +4768,9 @@ var init_dto = __esm({
|
|
|
4763
4768
|
title: external_exports.string().min(1),
|
|
4764
4769
|
priority: zPriority,
|
|
4765
4770
|
payload: external_exports.union([zBriefPayload, zQaPayload, zGoalPayload]),
|
|
4766
|
-
branchFrom: external_exports.string().min(1).optional()
|
|
4771
|
+
branchFrom: external_exports.string().min(1).optional(),
|
|
4772
|
+
// SPEC-447 · ADR-0093 · divalidasi server (id ada / satu project / bukan diri sendiri / non-siklus).
|
|
4773
|
+
dependsOn: external_exports.array(external_exports.string()).optional()
|
|
4767
4774
|
}).superRefine((o, ctx) => {
|
|
4768
4775
|
const shape = "severity" in o.payload ? "qa" : "goal" in o.payload ? "goal" : "brief";
|
|
4769
4776
|
const want = o.source === "qa" ? "qa" : o.source === "goal" ? "goal" : "brief";
|
|
@@ -4777,8 +4784,12 @@ var init_dto = __esm({
|
|
|
4777
4784
|
// SPEC-186 · edit konten selagi item belum dimulai. Ditolak server bila sudah mulai.
|
|
4778
4785
|
title: external_exports.string().min(1).optional(),
|
|
4779
4786
|
priority: zPriority.optional(),
|
|
4780
|
-
payload: external_exports.union([zBriefPayload, zQaPayload, zGoalPayload]).optional()
|
|
4787
|
+
payload: external_exports.union([zBriefPayload, zQaPayload, zGoalPayload]).optional(),
|
|
4781
4788
|
// SPEC-407 · +goal
|
|
4789
|
+
// SPEC-447 · ADR-0093 · SENGAJA di luar gerbang `editingContent` (SPEC-186): gerbang itu
|
|
4790
|
+
// melindungi konten yang sudah jadi dasar kerja sesi berjalan, sedangkan dependsOn hanya
|
|
4791
|
+
// menggerbangi peluncuran BERIKUTNYA. `[]` = kosongkan.
|
|
4792
|
+
dependsOn: external_exports.array(external_exports.string()).optional()
|
|
4782
4793
|
});
|
|
4783
4794
|
zIntegrate = external_exports.object({
|
|
4784
4795
|
op: external_exports.enum(["merge", "rebase"]),
|
|
@@ -4797,10 +4808,6 @@ var init_dto = __esm({
|
|
|
4797
4808
|
session: zSessionSummary,
|
|
4798
4809
|
activity: external_exports.string(),
|
|
4799
4810
|
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
4811
|
helpEnabled: external_exports.boolean().default(false),
|
|
4805
4812
|
// SPEC-253 · Help Center publik aktif
|
|
4806
4813
|
schedulerOptIn: external_exports.boolean().default(false),
|
|
@@ -4823,8 +4830,6 @@ var init_dto = __esm({
|
|
|
4823
4830
|
id: external_exports.string(),
|
|
4824
4831
|
enabled: external_exports.boolean(),
|
|
4825
4832
|
everyMin: external_exports.number(),
|
|
4826
|
-
minCount: external_exports.number().optional(),
|
|
4827
|
-
// hanya errors
|
|
4828
4833
|
lastRunAt: external_exports.string().nullable(),
|
|
4829
4834
|
nextRunAt: external_exports.string().nullable()
|
|
4830
4835
|
});
|
|
@@ -4889,7 +4894,7 @@ var init_dto = __esm({
|
|
|
4889
4894
|
// id sesi ber-marker keputusan terisi
|
|
4890
4895
|
lastPulseAt: external_exports.string().nullable()
|
|
4891
4896
|
});
|
|
4892
|
-
zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "
|
|
4897
|
+
zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "goal"]);
|
|
4893
4898
|
zPrdBrief = external_exports.object({
|
|
4894
4899
|
title: external_exports.string().min(1),
|
|
4895
4900
|
context: external_exports.string(),
|
|
@@ -4964,8 +4969,6 @@ var init_dto = __esm({
|
|
|
4964
4969
|
}),
|
|
4965
4970
|
// SPEC-273 · sesi breakdown project-level: pecah SATU PRD (prdPath) → manifest N backlog.
|
|
4966
4971
|
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
4972
|
// SPEC-222 · scaffold: sesi project-level from-scratch, menyusun SoT dari ide. Tanpa brief
|
|
4970
4973
|
// (diseed dari Project.desc), tanpa Spec — cermin reverse.
|
|
4971
4974
|
external_exports.object({ project: external_exports.string(), flow: external_exports.literal("scaffold") }),
|
|
@@ -4982,7 +4985,10 @@ var init_dto = __esm({
|
|
|
4982
4985
|
goal: external_exports.boolean().optional(),
|
|
4983
4986
|
goalCondition: external_exports.string().max(4e3).optional(),
|
|
4984
4987
|
agent: zAgent.optional(),
|
|
4985
|
-
verifyScope: zVerifyScope.optional()
|
|
4988
|
+
verifyScope: zVerifyScope.optional(),
|
|
4989
|
+
// SPEC-447 · ADR-0093 — lewati gerbang dependency. Hanya jalur manusia; UI hanya
|
|
4990
|
+
// mengirimkannya sesudah operator melihat daftar pemblokirnya.
|
|
4991
|
+
force: external_exports.boolean().optional()
|
|
4986
4992
|
})
|
|
4987
4993
|
]);
|
|
4988
4994
|
zDocFileContent = external_exports.object({ content: external_exports.string() });
|
|
@@ -5037,75 +5043,6 @@ var init_dto = __esm({
|
|
|
5037
5043
|
zRemediate = external_exports.object({ items: external_exports.array(external_exports.string()).min(1).max(64) });
|
|
5038
5044
|
UPDATE_RESTART_EXIT = 75;
|
|
5039
5045
|
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
5046
|
zTicketView = external_exports.object({
|
|
5110
5047
|
id: external_exports.string(),
|
|
5111
5048
|
projectId: external_exports.string(),
|
|
@@ -5294,15 +5231,6 @@ var init_api = __esm({
|
|
|
5294
5231
|
agentTokens: `${API}/agent-tokens`,
|
|
5295
5232
|
agentToken: (id) => `${API}/agent-tokens/${id}`,
|
|
5296
5233
|
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
5234
|
// SPEC-253 · Help Center publik (bypass gate cookie; otorisasi helpEnabled + kunci opaque tiket).
|
|
5307
5235
|
help: (slug) => `${API}/help/${encodeURIComponent(slug)}`,
|
|
5308
5236
|
helpTickets: (slug) => `${API}/help/${encodeURIComponent(slug)}/tickets`,
|
|
@@ -5316,9 +5244,6 @@ var init_api = __esm({
|
|
|
5316
5244
|
ticketUnlink: (id) => `${API}/tickets/${id}/unlink`,
|
|
5317
5245
|
// SPEC-271 · lepas tautan backlog
|
|
5318
5246
|
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
5247
|
// SPEC-361 · ADR-0078 · unduh dokumen: query ditempelkan ke URL endpoint dokumen yang sudah ada
|
|
5323
5248
|
// (tak ada endpoint ekspor terpisah). `base` bisa sudah membawa query, mis. ideFile(?path=…).
|
|
5324
5249
|
download: (base, fmt) => `${base}${base.includes("?") ? "&" : "?"}download=${fmt}`
|
|
@@ -5398,7 +5323,6 @@ var init_session_kind = __esm({
|
|
|
5398
5323
|
"prd",
|
|
5399
5324
|
"scaffold",
|
|
5400
5325
|
"breakdown",
|
|
5401
|
-
"cross-audit",
|
|
5402
5326
|
"vps",
|
|
5403
5327
|
"shell",
|
|
5404
5328
|
"worktree",
|
|
@@ -6205,7 +6129,6 @@ var init_migrate_pg = __esm({
|
|
|
6205
6129
|
init_start();
|
|
6206
6130
|
PG_ORDER = [
|
|
6207
6131
|
"Project",
|
|
6208
|
-
"ProjectLink",
|
|
6209
6132
|
"Spec",
|
|
6210
6133
|
"Setting",
|
|
6211
6134
|
"Notification",
|
|
@@ -6226,9 +6149,6 @@ var init_migrate_pg = __esm({
|
|
|
6226
6149
|
"SchedulerQueueItem",
|
|
6227
6150
|
"RuntimeConfig",
|
|
6228
6151
|
"LeadDecision",
|
|
6229
|
-
"ErrorGroup",
|
|
6230
|
-
"ErrorEvent",
|
|
6231
|
-
"SourceMapArtifact",
|
|
6232
6152
|
"Ticket",
|
|
6233
6153
|
"TicketAttachment"
|
|
6234
6154
|
];
|