hanoman 0.9.28 → 0.9.29
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/README.md +5 -2
- package/dist/build-info.json +3 -3
- package/dist/cli.js +337 -90
- package/dist/server.js +2677 -1389
- package/docs/agent-integration.md +100 -6
- package/package.json +1 -1
- package/prisma/migrations/20261014130000_cron_report/migration.sql +19 -0
- package/prisma/schema.prisma +25 -0
- package/scripts/vps/provision.sh +26 -3
- package/web/assets/{DalangHanomanScreen-C3UMPHFg.js → DalangHanomanScreen-BMrikKnt.js} +1 -1
- package/web/assets/{DocPreviewModal-Bp5stb4M.js → DocPreviewModal-5j31WUwI.js} +1 -1
- package/web/assets/{DocsWorkspace-C9yFxK4D.js → DocsWorkspace-GkTrniF3.js} +1 -1
- package/web/assets/{IdeScreen-CRFRAP6E.js → IdeScreen-CAQfv1_e.js} +1 -1
- package/web/assets/LeadScreen-Da5-1FLe.js +1 -0
- package/web/assets/{ReviewScreen-CMHOlmgX.js → ReviewScreen-B8KHzQpd.js} +1 -1
- package/web/assets/SchedulerScreen-CBd4O5kw.js +1 -0
- package/web/assets/SettingsScreen-BxQ3CH2D.js +62 -0
- package/web/assets/{TeamScreen-D4tA34Mj.js → TeamScreen-P6vz88Pp.js} +1 -1
- package/web/assets/TerminalScreen-B_cagBZd.js +2 -0
- package/web/assets/{TriageScreen-B8ZCexaX.js → TriageScreen-IYkxyhdm.js} +1 -1
- package/web/assets/{VpsScreen-BCrLfZh7.js → VpsScreen-DFGT5S8Y.js} +2 -2
- package/web/assets/fields-CmVwp6QK.js +1 -0
- package/web/assets/{index-BqAP-VDq.css → index-0T3s-I82.css} +1 -1
- package/web/assets/index-C-iSWHn3.js +1012 -0
- package/web/assets/{live-DuBdI0MZ.js → live-lSo-u7M6.js} +1 -1
- package/web/assets/{sched-lead-shared-QqbtjoVv.js → sched-lead-shared-BTz6aILx.js} +1 -1
- package/web/assets/{scheduler-CQt-VP9-.css → scheduler-D64RlGvZ.css} +1 -1
- package/web/assets/settings-rebase-CPawFVpp.js +1 -0
- package/web/index.html +2 -2
- package/web/assets/LeadScreen-DfVUawoK.js +0 -1
- package/web/assets/SchedulerScreen-CK5QvX5c.js +0 -1
- package/web/assets/SettingsScreen-D7P5JgjU.js +0 -62
- package/web/assets/TerminalScreen-CKySL63X.js +0 -2
- package/web/assets/index-BRR3JL_o.js +0 -1012
- package/web/assets/settings-rebase-Cbh-JGJ-.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,cm as j,aH as g,F as u,bO as p,b1 as C,cn as N,g as x,aJ as $,bJ as k,co as S,cp as A,a9 as L,ac as F,ad as M}from"./index-BRR3JL_o.js";import{R as O}from"./react-DfGhg7ZW.js";import"./markdown-CWEY34jk.js";/* empty css */const v=[{id:"claude",label:k.claude},{id:"codex",label:k.codex}],T=[{value:"inline",label:"Inline — agen fase mengerjakan task sendiri (cepat)"},{value:"subagent",label:"Subagen per task — implementer + review tiap task (lebih lambat)"}],_={model:null,effort:null};function I({flow:s,phase:n,runtime:r,cell:e,disabled:t,onPick:l}){const d=A(r),i=L(r,e.model??""),m=r==="codex"?F:M,b=[{value:"",label:"— warisi orchestrator"},...e.model&&!d.some(o=>o.id===e.model)?[{value:e.model,label:e.model}]:[],...d.map(o=>({value:o.id,label:o.label}))],E=[{value:"",label:"— warisi"},...e.effort&&!i.includes(e.effort)?[{value:e.effort,label:e.effort}]:[],...i.map(o=>({value:o,label:o}))];return a.jsxs("div",{className:"hn-sched-picks",children:[a.jsx(x,{size:"sm","aria-label":`Model ${s} ${n} ${r}`,value:e.model??"",className:"hn-sched-pick-model",options:b,disabled:t,onChange:o=>{const h=o.target.value||null;l({model:h,effort:h&&e.effort?m(h,e.effort):e.effort},`${n} (${r}) → ${h??"warisi"}`)}}),a.jsx(x,{size:"sm","aria-label":`Effort ${s} ${n} ${r}`,value:e.effort??"",className:"hn-sched-pick-effort",options:E,disabled:t,onChange:o=>l({...e,effort:o.target.value||null},`${n} (${r}) effort → ${o.target.value||"warisi"}`)})]})}function y({flow:s,f:n,putFlow:r}){return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"hn-sched-flow-row",children:[a.jsx("span",{className:"hn-sched-flow-status",children:n.enabled?"Fase dikerjakan subagen":"Satu sesi biasa (subagen nonaktif)"}),a.jsx(C,{checked:n.enabled,"aria-label":`Orkestrasi ${s}`,onChange:e=>r(s,{...n,enabled:e},`Orkestrasi ${u[s]} · ${e?"aktif":"nonaktif"}`)})]}),N.has(s)&&a.jsxs("div",{className:"hn-sched-flow-mode",children:[a.jsx("span",{className:"hn-sched-flow-mode-label",children:"Cara mengerjakan rencana"}),a.jsx(x,{size:"sm","aria-label":`Mode Execute ${s}`,value:n.executeMode??"inline",className:"hn-sched-flow-mode-select",options:T,disabled:!n.enabled,onChange:e=>{const t=e.target.value==="subagent"?"subagent":"inline";r(s,{...n,executeMode:t},`Mode Execute ${u[s]} · ${t==="subagent"?"subagen per task":"inline"}`)}}),a.jsx("span",{className:"hn-sched-flow-mode-note",children:"khusus sesi Claude · Codex selalu inline"})]}),a.jsx($,{children:a.jsxs("table",{className:"hn-sched-matrix",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Fase"}),v.map(e=>a.jsx("th",{children:e.label},e.id))]})}),a.jsx("tbody",{children:S[s].map(e=>a.jsxs("tr",{children:[a.jsx("td",{children:e}),v.map(t=>a.jsx("td",{children:a.jsx(I,{flow:s,phase:e,runtime:t.id,cell:n[t.id][e]??_,disabled:!n.enabled,onPick:(l,d)=>r(s,{...n,[t.id]:{...n[t.id],[e]:l}},d)})},t.id))]},e))})]})})]})}function R({flow:s,f:n,putFlow:r}){const[e,t]=O.useState(!1),l=O.useId();return a.jsxs("div",{className:"hn-sched-flow","data-testid":`orch-flow-${s}`,children:[a.jsxs("button",{type:"button",className:"hn-sched-flow-head hn-touch-target","aria-expanded":e,"aria-controls":l,onClick:()=>t(d=>!d),children:[a.jsx("span",{children:u[s]}),a.jsx("span",{className:"hn-sched-flow-state",children:n.enabled?"aktif":"nonaktif"})]}),a.jsx("div",{id:l,className:"hn-sched-flow-body",hidden:!e,children:a.jsx(y,{flow:s,f:n,putFlow:r})})]})}function z({orchestration:s,onChange:n,variant:r="cards"}){const e=s??p,t=i=>e[i]??p[i],l=(i,m,b)=>n({...e,[i]:m},b),d=a.jsxs("div",{className:"hn-sched-group-hint",children:["Sesi utama berperan sebagai ",a.jsx("b",{children:"pengatur"}),"; setiap fase dikerjakan subagen dengan model & effort di bawah. ",a.jsx("b",{children:"Warisi"})," memakai pengaturan sesi utama yang dipilih saat ",a.jsx("b",{children:"Start"}),". Subagen selalu berjalan di runtime yang sama dengan sesi utama: sesi Claude memakai kolom Claude Code, sesi Codex kolom Codex CLI. Flow yang dimatikan berjalan sebagai satu sesi biasa seperti sebelumnya."]});return r==="accordion"?a.jsxs("div",{className:"hn-sched-panel",children:[d,j.map(i=>a.jsx(R,{flow:i,f:t(i),putFlow:l},i))]}):a.jsxs(a.Fragment,{children:[a.jsx(g,{eyebrow:"orkestrasi",title:"Orkestrasi subagen per fase",children:d}),j.map(i=>a.jsx("div",{"data-testid":`orch-flow-${i}`,children:a.jsx(g,{eyebrow:"flow",title:u[i],children:a.jsx(y,{flow:i,f:t(i),putFlow:l})})},i))]})}const c=s=>!!s&&typeof s=="object"&&!Array.isArray(s)&&Object.getPrototypeOf(s)===Object.prototype,f=(s,n)=>{if(s===n)return!0;if(Array.isArray(s)&&Array.isArray(n))return s.length===n.length&&s.every((r,e)=>f(r,n[e]));if(c(s)&&c(n)){const r=Object.keys(s).filter(t=>s[t]!==void 0),e=Object.keys(n).filter(t=>n[t]!==void 0);return r.length===e.length&&r.every(t=>f(s[t],n[t]))}return!1};function w(s,n,r){if(f(n,s)&&r!==void 0)return r;if(!c(s)||!c(n)||!c(r))return n;const e={...r};for(const t of Object.keys(n))e[t]=w(s[t],n[t],r[t]);return e}export{z as O,w as r};
|