hanoman 0.1.39 → 0.1.41

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.39",
3
- "sha": "b5ac8a8",
4
- "builtAt": "2026-08-15T01:27:37.357Z"
2
+ "version": "0.1.41",
3
+ "sha": "5ef26fe",
4
+ "builtAt": "2026-08-15T14:26:22.718Z"
5
5
  }
package/dist/cli.js CHANGED
@@ -4411,7 +4411,7 @@ var init_auto_merge = __esm({
4411
4411
  });
4412
4412
 
4413
4413
  // ../shared/src/entities.ts
4414
- var zProject, zBriefPayload, zQaPayload, zGoalPayload, zSpecBlocker, zSourceChange, zSpec, NOTIFY_SOUNDS, zCodex, CODEX_DEFAULTS, zSourceCommon, zScheduler, SCHEDULER_DEFAULTS, zGoal, GOAL_DEFAULTS, zConflict, CONFLICT_DEFAULTS, CHANGELOG_ENGINE_DEFAULTS, zLeadEngine, zLead, LEAD_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
4414
+ var zProject, zBriefPayload, zQaPayload, zGoalPayload, zSpecBlocker, zSourceChange, zManualDone, zSpec, NOTIFY_SOUNDS, zCodex, CODEX_DEFAULTS, zSourceCommon, zScheduler, SCHEDULER_DEFAULTS, zGoal, GOAL_DEFAULTS, zConflict, CONFLICT_DEFAULTS, CHANGELOG_ENGINE_DEFAULTS, zLeadEngine, zLead, LEAD_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
4415
4415
  var init_entities = __esm({
4416
4416
  "../shared/src/entities.ts"() {
4417
4417
  "use strict";
@@ -4469,6 +4469,11 @@ var init_entities = __esm({
4469
4469
  by: external_exports.string(),
4470
4470
  payload: external_exports.unknown().optional()
4471
4471
  });
4472
+ zManualDone = external_exports.object({
4473
+ at: external_exports.string(),
4474
+ by: external_exports.string(),
4475
+ reason: external_exports.string().optional()
4476
+ });
4472
4477
  zSpec = external_exports.object({
4473
4478
  id: external_exports.string(),
4474
4479
  projectId: external_exports.string(),
@@ -4500,7 +4505,10 @@ var init_entities = __esm({
4500
4505
  // SPEC-546 · ADR-0109 · jejak konversi type. `.default([])` menjaga respons/klien versi lama
4501
4506
  // tetap parse; kolom DB-nya `Json?` sehingga baris yang belum pernah dikonversi mengirim
4502
4507
  // `null` — pemakai UI menulis `spec.sourceHistory ?? []`, cermin `blockedBy`.
4503
- sourceHistory: external_exports.array(zSourceChange).default([])
4508
+ sourceHistory: external_exports.array(zSourceChange).default([]),
4509
+ // SPEC-804 · ADR-0120 · terisi hanya bila item ditandai selesai manual; null = selesai lewat
4510
+ // sesi atau belum selesai. `.nullable().default(null)` menjaga respons/klien versi lama parse.
4511
+ manualDone: zManualDone.nullable().default(null)
4504
4512
  });
4505
4513
  NOTIFY_SOUNDS = [
4506
4514
  "off",
@@ -5008,7 +5016,7 @@ var init_cron_expr = __esm({
5008
5016
  });
5009
5017
 
5010
5018
  // ../shared/src/dto.ts
5011
- var zIssueDeviceToken, zSessionResult, zSessionHistory, zCreateProject, zProjectId, zRenameProject, zUpdateProject, zCreateSpec, zPatchSpec, zChangeSpecSource, zIntegrate, zSessionSummary, zProjectView, zSchedulerQueueItem, zSchedulerSourceView, zSchedulerSessionView, zSchedulerQueueCounts, zSchedulerState, zLeadDecisionView, zLeadFlowView, zLeadAnswer, zLeadProjectStatus, zLeadStatusView, zFlow, zPrdBrief, zPrdDoc, zBreakdownItem, zBreakdownDoc, zBatchCreateSpec, zEscalationTarget, zEscalationPrefill, zAuditEscalation, zAuditEscalationView, zTerminalSession, zDocFileContent, zDocIndexCat, zDocIndex, HOST_RE, USER_RE, zCreateVps, zPatchVps, USER_ROLES, zUserRole, zLogin, zSignup, zSetup, zChangePassword, zCreateClientAccount, zUpdateClientAccount, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, UPDATE_RESTART_EXIT, zUpdateApplyBody, zTicketView, zTicketAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus, zCronExpr, zCreateCron, zPatchCron, zSchedulerCron, zSchedulerCronRun;
5019
+ var zIssueDeviceToken, zSessionResult, zSessionHistory, zCreateProject, zProjectId, zRenameProject, zUpdateProject, zCreateSpec, zPatchSpec, zChangeSpecSource, zMarkSpecDone, zIntegrate, zSessionSummary, zProjectView, zSchedulerQueueItem, zSchedulerSourceView, zSchedulerSessionView, zSchedulerQueueCounts, zSchedulerState, zLeadDecisionView, zLeadFlowView, zLeadAnswer, zLeadProjectStatus, zLeadStatusView, zFlow, zPrdBrief, zPrdDoc, zBreakdownItem, zBreakdownDoc, zBatchCreateSpec, zEscalationTarget, zEscalationPrefill, zAuditEscalation, zAuditEscalationView, zTerminalSession, zDocFileContent, zDocIndexCat, zDocIndex, HOST_RE, USER_RE, zCreateVps, zPatchVps, USER_ROLES, zUserRole, zLogin, zSignup, zSetup, zChangePassword, zCreateClientAccount, zUpdateClientAccount, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, UPDATE_RESTART_EXIT, zUpdateApplyBody, zTicketView, zTicketAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus, zCronExpr, zCreateCron, zPatchCron, zSchedulerCron, zSchedulerCronRun;
5012
5020
  var init_dto = __esm({
5013
5021
  "../shared/src/dto.ts"() {
5014
5022
  "use strict";
@@ -5115,6 +5123,10 @@ var init_dto = __esm({
5115
5123
  if (o.payload !== void 0 && !payloadMatchesSource(o.source, o.payload))
5116
5124
  ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["payload"], message: "bentuk payload tak cocok dengan source" });
5117
5125
  });
5126
+ zMarkSpecDone = external_exports.object({
5127
+ reason: external_exports.string().trim().max(280).optional(),
5128
+ confirm: external_exports.boolean().optional()
5129
+ });
5118
5130
  zIntegrate = external_exports.object({
5119
5131
  op: external_exports.enum(["merge", "rebase"]),
5120
5132
  target: external_exports.string().regex(/^(local|origin):.+/)
@@ -5586,6 +5598,8 @@ var init_api = __esm({
5586
5598
  specIntegrate: (id) => `${API}/specs/${id}/integrate`,
5587
5599
  // SPEC-546 · ADR-0109 · ubah type/source item in-place (operasi khusus, bukan field PATCH).
5588
5600
  specSource: (id) => `${API}/specs/${id}/source`,
5601
+ // SPEC-804 · ADR-0120 · tandai item selesai manual (operasi khusus, bukan field PATCH).
5602
+ specDone: (id) => `${API}/specs/${id}/done`,
5589
5603
  specReview: (id) => `${API}/specs/${id}/review`,
5590
5604
  specReviewFile: (id, path) => `${API}/specs/${id}/review/${path}`,
5591
5605
  settings: `${API}/settings`,
@@ -5753,6 +5767,8 @@ var init_api = __esm({
5753
5767
  syncNow: `${API}/sync/now`,
5754
5768
  // SPEC-270 · ADR-0067 · antrean konflik rekonsil (cookie-authed)
5755
5769
  syncConflicts: `${API}/sync/conflicts`,
5770
+ // SPEC-799 · ADR-0119 · penghapusan yang menunggu jendela online (cookie-only, cermin syncNow).
5771
+ syncPending: `${API}/sync/pending`,
5756
5772
  syncConflictResolve: (entity, recordId) => `${API}/sync/conflicts/${encodeURIComponent(entity)}/${encodeURIComponent(recordId)}/resolve`,
5757
5773
  // SPEC-257 · ADR-0065 · agent token (kelola cookie-only) + katalog capability
5758
5774
  agentTokens: `${API}/agent-tokens`,
@@ -6150,6 +6166,9 @@ var init_webhook = __esm({
6150
6166
  "autoMerge",
6151
6167
  "createdAt",
6152
6168
  "startedAt",
6169
+ // SPEC-804 · ADR-0120 · penerima harus bisa membedakan "selesai lewat sesi" dari "ditandai
6170
+ // manusia" tanpa mendiff dua amplop. Peristiwanya tetap `spec.stage_changed`.
6171
+ "manualDone",
6153
6172
  "updatedAt"
6154
6173
  ],
6155
6174
  projectIdField: "projectId",
@@ -6188,6 +6207,7 @@ var init_webhook = __esm({
6188
6207
  autoMerge: null,
6189
6208
  createdAt: "2026-08-01T02:10:00.000Z",
6190
6209
  startedAt: "2026-08-01T02:12:31.000Z",
6210
+ manualDone: null,
6191
6211
  updatedAt: "2026-08-01T09:41:22.000Z"
6192
6212
  }
6193
6213
  },
@@ -29187,11 +29207,13 @@ var init_migrate_pg = __esm({
29187
29207
  "VpsItemState",
29188
29208
  "SessionResult",
29189
29209
  "SessionHistory",
29210
+ // SPEC-799 · ADR-0119 · SyncTombstone LOCAL-only, tanpa FK; letaknya bersama tabel sync lain.
29190
29211
  "SyncLog",
29191
29212
  "LocalBinding",
29192
29213
  "SyncOutbox",
29193
29214
  "SyncState",
29194
29215
  "SyncConflict",
29216
+ "SyncTombstone",
29195
29217
  // SPEC-485 · ADR-0102 · LeadFlow SEBELUM LeadDecision: `flowId` menunjuk ke sana. Tanpa FK, tapi
29196
29218
  // urutan tabel harus tetap mencerminkan arah tautannya bagi pembaca berikutnya.
29197
29219
  // SPEC-646 · ADR-0112 · SchedulerCron SEBELUM SchedulerCronRun: `cronId` menunjuk ke sana. Tanpa