hanoman 0.7.1 → 0.9.0

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.7.1",
3
- "sha": "faa0ab35",
4
- "builtAt": "2026-09-19T12:44:02.222Z"
2
+ "version": "0.9.0",
3
+ "sha": "0a931198",
4
+ "builtAt": "2026-09-20T03:31:13.694Z"
5
5
  }
package/dist/cli.js CHANGED
@@ -4768,7 +4768,7 @@ function cmpVersion(a, b) {
4768
4768
  }
4769
4769
  return 0;
4770
4770
  }
4771
- 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, zPortalChat, PORTAL_CHAT_DEFAULTS, zPhaseCell, zPhaseOverride, zPhaseOverrides, zFlowOrchestration, zOrchestration, ORCHESTRATION_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
4771
+ var zProject, zBriefPayload, zQaPayload, zGoalPayload, zSpecBlocker, zSourceChange, zManualDone, zSpec, zSpecListItem, zSpecSlim, NOTIFY_SOUNDS, zCodex, CODEX_DEFAULTS, zSourceCommon, zScheduler, SCHEDULER_DEFAULTS, zGoal, GOAL_DEFAULTS, zConflict, CONFLICT_DEFAULTS, CHANGELOG_ENGINE_DEFAULTS, zLeadEngine, zLead, LEAD_DEFAULTS, zPortalChat, PORTAL_CHAT_DEFAULTS, zPhaseCell, zPhaseOverride, zPhaseOverrides, zFlowOrchestration, zOrchestration, ORCHESTRATION_DEFAULTS, zSetting, zNotification, zDocFile, zDeviceTokenView;
4772
4772
  var init_entities = __esm({
4773
4773
  "../shared/src/entities.ts"() {
4774
4774
  "use strict";
@@ -4874,6 +4874,11 @@ var init_entities = __esm({
4874
4874
  // sesi atau belum selesai. `.nullable().default(null)` menjaga respons/klien versi lama parse.
4875
4875
  manualDone: zManualDone.nullable().default(null)
4876
4876
  });
4877
+ zSpecListItem = zSpec.omit({ payload: true, sourceHistory: true }).extend({
4878
+ version: external_exports.number().optional(),
4879
+ updatedAt: external_exports.string().optional()
4880
+ });
4881
+ zSpecSlim = zSpecListItem.omit({ objective: true });
4877
4882
  NOTIFY_SOUNDS = [
4878
4883
  "off",
4879
4884
  "short",
@@ -6157,7 +6162,7 @@ var init_session_admission = __esm({
6157
6162
  });
6158
6163
 
6159
6164
  // ../shared/src/dto.ts
6160
- 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, zSetupApply, zChangePassword, zCreateClientAccount, zUpdateClientAccount, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, PROVISION_PROFILES, COMPONENT_IDS, zProvision, UPDATE_RESTART_EXIT, CONFIG_RESTART_EXIT, zUpdateApplyBody, MAX_SUBS, zSubPage, zSubLimit, zTopicParams, zEventsClientMsg, zTicketView, zTicketAttachmentView, zSpecAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus, zCronExpr, zCreateCron, zPatchCron, zSchedulerCron, zSchedulerCronRun;
6165
+ 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, zSetupApply, zChangePassword, zCreateClientAccount, zUpdateClientAccount, zVpsCheck, zMarkNa, zMarkNaBulk, zAttest, zRemediate, PROVISION_PROFILES, COMPONENT_IDS, zProvision, UPDATE_RESTART_EXIT, CONFIG_RESTART_EXIT, MANUAL_RESTART_EXIT, zUpdateApplyBody, MAX_SUBS, zSubPage, zSubLimit, zTopicParams, zEventsClientMsg, zTicketView, zTicketAttachmentView, zSpecAttachmentView, zTicketDetail, zTicketEditInput, zHelpInfo, zPublicTicketStatus, zCronExpr, zCreateCron, zPatchCron, zSchedulerCron, zSchedulerCronRun;
6161
6166
  var init_dto = __esm({
6162
6167
  "../shared/src/dto.ts"() {
6163
6168
  "use strict";
@@ -6678,6 +6683,7 @@ var init_dto = __esm({
6678
6683
  });
6679
6684
  UPDATE_RESTART_EXIT = 75;
6680
6685
  CONFIG_RESTART_EXIT = 76;
6686
+ MANUAL_RESTART_EXIT = 77;
6681
6687
  zUpdateApplyBody = external_exports.object({ confirm: external_exports.boolean().optional() });
6682
6688
  MAX_SUBS = 16;
6683
6689
  zSubPage = external_exports.number().int().min(1).max(1e4);
@@ -8470,17 +8476,12 @@ var init_backlog = __esm({
8470
8476
  inputSchema: obj({ properties: { spec: str(ID_HINT) }, required: ["spec"] }),
8471
8477
  mode: "read",
8472
8478
  capability: "backlog:read",
8473
- samplePath: "/specs",
8479
+ samplePath: "/specs/SPEC-1",
8474
8480
  sampleMethod: "GET",
8475
- build: (a) => ({ method: "GET", path: "/specs", query: { q: String(a.spec), limit: "100" } }),
8476
- // REST tak punya `GET /specs/:id`; `q` adalah SUBSTRING, jadi `SPEC-48` mengembalikan
8477
- // SPEC-480…489. Pencocokan persis dilakukan di sini, bukan dipercayakan ke server.
8478
- shape: (raw, a) => {
8479
- const want = String(a.spec).trim().toLowerCase();
8480
- const items = raw?.items ?? [];
8481
- const hit = items.find((i) => String(i.id).toLowerCase() === want);
8482
- return hit ? shapeSpecDetail(hit) : { error: `backlog "${String(a.spec)}" tidak ada. Cek ejaannya (bentuknya SPEC-nnn) atau cari dengan hanoman_backlog_search.` };
8483
- }
8481
+ // SPEC-1267 · `GET /specs` tak lagi membawa `payload`/`sourceHistory`, jadi isi penuh HANYA ada di
8482
+ // `GET /specs/:id`. Pencocokan id persis kini urusan server (404 bila tak ada).
8483
+ build: (a) => ({ method: "GET", path: `/specs/${enc(String(a.spec).trim())}` }),
8484
+ shape: (raw) => shapeSpecDetail(raw)
8484
8485
  },
8485
8486
  {
8486
8487
  name: "hanoman_backlog_docs_list",
@@ -12904,6 +12905,7 @@ function repairSpawnHelperEarly(ctx) {
12904
12905
  repairSpawnHelper(createRequire(import.meta.url).resolve, ctx.stdout);
12905
12906
  }
12906
12907
  function planSupervisorStep(code, restartsUsed, configRestartsUsed = 0) {
12908
+ if (code === MANUAL_RESTART_EXIT) return { action: "restart" };
12907
12909
  if (code === CONFIG_RESTART_EXIT)
12908
12910
  return configRestartsUsed >= MAX_CONFIG_RESTARTS ? { action: "exit", code } : { action: "restart" };
12909
12911
  if (code !== UPDATE_RESTART_EXIT) return { action: "exit", code };
@@ -13013,6 +13015,10 @@ ${hint}
13013
13015
  }
13014
13016
  return step.code;
13015
13017
  }
13018
+ if (step.action === "restart" && code === MANUAL_RESTART_EXIT) {
13019
+ ctx.stdout("hanoman \xB7 restart manual dari dashboard; menjalankan ulang\n");
13020
+ continue;
13021
+ }
13016
13022
  if (step.action === "restart") {
13017
13023
  configRestartsUsed++;
13018
13024
  ctx.stdout(`hanoman \xB7 konfigurasi berubah; menjalankan ulang (${configRestartsUsed}/${MAX_CONFIG_RESTARTS})