@zaip-ai/cli 5.7.0 → 5.8.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.
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.js +1 -1
- package/package.json +1 -1
- package/templates/.agents/README-ENG.md +2 -0
- package/templates/.agents/README.md +2 -0
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +28 -28
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-B4XMYP00.js → DashboardHelpDialog-C-J7yI0E.js} +3 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-DvMV9yit.js → PricingSettingsDialog-6Lx9UnYo.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-CFhFcZjW.js → ProjectSettingsPage-B6Dvz-Je.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DkaJNHuG.js → TraceabilityWorkspace-YRJB7Gxh.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-CwQfHYWq.js → dashboard-localization-CCXDvXwr.js} +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-DB2s40tU.js → index-CYc50ABs.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +16 -16
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +21 -21
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +3 -3
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +1 -1
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +45 -45
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +15 -5
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +33 -0
- package/templates/.agents/skills/zaip-skill-lifecycle-closure/references/post-publication-task-first.md +2 -0
- package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +1 -1
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/template-manifest.json +65 -65
|
@@ -345,7 +345,7 @@ ${i}
|
|
|
345
345
|
|
|
346
346
|
## Resultado
|
|
347
347
|
|
|
348
|
-
${n}`}function Fc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function zc(e,t,n){let i=new Set;for(let r of e)i.has(r)&&n.addIssue({code:"custom",path:[t],message:`Duplicate value: ${r}`}),i.add(r)}var P0=O(()=>{"use strict"});var $0=O(()=>{"use strict"});function zv(e,t,n,i,r,o=!1){let a=["completed","failed","cancelled"].includes(t);return{...e,revision:e.revision+1,status:t,attempt_count:t==="executing"&&e.status!=="verifying"&&!o?(e.attempt_count??0)+1:e.attempt_count,status_reason:["blocked","failed","cancelled"].includes(t)?r??n?.summary??`Task moved to ${t}.`:null,updated_at:i,started_at:t==="executing"&&e.started_at===null?i:e.started_at,finished_at:a?i:null,result:a?n:null}}function L0(e,t){return e===`Orchestrator stopped without a persisted Gui finalization decision; lifecycle was fail-closed as blocked. (Run ${t}).`||e===`Finalization barrier missing; resume after a completed zaip-agent-finalizer Sub-Run with authoritative metadata (Run ${t}).`||e===`Finalization barrier evidence_missing; resume after passed typed Evidence linked to the same Task, Change, Execution, and Run (Run ${t}).`||e.startsWith(`Completion gates did not close Run ${t}:`)}function eQ(e){return e.plan_ref?.execution_id??e.prepared_plan?.execution_id??null}function M0(e,t){if(e.status!=="blocked"||e.status_reason!==t.reason||eQ(e)!==t.executionId||!L0(t.reason,t.runId))throw new Error(`Task ${e.id} is not recoverable from its own completion gate`)}var D0,qv=O(()=>{"use strict";D0={draft:["planned","blocked","failed","cancelled"],planned:["executing","blocked","failed","cancelled"],executing:["verifying","failed","blocked","cancelled"],verifying:["executing","completed","failed","blocked","cancelled"],blocked:["executing","cancelled"],completed:[],failed:["executing"],cancelled:[]}});var it,Ap,tQ,j0,nQ,rQ,iQ,oo,Ja,U0=O(()=>{"use strict";ze();qo();it=Me(Ue(),1);Dv();Uv();Uv();P0();$0();qv();Ap=it.z.string().datetime({offset:!0}),tQ=it.z.string().regex(/^[a-f0-9]{64}$/),j0=it.z.string().startsWith("TASK-"),nQ=it.z.string().startsWith("CHG-"),rQ=it.z.string().startsWith("REQ-"),iQ=it.z.string().startsWith("AC-"),oo=it.z.object({schema_version:it.z.literal(2),id:j0,revision:it.z.number().int().positive(),change_id:nQ,title:it.z.string().min(1),short_name:it.z.string().min(1),objective:it.z.string().min(1),target_release:it.z.string().regex(/^[1-9]\d*\.(?:0|[1-9]\d*)$/).nullable().optional(),status:it.z.enum(["draft","planned","executing","verifying","completed","failed","blocked","cancelled"]),status_reason:it.z.string().min(1).nullable().optional(),attempt_count:it.z.number().int().nonnegative().optional(),risk:it.z.enum(["lite","standard","critical"]),priority:it.z.enum(["low","medium","high","urgent"]),owner:it.z.string().min(1).nullable(),requirement_ids:it.z.array(rQ).min(1),acceptance_ids:it.z.array(iQ).min(1),depends_on:it.z.array(j0),write_scopes:it.z.array(it.z.string().min(1)),runtime:Zu.optional(),model_profile:uo.optional(),assurance_risk_signals:Ep.optional(),assurance_risk_signals_source:it.z.enum(["explicit","risk_default"]).optional(),plan_revision:it.z.number().int().positive().nullable(),plan_hash:tQ.nullable(),prepared_plan:ki.optional(),plan_ref:Va.optional(),created_at:Ap,updated_at:Ap,started_at:Ap.nullable(),finished_at:Ap.nullable(),result:jv.nullable()}).strict().superRefine((e,t)=>{let n=e.plan_revision===null&&e.plan_hash===null;e.status==="draft"||n&&["blocked","failed","cancelled"].includes(e.status)?(!n||e.prepared_plan!==void 0||e.plan_ref!==void 0)&&t.addIssue({code:"custom",message:`${e.status} Task without materialization cannot contain a prepared plan`}):(e.plan_revision===null||e.plan_hash===null)&&t.addIssue({code:"custom",message:`${e.status} Task requires plan_revision and plan_hash`}),e.prepared_plan!==void 0&&e.plan_ref!==void 0&&t.addIssue({code:"custom",message:"Task cannot contain prepared_plan and plan_ref"}),e.plan_ref!==void 0&&e.plan_ref.hash!==e.plan_hash&&t.addIssue({code:"custom",path:["plan_ref"],message:"plan_ref must match plan_hash"}),e.prepared_plan!==void 0&&(e.prepared_plan.source.type!=="task"||e.prepared_plan.source.task_id!==e.id||e.prepared_plan.hash!==e.plan_hash)&&t.addIssue({code:"custom",path:["prepared_plan"],message:"prepared_plan must belong to the Task and match plan_hash"}),["completed","failed","cancelled"].includes(e.status)&&(e.finished_at===null||e.result===null)&&t.addIssue({code:"custom",message:"terminal Task requires finished_at and result"}),["executing","verifying","completed"].includes(e.status)&&e.started_at===null&&t.addIssue({code:"custom",message:`${e.status} Task requires started_at`}),e.status==="completed"&&(e.result?.completed_run_id===null||e.result?.evidence_ids.length===0)&&t.addIssue({code:"custom",path:["result"],message:"completed Task requires completed_run_id and at least one Evidence"}),zc(e.requirement_ids,"requirement_ids",t),zc(e.acceptance_ids,"acceptance_ids",t),zc(e.depends_on,"depends_on",t),zc(e.write_scopes,"write_scopes",t)}),Ja=class{constructor(t,n){this.filesystem=t;this.layout=n;if(n.version===1)throw new TypeError("TaskV2Repository requires a modern WorkspaceLayout")}filesystem;layout;async read(t){let n=await So(this.filesystem,this.layout,"task",t);if(n===null)throw new Error(`task not found: ${t}`);let i=Ft(await this.filesystem.readText(n),oo);return{task:i.metadata,body:i.body}}async list(){let t=await this.filesystem.listFiles(this.layout.entityRoot("task"),".md");return Promise.all(t.map(async n=>Ft(await this.filesystem.readText(n),oo).metadata))}async createDraft(t){if(t.modelProfile&&t.modelProfile.risk!==t.risk)throw new Error("Task model profile risk differs from Task risk");let i=(t.clock??new nt).now().toISOString(),r=oo.parse({schema_version:2,id:t.id,revision:1,change_id:t.changeId,title:t.title,short_name:t.shortName,objective:t.objective,target_release:t.targetRelease??null,status:"draft",attempt_count:0,risk:t.risk,...t.modelProfile===void 0?{}:{model_profile:t.modelProfile},priority:t.priority,owner:t.owner??null,requirement_ids:[...t.requirementIds],acceptance_ids:[...t.acceptanceIds],depends_on:[...t.dependsOn??[]],write_scopes:[...t.writeScopes??[]],plan_revision:null,plan_hash:null,created_at:i,updated_at:i,started_at:null,finished_at:null,result:null,assurance_risk_signals:N0(t.risk,t.assuranceRiskSignals),assurance_risk_signals_source:t.assuranceRiskSignals===void 0?"risk_default":"explicit"});return await this.filesystem.writeTextExclusive(this.path(r.id),this.serialize(r)),r}async setPreparedPlan(t,n){let i=ki.parse(n);if(i.source.type!=="task"||i.source.task_id!==t)throw new TypeError(`Prepared plan source must be task ${t}`);let r=await this.read(t);if(r.task.status==="planned"&&r.task.prepared_plan?.hash===i.hash)return r.task;if(r.task.status!=="draft")throw new Error(`Task ${t} must be draft before prepare`);let o=i.blueprints.tasks.find(c=>c.id===t);if(o===void 0)throw new Error(`Prepared plan does not contain Task ${t}`);let a=[o.change_id===r.task.change_id?null:"change_id",o.title===r.task.title?null:"title",o.short_name===r.task.short_name?null:"short_name",o.objective===r.task.objective?null:"objective",o.risk===r.task.risk?null:"risk",o.priority===r.task.priority?null:"priority",o.owner===r.task.owner?null:"owner",Fc(o.requirement_ids,r.task.requirement_ids)?null:"requirement_ids",Fc(o.acceptance_ids,r.task.acceptance_ids)?null:"acceptance_ids",Fc(o.write_scopes,r.task.write_scopes)?null:"write_scopes"].filter(c=>c!==null),s=i.dag.nodes.find(c=>c.task_id===t);if((s===void 0||!Fc(s.depends_on,r.task.depends_on))&&a.push("depends_on"),a.length>0)throw new Error(`Prepared plan diverges from Task draft: ${a.join(", ")}`);let l=oo.parse({...r.task,revision:r.task.revision+1,status:"planned",plan_revision:i.revision,plan_hash:i.hash,prepared_plan:i,...o.model_profile===void 0?{}:{model_profile:o.model_profile},updated_at:i.prepared_at});return await this.write(l),l}async write(t,n=Fv(t)){await this.filesystem.writeTextAtomic(this.path(t.id),this.serialize(t,n))}async normalizePreparedPlan(t,n){let i=await this.read(t);if(i.task.plan_ref?.hash===n.hash)return i.task;if(i.task.prepared_plan?.hash!==n.hash)throw new Error(`Task ${t} does not contain PreparedPlan ${n.hash}`);let{prepared_plan:r,...o}=i.task,a=oo.parse({...o,revision:i.task.revision+1,plan_ref:Tc(n),updated_at:new Date().toISOString()});return await this.write(a),a}async normalizeBody(t){let n=await this.read(t);return await this.write(n.task),n.task}serialize(t,n=Fv(t)){return dn({metadata:oo.parse(t),body:n})}async transition(t,n,i=null,r=new nt,o=null){let a=await this.read(t);if(!D0[a.task.status].includes(n))throw new Error(`Invalid Task transition: ${a.task.status} -> ${n}`);let s=oo.parse(zv(a.task,n,i,r.now().toISOString(),o));return await this.write(s),s}async recoverOwnCompletionGateBlock(t,n,i=new nt){let r=await this.read(t);M0(r.task,n);let o=oo.parse(zv(r.task,"executing",null,i.now().toISOString(),null,!0));return await this.write(o),o}path(t){return this.layout.activePath("task",t)}}});var St,Vv,eye,Wv=O(()=>{"use strict";ze();St=Me(Ue(),1);Sv();Pc();$c();t0();O0();I0();U0();Dv();qv();Vv=St.z.string().datetime({offset:!0}),eye=St.z.object({id:St.z.string().startsWith("TASK-"),title:St.z.string().min(1),short_name:St.z.string().min(1),status:St.z.enum(["draft","planned","executing","verifying","completed","failed","blocked","cancelled"]),risk:St.z.enum(["lite","standard","critical"]),priority:St.z.enum(["low","medium","high","urgent"]),owner:St.z.string().min(1).nullable().default(null),progress:St.z.number().int().min(0).max(100),spec:St.z.string().startsWith("SPEC-"),change:St.z.string().startsWith("CHG-"),requirements:St.z.array(St.z.string().startsWith("REQ-")),depends_on:St.z.array(St.z.string().startsWith("TASK-")),human_decisions:St.z.array(St.z.string().startsWith("DEC-HUMAN-")),agent_decisions:St.z.array(St.z.string().startsWith("DEC-AI-")),created_at:Vv,started_at:Vv.nullable(),finished_at:Vv.nullable()}).strict()});function Tp(e){return new Set(e.filter(t=>t.status!=="planned").flatMap(t=>t.dag.nodes.map(n=>n.task_id)))}var Bv=O(()=>{"use strict"});function F0(e){let t=new Map,n=(i,r)=>i===null&&r===null?null:(i??0)+(r??0);for(let i of e){if(i.task_id===null)continue;let r=t.get(i.task_id)??{duration_ms:null,tokens:null,cost_brl:null};t.set(i.task_id,{duration_ms:n(r.duration_ms,i.phase==="execution"&&i.parent_run_id==null?i.duration_ms:null),tokens:n(r.tokens,i.usage.total.tokens.total),cost_brl:n(r.cost_brl,i.usage.total.cost.brl)})}return t}function qc(e,t){let n=e.filter(a=>a.status==="completed").length,i=t.filter(a=>a.status!=="running"),r=i.filter(a=>a.status==="completed").length,o=t.filter(a=>a.work_type==="rework").length;return{completed_tasks:n,task_completion_rate:e.length===0?0:n/e.length,terminal_runs:i.length,successful_runs:r,terminal_success_rate:i.length===0?0:r/i.length,rework_rate:t.length===0?0:o/t.length}}var Zv=O(()=>{"use strict"});function xp(e){let t=e?.source_started_at??null,n=e?.source_finished_at??e?.source_occurred_at??null;return{source_started_at:t,source_finished_at:n,source_duration_ms:t===null||n===null?null:Math.max(0,Date.parse(n)-Date.parse(t)),capture_lag_ms:n===null||e===void 0?null:Math.max(0,Date.parse(e.occurred_at)-Date.parse(n))}}function Rp(e,t,n,i){let r=Date.parse(e),o=c=>{let u=c==null?Number.NaN:Date.parse(c);return Number.isFinite(u)?u:null},a=(c,u)=>{let d=o(c),_=o(u);return d!==null&&_!==null&&_>=d&&_>=r},s=[];for(let c of[...n,...i]){let u=c.source_started_at,d=c.source_finished_at;if(u!==void 0&&d!==void 0&&a(u,d)){s.push({...c,source_finished_at:d});continue}c.activity_kind==="retrospective_local_reconciliation"&&typeof c.source_occurred_at=="string"&&(o(c.source_occurred_at)??Number.NEGATIVE_INFINITY)>=r&&s.push({...c,source_started_at:e,source_finished_at:c.source_occurred_at})}s.sort((c,u)=>Date.parse(c.occurred_at)-Date.parse(u.occurred_at));let l=s.at(-1);return xp(l===void 0?void 0:{occurred_at:l.occurred_at,source_occurred_at:l.source_occurred_at??void 0,source_started_at:l.source_started_at,source_finished_at:l.source_finished_at})}function z0(e){function t(n,i){let r=new Set([...i===null?[]:e.prds.filter(c=>c.id===i).map(c=>c.creation_run_id),...e.specs.filter(c=>n.has(c.id)).map(c=>c.creation_run_id)].filter(c=>c!=null)),o=new Set(e.changes.filter(c=>i!==null&&c.source.type==="prd"&&c.source.prd_id===i||(c.source.type==="spec"||c.source.type==="prd")&&c.source.spec_id!==null&&c.source.spec_id!==void 0&&n.has(c.source.spec_id)).map(c=>c.id)),a=new Set(e.tasks.filter(c=>o.has(c.change_id)).map(c=>c.id)),s=new Set(e.executions.filter(c=>i!==null&&c.origin.type==="prd"&&c.origin.prd_id===i||c.origin.type==="spec"&&c.origin.spec_id!==void 0&&n.has(c.origin.spec_id)||c.dag.nodes.some(u=>a.has(u.task_id))).map(c=>c.id)),l=e.runs.filter(c=>{let u=c.fold.run.spec_id!==null&&n.has(c.fold.run.spec_id)||c.fold.run.task_id!==null&&a.has(c.fold.run.task_id)||r.has(c.fold.run.run_id);return i===null?u:u||c.fold.run.prd_id===i||c.fold.run.execution_id!==null&&s.has(c.fold.run.execution_id)});return{changeIds:o,taskIds:a,executionIds:s,runs:l}}return{forSpec:n=>t(new Set([n]),null),forPrd:n=>t(new Set(e.specs.filter(i=>i.prd_id===n).map(i=>i.id)),n)}}var Hv=O(()=>{"use strict"});function q0(e){let t=nC(e.map(n=>n.cost));return{conversation:Ga(t.conversation),planning:Ga(t.planning),execution:Ga(t.execution),total:Ga(t.total),new_work:Ga(t.work_types.new),rework:Ga(t.work_types.rework)}}function Ga(e){return{events:e.usage_event_count,tokens:e.tokens,cost:e.cost,coverage:e.coverage}}function Cp(e){return{human:e.filter(t=>t.origin==="human").length,agent:e.filter(t=>t.origin==="agent").length}}function Ip(e,t){let n=[e.conversation,e.planning,e.execution],i=Object.values(t).map(r=>r.total);return{phase_tokens_match_total:Op(n.map(r=>r.tokens.total),e.total.tokens.total),phase_usd_match_total:Op(n.map(r=>r.cost.usd),e.total.cost.usd),phase_brl_match_total:Op(n.map(r=>r.cost.brl),e.total.cost.brl),origin_tokens_match_total:Op(i.map(r=>r.tokens.total),e.total.tokens.total)}}function Op(e,t){let n=e.filter(i=>i!==null);return t===null?n.length===0:Math.abs(n.reduce((i,r)=>i+r,0)-t)<1e-9}function Np(e){return e==="completed"?100:e==="verifying"?80:e==="executing"?50:["blocked","failed","cancelled"].includes(e)?0:10}function V0(e){return e==="planned"?"planning":["running","paused","verifying"].includes(e)?"executing":e}function W0(e,t){if(e==="delivered")return"completed";if(e==="blocked")return"blocked";if(e==="failed")return"failed";if(e==="cancelled")return"cancelled";let n=t.flatMap(i=>i===void 0?[]:[i.status]);return n.some(i=>["running","paused"].includes(i))?"executing":n.includes("verifying")?"verifying":n.length>0&&n.every(i=>i==="completed")?e==="active"?"verifying":"completed":e==="active"?"executing":n.includes("blocked")?"blocked":n.includes("failed")?"failed":(n.includes("planned")||["draft","ready"].includes(e),"planning")}function Vc(e){return e.filter(t=>t!==null).map(t=>new Date(t).toISOString()).sort().at(-1)??null}var Wc=O(()=>{"use strict";Dn()});function B0(e){let t=e.fold.finished?.occurred_at??null,n=e.fold.effective_usage_records.findLast(l=>l.runtime)?.runtime,i=e.fold.effective_usage_records.at(-1),r=Rp(e.fold.run.occurred_at,t,e.fold.effective_usage_records,e.fold.records),o=e.fold.finished,a=typeof r.source_duration_ms=="number"&&r.source_duration_ms>=0?r.source_duration_ms:typeof o?.duration_ms=="number"&&o.duration_ms>=0&&(o.duration_provenance==="observed"||o.duration_provenance==="reconciled"||o.duration_provenance==="legacy_inferred")?o.duration_ms:null,s=typeof r.source_duration_ms=="number"&&r.source_duration_ms>=0?"observed":a===null?"unavailable":o?.duration_provenance??"unavailable";return{id:e.fold.run.run_id,artifact_path:e.artifactPath,status:e.fold.status,phase:e.fold.records.findLast(l=>"phase"in l)?.phase??e.fold.run.phase,entrypoint:e.fold.run.entrypoint,work_type:e.fold.run.work_type,run_role:z_(e.fold.run),run_kind:wy(e.fold.run),run_purpose:Ey(e.fold.run),requires_finalizer:Ay(e.fold.run),parent_run_id:e.fold.run.parent_run_id,client:e.fold.run.client,agent:e.fold.run.agent,agent_name:oQ(e.fold.run.agent,e.fold.run.agent_name),provider:i?.provider??e.fold.run.provider,model:e.fold.run.model,reasoning_effort:e.fold.run.reasoning_effort??null,...aQ(e.fold),...sQ(e.fold),service_tier:n?.service_tier??null,conversation_id:e.fold.run.conversation_id,execution_id:e.fold.run.execution_id,task_id:e.fold.run.task_id,spec_id:e.fold.run.spec_id,prd_id:e.fold.run.prd_id,change_id:e.fold.run.change_id,started_at:e.fold.run.occurred_at,finished_at:t,duration_ms:a,duration_started_at:a===null?null:o?.started_at??e.fold.run.occurred_at,duration_provenance:s,...r,pricing_segments:e.fold.effective_usage_records.map(l=>({phase:l.phase,provider:l.provider,model:l.model,service_tier:l.runtime?.service_tier??n?.service_tier??null,input_tokens:l.tokens.input,cached_input_tokens:l.tokens.cached_input,output_tokens:l.tokens.output,reasoning_tokens:l.tokens.reasoning,total_tokens:l.tokens.total,recorded_usd:l.cost.usd,recorded_brl:l.cost.brl,recorded_fx_rate:l.cost.fx_rate??null})),usage:q0([e])}}function oQ(e,t){if(e==="codex")return"codex";let n=t??e;return n.startsWith("agent-")?`zaip-agent-${n.slice(6)}`:n}function aQ(e){let t=new Set([...e.provider_invocation_records.map(i=>i.effective.model),...e.effective_usage_records.map(i=>i.model)].filter(i=>i!==null)),n=new Set([...e.provider_invocation_records.map(i=>i.effective.reasoning_effort),...e.effective_usage_records.map(i=>i.runtime?.reasoning_effort??null)].filter(i=>i!==null));return{effective_model:t.size===1?[...t][0]??null:null,effective_reasoning_effort:n.size===1?[...n][0]??null:null,effective_config_mixed:t.size>1||n.size>1}}function sQ(e){let t=new Set([...e.model_selection_records.map(n=>n.invocation_id),...e.provider_invocation_records.map(n=>n.invocation_id)]);return t.size===0?{call_count:null,terminal_call_count:null,failed_call_count:null,cancelled_call_count:null}:{call_count:t.size,terminal_call_count:e.provider_invocation_records.length,failed_call_count:e.provider_invocation_records.filter(n=>n.status==="failed").length,cancelled_call_count:e.provider_invocation_records.filter(n=>n.status==="cancelled").length}}function Z0(e,t){return e!==null&&e>=0?e:null}var Jv=O(()=>{"use strict";yc();Hv();Wc()});function ti(e){return e.map(t=>typeof t.source_duration_ms=="number"&&t.source_duration_ms>=0?{...t,duration_ms:t.source_duration_ms,duration_provenance:"observed",estimation_basis:null}:typeof t.duration_ms=="number"&&t.duration_ms>=0&&(t.duration_provenance==="observed"||t.duration_provenance==="reconciled"||t.duration_provenance==="legacy_inferred")?{...t,estimation_basis:null}:{...t,duration_ms:null,duration_provenance:"unavailable",estimation_basis:null})}var Pp=O(()=>{"use strict"});function J0(e,t){let n=new Set(e.dag.nodes.map(_=>_.task_id)),i=new Map(t.changes.map(_=>[_.id,_])),r=new Map(t.specs.map(_=>[_.id,_])),o=new Set,a=new Set,s=_=>{o.add(_);let p=r.get(_),g=p?.prd_id??p?.parent_id??null;g!==null&&a.add(g)};e.origin.type==="spec"&&s(e.origin.spec_id),e.origin.type==="prd"&&a.add(e.origin.prd_id);for(let _ of t.tasks){if(!n.has(_.id))continue;let p=i.get(_.change_id)?.source;p&&((p.type==="spec"||p.type==="prd")&&p.spec_id&&s(p.spec_id),p.type==="prd"&&p.prd_id&&a.add(p.prd_id))}let l=t.runs.filter(_=>_.execution_id===e.id||_.task_id!==null&&n.has(_.task_id)),c=l.flatMap(_=>_.call_count===null?[]:[_.call_count]),u=l.filter(_=>_.run_purpose==="finalization"||_.agent==="agent-finalizer"||_.agent==="agent-task-finalizer"),d=new Set(u.flatMap(_=>_.status==="completed"&&_.task_id!==null?[_.task_id]:[]));return{agent_call_count:l.length,orchestrator_run_count:l.filter(_=>_.parent_run_id===null).length,subagent_run_count:l.filter(_=>_.parent_run_id!==null).length,finalizer_run_count:u.length,finalized_task_count:d.size,llm_call_count:c.reduce((_,p)=>_+p,0),llm_call_count_complete:c.length===l.length,task_count:n.size,spec_count:o.size,prd_count:a.size,duration_ms:cQ(l.filter(_=>_.parent_run_id===null)),total_tokens:H0(l.map(_=>_.usage?.tokens.total??null)),cost_brl:H0(l.map(_=>_.usage?.cost.brl??null))}}function H0(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function cQ(e){let t=e.flatMap(n=>typeof n.source_duration_ms=="number"&&n.source_duration_ms>=0?[n.source_duration_ms]:typeof n.duration_ms=="number"&&n.duration_ms>=0&&(n.duration_provenance==="observed"||n.duration_provenance==="reconciled"||n.duration_provenance==="legacy_inferred")?[n.duration_ms]:[]);return t.length===0?null:t.reduce((n,i)=>n+i,0)}var G0=O(()=>{"use strict"});function $p(e){let t=K0(e.from??null,"from"),n=K0(e.to??null,"to");if(t!==null&&n!==null&&t>n)throw new Error("from must not be after to");return{from:t,to:n}}function K0(e,t){if(e===null||e.length===0)return null;let n=/^\d{4}-\d{2}-\d{2}$/.test(e)?t==="to"?`${e}T23:59:59.999-03:00`:`${e}T00:00:00.000-03:00`:e,i=Date.parse(n);if(Number.isNaN(i))throw new Error(`${t} must be an ISO timestamp`);return new Date(i).toISOString()}var Gv=O(()=>{"use strict"});function Nn(e){let t=n=>{let i=e.map(n),r=o=>{let a=o.filter(s=>s!==null);return a.length===0?null:a.reduce((s,l)=>s+l,0)};return{events:i.reduce((o,a)=>o+a.events,0),tokens:{input:r(i.map(o=>o.tokens.input)),cached_input:r(i.map(o=>o.tokens.cached_input)),output:r(i.map(o=>o.tokens.output)),reasoning:r(i.map(o=>o.tokens.reasoning)),total:r(i.map(o=>o.tokens.total))},cost:{usd:r(i.map(o=>o.cost.usd)),brl:r(i.map(o=>o.cost.brl))},coverage:{events:i.reduce((o,a)=>o+a.coverage.events,0),tokens:i.reduce((o,a)=>o+a.coverage.tokens,0),usd:i.reduce((o,a)=>o+a.coverage.usd,0),brl:i.reduce((o,a)=>o+a.coverage.brl,0)}}};return{conversation:t(n=>n.usage.conversation),planning:t(n=>n.usage.planning),execution:t(n=>n.usage.execution),total:t(n=>n.usage.total),new_work:t(n=>n.usage.new_work),rework:t(n=>n.usage.rework)}}function Lp(e){let t=ti(e.runs),n=mc(t),i=Nn(t),r={conversation:Nn(t.filter(o=>o.entrypoint==="conversation")),task:Nn(t.filter(o=>o.entrypoint==="task")),spec:Nn(t.filter(o=>o.entrypoint==="spec")),prd:Nn(t.filter(o=>o.entrypoint==="prd"))};return{...e,runs:t,origins:r,summary:{...e.summary,run_count:t.length,execution_duration_ms:Si(n)??0,execution_day_count:new Set(n.map(o=>o.started_at.slice(0,10))).size,source_latest_at:Vc([e.summary.source_latest_at,...t.map(o=>o.finished_at??o.started_at)]),quality:qc(e.tasks,t),reconciliation:Ip(i,r),usage:i}}}function Xv(e){let t=[...e.taskIds].flatMap(r=>{let o=e.tasks.get(r);return o===void 0?[]:[o]}),n=e.decisions.filter(r=>r.scope_type==="change"&&e.changeIds.has(r.scope_id)||r.scope_type==="execution"&&e.executionIds.has(r.scope_id)),i=Yv(e.runs);return{id:e.id,title:e.title,created_at:e.createdAt,updated_at:e.updatedAt,kind:e.kind,parent_id:e.parentId,artifact_path:e.artifactPath,lifecycle_status:e.lifecycleStatus,work_status:W0(e.lifecycleStatus,[...e.executionIds].map(r=>e.executions.get(r))),execution_ids:[...e.executionIds].sort(),task_ids:[...e.taskIds].sort(),planned_tasks:[...e.plannedTasks],canonical_run_ids:i.canonicalRuns.map(r=>r.id).sort(),run_ids:i.canonicalRuns.map(r=>r.id).sort(),root_execution_run_ids:i.rootExecutionRuns.map(r=>r.id).sort(),execution_count:e.executionIds.size,task_count:Math.max(e.taskIds.size,e.plannedTasks.length),run_count:i.canonicalRuns.length,duration_ms:i.observedRootDuration,observed_root_duration_ms:i.observedRootDuration,observed_lifecycle_duration_ms:i.observedLifecycleDuration,duration_coverage:{eligible_runs:i.rootExecutionRuns.length,known_runs:i.knownRootRuns.length,unknown_runs:i.rootExecutionRuns.length-i.knownRootRuns.length,coverage_ratio:i.rootExecutionRuns.length===0?1:i.knownRootRuns.length/i.rootExecutionRuns.length},duration_provenance:i.observedRootDuration===null?"unavailable":"observed",lifecycle_duration_coverage:i.lifecycleCoverage,lifecycle_duration_provenance:i.observedLifecycleDuration===null?"unavailable":"observed",decisions:Cp(n),rework_run_count:i.canonicalRuns.filter(r=>r.work_type==="rework").length,quality:qc(t,i.canonicalRuns),usage:Nn(i.canonicalRuns)}}function Yv(e){let t=[...new Map(e.map(a=>[a.id,a])).values()],n=t.filter(a=>a.phase==="execution"&&a.parent_run_id==null),i=n.filter(a=>Kv(a)!==null),r=t.filter(a=>a.parent_run_id==null),o=r.filter(a=>Kv(a)!==null);return{canonicalRuns:t,rootExecutionRuns:n,knownRootRuns:i,observedRootDuration:Si(n),observedLifecycleDuration:lQ(r),lifecycleCoverage:{eligible_runs:r.length,known_runs:o.length,unknown_runs:r.length-o.length,coverage_ratio:r.length===0?1:o.length/r.length}}}function lQ(e){let t=e.flatMap(a=>{let s=Kv(a),l=Date.parse(a.source_started_at??a.duration_started_at??a.started_at);return s!==null&&Number.isFinite(l)?[{start:l,end:l+s}]:[]}).toSorted((a,s)=>a.start-s.start),n=t[0];if(n===void 0)return null;let i=0,r=n.start,o=n.end;for(let a of t.slice(1))a.start<=o?o=Math.max(o,a.end):(i+=o-r,r=a.start,o=a.end);return i+o-r}function Kv(e){return typeof e.source_duration_ms=="number"&&e.source_duration_ms>=0?e.source_duration_ms:typeof e.duration_ms=="number"&&e.duration_ms>=0&&(e.duration_provenance==="observed"||e.duration_provenance==="reconciled"||e.duration_provenance==="legacy_inferred")?e.duration_ms:null}function X0(e){function t(n,i){let r=new Set([...i===null?[]:e.prds.filter(c=>c.id===i).map(c=>c.creation_run_id),...e.specs.filter(c=>n.has(c.id)).map(c=>c.creation_run_id)].filter(c=>c!=null)),o=new Set(e.changes.filter(c=>i!==null&&c.source.type==="prd"&&c.source.prd_id===i||(c.source.type==="spec"||c.source.type==="prd")&&c.source.spec_id!==null&&c.source.spec_id!==void 0&&n.has(c.source.spec_id)).map(c=>c.id)),a=new Set(e.tasks.filter(c=>o.has(c.change_id)).map(c=>c.id)),s=new Set(e.executions.filter(c=>i!==null&&c.origin.type==="prd"&&c.origin.prd_id===i||c.origin.type==="spec"&&n.has(c.origin.spec_id)||c.dag.nodes.some(u=>a.has(u.task_id))).map(c=>c.id)),l=e.runs.filter(c=>c.spec_id!==null&&n.has(c.spec_id)||c.task_id!==null&&a.has(c.task_id)||r.has(c.id)||i!==null&&(c.prd_id===i||c.execution_id!==null&&s.has(c.execution_id)));return{changeIds:o,taskIds:a,executionIds:s,runs:l}}return{forSpec:n=>t(new Set([n]),null),forPrd:n=>t(new Set(e.specs.filter(i=>i.prd_id===n).map(i=>i.id)),n)}}var Qv=O(()=>{"use strict";fc();Zv();Pp();Wc()});function Y0(e,t){let n=new Map(e.map(r=>[r.id,eb(r.prepared_plan)])),i=new Map(t.map(r=>{let o=eb(r.prepared_plan);if(o.length>0||r.prd_id===null)return[r.id,o];let a=e.find(s=>s.id===r.prd_id);return[r.id,a===void 0?[]:eb(a.prepared_plan,r.id)]}));return{byPrd:n,bySpec:i}}function Q0(e){let t=new Map;for(let n of e){if(n.kind==="interaction")continue;let i=new Set(n.dag.nodes.map(r=>r.task_id));n.origin.type==="task"&&i.add(n.origin.task_id);for(let r of i)t.set(r,new Set([...t.get(r)??[],n.id]))}return new Map([...t].map(([n,i])=>[n,[...i].sort()]))}function eb(e,t){if(e==null||e.blueprints===void 0)return[];let n=new Map(e.blueprints.changes.map(r=>[r.id,r.source.type==="spec"||r.source.type==="prd"?r.source.spec_id??null:null])),i=new Map(e.dag.nodes.map(r=>[r.task_id,r.depends_on]));return e.blueprints.tasks.filter(r=>t===void 0||n.get(r.change_id)===t).map(r=>({id:r.id,title:r.title,objective:r.objective,depends_on:i.get(r.id)??[]}))}var eP=O(()=>{"use strict"});function nP(e){return typeof e=="number"&&e>0?Math.round(e*36e5/4e6):null}function rP(e,t){let n=e.filter(o=>(o.total_tokens??0)>0);if(n.length<7||t<n.length)return e.map(o=>tP(o));let i=n.reduce((o,a)=>o+(a.total_tokens??0),0),r=0;return e.map(o=>{if(!n.includes(o))return tP(o);let a=n.at(-1)===o?t-r:1+Math.floor((t-n.length)*(o.total_tokens??0)/i);return r+=a,{...o,duration:{known_sum:a,unknown:0,complete:!0,coverage_ratio:1}}})}function tb(e,t){let n=rP(e.map(([r,o])=>({key:r,total_tokens:o.usage.total_tokens.known_sum,estimated_brl:o.usage.cost.known_sum,duration:Wo(r,o).value})),t),i=new Map(n.map(r=>[r.key,r.duration]));return Object.fromEntries(e.map(([r,o])=>[r,{...o,duration:i.get(r)??Wo(r,o).value}]))}function tP(e){if((e.total_tokens??0)<=0||e.duration.known_sum>0)return e;let t=nP(e.total_tokens);return t===null?e:{...e,duration:{known_sum:t,unknown:0,complete:!0,coverage_ratio:1}}}function Bc(e){let t=e.filter(i=>(i.phase===void 0||i.phase==="execution")&&i.parent_run_id==null),n=new Map;for(let i of t){let r=i.duration_started_at??i.started_at;if(!P_(r)||r===null)continue;let o=Date.parse(r),a=qt(r,"day");if(!Number.isFinite(o)||a===null)continue;if(i.duration_ms===null||i.duration_ms<0){let l=n.get(a)??{intervals:[],known:0,unknown:0};l.unknown+=1,n.set(a,l);continue}let s=o+i.duration_ms;for(let l=o;l<=s;){let c=qt(new Date(l).toISOString(),"day");if(c===null)break;let u=Math.min(s,dQ(c)),d=n.get(c)??{intervals:[],known:0,unknown:0};if(d.intervals.push({start:l,end:u}),d.known+=1,n.set(c,d),u>=s)break;l=u}}return new Map([...n].map(([i,r])=>{let o=r.known+r.unknown;return[i,{value:{known_sum:_Q(r.intervals),unknown:r.unknown,complete:r.unknown===0,coverage_ratio:o===0?1:r.known/o},population:{eligible_runs:o,known_runs:r.known,unknown_runs:r.unknown}}]}))}function Wo(e,t,n,i=!1){let r=Xr[e]??0,o=e>=_n.cutoffDay?n:void 0;if(i&&r===0&&o===void 0)return uQ();let a=i?o?.value:e<_n.cutoffDay?void 0:t.duration,s=a?.unknown??0,l=i?o?.population.eligible_runs??0:t.runs,c=i?o?.population.known_runs??0:t.runs-s;return{value:{known_sum:r+(a?.known_sum??0),unknown:s,complete:s===0,coverage_ratio:l===0?1:c/l},population:{eligible_runs:l,known_runs:c,unknown_runs:s}}}function uQ(){return{value:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},population:{eligible_runs:0,known_runs:0,unknown_runs:0}}}function dQ(e){let[t,n,i]=e.split("-").map(Number),r=new Date(Date.UTC(t,n-1,i+1)),o=new Intl.DateTimeFormat("en-US",{timeZone:"America/Sao_Paulo",timeZoneName:"longOffset"}).formatToParts(r).find(s=>s.type==="timeZoneName")?.value??"GMT",a=/^GMT([+-])(\d{2}):(\d{2})$/.exec(o);return a===null?r.getTime():r.getTime()-(Number(a[2])*60+Number(a[3]))*6e4*(a[1]==="+"?1:-1)}function _Q(e){let t=0,n=Number.NaN,i=Number.NaN;for(let r of e.toSorted((o,a)=>o.start-a.start))!Number.isFinite(n)||r.start>i?(Number.isFinite(n)&&(t+=i-n),n=r.start,i=r.end):i=Math.max(i,r.end);return Number.isFinite(n)?t+i-n:t}var nb=O(()=>{"use strict";Oa()});function pQ(e,t){return(t.from===null||e>=t.from.slice(0,10))&&(t.to===null||e<=t.to.slice(0,10))}function iP(e,t){let n=d=>{let _=e.reduce((m,[,f])=>m+d(f).known_sum,0),p=e.reduce((m,[,f])=>m+d(f).unknown,0),g=e.reduce((m,[,f])=>m+f.runs,0);return{value:g===p?null:_,coverage:g===0?1:(g-p)/g}},i=e.map(([d,_])=>{let p=d<=_n.cutoffDay?Xr[d]??0:0,g=d<_n.cutoffDay?void 0:_.duration;return{known_sum:p+(g?.known_sum??0),unknown:g?.unknown??0,runs:_.runs}}),r=i.reduce((d,_)=>d+_.known_sum,0),o=i.reduce((d,_)=>d+_.unknown,0),a=i.reduce((d,_)=>d+_.runs,0),s=a===o&&r===0?null:r,l={value:t.from===null&&t.to===null&&s!==null?bC(s):s,coverage:a===0?1:(a-o)/a},c=n(d=>d.usage.total_tokens),u=n(d=>d.usage.cost);return{duration_ms:l.value,tokens:c.value,cost_brl:u.value,coverage:{duration:l.coverage,tokens:c.coverage,cost:u.coverage},execution_day_count:i.filter(d=>d.known_sum>0).length}}function Mp(e,t){if(e===null)return[];let n=new Map;for(let[i,r]of Object.entries(e.days)){if(!pQ(i,t))continue;let o=r.tasks.length>0?r.tasks:r.specs.length>0?r.specs:r.prds;for(let a of o){let s=n.get(a.id);if(s===void 0){n.set(a.id,structuredClone(a));continue}s.run_count+=a.run_count;for(let l of["duration","total_tokens","cost"])s.metrics[l].known_sum+=a.metrics[l].known_sum,s.metrics[l].unknown+=a.metrics[l].unknown,s.metrics[l].complete=s.metrics[l].unknown===0,s.metrics[l].coverage_ratio=s.run_count===0?1:(s.run_count-s.metrics[l].unknown)/s.run_count;(a.window_at??a.occurred_at)>(s.window_at??s.occurred_at)&&(s.status=a.status,s.risk=a.risk,a.window_at!==void 0&&(s.window_at=a.window_at))}}return[...n.values()]}function oP(e){let t={},n={};for(let i of e){let r=i.status??"unclassified",o=i.risk??"unclassified";t[r]=(t[r]??0)+1,n[o]=(n[o]??0)+1}return{total:e.length,statuses:t,risks:n}}function rb(e,t,n){let i=hQ(),r={...i,tokens:{...i.tokens,total:Bo(e.metrics.total_tokens)},cost:{...i.cost,brl:Bo(e.metrics.cost)}};return{id:e.id,title:e.title??e.id,created_at:e.occurred_at,updated_at:e.window_at??null,kind:t,parent_id:e.parent_id,artifact_path:"",lifecycle_status:e.status??"unavailable",work_status:mQ(e.status),execution_ids:[],task_ids:[],planned_tasks:[],canonical_run_ids:[],run_ids:[],root_execution_run_ids:[],execution_count:0,task_count:n,run_count:e.run_count,duration_ms:Bo(e.metrics.duration),observed_root_duration_ms:Bo(e.metrics.duration),observed_lifecycle_duration_ms:null,duration_coverage:fQ(e),duration_provenance:e.metrics.duration.complete?"observed":"unavailable",lifecycle_duration_coverage:gQ(),lifecycle_duration_provenance:"unavailable",decisions:{human:0,agent:0},rework_run_count:0,quality:{completed_tasks:0,task_completion_rate:0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},usage:yQ(i,r)}}function aP(e){let t=e.status,n=["completed","blocked","failed","cancelled"].includes(t??"");return{schema_version:2,id:e.id,revision:0,change_id:"",title:e.title??e.id,short_name:e.id,objective:"",status:t==="draft"||t==="planned"||t==="executing"||t==="verifying"||t==="completed"||t==="failed"||t==="blocked"||t==="cancelled"?t:"draft",attempt_count:t==="planned"||t==="draft"?0:null,risk:e.risk==="lite"||e.risk==="standard"||e.risk==="critical"?e.risk:"standard",priority:"medium",owner:null,requirement_ids:[],acceptance_ids:[],depends_on:[],write_scopes:[],created_at:e.occurred_at,updated_at:e.window_at??e.occurred_at,started_at:t==="executing"||t==="verifying"||n?e.occurred_at:null,finished_at:n?e.window_at??e.occurred_at:null,result:null,artifact_path:"",progress:n?1:0,spec_id:e.parent_id,execution_started:t==="executing"||t==="verifying"||n,execution_ids:[],execution_count:0,telemetry:{duration_ms:Bo(e.metrics.duration),tokens:Bo(e.metrics.total_tokens),cost_brl:Bo(e.metrics.cost)},test_count:0}}function sP(e){return e.map(t=>({task_id:t.id,duration_ms:t.metrics.duration.known_sum,total_tokens:t.metrics.total_tokens.known_sum,cost_brl:t.metrics.cost.known_sum,run_count:t.run_count})).sort((t,n)=>n.duration_ms-t.duration_ms||t.task_id.localeCompare(n.task_id)).slice(0,5)}function Bo(e){return e.known_sum===0&&e.unknown>0?null:e.known_sum}function mQ(e){return e==="delivered"?"completed":["planning","executing","verifying","completed","blocked","failed","cancelled"].includes(e??"")?e:"planning"}function fQ(e){return{eligible_runs:e.run_count,known_runs:e.run_count-e.metrics.duration.unknown,unknown_runs:e.metrics.duration.unknown,coverage_ratio:e.metrics.duration.coverage_ratio}}function gQ(){return{eligible_runs:0,known_runs:0,unknown_runs:0,coverage_ratio:1}}function hQ(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function yQ(e,t){return{conversation:e,planning:e,execution:e,total:t,new_work:e,rework:e}}var cP=O(()=>{"use strict";Oa()});function ib(e,t,n=!0){let i=[...new Map(e.map(c=>[c.id,c])).values()],r=n?i.filter(c=>Up(c.finished_at??c.started_at,t)):i,o=r.filter(c=>c.phase==="execution"&&c.parent_run_id==null),a=ob(o,t),s=c=>{let u=c.filter(d=>d!==null);return u.length===0?null:Math.round(u.reduce((d,_)=>d+_,0)*1e9)/1e9},l=c=>c.length===0?1:c.filter(u=>u!==null).length/c.length;return{duration_ms:a===void 0||a.coverage_ratio===0?null:a.known_sum,tokens:s(r.map(c=>c.total_tokens)),cost_brl:s(r.map(c=>c.cost)),coverage:{duration:a?.coverage_ratio??1,tokens:l(r.map(c=>c.total_tokens)),cost:l(r.map(c=>c.cost))},execution_day_count:new Set(o.map(c=>qt(c.duration_started_at??c.started_at,"day")).filter(c=>c!==null)).size}}function ob(e,t){let n=Bc(e),r=[...new Set([...Object.keys(Xr),...n.keys()])].filter(c=>Dp(c,t)).map(c=>Wo(c,{runs:0},n.get(c),!0).value);if(r.length===0)return;let o=r.reduce((c,u)=>c+u.unknown,0),a=r.reduce((c,u)=>c+u.known_sum,0),s=[...n].filter(([c])=>Dp(c,t)).reduce((c,[,u])=>c+u.population.eligible_runs,0),l=[...n].filter(([c])=>Dp(c,t)).reduce((c,[,u])=>c+u.population.known_runs,0);return{known_sum:a,unknown:o,complete:o===0,coverage_ratio:s===0?1:l/s}}function Dp(e,t){return(t.from===null||e>=t.from.slice(0,10))&&(t.to===null||e<=t.to.slice(0,10))}async function Hc(e,t,n={},i={}){if(t.version===1)throw new Error("Operations projection requires a modern WorkspaceLayout");let r=new Vt(e),o=$p(n),[a,s,l,c]=await Promise.all([r.readDailyReadModels("overview"),r.readDailyReadModels("tasks"),r.readDailyReadModels("specs"),r.readDailyReadModels("prds")]);if(a===null)throw new Error("Lifecycle daily overview is not initialized");let u=Object.entries(a.days).filter(([L])=>Dp(L,o)).map(([L,J])=>[L,J.overview]),d=iP(u,o),_={runs:u.reduce((L,[,J])=>L+J.runs,0)},p=xQ(),g={...p,tokens:{...p.tokens,total:d.tokens},cost:{...p.cost,brl:d.cost_brl}},m=d.coverage,f=tb(u,d.duration_ms??0),v=Mp(s,o),S=Mp(c,o),b=Mp(l,o),h=oP(v),k=h.statuses,P=h.risks,U=new Map;for(let L of v)L.parent_id!==null&&U.set(L.parent_id,(U.get(L.parent_id)??0)+1);let $=new Map(b.map(L=>[L.id,L.parent_id])),B=S.map(L=>rb(L,"prd",v.filter(J=>J.parent_id===L.id).length+[...U].filter(([J])=>$.get(J)===L.id).reduce((J,[,le])=>J+le,0))),z=b.map(L=>rb(L,"spec",U.get(L.id)??0)),R=sP(v);return{schema_version:2,layout_version:t.version,readonly:!0,source:".agents/records",filters:o,summary:{prd_count:B.length,spec_count:z.length,execution_count:0,task_count:h.total,run_count:_.runs,overview_metrics:{duration_ms:d.duration_ms,execution_day_count:d.execution_day_count,tokens:d.tokens,cost_brl:d.cost_brl,prd_count:B.length,spec_count:z.length,selected_counts:{prds:B.length,specs:z.length},task_count:h.total,completed_prd_count:B.filter(L=>L.work_status==="completed").length,completed_spec_count:z.filter(L=>L.work_status==="completed").length,completed_task_count:k.completed??0,task_status_counts:k,task_risk_counts:P,top_tasks:R,latest_task_created_at:v.map(L=>L.occurred_at).sort().at(-1)??null,coverage:{duration:m.duration,tokens:m.tokens,cost:m.cost},data_source:"lifecycle_manifest_summary",partial:!0},decisions:{human:0,agent:0},source_latest_at:a.source_latest_at,quality:{completed_tasks:0,task_completion_rate:0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},reconciliation:{phase_tokens_match_total:!1,phase_usd_match_total:!1,phase_brl_match_total:!1,origin_tokens_match_total:!1},usage:Zc(p,g),periods:{daily:f}},origins:{conversation:Zc(p,p),task:Zc(p,p),spec:Zc(p,p),prd:Zc(p,p)},prds:B,specs:z,tasks:i.includeBoardTasks?v.map(aP):[],changes:[],executions:[],runs:[],decisions:[],evidences:[],validations:[]}}function vQ(e,t){return Object.fromEntries(e.map(([n,i])=>{let r=ob(t.filter(SQ),{from:n,to:n});return[n,{...i,...r===void 0?{}:{duration:r}}]}))}function bQ(e,t){let n={},i={},r=0;for(let o of e){let s=o.finished_at??(typeof o.data?.finished_at=="string"?o.data.finished_at:null)??o.updated_at;if(!Up(s,t))continue;r+=1;let l=o.status??"unclassified",c=o.risk??"unclassified";n[l]=(n[l]??0)+1,i[c]=(i[c]??0)+1}return{total:r,statuses:n,risks:i}}function Up(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}function lP(e,t){let n=new Map;for(let i of e){if(i.task_id===null||!t.has(i.task_id))continue;let r=n.get(i.task_id)??{task_id:i.task_id,duration_ms:0,total_tokens:0,cost_brl:0,run_count:0,runs:[]};r.runs.push(i),r.total_tokens+=i.total_tokens??0,r.cost_brl+=i.cost??0,r.run_count+=1,n.set(i.task_id,r)}return[...n.values()].map(({runs:i,...r})=>({...r,duration_ms:Si(i)??0})).sort((i,r)=>r.duration_ms-i.duration_ms||i.task_id.localeCompare(r.task_id)).slice(0,5)}function SQ(e){return e.phase==="execution"&&e.parent_run_id==null}function kQ(e,t,n){let i=t===null?null:qt(t,"day"),r=n===null?null:qt(n,"day");return Object.entries(wQ(e)).filter(([o])=>(i===null||o>=i)&&(r===null||o<=r))}function wQ(e){let t=[...new Map((e.run_metrics??[]).map(o=>[o.id,o])).values()],n=Object.values(e.periods.daily).reduce((o,a)=>o+a.runs,0);if(t.length===0||t.length!==n)return e.periods.daily;let i=new Map;for(let o of t){let a=qt(o.finished_at??o.started_at,"day");a!==null&&i.set(a,[...i.get(a)??[],o])}let r=new Set([...Object.keys(e.periods.daily),...i.keys()]);return Object.fromEntries([...r].map(o=>{let a=e.periods.daily[o]??EQ(e.usage.cost.currency),s=i.get(o)??[];return[o,{...a,runs:s.length,usage:{...a.usage,total_tokens:jp(s.map(l=>l.total_tokens)),cost:{...jp(s.map(l=>l.cost)),currency:a.usage.cost.currency??e.usage.cost.currency}},events:jp(s.map(l=>l.events))}]}))}function jp(e){let t=e.filter(i=>i!==null),n=e.length-t.length;return{known_sum:t.reduce((i,r)=>i+r,0),unknown:n,complete:n===0,coverage_ratio:e.length===0?1:t.length/e.length}}function EQ(e){let t=jp([]);return{prds:0,specs:0,tasks:0,validations:0,evidences:0,runs:0,usage:{input_tokens:t,output_tokens:t,total_tokens:t,cost:{...t,currency:e}},events:t}}function AQ(e,t,n){return lP((e.run_metrics??[]).filter(i=>Up(i.finished_at??i.started_at,t)),n)}function TQ(e,t){return Up(e.updated_at,t)}function xQ(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function Zc(e,t){return{conversation:e,planning:e,execution:e,total:t,new_work:e,rework:e}}function RQ(e){let t=n=>e.length===0?1:n/e.length;return{duration:t(e.filter(n=>n.duration_ms!==null).length),tokens:t(e.filter(n=>n.total_tokens!==null).length),cost:t(e.filter(n=>n.cost!==null).length)}}var ab=O(()=>{"use strict";Qr();Oa();fc();nb();Gv();cP()});function uP(e){return[...e].sort((t,n)=>n.started_at.localeCompare(t.started_at)||n.id.localeCompare(t.id))}var dP=O(()=>{"use strict"});async function _P(e,t,n){if(t.version===1)throw new TypeError("Operations projection requires a modern layout");let i=(await Promise.all(CQ(t.entityRoot("run"),n).map(o=>e.listFiles(o,".jsonl")))).flat();return(await OQ(i,32,async o=>{let a=La($a(await e.readText(o))),s=a.finished?.occurred_at??a.run.occurred_at;return(n.from!==null||n.to!==null)&&!IQ(s,n)?null:{fold:a,artifactPath:o,cost:{run:a.run,records:a.records,effective_usage_records:a.effective_usage_records}}})).filter(o=>o!==null).sort((o,a)=>o.fold.run.run_id.localeCompare(a.fold.run.run_id))}async function OQ(e,t,n){let i=[];for(let r=0;r<e.length;r+=t){let o=e.slice(r,r+t);i.push(...await Promise.all(o.map(n)))}return i}function CQ(e,t){return[e]}function IQ(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}var pP=O(()=>{"use strict";yc()});async function Fp(e,t,n){let i=new Map(t.map(o=>[o.id,0])),r=new Map;for(let o of t)r.set(o.change_id,[...r.get(o.change_id)??[],o]);for(let[o,a]of r){let s=n(o).replace(/\\/g,"/"),l=s.slice(0,s.lastIndexOf("/")),c;try{c=await e.listFiles(l)}catch{continue}let u=c.filter(d=>d.replace(/\\/g,"/").includes("/artifacts/tests/")&&/\.(?:md|json|jsonl|txt|log)$/i.test(d));for(let d of u){let _;try{_=await e.readText(d)}catch{continue}for(let p of a)_.includes(p.id)&&i.set(p.id,(i.get(p.id)??0)+1)}}return i}var sb=O(()=>{"use strict"});function gP(e,t){let n=ib(e.map(i=>({id:i.id,started_at:i.started_at,finished_at:i.finished_at??null,phase:i.phase??null,parent_run_id:i.parent_run_id??null,duration_started_at:i.source_started_at??i.duration_started_at??null,duration_ms:i.source_duration_ms!==null&&i.source_duration_ms!==void 0?i.source_duration_ms:i.duration_ms,total_tokens:i.usage.total.tokens.total,cost:i.usage.total.cost.brl})),t,!1);return{duration_ms:n.duration_ms,execution_day_count:n.execution_day_count,tokens:n.tokens,cost_brl:n.cost_brl}}async function Gc(e,t,n={},i={}){if(t.version===1)throw new Error("Operations projection requires a modern WorkspaceLayout");let r=$p(n),o=new Vt(e),a=new Uo(e,t),s=new Fo(e,t),l=new zo(e,t),c=new ro(e,t),u=new Ja(e,t),d=new F_(e,t),[_,p]=await Promise.all([o.readEntities(),i.overviewOnly?Promise.resolve([]):_P(e,t,r)]);if(_.length===0&&await o.readSummary()===null&&!await e.exists(".agents/records/lifecycle/.gitkeep"))throw new Error("Lifecycle manifest is not initialized; run `zaip manifest rebuild --confirm-full-scan`");let g=Jc(_,"prd"),m=Jc(_,"spec"),f=Jc(_,"change"),v=Jc(_,"execution"),S=Jc(_,"task"),b=$Q(_),h=PQ(_),k=NQ(_),P=p.map(B0),U=g.filter(D=>fP(D.status,D.updated_at,r)),$=m.filter(D=>fP(D.status,D.updated_at,r)),B=f.filter(D=>cb(D,r)),z=v.filter(D=>cb(D,r)),R=S.filter(D=>cb(D,r)),L=b.filter(D=>Ka(D.created_at,r)),J=h.filter(D=>Ka(D.observed_at,r)),le=k.filter(D=>Ka(D.executed_at,r)),j=P.filter(D=>Ka(D.finished_at??D.started_at,r)),Q=ti(j),C=new Map(f.map(D=>[D.id,D])),F=new Map(S.map(D=>[D.id,D])),X=new Map(v.map(D=>[D.id,D])),ne=X0({changes:f,tasks:S,executions:v,prds:g,specs:m,runs:Q}),ve=i.overviewOnly||i.skipTestArtifacts?new Map:await Fp(e,R,D=>l.path(D)),ge=Tp(v),q=Q0(v),A=F0(Q),I=Y0(g,m),he=U.map(D=>{let Ne=ne.forPrd(D.id);return Xv({id:D.id,title:D.title,createdAt:D.created_at,updatedAt:D.updated_at,kind:"prd",parentId:null,artifactPath:a.path(D.id),lifecycleStatus:D.status,...Ne,decisions:b,executions:X,tasks:F,plannedTasks:I.byPrd.get(D.id)??[]})}),me=$.map(D=>{let Ne=ne.forSpec(D.id);return Xv({id:D.id,title:D.title,createdAt:D.created_at,updatedAt:D.updated_at,kind:"spec",parentId:D.prd_id,artifactPath:s.path(D.id),lifecycleStatus:D.status,...Ne,decisions:b,executions:X,tasks:F,plannedTasks:I.bySpec.get(D.id)??[]})}),Le=R.map(D=>{let Ne=C.get(D.change_id);return{...D,attempt_count:D.attempt_count??null,artifact_path:u.path(D.id),progress:Np(D.status),test_count:ve.get(D.id)??0,spec_id:Ne?.source.type==="spec"||Ne?.source.type==="prd"?Ne.source.spec_id:null,execution_started:ge.has(D.id),execution_ids:q.get(D.id)??[],execution_count:q.get(D.id)?.length??0,telemetry:A.get(D.id)??null}}),Ce=Nn(Q),Pe=mc(Q),Qt=gP(Q,r),Y=i.overviewOnly?await Hc(e,t,r):null,ce=mP(R,D=>D.status),$e=mP(R,D=>D.risk),Ke=hP(U,$),x={prd_count:he.length,spec_count:me.length,selected_counts:{prds:he.length,specs:me.length},task_count:R.length,completed_prd_count:Ke.prds,completed_spec_count:Ke.specs,completed_task_count:ce.completed??0,task_status_counts:ce,task_risk_counts:$e,latest_task_created_at:Vc(R.map(D=>D.created_at))},se={conversation:Nn(Q.filter(D=>D.entrypoint==="conversation")),task:Nn(Q.filter(D=>D.entrypoint==="task")),spec:Nn(Q.filter(D=>D.entrypoint==="spec")),prd:Nn(Q.filter(D=>D.entrypoint==="prd"))};return{schema_version:2,layout_version:t.version,readonly:!0,source:".agents/records",filters:r,summary:{prd_count:he.length,spec_count:me.length,execution_count:z.length,task_count:R.length,run_count:Q.length,execution_duration_ms:Si(Pe)??0,execution_day_count:new Set(Pe.map(D=>D.started_at.slice(0,10))).size,overview_metrics:Y?.summary.overview_metrics===void 0?{...Qt,...x,data_source:"run_records",partial:!1}:{...Y.summary.overview_metrics,...x,partial:!1},decisions:Cp(L),source_latest_at:Y?.summary.source_latest_at??Vc([...U.map(D=>D.updated_at),...$.map(D=>D.updated_at),...B.map(D=>D.updated_at),...z.map(D=>D.updated_at),...R.map(D=>D.updated_at),...L.map(D=>D.created_at),...Q.map(D=>D.finished_at??D.started_at)]),quality:qc(R,Q),reconciliation:Ip(Ce,se),usage:Y?.summary.usage??Ce},origins:se,prds:he,specs:me,tasks:Le,changes:i.overviewOnly&&!i.includeOverviewChanges?[]:B.map(D=>({...D,artifact_path:l.path(D.id)})),executions:i.overviewOnly?[]:z.map(D=>({...D,kind:D.kind??"delivery",client_turn_id:D.client_turn_id??null,...J0(D,{runs:Q.map(Ne=>({agent:Ne.agent,call_count:Ne.call_count,duration_ms:Ne.duration_ms,...Ne.duration_provenance===void 0?{}:{duration_provenance:Ne.duration_provenance},execution_id:Ne.execution_id,finished_at:Ne.finished_at,parent_run_id:Ne.parent_run_id,run_purpose:Ne.run_purpose,source_duration_ms:Ne.source_duration_ms??null,started_at:Ne.started_at,status:Ne.status,task_id:Ne.task_id,usage:Ne.usage.total})),tasks:R,changes:B,specs:$}),artifact_path:c.path(D.id),work_status:V0(D.status)})),runs:i.overviewOnly?[]:uP(Q),evidences:J,validations:le,decisions:i.overviewOnly?[]:L.map(D=>({id:D.id,title:D.title,origin:D.origin,scope_type:D.scope_type,scope_id:D.scope_id,artifact_path:d.path(D.scope_type,D.scope_id,D.id),created_at:D.created_at}))}}function hP(e,t){return{prds:e.filter(n=>n.status==="delivered").length,specs:t.filter(n=>n.status==="delivered").length}}function mP(e,t){return e.reduce((n,i)=>{let r=t(i);return n[r]=(n[r]??0)+1,n},{})}function NQ(e){return e.flatMap(t=>{let n=t.data;return t.kind!=="validation"||n===null||typeof n.executed_at!="string"?[]:[{id:t.id,task_id:typeof n.task_id=="string"?n.task_id:null,executed_at:n.executed_at}]})}function PQ(e){return e.flatMap(t=>{let n=t.data;return t.kind!=="evidence"||n===null||typeof n.observed_at!="string"?[]:[{id:t.id,task_id:typeof n.task_id=="string"?n.task_id:null,observed_at:n.observed_at}]})}function Jc(e,t){return e.flatMap(n=>n.kind===t&&n.data!==null?[{...n.data,id:n.id,title:n.title??n.data.title,status:n.status??n.data.status,risk:n.risk??n.data.risk,priority:n.priority??n.data.priority,updated_at:n.updated_at}]:[])}function $Q(e){return e.flatMap(t=>{if(t.kind!=="decision"||t.data===null)return[];let n=t.data;return n.origin!=="human"&&n.origin!=="agent"||n.scope_type!=="change"&&n.scope_type!=="execution"||typeof n.scope_id!="string"||typeof n.created_at!="string"?[]:[{id:t.id,title:t.title??t.id,origin:n.origin,scope_type:n.scope_type,scope_id:n.scope_id,created_at:n.created_at}]})}function cb(e,t){return Ka(e.finished_at??e.updated_at,t)}function fP(e,t,n){return Ka(t,n)}function Ka(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}var yP=O(()=>{"use strict";yc();Qr();qo();Wv();fc();Bv();Zv();Jv();Pp();G0();Gv();Qv();eP();ab();dP();pP();sb();Wc();Hv();Jv();Pp();Qv()});async function lb(e,t,n){if(t.version===1)throw new Error("Task detail requires a modern WorkspaceLayout");let i=new Ja(e,t),r=new zo(e,t),o=new ro(e,t),{task:a,body:s}=await i.read(n),{change:l}=await r.read(a.change_id),c=l.source.type==="spec"||l.source.type==="prd"?l.source.spec_id:null,u=await Fp(e,[a],g=>r.path(g)),d=await o.list(),_=Tp(d),p=d.filter(g=>g.kind!=="interaction"&&(g.origin.type==="task"&&g.origin.task_id===a.id||g.dag.nodes.some(m=>m.task_id===a.id))).map(g=>g.id).sort();return{task:{...a,attempt_count:a.attempt_count??null,artifact_path:i.path(a.id),progress:Np(a.status),spec_id:c,execution_started:_.has(a.id),execution_ids:p,execution_count:p.length,test_count:u.get(a.id)??0},body:s,artifact_path:i.path(a.id)}}async function ub(e,t,n){if(t.version===1)throw new Error("PRD detail requires a modern WorkspaceLayout");let i=new Uo(e,t),{prd:r,body:o}=await i.read(n);return{id:r.id,title:r.title,body:o,artifact_path:i.path(r.id)}}async function db(e,t,n){if(t.version===1)throw new Error("SPEC detail requires a modern WorkspaceLayout");let i=new Fo(e,t),{spec:r,body:o}=await i.read(n);return{id:r.id,title:r.title,body:o,artifact_path:i.path(r.id)}}var vP=O(()=>{"use strict";qo();Wv();Bv();sb();Wc()});var bP={};lM(bP,{aggregateOverviewRunMetrics:()=>ib,aggregateTopTasks:()=>lP,buildOperationsProjection:()=>Gc,buildQuickOperationsProjection:()=>Hc,coverageFromRuns:()=>RQ,createDescendantQueries:()=>z0,deliveredMacroCounts:()=>hP,effectiveOperationsDurationMs:()=>Z0,estimatedTokenDurationMs:()=>nP,hybridDailyDuration:()=>Wo,hybridLegacyDurationMetric:()=>ob,latestObservedSourceTiming:()=>Rp,macroInWindow:()=>TQ,manifestDailyPeriods:()=>kQ,normalizeDailyPeriods:()=>tb,normalizeTokenBackedDailyDuration:()=>rP,observedExecutionElapsedMs:()=>Si,observedMacroRunTelemetry:()=>Yv,observedSourceTiming:()=>xp,overviewMetricTotals:()=>gP,projectExecutionDurations:()=>ti,readPrdDetail:()=>ub,readSpecDetail:()=>db,readTaskDetail:()=>lb,recalculateOperationsRunSummary:()=>Lp,rootExecutionDurationByDay:()=>Bc,summaryTopTasks:()=>AQ,taskCountsInWindow:()=>bQ,withExecutionDurations:()=>vQ});var Zo=O(()=>{"use strict";fc();yP();nb();ab();vP()});import{randomUUID as i7}from"node:crypto";import{basename as o7,resolve as KL}from"node:path";var eS="x-hono-already-sent";import{STATUS_CODES as dM,createServer as _M}from"node:http";import{Http2ServerRequest as Ko,constants as pM}from"node:http2";import{Readable as nS}from"node:stream";var tS=e=>((...t)=>{if(typeof t[0]=="function"){let[n,i]=t;return async function(o,a){let s=await n(o),l=await e(o,s,i);if(l)return l;await a()}}else{let[n,i,r]=t;return(async()=>{let o=await e(n,i,r);if(!o)throw new Error("Failed to upgrade WebSocket");return o})()}});var Zn=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}},mM=/^\/[!#$&-;=?-\[\]_a-z~]*$/,fM=/\/\.\.?(?:[/?#]|$)/,gM=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,hM=(e,t,n)=>{let i=`${e}://${t}${n}`;if(gM.test(t)){if(n.length===0)return i+"/";if(n.charCodeAt(0)!==47)throw new Zn("Invalid URL");return!mM.test(n)||fM.test(n)?new URL(i).href:i}else{let r=new URL(i);if(r.hostname.length!==t.length&&r.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new Zn("Invalid host header");return r.href}},yM=e=>e instanceof Zn?e:new Zn(e.message,{cause:e}),vM=global.Request,Xo=class extends vM{constructor(e,t){if(typeof e=="object"&&Ri in e){let n=t!==void 0&&"body"in t&&t.body!=null;if(e[ci]&&!n)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[Ri]()}typeof t?.body?.getReader<"u"&&(t.duplex??="half"),super(e,t)}},uS=e=>{let t=[],n=e.rawHeaders;for(let i=0,r=n.length;i<r;i+=2){let o=n[i];o.charCodeAt(0)!==58&&t.push([o,n[i+1]])}return new Headers(t)},dS=Symbol("wrapBodyStream"),bM=new Set(["latin1","binary","hex","base64","base64url"]),SM=e=>e===null||bM.has(e),vm=Symbol("bodyBufferedBeforeDisconnect"),bm=Symbol("bodyBufferedLengthBeforeDisconnect"),_S=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),Tm=e=>!(e instanceof Ko)&&!!e.complete&&!!e.readableAborted&&typeof e.read=="function"&&SM(e.readableEncoding),rS=e=>{if(e.readableDidRead||!Tm(e))return;let t=e;t[bm]??=e.readableLength},ul=(e,t)=>{if(e.readableDidRead&&!t||!Tm(e))return;let n=e;if(n[vm]!==void 0)return n[vm];let i,r=e.errored;if(r&&r.code!=="ECONNRESET")i=r;else if(n[bm]!==void 0&&e.readableLength!==n[bm])i=dl();else{let o=t??[],a=e.read();a!==null&&o.push(_S(a,e.readableEncoding));let s=o.length===1?o[0]:Buffer.concat(o);i=s;let l=e.headers["content-length"];if(typeof l=="string"&&/^\d+$/.test(l)){let c=Number(l);Number.isSafeInteger(c)&&s.length!==c&&(i=dl())}}return n[vm]=i,i},iS=(e,t)=>{if(t instanceof Error){e.error(t);return}t.length>0&&e.enqueue(t),e.close()},kM=(e,t,n,i,r)=>{let o={method:e,headers:n,signal:r.signal};if(e==="TRACE"){o.method="GET";let a=new Xo(t,o);return Object.defineProperty(a,"method",{get(){return"TRACE"}}),a}if(!(e==="GET"||e==="HEAD"))if("rawBody"in i&&i.rawBody instanceof Buffer)o.body=new ReadableStream({start(a){a.enqueue(i.rawBody),a.close()}});else if(i[dS]){let a;o.body=new ReadableStream({async pull(s){try{if(!a){let u=ul(i);if(u!==void 0){iS(s,u);return}}a||=nS.toWeb(i).getReader();let{done:l,value:c}=await a.read();l?s.close():s.enqueue(c)}catch(l){s.error(l)}}})}else{let a=ul(i);a!==void 0?o.body=new ReadableStream({start(s){iS(s,a)}}):o.body=nS.toWeb(i)}return new Xo(t,o)},Ri=Symbol("getRequestCache"),ai=Symbol("requestCache"),Yo=Symbol("incomingKey"),ss=Symbol("urlKey"),pS=Symbol("methodKey"),mS=Symbol("headersKey"),os=Symbol("abortControllerKey"),Sm=Symbol("getAbortController"),km=Symbol("abortRequest"),xi=Symbol("bodyBuffer"),ll=Symbol("bodyReadPromise"),ci=Symbol("bodyConsumedDirectly"),oS=Symbol("bodyLockReader"),as=Symbol("abortReason"),dl=()=>new TypeError("Body is unusable"),cs=()=>Promise.reject(dl()),wM=new TextDecoder,EM=e=>{if(e[ci])return cs();e[ci]=!0},AM=e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),TM=e=>(e[mS]||=uS(e[Yo])).get("content-type")||"",xM=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,RM=e=>{if(typeof e!="string"||e.length===0)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}},OM=e=>{if(!xM.test(e))return new TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(t==="CONNECT"||t==="TRACK"||t==="TRACE"&&e!=="TRACE")return new TypeError(`'${e}' HTTP method is unsupported.`)},xm=(e,t,n)=>{if(e[ci])return cs();let i=e.method;if(i==="GET"||i==="HEAD")return e[Ri]()[t]();let r=OM(i);if(r)return Promise.reject(r);if(e[ai]&&i!=="TRACE")return e[ai][t]();let o=EM(e);if(o)return o;let a=CM(e);if(a){let s=Promise.resolve(n(a,e));return e[xi]=void 0,s}return IM(e).then(s=>{let l=n(s,e);return e[xi]=void 0,l})},CM=e=>{let t=e[Yo];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},aS=(e,t)=>{if(t.errored)return t.errored;let n=e[as];return n!==void 0?n instanceof Error?n:new Error(String(n)):new Error("Client connection prematurely closed.")},IM=e=>{if(e[xi])return Promise.resolve(e[xi]);if(e[ll])return e[ll];let t=e[Yo];if(t.readableDidRead)return cs();let n=ul(t);if(n!==void 0)return n instanceof Error?Promise.reject(n):(e[xi]=n,Promise.resolve(n));let i=new Promise((r,o)=>{let a=[],s=!1,l=m=>{s||(s=!0,g(),m())},c=m=>{let f=t.errored??m;return!Tm(t)||f&&f.code!=="ECONNRESET"?!1:(l(()=>{let v=ul(t,a);v instanceof Error?o(v):v===void 0?o(m??aS(e,t)):(e[xi]=v,r(v))}),!0)},u=m=>{a.push(_S(m,t.readableEncoding))},d=()=>{l(()=>{let m=a.length===1?a[0]:Buffer.concat(a);e[xi]=m,r(m)})},_=m=>{c(m)||l(()=>{o(m)})},p=()=>{if(t.readableEnded){d();return}c()||l(()=>{o(aS(e,t))})},g=()=>{t.off("data",u),t.off("end",d),t.off("error",_),t.off("close",p),e[ll]=void 0};t.on("data",u),t.on("end",d),t.on("error",_),t.on("close",p),queueMicrotask(()=>{s||(t.readableEnded?d():t.errored?_(t.errored):t.destroyed&&p())})});return e[ll]=i,i},Jn={get method(){return this[pS]},get url(){return this[ss]},get headers(){return this[mS]||=uS(this[Yo])},[km](e){this[as]===void 0&&(this[as]=e);let t=this[os];t&&!t.signal.aborted&&t.abort(e)},[Sm](){return this[os]||=new AbortController,this[as]!==void 0&&!this[os].signal.aborted&&this[os].abort(this[as]),this[os]},[Ri](){let e=this[Sm]();if(this[ai])return this[ai];let t=this.method;if(this[ci]&&!(t==="GET"||t==="HEAD")){this[xi]=void 0;let n={method:t==="TRACE"?"GET":t,headers:this.headers,signal:e.signal};t!=="TRACE"&&(n.body=new ReadableStream({start(r){r.close()}}),n.duplex="half");let i=new Xo(this[ss],n);return t==="TRACE"&&Object.defineProperty(i,"method",{get(){return"TRACE"}}),this[ai]=i}return this[ai]=kM(this.method,this[ss],this.headers,this[Yo],e)},get body(){if(!this[ci])return this[Ri]().body;let e=this[Ri]();return!this[oS]&&e.body&&(this[oS]=e.body.getReader()),e.body},get bodyUsed(){return this[ci]?!0:this[ai]?this[ai].bodyUsed:!1}};Object.defineProperty(Jn,"signal",{get(){return this[Sm]().signal}});["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(Jn,e,{get(){return this[Ri]()[e]}})});["clone","formData"].forEach(e=>{Object.defineProperty(Jn,e,{value:function(){if(this[ci]){if(e==="clone")throw dl();return cs()}return this[Ri]()[e]()}})});Object.defineProperty(Jn,"text",{value:function(){return xm(this,"text",e=>wM.decode(e))}});Object.defineProperty(Jn,"arrayBuffer",{value:function(){return xm(this,"arrayBuffer",e=>AM(e))}});Object.defineProperty(Jn,"blob",{value:function(){return xm(this,"blob",(e,t)=>{let n=TM(t),i=n?{headers:{"content-type":n}}:void 0;return new Response(e,i).blob()})}});Object.defineProperty(Jn,"json",{value:function(){return this[ci]?cs():this.text().then(JSON.parse)}});Object.defineProperty(Jn,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,n){return`Request (lightweight) ${n({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[ai]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Jn,Xo.prototype);var NM=(e,t)=>{let n=Object.create(Jn);n[Yo]=e,n[pS]=RM(e.method);let i=e.url||"";if(i[0]!=="/"&&(i.startsWith("http://")||i.startsWith("https://"))){if(e instanceof Ko)throw new Zn("Absolute URL for :path is not allowed in HTTP/2");try{n[ss]=new URL(i).href}catch(a){throw new Zn("Invalid absolute URL",{cause:a})}return n}let r=(e instanceof Ko?e.authority:e.headers.host)||t;if(!r)throw new Zn("Missing host header");let o;if(e instanceof Ko){if(o=e.scheme,!(o==="http"||o==="https"))throw new Zn("Unsupported scheme")}else o=e.socket&&e.socket.encrypted?"https":"http";try{n[ss]=hM(o,r,i)}catch(a){throw a instanceof Zn?a:new Zn("Invalid URL",{cause:a})}return n},Ti="text/plain; charset=UTF-8",wm=Symbol("responseCache"),Go=Symbol("getResponseCache"),si=Symbol("cache"),Rm=global.Response,Hn=class fS{#e;#t;[Go](){let t=this[si],n=t&&t[2]instanceof Headers?t[2]:void 0;return delete this[si],this[wm]||=new Rm(this.#e,n?{status:this.#t?.status,statusText:this.#t?.statusText,headers:n}:this.#t)}constructor(t,n){let i;if(this.#e=t,n instanceof fS){let r=n[wm];if(r){this.#t=r,this[Go]();return}else this.#t=n.#t,i=new Headers(n.headers)}else this.#t=n;(t==null||typeof t=="string"||typeof t?.getReader<"u"||t instanceof Blob||t instanceof Uint8Array)&&(this[si]=[n?.status||200,t??null,i||n?.headers])}get headers(){let t=this[si];return t?(t[2]instanceof Headers||(t[2]=new Headers(t[2]||(t[1]===null?void 0:{"content-type":Ti}))),t[2]):this[Go]().headers}get status(){return this[si]?.[0]??this[Go]().status}get ok(){let t=this.status;return t>=200&&t<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(Hn.prototype,e,{get(){return this[Go]()[e]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(Hn.prototype,e,{value:function(){return this[Go]()[e]()}})});Object.defineProperty(Hn.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,n){return`Response (lightweight) ${n({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[wm]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Hn,Rm);Object.setPrototypeOf(Hn.prototype,Rm.prototype);var PM=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,$M=e=>e instanceof URL?e.href:PM.test(e)?e:new URL(e).href,LM=new Set([301,302,303,307,308]);Object.defineProperty(Hn,"redirect",{value:function(t,n=302){if(!LM.has(n))throw new RangeError("Invalid status code");return new Hn(null,{status:n,headers:{location:$M(t)}})},writable:!0,configurable:!0});Object.defineProperty(Hn,"json",{value:function(t,n){let i=JSON.stringify(t);if(i===void 0)throw new TypeError("The data is not JSON serializable");let r=n?.headers,o;return r?(o=new Headers(r),o.has("content-type")||o.set("content-type","application/json")):o={"content-type":"application/json"},new Hn(i,{status:n?.status??200,statusText:n?.statusText,headers:o})},writable:!0,configurable:!0});async function MM(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function gS(e,t,n){let i=s=>{e.cancel(s).catch(()=>{})};return t.on("close",i),t.on("error",i),(n??e.read()).then(a,r),e.closed.finally(()=>{t.off("close",i),t.off("error",i)});function r(s){s&&t.destroy(s)}function o(){e.read().then(a,r)}function a({done:s,value:l}){try{if(s)t.end();else if(!t.write(l))t.once("drain",o);else return e.read().then(a,r)}catch(c){r(c)}}}function sS(e,t){if(e.locked)throw new TypeError("ReadableStream is locked.");return t.destroyed?void 0:gS(e.getReader(),t)}var Em=(e,t)=>{let n={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let i=[];for(let[r,o]of e)r==="set-cookie"?i.push(o):n[r]=o;i.length>0&&(n["set-cookie"]=i)}else for(let[i,r]of e)n[i]=r;return t&&(n["content-type"]??=t),n},_l=Symbol("outgoingEnded"),cS=Symbol("incomingDraining"),DM=500,jM=64*1024*1024,hS=e=>{let t=e;if(e.destroyed||t[cS])return;if(t[cS]=!0,e instanceof Ko){try{e.stream?.close?.(pM.NGHTTP2_NO_ERROR)}catch{}return}let n=0,i=()=>{clearTimeout(o),e.off("data",a),e.off("end",i),e.off("error",i)},r=()=>{i();let s=e.socket;s&&!s.destroyed&&s.destroySoon()},o=setTimeout(r,DM);o.unref?.();let a=s=>{n+=s.length,n>jM&&r()};e.on("data",a),e.on("end",i),e.on("error",i),e.resume()},UM=(e,t,n,i)=>()=>{t.errored?(rS(t),e[km](t.errored.toString())):n.writableFinished||(rS(t),e[km]("Client connection prematurely closed.")),i&&!t.readableEnded&&setTimeout(()=>{t.readableEnded||setTimeout(()=>{hS(t)})})},FM=e=>{if(!(si in e))return!1;let t=e[si][1];return t===null||typeof t=="string"||t instanceof Uint8Array},zM=()=>new Response(null,{status:400}),yS=e=>new Response(null,{status:e instanceof Error&&(e.name==="TimeoutError"||e.constructor.name==="TimeoutError")?504:500}),pl=(e,t)=>{let n=e instanceof Error?e:new Error("unknown error",{cause:e});n.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(e),t.headersSent||t.writeHead(500,{"Content-Type":"text/plain"}),t.end(`Error: ${n.message}`),t.destroy(n))},Am=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},vS=async(e,t)=>{let[n,i,r]=e[si];if(!r){i===null?(t.writeHead(n),t.end()):typeof i=="string"?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":Buffer.byteLength(i)}),t.end(i)):i instanceof Uint8Array?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":i.byteLength}),t.end(i)):i instanceof Blob?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":i.size}),t.end(new Uint8Array(await i.arrayBuffer()))):(t.writeHead(n,{"Content-Type":Ti}),Am(t),await sS(i,t)?.catch(a=>pl(a,t))),t[_l]?.();return}let o=!1;if(r instanceof Headers)o=r.has("content-length"),r=Em(r,i===null?void 0:Ti);else if(Array.isArray(r)){let a=new Headers(r);o=a.has("content-length"),r=Em(a,i===null?void 0:Ti)}else for(let a in r)if(a.length===14&&a.toLowerCase()==="content-length"){o=!0;break}o||(typeof i=="string"?r["Content-Length"]=Buffer.byteLength(i):i instanceof Uint8Array?r["Content-Length"]=i.byteLength:i instanceof Blob&&(r["Content-Length"]=i.size)),t.writeHead(n,r),i==null?t.end():typeof i=="string"||i instanceof Uint8Array?t.end(i):i instanceof Blob?t.end(new Uint8Array(await i.arrayBuffer())):(Am(t),await sS(i,t)?.catch(a=>pl(a,t))),t[_l]?.()},bS=e=>typeof e.then=="function",qM=async(e,t,n={})=>{if(bS(e))if(n.errorHandler)try{e=await e}catch(r){let o=await n.errorHandler(r);if(!o)return;e=o}else e=await e.catch(yS);if(si in e)return vS(e,t);let i=Em(e.headers,e.body===null?void 0:Ti);if(e.body){let r=e.body.getReader(),o=[],a=!1,s;if(i["transfer-encoding"]!=="chunked"){let l=2;for(let c=0;c<l;c++){s||=r.read();let u=await MM(s).catch(d=>{console.error(d),a=!0});if(!u){if(c===1){await new Promise(d=>setTimeout(d)),l=3;continue}break}if(s=void 0,u.value&&o.push(u.value),u.done){a=!0;break}}a&&!("content-length"in i)&&(i["content-length"]=o.reduce((c,u)=>c+u.length,0))}t.writeHead(e.status,i),o.forEach(l=>{t.write(l)}),a?t.end():(o.length===0&&Am(t),await gS(r,t,s))}else i[eS]||(t.writeHead(e.status,i),t.end());t[_l]?.()},VM=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==Xo&&(Object.defineProperty(global,"Request",{value:Xo}),Object.defineProperty(global,"Response",{value:Hn})),async(i,r)=>{let o,a,s=!1,l=!1,c=()=>{!a||l||(l=!0,r.on("close",UM(a,i,r,s)))};try{if(a=NM(i,t.hostname),s=n&&!(i.method==="GET"||i.method==="HEAD"),s&&(i[dS]=!0,i instanceof Ko&&(r[_l]=()=>{i.readableEnded||setTimeout(()=>{i.readableEnded||setTimeout(()=>{i.destroy(),r.destroy()})})})),o=e(a,{incoming:i,outgoing:r}),!bS(o)&&FM(o))return s&&!i.readableEnded&&r.once("finish",()=>{i.readableEnded||hS(i)}),vS(o,r);c()}catch(u){if(o)return pl(u,r);if(t.errorHandler){if(c(),o=await t.errorHandler(a?u:yM(u)),!o)return}else a?o=yS(u):o=zM()}try{return await qM(o,r,t)}catch(u){return pl(u,r)}}},WM=globalThis.CloseEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get wasClean(){return this.#e.wasClean??!1}get code(){return this.#e.code??0}get reason(){return this.#e.reason??""}},BM=globalThis.ErrorEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get message(){return this.#e.message??""}get filename(){return this.#e.filename??""}get lineno(){return this.#e.lineno??0}get colno(){return this.#e.colno??0}get error(){return this.#e.error??null}},ZM=()=>Symbol("connection"),SS=Symbol("CONNECTION_SYMBOL_KEY"),kS=Symbol("WAIT_FOR_WEBSOCKET_SYMBOL"),HM=new Set(["connection","content-length","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","sec-websocket-accept","sec-websocket-extensions","sec-websocket-protocol"]),wS=(e,t)=>{t&&t.forEach((n,i)=>{HM.has(i.toLowerCase())||e.push(`${i}: ${n}`)})},lS=(e,t,n)=>{let i=["Connection: close","Content-Length: 0"];wS(i,n),e.end(`HTTP/1.1 ${t.toString()} ${dM[t]??""}\r
|
|
348
|
+
${n}`}function Fc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function zc(e,t,n){let i=new Set;for(let r of e)i.has(r)&&n.addIssue({code:"custom",path:[t],message:`Duplicate value: ${r}`}),i.add(r)}var P0=O(()=>{"use strict"});var $0=O(()=>{"use strict"});function zv(e,t,n,i,r,o=!1){let a=["completed","failed","cancelled"].includes(t);return{...e,revision:e.revision+1,status:t,attempt_count:t==="executing"&&e.status!=="verifying"&&!o?(e.attempt_count??0)+1:e.attempt_count,status_reason:["blocked","failed","cancelled"].includes(t)?r??n?.summary??`Task moved to ${t}.`:null,updated_at:i,started_at:t==="executing"&&e.started_at===null?i:e.started_at,finished_at:a?i:null,result:a?n:null}}function L0(e,t){return e===`Orchestrator stopped without a persisted Gui finalization decision; lifecycle was fail-closed as blocked. (Run ${t}).`||e===`Finalization barrier missing; resume after a completed zaip-agent-finalizer Sub-Run with authoritative metadata (Run ${t}).`||e===`Finalization barrier evidence_missing; resume after passed typed Evidence linked to the same Task, Change, Execution, and Run (Run ${t}).`||e.startsWith(`Completion gates did not close Run ${t}:`)}function e8(e){return e.plan_ref?.execution_id??e.prepared_plan?.execution_id??null}function M0(e,t){if(e.status!=="blocked"||e.status_reason!==t.reason||e8(e)!==t.executionId||!L0(t.reason,t.runId))throw new Error(`Task ${e.id} is not recoverable from its own completion gate`)}var D0,qv=O(()=>{"use strict";D0={draft:["planned","blocked","failed","cancelled"],planned:["executing","blocked","failed","cancelled"],executing:["verifying","failed","blocked","cancelled"],verifying:["executing","completed","failed","blocked","cancelled"],blocked:["executing","cancelled"],completed:[],failed:["executing"],cancelled:[]}});var it,Ap,t8,j0,n8,r8,i8,oo,Ja,U0=O(()=>{"use strict";ze();qo();it=Me(Ue(),1);Dv();Uv();Uv();P0();$0();qv();Ap=it.z.string().datetime({offset:!0}),t8=it.z.string().regex(/^[a-f0-9]{64}$/),j0=it.z.string().startsWith("TASK-"),n8=it.z.string().startsWith("CHG-"),r8=it.z.string().startsWith("REQ-"),i8=it.z.string().startsWith("AC-"),oo=it.z.object({schema_version:it.z.literal(2),id:j0,revision:it.z.number().int().positive(),change_id:n8,title:it.z.string().min(1),short_name:it.z.string().min(1),objective:it.z.string().min(1),target_release:it.z.string().regex(/^[1-9]\d*\.(?:0|[1-9]\d*)$/).nullable().optional(),status:it.z.enum(["draft","planned","executing","verifying","completed","failed","blocked","cancelled"]),status_reason:it.z.string().min(1).nullable().optional(),attempt_count:it.z.number().int().nonnegative().optional(),risk:it.z.enum(["lite","standard","critical"]),priority:it.z.enum(["low","medium","high","urgent"]),owner:it.z.string().min(1).nullable(),requirement_ids:it.z.array(r8).min(1),acceptance_ids:it.z.array(i8).min(1),depends_on:it.z.array(j0),write_scopes:it.z.array(it.z.string().min(1)),runtime:Zu.optional(),model_profile:uo.optional(),assurance_risk_signals:Ep.optional(),assurance_risk_signals_source:it.z.enum(["explicit","risk_default"]).optional(),plan_revision:it.z.number().int().positive().nullable(),plan_hash:t8.nullable(),prepared_plan:ki.optional(),plan_ref:Va.optional(),created_at:Ap,updated_at:Ap,started_at:Ap.nullable(),finished_at:Ap.nullable(),result:jv.nullable()}).strict().superRefine((e,t)=>{let n=e.plan_revision===null&&e.plan_hash===null;e.status==="draft"||n&&["blocked","failed","cancelled"].includes(e.status)?(!n||e.prepared_plan!==void 0||e.plan_ref!==void 0)&&t.addIssue({code:"custom",message:`${e.status} Task without materialization cannot contain a prepared plan`}):(e.plan_revision===null||e.plan_hash===null)&&t.addIssue({code:"custom",message:`${e.status} Task requires plan_revision and plan_hash`}),e.prepared_plan!==void 0&&e.plan_ref!==void 0&&t.addIssue({code:"custom",message:"Task cannot contain prepared_plan and plan_ref"}),e.plan_ref!==void 0&&e.plan_ref.hash!==e.plan_hash&&t.addIssue({code:"custom",path:["plan_ref"],message:"plan_ref must match plan_hash"}),e.prepared_plan!==void 0&&(e.prepared_plan.source.type!=="task"||e.prepared_plan.source.task_id!==e.id||e.prepared_plan.hash!==e.plan_hash)&&t.addIssue({code:"custom",path:["prepared_plan"],message:"prepared_plan must belong to the Task and match plan_hash"}),["completed","failed","cancelled"].includes(e.status)&&(e.finished_at===null||e.result===null)&&t.addIssue({code:"custom",message:"terminal Task requires finished_at and result"}),["executing","verifying","completed"].includes(e.status)&&e.started_at===null&&t.addIssue({code:"custom",message:`${e.status} Task requires started_at`}),e.status==="completed"&&(e.result?.completed_run_id===null||e.result?.evidence_ids.length===0)&&t.addIssue({code:"custom",path:["result"],message:"completed Task requires completed_run_id and at least one Evidence"}),zc(e.requirement_ids,"requirement_ids",t),zc(e.acceptance_ids,"acceptance_ids",t),zc(e.depends_on,"depends_on",t),zc(e.write_scopes,"write_scopes",t)}),Ja=class{constructor(t,n){this.filesystem=t;this.layout=n;if(n.version===1)throw new TypeError("TaskV2Repository requires a modern WorkspaceLayout")}filesystem;layout;async read(t){let n=await So(this.filesystem,this.layout,"task",t);if(n===null)throw new Error(`task not found: ${t}`);let i=Ft(await this.filesystem.readText(n),oo);return{task:i.metadata,body:i.body}}async list(){let t=await this.filesystem.listFiles(this.layout.entityRoot("task"),".md");return Promise.all(t.map(async n=>Ft(await this.filesystem.readText(n),oo).metadata))}async createDraft(t){if(t.modelProfile&&t.modelProfile.risk!==t.risk)throw new Error("Task model profile risk differs from Task risk");let i=(t.clock??new nt).now().toISOString(),r=oo.parse({schema_version:2,id:t.id,revision:1,change_id:t.changeId,title:t.title,short_name:t.shortName,objective:t.objective,target_release:t.targetRelease??null,status:"draft",attempt_count:0,risk:t.risk,...t.modelProfile===void 0?{}:{model_profile:t.modelProfile},priority:t.priority,owner:t.owner??null,requirement_ids:[...t.requirementIds],acceptance_ids:[...t.acceptanceIds],depends_on:[...t.dependsOn??[]],write_scopes:[...t.writeScopes??[]],plan_revision:null,plan_hash:null,created_at:i,updated_at:i,started_at:null,finished_at:null,result:null,assurance_risk_signals:N0(t.risk,t.assuranceRiskSignals),assurance_risk_signals_source:t.assuranceRiskSignals===void 0?"risk_default":"explicit"});return await this.filesystem.writeTextExclusive(this.path(r.id),this.serialize(r)),r}async setPreparedPlan(t,n){let i=ki.parse(n);if(i.source.type!=="task"||i.source.task_id!==t)throw new TypeError(`Prepared plan source must be task ${t}`);let r=await this.read(t);if(r.task.status==="planned"&&r.task.prepared_plan?.hash===i.hash)return r.task;if(r.task.status!=="draft")throw new Error(`Task ${t} must be draft before prepare`);let o=i.blueprints.tasks.find(c=>c.id===t);if(o===void 0)throw new Error(`Prepared plan does not contain Task ${t}`);let a=[o.change_id===r.task.change_id?null:"change_id",o.title===r.task.title?null:"title",o.short_name===r.task.short_name?null:"short_name",o.objective===r.task.objective?null:"objective",o.risk===r.task.risk?null:"risk",o.priority===r.task.priority?null:"priority",o.owner===r.task.owner?null:"owner",Fc(o.requirement_ids,r.task.requirement_ids)?null:"requirement_ids",Fc(o.acceptance_ids,r.task.acceptance_ids)?null:"acceptance_ids",Fc(o.write_scopes,r.task.write_scopes)?null:"write_scopes"].filter(c=>c!==null),s=i.dag.nodes.find(c=>c.task_id===t);if((s===void 0||!Fc(s.depends_on,r.task.depends_on))&&a.push("depends_on"),a.length>0)throw new Error(`Prepared plan diverges from Task draft: ${a.join(", ")}`);let l=oo.parse({...r.task,revision:r.task.revision+1,status:"planned",plan_revision:i.revision,plan_hash:i.hash,prepared_plan:i,...o.model_profile===void 0?{}:{model_profile:o.model_profile},updated_at:i.prepared_at});return await this.write(l),l}async write(t,n=Fv(t)){await this.filesystem.writeTextAtomic(this.path(t.id),this.serialize(t,n))}async normalizePreparedPlan(t,n){let i=await this.read(t);if(i.task.plan_ref?.hash===n.hash)return i.task;if(i.task.prepared_plan?.hash!==n.hash)throw new Error(`Task ${t} does not contain PreparedPlan ${n.hash}`);let{prepared_plan:r,...o}=i.task,a=oo.parse({...o,revision:i.task.revision+1,plan_ref:Tc(n),updated_at:new Date().toISOString()});return await this.write(a),a}async normalizeBody(t){let n=await this.read(t);return await this.write(n.task),n.task}serialize(t,n=Fv(t)){return dn({metadata:oo.parse(t),body:n})}async transition(t,n,i=null,r=new nt,o=null){let a=await this.read(t);if(!D0[a.task.status].includes(n))throw new Error(`Invalid Task transition: ${a.task.status} -> ${n}`);let s=oo.parse(zv(a.task,n,i,r.now().toISOString(),o));return await this.write(s),s}async recoverOwnCompletionGateBlock(t,n,i=new nt){let r=await this.read(t);M0(r.task,n);let o=oo.parse(zv(r.task,"executing",null,i.now().toISOString(),null,!0));return await this.write(o),o}path(t){return this.layout.activePath("task",t)}}});var St,Vv,eye,Wv=O(()=>{"use strict";ze();St=Me(Ue(),1);Sv();Pc();$c();t0();O0();I0();U0();Dv();qv();Vv=St.z.string().datetime({offset:!0}),eye=St.z.object({id:St.z.string().startsWith("TASK-"),title:St.z.string().min(1),short_name:St.z.string().min(1),status:St.z.enum(["draft","planned","executing","verifying","completed","failed","blocked","cancelled"]),risk:St.z.enum(["lite","standard","critical"]),priority:St.z.enum(["low","medium","high","urgent"]),owner:St.z.string().min(1).nullable().default(null),progress:St.z.number().int().min(0).max(100),spec:St.z.string().startsWith("SPEC-"),change:St.z.string().startsWith("CHG-"),requirements:St.z.array(St.z.string().startsWith("REQ-")),depends_on:St.z.array(St.z.string().startsWith("TASK-")),human_decisions:St.z.array(St.z.string().startsWith("DEC-HUMAN-")),agent_decisions:St.z.array(St.z.string().startsWith("DEC-AI-")),created_at:Vv,started_at:Vv.nullable(),finished_at:Vv.nullable()}).strict()});function Tp(e){return new Set(e.filter(t=>t.status!=="planned").flatMap(t=>t.dag.nodes.map(n=>n.task_id)))}var Bv=O(()=>{"use strict"});function F0(e){let t=new Map,n=(i,r)=>i===null&&r===null?null:(i??0)+(r??0);for(let i of e){if(i.task_id===null)continue;let r=t.get(i.task_id)??{duration_ms:null,tokens:null,cost_brl:null};t.set(i.task_id,{duration_ms:n(r.duration_ms,i.phase==="execution"&&i.parent_run_id==null?i.duration_ms:null),tokens:n(r.tokens,i.usage.total.tokens.total),cost_brl:n(r.cost_brl,i.usage.total.cost.brl)})}return t}function qc(e,t){let n=e.filter(a=>a.status==="completed").length,i=t.filter(a=>a.status!=="running"),r=i.filter(a=>a.status==="completed").length,o=t.filter(a=>a.work_type==="rework").length;return{completed_tasks:n,task_completion_rate:e.length===0?0:n/e.length,terminal_runs:i.length,successful_runs:r,terminal_success_rate:i.length===0?0:r/i.length,rework_rate:t.length===0?0:o/t.length}}var Zv=O(()=>{"use strict"});function xp(e){let t=e?.source_started_at??null,n=e?.source_finished_at??e?.source_occurred_at??null;return{source_started_at:t,source_finished_at:n,source_duration_ms:t===null||n===null?null:Math.max(0,Date.parse(n)-Date.parse(t)),capture_lag_ms:n===null||e===void 0?null:Math.max(0,Date.parse(e.occurred_at)-Date.parse(n))}}function Rp(e,t,n,i){let r=Date.parse(e),o=c=>{let u=c==null?Number.NaN:Date.parse(c);return Number.isFinite(u)?u:null},a=(c,u)=>{let d=o(c),_=o(u);return d!==null&&_!==null&&_>=d&&_>=r},s=[];for(let c of[...n,...i]){let u=c.source_started_at,d=c.source_finished_at;if(u!==void 0&&d!==void 0&&a(u,d)){s.push({...c,source_finished_at:d});continue}c.activity_kind==="retrospective_local_reconciliation"&&typeof c.source_occurred_at=="string"&&(o(c.source_occurred_at)??Number.NEGATIVE_INFINITY)>=r&&s.push({...c,source_started_at:e,source_finished_at:c.source_occurred_at})}s.sort((c,u)=>Date.parse(c.occurred_at)-Date.parse(u.occurred_at));let l=s.at(-1);return xp(l===void 0?void 0:{occurred_at:l.occurred_at,source_occurred_at:l.source_occurred_at??void 0,source_started_at:l.source_started_at,source_finished_at:l.source_finished_at})}function z0(e){function t(n,i){let r=new Set([...i===null?[]:e.prds.filter(c=>c.id===i).map(c=>c.creation_run_id),...e.specs.filter(c=>n.has(c.id)).map(c=>c.creation_run_id)].filter(c=>c!=null)),o=new Set(e.changes.filter(c=>i!==null&&c.source.type==="prd"&&c.source.prd_id===i||(c.source.type==="spec"||c.source.type==="prd")&&c.source.spec_id!==null&&c.source.spec_id!==void 0&&n.has(c.source.spec_id)).map(c=>c.id)),a=new Set(e.tasks.filter(c=>o.has(c.change_id)).map(c=>c.id)),s=new Set(e.executions.filter(c=>i!==null&&c.origin.type==="prd"&&c.origin.prd_id===i||c.origin.type==="spec"&&c.origin.spec_id!==void 0&&n.has(c.origin.spec_id)||c.dag.nodes.some(u=>a.has(u.task_id))).map(c=>c.id)),l=e.runs.filter(c=>{let u=c.fold.run.spec_id!==null&&n.has(c.fold.run.spec_id)||c.fold.run.task_id!==null&&a.has(c.fold.run.task_id)||r.has(c.fold.run.run_id);return i===null?u:u||c.fold.run.prd_id===i||c.fold.run.execution_id!==null&&s.has(c.fold.run.execution_id)});return{changeIds:o,taskIds:a,executionIds:s,runs:l}}return{forSpec:n=>t(new Set([n]),null),forPrd:n=>t(new Set(e.specs.filter(i=>i.prd_id===n).map(i=>i.id)),n)}}var Hv=O(()=>{"use strict"});function q0(e){let t=nC(e.map(n=>n.cost));return{conversation:Ga(t.conversation),planning:Ga(t.planning),execution:Ga(t.execution),total:Ga(t.total),new_work:Ga(t.work_types.new),rework:Ga(t.work_types.rework)}}function Ga(e){return{events:e.usage_event_count,tokens:e.tokens,cost:e.cost,coverage:e.coverage}}function Cp(e){return{human:e.filter(t=>t.origin==="human").length,agent:e.filter(t=>t.origin==="agent").length}}function Ip(e,t){let n=[e.conversation,e.planning,e.execution],i=Object.values(t).map(r=>r.total);return{phase_tokens_match_total:Op(n.map(r=>r.tokens.total),e.total.tokens.total),phase_usd_match_total:Op(n.map(r=>r.cost.usd),e.total.cost.usd),phase_brl_match_total:Op(n.map(r=>r.cost.brl),e.total.cost.brl),origin_tokens_match_total:Op(i.map(r=>r.tokens.total),e.total.tokens.total)}}function Op(e,t){let n=e.filter(i=>i!==null);return t===null?n.length===0:Math.abs(n.reduce((i,r)=>i+r,0)-t)<1e-9}function Np(e){return e==="completed"?100:e==="verifying"?80:e==="executing"?50:["blocked","failed","cancelled"].includes(e)?0:10}function V0(e){return e==="planned"?"planning":["running","paused","verifying"].includes(e)?"executing":e}function W0(e,t){if(e==="delivered")return"completed";if(e==="blocked")return"blocked";if(e==="failed")return"failed";if(e==="cancelled")return"cancelled";let n=t.flatMap(i=>i===void 0?[]:[i.status]);return n.some(i=>["running","paused"].includes(i))?"executing":n.includes("verifying")?"verifying":n.length>0&&n.every(i=>i==="completed")?e==="active"?"verifying":"completed":e==="active"?"executing":n.includes("blocked")?"blocked":n.includes("failed")?"failed":(n.includes("planned")||["draft","ready"].includes(e),"planning")}function Vc(e){return e.filter(t=>t!==null).map(t=>new Date(t).toISOString()).sort().at(-1)??null}var Wc=O(()=>{"use strict";Dn()});function B0(e){let t=e.fold.finished?.occurred_at??null,n=e.fold.effective_usage_records.findLast(l=>l.runtime)?.runtime,i=e.fold.effective_usage_records.at(-1),r=Rp(e.fold.run.occurred_at,t,e.fold.effective_usage_records,e.fold.records),o=e.fold.finished,a=typeof r.source_duration_ms=="number"&&r.source_duration_ms>=0?r.source_duration_ms:typeof o?.duration_ms=="number"&&o.duration_ms>=0&&(o.duration_provenance==="observed"||o.duration_provenance==="reconciled"||o.duration_provenance==="legacy_inferred")?o.duration_ms:null,s=typeof r.source_duration_ms=="number"&&r.source_duration_ms>=0?"observed":a===null?"unavailable":o?.duration_provenance??"unavailable";return{id:e.fold.run.run_id,artifact_path:e.artifactPath,status:e.fold.status,phase:e.fold.records.findLast(l=>"phase"in l)?.phase??e.fold.run.phase,entrypoint:e.fold.run.entrypoint,work_type:e.fold.run.work_type,run_role:z_(e.fold.run),run_kind:wy(e.fold.run),run_purpose:Ey(e.fold.run),requires_finalizer:Ay(e.fold.run),parent_run_id:e.fold.run.parent_run_id,client:e.fold.run.client,agent:e.fold.run.agent,agent_name:o8(e.fold.run.agent,e.fold.run.agent_name),provider:i?.provider??e.fold.run.provider,model:e.fold.run.model,reasoning_effort:e.fold.run.reasoning_effort??null,...a8(e.fold),...s8(e.fold),service_tier:n?.service_tier??null,conversation_id:e.fold.run.conversation_id,execution_id:e.fold.run.execution_id,task_id:e.fold.run.task_id,spec_id:e.fold.run.spec_id,prd_id:e.fold.run.prd_id,change_id:e.fold.run.change_id,started_at:e.fold.run.occurred_at,finished_at:t,duration_ms:a,duration_started_at:a===null?null:o?.started_at??e.fold.run.occurred_at,duration_provenance:s,...r,pricing_segments:e.fold.effective_usage_records.map(l=>({phase:l.phase,provider:l.provider,model:l.model,service_tier:l.runtime?.service_tier??n?.service_tier??null,input_tokens:l.tokens.input,cached_input_tokens:l.tokens.cached_input,output_tokens:l.tokens.output,reasoning_tokens:l.tokens.reasoning,total_tokens:l.tokens.total,recorded_usd:l.cost.usd,recorded_brl:l.cost.brl,recorded_fx_rate:l.cost.fx_rate??null})),usage:q0([e])}}function o8(e,t){if(e==="codex")return"codex";let n=t??e;return n.startsWith("agent-")?`zaip-agent-${n.slice(6)}`:n}function a8(e){let t=new Set([...e.provider_invocation_records.map(i=>i.effective.model),...e.effective_usage_records.map(i=>i.model)].filter(i=>i!==null)),n=new Set([...e.provider_invocation_records.map(i=>i.effective.reasoning_effort),...e.effective_usage_records.map(i=>i.runtime?.reasoning_effort??null)].filter(i=>i!==null));return{effective_model:t.size===1?[...t][0]??null:null,effective_reasoning_effort:n.size===1?[...n][0]??null:null,effective_config_mixed:t.size>1||n.size>1}}function s8(e){let t=new Set([...e.model_selection_records.map(n=>n.invocation_id),...e.provider_invocation_records.map(n=>n.invocation_id)]);return t.size===0?{call_count:null,terminal_call_count:null,failed_call_count:null,cancelled_call_count:null}:{call_count:t.size,terminal_call_count:e.provider_invocation_records.length,failed_call_count:e.provider_invocation_records.filter(n=>n.status==="failed").length,cancelled_call_count:e.provider_invocation_records.filter(n=>n.status==="cancelled").length}}function Z0(e,t){return e!==null&&e>=0?e:null}var Jv=O(()=>{"use strict";yc();Hv();Wc()});function ti(e){return e.map(t=>typeof t.source_duration_ms=="number"&&t.source_duration_ms>=0?{...t,duration_ms:t.source_duration_ms,duration_provenance:"observed",estimation_basis:null}:typeof t.duration_ms=="number"&&t.duration_ms>=0&&(t.duration_provenance==="observed"||t.duration_provenance==="reconciled"||t.duration_provenance==="legacy_inferred")?{...t,estimation_basis:null}:{...t,duration_ms:null,duration_provenance:"unavailable",estimation_basis:null})}var Pp=O(()=>{"use strict"});function J0(e,t){let n=new Set(e.dag.nodes.map(_=>_.task_id)),i=new Map(t.changes.map(_=>[_.id,_])),r=new Map(t.specs.map(_=>[_.id,_])),o=new Set,a=new Set,s=_=>{o.add(_);let p=r.get(_),g=p?.prd_id??p?.parent_id??null;g!==null&&a.add(g)};e.origin.type==="spec"&&s(e.origin.spec_id),e.origin.type==="prd"&&a.add(e.origin.prd_id);for(let _ of t.tasks){if(!n.has(_.id))continue;let p=i.get(_.change_id)?.source;p&&((p.type==="spec"||p.type==="prd")&&p.spec_id&&s(p.spec_id),p.type==="prd"&&p.prd_id&&a.add(p.prd_id))}let l=t.runs.filter(_=>_.execution_id===e.id||_.task_id!==null&&n.has(_.task_id)),c=l.flatMap(_=>_.call_count===null?[]:[_.call_count]),u=l.filter(_=>_.run_purpose==="finalization"||_.agent==="agent-finalizer"||_.agent==="agent-task-finalizer"),d=new Set(u.flatMap(_=>_.status==="completed"&&_.task_id!==null?[_.task_id]:[]));return{agent_call_count:l.length,orchestrator_run_count:l.filter(_=>_.parent_run_id===null).length,subagent_run_count:l.filter(_=>_.parent_run_id!==null).length,finalizer_run_count:u.length,finalized_task_count:d.size,llm_call_count:c.reduce((_,p)=>_+p,0),llm_call_count_complete:c.length===l.length,task_count:n.size,spec_count:o.size,prd_count:a.size,duration_ms:c8(l.filter(_=>_.parent_run_id===null)),total_tokens:H0(l.map(_=>_.usage?.tokens.total??null)),cost_brl:H0(l.map(_=>_.usage?.cost.brl??null))}}function H0(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function c8(e){let t=e.flatMap(n=>typeof n.source_duration_ms=="number"&&n.source_duration_ms>=0?[n.source_duration_ms]:typeof n.duration_ms=="number"&&n.duration_ms>=0&&(n.duration_provenance==="observed"||n.duration_provenance==="reconciled"||n.duration_provenance==="legacy_inferred")?[n.duration_ms]:[]);return t.length===0?null:t.reduce((n,i)=>n+i,0)}var G0=O(()=>{"use strict"});function $p(e){let t=K0(e.from??null,"from"),n=K0(e.to??null,"to");if(t!==null&&n!==null&&t>n)throw new Error("from must not be after to");return{from:t,to:n}}function K0(e,t){if(e===null||e.length===0)return null;let n=/^\d{4}-\d{2}-\d{2}$/.test(e)?t==="to"?`${e}T23:59:59.999-03:00`:`${e}T00:00:00.000-03:00`:e,i=Date.parse(n);if(Number.isNaN(i))throw new Error(`${t} must be an ISO timestamp`);return new Date(i).toISOString()}var Gv=O(()=>{"use strict"});function Nn(e){let t=n=>{let i=e.map(n),r=o=>{let a=o.filter(s=>s!==null);return a.length===0?null:a.reduce((s,l)=>s+l,0)};return{events:i.reduce((o,a)=>o+a.events,0),tokens:{input:r(i.map(o=>o.tokens.input)),cached_input:r(i.map(o=>o.tokens.cached_input)),output:r(i.map(o=>o.tokens.output)),reasoning:r(i.map(o=>o.tokens.reasoning)),total:r(i.map(o=>o.tokens.total))},cost:{usd:r(i.map(o=>o.cost.usd)),brl:r(i.map(o=>o.cost.brl))},coverage:{events:i.reduce((o,a)=>o+a.coverage.events,0),tokens:i.reduce((o,a)=>o+a.coverage.tokens,0),usd:i.reduce((o,a)=>o+a.coverage.usd,0),brl:i.reduce((o,a)=>o+a.coverage.brl,0)}}};return{conversation:t(n=>n.usage.conversation),planning:t(n=>n.usage.planning),execution:t(n=>n.usage.execution),total:t(n=>n.usage.total),new_work:t(n=>n.usage.new_work),rework:t(n=>n.usage.rework)}}function Lp(e){let t=ti(e.runs),n=mc(t),i=Nn(t),r={conversation:Nn(t.filter(o=>o.entrypoint==="conversation")),task:Nn(t.filter(o=>o.entrypoint==="task")),spec:Nn(t.filter(o=>o.entrypoint==="spec")),prd:Nn(t.filter(o=>o.entrypoint==="prd"))};return{...e,runs:t,origins:r,summary:{...e.summary,run_count:t.length,execution_duration_ms:Si(n)??0,execution_day_count:new Set(n.map(o=>o.started_at.slice(0,10))).size,source_latest_at:Vc([e.summary.source_latest_at,...t.map(o=>o.finished_at??o.started_at)]),quality:qc(e.tasks,t),reconciliation:Ip(i,r),usage:i}}}function Xv(e){let t=[...e.taskIds].flatMap(r=>{let o=e.tasks.get(r);return o===void 0?[]:[o]}),n=e.decisions.filter(r=>r.scope_type==="change"&&e.changeIds.has(r.scope_id)||r.scope_type==="execution"&&e.executionIds.has(r.scope_id)),i=Yv(e.runs);return{id:e.id,title:e.title,created_at:e.createdAt,updated_at:e.updatedAt,kind:e.kind,parent_id:e.parentId,artifact_path:e.artifactPath,lifecycle_status:e.lifecycleStatus,work_status:W0(e.lifecycleStatus,[...e.executionIds].map(r=>e.executions.get(r))),execution_ids:[...e.executionIds].sort(),task_ids:[...e.taskIds].sort(),planned_tasks:[...e.plannedTasks],canonical_run_ids:i.canonicalRuns.map(r=>r.id).sort(),run_ids:i.canonicalRuns.map(r=>r.id).sort(),root_execution_run_ids:i.rootExecutionRuns.map(r=>r.id).sort(),execution_count:e.executionIds.size,task_count:Math.max(e.taskIds.size,e.plannedTasks.length),run_count:i.canonicalRuns.length,duration_ms:i.observedRootDuration,observed_root_duration_ms:i.observedRootDuration,observed_lifecycle_duration_ms:i.observedLifecycleDuration,duration_coverage:{eligible_runs:i.rootExecutionRuns.length,known_runs:i.knownRootRuns.length,unknown_runs:i.rootExecutionRuns.length-i.knownRootRuns.length,coverage_ratio:i.rootExecutionRuns.length===0?1:i.knownRootRuns.length/i.rootExecutionRuns.length},duration_provenance:i.observedRootDuration===null?"unavailable":"observed",lifecycle_duration_coverage:i.lifecycleCoverage,lifecycle_duration_provenance:i.observedLifecycleDuration===null?"unavailable":"observed",decisions:Cp(n),rework_run_count:i.canonicalRuns.filter(r=>r.work_type==="rework").length,quality:qc(t,i.canonicalRuns),usage:Nn(i.canonicalRuns)}}function Yv(e){let t=[...new Map(e.map(a=>[a.id,a])).values()],n=t.filter(a=>a.phase==="execution"&&a.parent_run_id==null),i=n.filter(a=>Kv(a)!==null),r=t.filter(a=>a.parent_run_id==null),o=r.filter(a=>Kv(a)!==null);return{canonicalRuns:t,rootExecutionRuns:n,knownRootRuns:i,observedRootDuration:Si(n),observedLifecycleDuration:l8(r),lifecycleCoverage:{eligible_runs:r.length,known_runs:o.length,unknown_runs:r.length-o.length,coverage_ratio:r.length===0?1:o.length/r.length}}}function l8(e){let t=e.flatMap(a=>{let s=Kv(a),l=Date.parse(a.source_started_at??a.duration_started_at??a.started_at);return s!==null&&Number.isFinite(l)?[{start:l,end:l+s}]:[]}).toSorted((a,s)=>a.start-s.start),n=t[0];if(n===void 0)return null;let i=0,r=n.start,o=n.end;for(let a of t.slice(1))a.start<=o?o=Math.max(o,a.end):(i+=o-r,r=a.start,o=a.end);return i+o-r}function Kv(e){return typeof e.source_duration_ms=="number"&&e.source_duration_ms>=0?e.source_duration_ms:typeof e.duration_ms=="number"&&e.duration_ms>=0&&(e.duration_provenance==="observed"||e.duration_provenance==="reconciled"||e.duration_provenance==="legacy_inferred")?e.duration_ms:null}function X0(e){function t(n,i){let r=new Set([...i===null?[]:e.prds.filter(c=>c.id===i).map(c=>c.creation_run_id),...e.specs.filter(c=>n.has(c.id)).map(c=>c.creation_run_id)].filter(c=>c!=null)),o=new Set(e.changes.filter(c=>i!==null&&c.source.type==="prd"&&c.source.prd_id===i||(c.source.type==="spec"||c.source.type==="prd")&&c.source.spec_id!==null&&c.source.spec_id!==void 0&&n.has(c.source.spec_id)).map(c=>c.id)),a=new Set(e.tasks.filter(c=>o.has(c.change_id)).map(c=>c.id)),s=new Set(e.executions.filter(c=>i!==null&&c.origin.type==="prd"&&c.origin.prd_id===i||c.origin.type==="spec"&&n.has(c.origin.spec_id)||c.dag.nodes.some(u=>a.has(u.task_id))).map(c=>c.id)),l=e.runs.filter(c=>c.spec_id!==null&&n.has(c.spec_id)||c.task_id!==null&&a.has(c.task_id)||r.has(c.id)||i!==null&&(c.prd_id===i||c.execution_id!==null&&s.has(c.execution_id)));return{changeIds:o,taskIds:a,executionIds:s,runs:l}}return{forSpec:n=>t(new Set([n]),null),forPrd:n=>t(new Set(e.specs.filter(i=>i.prd_id===n).map(i=>i.id)),n)}}var Qv=O(()=>{"use strict";fc();Zv();Pp();Wc()});function Y0(e,t){let n=new Map(e.map(r=>[r.id,eb(r.prepared_plan)])),i=new Map(t.map(r=>{let o=eb(r.prepared_plan);if(o.length>0||r.prd_id===null)return[r.id,o];let a=e.find(s=>s.id===r.prd_id);return[r.id,a===void 0?[]:eb(a.prepared_plan,r.id)]}));return{byPrd:n,bySpec:i}}function Q0(e){let t=new Map;for(let n of e){if(n.kind==="interaction")continue;let i=new Set(n.dag.nodes.map(r=>r.task_id));n.origin.type==="task"&&i.add(n.origin.task_id);for(let r of i)t.set(r,new Set([...t.get(r)??[],n.id]))}return new Map([...t].map(([n,i])=>[n,[...i].sort()]))}function eb(e,t){if(e==null||e.blueprints===void 0)return[];let n=new Map(e.blueprints.changes.map(r=>[r.id,r.source.type==="spec"||r.source.type==="prd"?r.source.spec_id??null:null])),i=new Map(e.dag.nodes.map(r=>[r.task_id,r.depends_on]));return e.blueprints.tasks.filter(r=>t===void 0||n.get(r.change_id)===t).map(r=>({id:r.id,title:r.title,objective:r.objective,depends_on:i.get(r.id)??[]}))}var eP=O(()=>{"use strict"});function nP(e){return typeof e=="number"&&e>0?Math.round(e*36e5/4e6):null}function rP(e,t){let n=e.filter(o=>(o.total_tokens??0)>0);if(n.length<7||t<n.length)return e.map(o=>tP(o));let i=n.reduce((o,a)=>o+(a.total_tokens??0),0),r=0;return e.map(o=>{if(!n.includes(o))return tP(o);let a=n.at(-1)===o?t-r:1+Math.floor((t-n.length)*(o.total_tokens??0)/i);return r+=a,{...o,duration:{known_sum:a,unknown:0,complete:!0,coverage_ratio:1}}})}function tb(e,t){let n=rP(e.map(([r,o])=>({key:r,total_tokens:o.usage.total_tokens.known_sum,estimated_brl:o.usage.cost.known_sum,duration:Wo(r,o).value})),t),i=new Map(n.map(r=>[r.key,r.duration]));return Object.fromEntries(e.map(([r,o])=>[r,{...o,duration:i.get(r)??Wo(r,o).value}]))}function tP(e){if((e.total_tokens??0)<=0||e.duration.known_sum>0)return e;let t=nP(e.total_tokens);return t===null?e:{...e,duration:{known_sum:t,unknown:0,complete:!0,coverage_ratio:1}}}function Bc(e){let t=e.filter(i=>(i.phase===void 0||i.phase==="execution")&&i.parent_run_id==null),n=new Map;for(let i of t){let r=i.duration_started_at??i.started_at;if(!P_(r)||r===null)continue;let o=Date.parse(r),a=qt(r,"day");if(!Number.isFinite(o)||a===null)continue;if(i.duration_ms===null||i.duration_ms<0){let l=n.get(a)??{intervals:[],known:0,unknown:0};l.unknown+=1,n.set(a,l);continue}let s=o+i.duration_ms;for(let l=o;l<=s;){let c=qt(new Date(l).toISOString(),"day");if(c===null)break;let u=Math.min(s,d8(c)),d=n.get(c)??{intervals:[],known:0,unknown:0};if(d.intervals.push({start:l,end:u}),d.known+=1,n.set(c,d),u>=s)break;l=u}}return new Map([...n].map(([i,r])=>{let o=r.known+r.unknown;return[i,{value:{known_sum:_8(r.intervals),unknown:r.unknown,complete:r.unknown===0,coverage_ratio:o===0?1:r.known/o},population:{eligible_runs:o,known_runs:r.known,unknown_runs:r.unknown}}]}))}function Wo(e,t,n,i=!1){let r=Xr[e]??0,o=e>=_n.cutoffDay?n:void 0;if(i&&r===0&&o===void 0)return u8();let a=i?o?.value:e<_n.cutoffDay?void 0:t.duration,s=a?.unknown??0,l=i?o?.population.eligible_runs??0:t.runs,c=i?o?.population.known_runs??0:t.runs-s;return{value:{known_sum:r+(a?.known_sum??0),unknown:s,complete:s===0,coverage_ratio:l===0?1:c/l},population:{eligible_runs:l,known_runs:c,unknown_runs:s}}}function u8(){return{value:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},population:{eligible_runs:0,known_runs:0,unknown_runs:0}}}function d8(e){let[t,n,i]=e.split("-").map(Number),r=new Date(Date.UTC(t,n-1,i+1)),o=new Intl.DateTimeFormat("en-US",{timeZone:"America/Sao_Paulo",timeZoneName:"longOffset"}).formatToParts(r).find(s=>s.type==="timeZoneName")?.value??"GMT",a=/^GMT([+-])(\d{2}):(\d{2})$/.exec(o);return a===null?r.getTime():r.getTime()-(Number(a[2])*60+Number(a[3]))*6e4*(a[1]==="+"?1:-1)}function _8(e){let t=0,n=Number.NaN,i=Number.NaN;for(let r of e.toSorted((o,a)=>o.start-a.start))!Number.isFinite(n)||r.start>i?(Number.isFinite(n)&&(t+=i-n),n=r.start,i=r.end):i=Math.max(i,r.end);return Number.isFinite(n)?t+i-n:t}var nb=O(()=>{"use strict";Oa()});function p8(e,t){return(t.from===null||e>=t.from.slice(0,10))&&(t.to===null||e<=t.to.slice(0,10))}function iP(e,t){let n=d=>{let _=e.reduce((m,[,f])=>m+d(f).known_sum,0),p=e.reduce((m,[,f])=>m+d(f).unknown,0),g=e.reduce((m,[,f])=>m+f.runs,0);return{value:g===p?null:_,coverage:g===0?1:(g-p)/g}},i=e.map(([d,_])=>{let p=d<=_n.cutoffDay?Xr[d]??0:0,g=d<_n.cutoffDay?void 0:_.duration;return{known_sum:p+(g?.known_sum??0),unknown:g?.unknown??0,runs:_.runs}}),r=i.reduce((d,_)=>d+_.known_sum,0),o=i.reduce((d,_)=>d+_.unknown,0),a=i.reduce((d,_)=>d+_.runs,0),s=a===o&&r===0?null:r,l={value:t.from===null&&t.to===null&&s!==null?bC(s):s,coverage:a===0?1:(a-o)/a},c=n(d=>d.usage.total_tokens),u=n(d=>d.usage.cost);return{duration_ms:l.value,tokens:c.value,cost_brl:u.value,coverage:{duration:l.coverage,tokens:c.coverage,cost:u.coverage},execution_day_count:i.filter(d=>d.known_sum>0).length}}function Mp(e,t){if(e===null)return[];let n=new Map;for(let[i,r]of Object.entries(e.days)){if(!p8(i,t))continue;let o=r.tasks.length>0?r.tasks:r.specs.length>0?r.specs:r.prds;for(let a of o){let s=n.get(a.id);if(s===void 0){n.set(a.id,structuredClone(a));continue}s.run_count+=a.run_count;for(let l of["duration","total_tokens","cost"])s.metrics[l].known_sum+=a.metrics[l].known_sum,s.metrics[l].unknown+=a.metrics[l].unknown,s.metrics[l].complete=s.metrics[l].unknown===0,s.metrics[l].coverage_ratio=s.run_count===0?1:(s.run_count-s.metrics[l].unknown)/s.run_count;(a.window_at??a.occurred_at)>(s.window_at??s.occurred_at)&&(s.status=a.status,s.risk=a.risk,a.window_at!==void 0&&(s.window_at=a.window_at))}}return[...n.values()]}function oP(e){let t={},n={};for(let i of e){let r=i.status??"unclassified",o=i.risk??"unclassified";t[r]=(t[r]??0)+1,n[o]=(n[o]??0)+1}return{total:e.length,statuses:t,risks:n}}function rb(e,t,n){let i=h8(),r={...i,tokens:{...i.tokens,total:Bo(e.metrics.total_tokens)},cost:{...i.cost,brl:Bo(e.metrics.cost)}};return{id:e.id,title:e.title??e.id,created_at:e.occurred_at,updated_at:e.window_at??null,kind:t,parent_id:e.parent_id,artifact_path:"",lifecycle_status:e.status??"unavailable",work_status:m8(e.status),execution_ids:[],task_ids:[],planned_tasks:[],canonical_run_ids:[],run_ids:[],root_execution_run_ids:[],execution_count:0,task_count:n,run_count:e.run_count,duration_ms:Bo(e.metrics.duration),observed_root_duration_ms:Bo(e.metrics.duration),observed_lifecycle_duration_ms:null,duration_coverage:f8(e),duration_provenance:e.metrics.duration.complete?"observed":"unavailable",lifecycle_duration_coverage:g8(),lifecycle_duration_provenance:"unavailable",decisions:{human:0,agent:0},rework_run_count:0,quality:{completed_tasks:0,task_completion_rate:0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},usage:y8(i,r)}}function aP(e){let t=e.status,n=["completed","blocked","failed","cancelled"].includes(t??"");return{schema_version:2,id:e.id,revision:0,change_id:"",title:e.title??e.id,short_name:e.id,objective:"",status:t==="draft"||t==="planned"||t==="executing"||t==="verifying"||t==="completed"||t==="failed"||t==="blocked"||t==="cancelled"?t:"draft",attempt_count:t==="planned"||t==="draft"?0:null,risk:e.risk==="lite"||e.risk==="standard"||e.risk==="critical"?e.risk:"standard",priority:"medium",owner:null,requirement_ids:[],acceptance_ids:[],depends_on:[],write_scopes:[],created_at:e.occurred_at,updated_at:e.window_at??e.occurred_at,started_at:t==="executing"||t==="verifying"||n?e.occurred_at:null,finished_at:n?e.window_at??e.occurred_at:null,result:null,artifact_path:"",progress:n?1:0,spec_id:e.parent_id,execution_started:t==="executing"||t==="verifying"||n,execution_ids:[],execution_count:0,telemetry:{duration_ms:Bo(e.metrics.duration),tokens:Bo(e.metrics.total_tokens),cost_brl:Bo(e.metrics.cost)},test_count:0}}function sP(e){return e.map(t=>({task_id:t.id,duration_ms:t.metrics.duration.known_sum,total_tokens:t.metrics.total_tokens.known_sum,cost_brl:t.metrics.cost.known_sum,run_count:t.run_count})).sort((t,n)=>n.duration_ms-t.duration_ms||t.task_id.localeCompare(n.task_id)).slice(0,5)}function Bo(e){return e.known_sum===0&&e.unknown>0?null:e.known_sum}function m8(e){return e==="delivered"?"completed":["planning","executing","verifying","completed","blocked","failed","cancelled"].includes(e??"")?e:"planning"}function f8(e){return{eligible_runs:e.run_count,known_runs:e.run_count-e.metrics.duration.unknown,unknown_runs:e.metrics.duration.unknown,coverage_ratio:e.metrics.duration.coverage_ratio}}function g8(){return{eligible_runs:0,known_runs:0,unknown_runs:0,coverage_ratio:1}}function h8(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function y8(e,t){return{conversation:e,planning:e,execution:e,total:t,new_work:e,rework:e}}var cP=O(()=>{"use strict";Oa()});function ib(e,t,n=!0){let i=[...new Map(e.map(c=>[c.id,c])).values()],r=n?i.filter(c=>Up(c.finished_at??c.started_at,t)):i,o=r.filter(c=>c.phase==="execution"&&c.parent_run_id==null),a=ob(o,t),s=c=>{let u=c.filter(d=>d!==null);return u.length===0?null:Math.round(u.reduce((d,_)=>d+_,0)*1e9)/1e9},l=c=>c.length===0?1:c.filter(u=>u!==null).length/c.length;return{duration_ms:a===void 0||a.coverage_ratio===0?null:a.known_sum,tokens:s(r.map(c=>c.total_tokens)),cost_brl:s(r.map(c=>c.cost)),coverage:{duration:a?.coverage_ratio??1,tokens:l(r.map(c=>c.total_tokens)),cost:l(r.map(c=>c.cost))},execution_day_count:new Set(o.map(c=>qt(c.duration_started_at??c.started_at,"day")).filter(c=>c!==null)).size}}function ob(e,t){let n=Bc(e),r=[...new Set([...Object.keys(Xr),...n.keys()])].filter(c=>Dp(c,t)).map(c=>Wo(c,{runs:0},n.get(c),!0).value);if(r.length===0)return;let o=r.reduce((c,u)=>c+u.unknown,0),a=r.reduce((c,u)=>c+u.known_sum,0),s=[...n].filter(([c])=>Dp(c,t)).reduce((c,[,u])=>c+u.population.eligible_runs,0),l=[...n].filter(([c])=>Dp(c,t)).reduce((c,[,u])=>c+u.population.known_runs,0);return{known_sum:a,unknown:o,complete:o===0,coverage_ratio:s===0?1:l/s}}function Dp(e,t){return(t.from===null||e>=t.from.slice(0,10))&&(t.to===null||e<=t.to.slice(0,10))}async function Hc(e,t,n={},i={}){if(t.version===1)throw new Error("Operations projection requires a modern WorkspaceLayout");let r=new Vt(e),o=$p(n),[a,s,l,c]=await Promise.all([r.readDailyReadModels("overview"),r.readDailyReadModels("tasks"),r.readDailyReadModels("specs"),r.readDailyReadModels("prds")]);if(a===null)throw new Error("Lifecycle daily overview is not initialized");let u=Object.entries(a.days).filter(([L])=>Dp(L,o)).map(([L,J])=>[L,J.overview]),d=iP(u,o),_={runs:u.reduce((L,[,J])=>L+J.runs,0)},p=x8(),g={...p,tokens:{...p.tokens,total:d.tokens},cost:{...p.cost,brl:d.cost_brl}},m=d.coverage,f=tb(u,d.duration_ms??0),v=Mp(s,o),S=Mp(c,o),b=Mp(l,o),h=oP(v),k=h.statuses,P=h.risks,U=new Map;for(let L of v)L.parent_id!==null&&U.set(L.parent_id,(U.get(L.parent_id)??0)+1);let $=new Map(b.map(L=>[L.id,L.parent_id])),B=S.map(L=>rb(L,"prd",v.filter(J=>J.parent_id===L.id).length+[...U].filter(([J])=>$.get(J)===L.id).reduce((J,[,le])=>J+le,0))),z=b.map(L=>rb(L,"spec",U.get(L.id)??0)),R=sP(v);return{schema_version:2,layout_version:t.version,readonly:!0,source:".agents/records",filters:o,summary:{prd_count:B.length,spec_count:z.length,execution_count:0,task_count:h.total,run_count:_.runs,overview_metrics:{duration_ms:d.duration_ms,execution_day_count:d.execution_day_count,tokens:d.tokens,cost_brl:d.cost_brl,prd_count:B.length,spec_count:z.length,selected_counts:{prds:B.length,specs:z.length},task_count:h.total,completed_prd_count:B.filter(L=>L.work_status==="completed").length,completed_spec_count:z.filter(L=>L.work_status==="completed").length,completed_task_count:k.completed??0,task_status_counts:k,task_risk_counts:P,top_tasks:R,latest_task_created_at:v.map(L=>L.occurred_at).sort().at(-1)??null,coverage:{duration:m.duration,tokens:m.tokens,cost:m.cost},data_source:"lifecycle_manifest_summary",partial:!0},decisions:{human:0,agent:0},source_latest_at:a.source_latest_at,quality:{completed_tasks:0,task_completion_rate:0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},reconciliation:{phase_tokens_match_total:!1,phase_usd_match_total:!1,phase_brl_match_total:!1,origin_tokens_match_total:!1},usage:Zc(p,g),periods:{daily:f}},origins:{conversation:Zc(p,p),task:Zc(p,p),spec:Zc(p,p),prd:Zc(p,p)},prds:B,specs:z,tasks:i.includeBoardTasks?v.map(aP):[],changes:[],executions:[],runs:[],decisions:[],evidences:[],validations:[]}}function v8(e,t){return Object.fromEntries(e.map(([n,i])=>{let r=ob(t.filter(S8),{from:n,to:n});return[n,{...i,...r===void 0?{}:{duration:r}}]}))}function b8(e,t){let n={},i={},r=0;for(let o of e){let s=o.finished_at??(typeof o.data?.finished_at=="string"?o.data.finished_at:null)??o.updated_at;if(!Up(s,t))continue;r+=1;let l=o.status??"unclassified",c=o.risk??"unclassified";n[l]=(n[l]??0)+1,i[c]=(i[c]??0)+1}return{total:r,statuses:n,risks:i}}function Up(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}function lP(e,t){let n=new Map;for(let i of e){if(i.task_id===null||!t.has(i.task_id))continue;let r=n.get(i.task_id)??{task_id:i.task_id,duration_ms:0,total_tokens:0,cost_brl:0,run_count:0,runs:[]};r.runs.push(i),r.total_tokens+=i.total_tokens??0,r.cost_brl+=i.cost??0,r.run_count+=1,n.set(i.task_id,r)}return[...n.values()].map(({runs:i,...r})=>({...r,duration_ms:Si(i)??0})).sort((i,r)=>r.duration_ms-i.duration_ms||i.task_id.localeCompare(r.task_id)).slice(0,5)}function S8(e){return e.phase==="execution"&&e.parent_run_id==null}function k8(e,t,n){let i=t===null?null:qt(t,"day"),r=n===null?null:qt(n,"day");return Object.entries(w8(e)).filter(([o])=>(i===null||o>=i)&&(r===null||o<=r))}function w8(e){let t=[...new Map((e.run_metrics??[]).map(o=>[o.id,o])).values()],n=Object.values(e.periods.daily).reduce((o,a)=>o+a.runs,0);if(t.length===0||t.length!==n)return e.periods.daily;let i=new Map;for(let o of t){let a=qt(o.finished_at??o.started_at,"day");a!==null&&i.set(a,[...i.get(a)??[],o])}let r=new Set([...Object.keys(e.periods.daily),...i.keys()]);return Object.fromEntries([...r].map(o=>{let a=e.periods.daily[o]??E8(e.usage.cost.currency),s=i.get(o)??[];return[o,{...a,runs:s.length,usage:{...a.usage,total_tokens:jp(s.map(l=>l.total_tokens)),cost:{...jp(s.map(l=>l.cost)),currency:a.usage.cost.currency??e.usage.cost.currency}},events:jp(s.map(l=>l.events))}]}))}function jp(e){let t=e.filter(i=>i!==null),n=e.length-t.length;return{known_sum:t.reduce((i,r)=>i+r,0),unknown:n,complete:n===0,coverage_ratio:e.length===0?1:t.length/e.length}}function E8(e){let t=jp([]);return{prds:0,specs:0,tasks:0,validations:0,evidences:0,runs:0,usage:{input_tokens:t,output_tokens:t,total_tokens:t,cost:{...t,currency:e}},events:t}}function A8(e,t,n){return lP((e.run_metrics??[]).filter(i=>Up(i.finished_at??i.started_at,t)),n)}function T8(e,t){return Up(e.updated_at,t)}function x8(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function Zc(e,t){return{conversation:e,planning:e,execution:e,total:t,new_work:e,rework:e}}function R8(e){let t=n=>e.length===0?1:n/e.length;return{duration:t(e.filter(n=>n.duration_ms!==null).length),tokens:t(e.filter(n=>n.total_tokens!==null).length),cost:t(e.filter(n=>n.cost!==null).length)}}var ab=O(()=>{"use strict";Qr();Oa();fc();nb();Gv();cP()});function uP(e){return[...e].sort((t,n)=>n.started_at.localeCompare(t.started_at)||n.id.localeCompare(t.id))}var dP=O(()=>{"use strict"});async function _P(e,t,n){if(t.version===1)throw new TypeError("Operations projection requires a modern layout");let i=(await Promise.all(C8(t.entityRoot("run"),n).map(o=>e.listFiles(o,".jsonl")))).flat();return(await O8(i,32,async o=>{let a=La($a(await e.readText(o))),s=a.finished?.occurred_at??a.run.occurred_at;return(n.from!==null||n.to!==null)&&!I8(s,n)?null:{fold:a,artifactPath:o,cost:{run:a.run,records:a.records,effective_usage_records:a.effective_usage_records}}})).filter(o=>o!==null).sort((o,a)=>o.fold.run.run_id.localeCompare(a.fold.run.run_id))}async function O8(e,t,n){let i=[];for(let r=0;r<e.length;r+=t){let o=e.slice(r,r+t);i.push(...await Promise.all(o.map(n)))}return i}function C8(e,t){return[e]}function I8(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}var pP=O(()=>{"use strict";yc()});async function Fp(e,t,n){let i=new Map(t.map(o=>[o.id,0])),r=new Map;for(let o of t)r.set(o.change_id,[...r.get(o.change_id)??[],o]);for(let[o,a]of r){let s=n(o).replace(/\\/g,"/"),l=s.slice(0,s.lastIndexOf("/")),c;try{c=await e.listFiles(l)}catch{continue}let u=c.filter(d=>d.replace(/\\/g,"/").includes("/artifacts/tests/")&&/\.(?:md|json|jsonl|txt|log)$/i.test(d));for(let d of u){let _;try{_=await e.readText(d)}catch{continue}for(let p of a)_.includes(p.id)&&i.set(p.id,(i.get(p.id)??0)+1)}}return i}var sb=O(()=>{"use strict"});function gP(e,t){let n=ib(e.map(i=>({id:i.id,started_at:i.started_at,finished_at:i.finished_at??null,phase:i.phase??null,parent_run_id:i.parent_run_id??null,duration_started_at:i.source_started_at??i.duration_started_at??null,duration_ms:i.source_duration_ms!==null&&i.source_duration_ms!==void 0?i.source_duration_ms:i.duration_ms,total_tokens:i.usage.total.tokens.total,cost:i.usage.total.cost.brl})),t,!1);return{duration_ms:n.duration_ms,execution_day_count:n.execution_day_count,tokens:n.tokens,cost_brl:n.cost_brl}}async function Gc(e,t,n={},i={}){if(t.version===1)throw new Error("Operations projection requires a modern WorkspaceLayout");let r=$p(n),o=new Vt(e),a=new Uo(e,t),s=new Fo(e,t),l=new zo(e,t),c=new ro(e,t),u=new Ja(e,t),d=new F_(e,t),[_,p]=await Promise.all([o.readEntities(),i.overviewOnly?Promise.resolve([]):_P(e,t,r)]);if(_.length===0&&await o.readSummary()===null&&!await e.exists(".agents/records/lifecycle/.gitkeep"))throw new Error("Lifecycle manifest is not initialized; run `zaip manifest rebuild --confirm-full-scan`");let g=Jc(_,"prd"),m=Jc(_,"spec"),f=Jc(_,"change"),v=Jc(_,"execution"),S=Jc(_,"task"),b=$8(_),h=P8(_),k=N8(_),P=p.map(B0),U=g.filter(D=>fP(D.status,D.updated_at,r)),$=m.filter(D=>fP(D.status,D.updated_at,r)),B=f.filter(D=>cb(D,r)),z=v.filter(D=>cb(D,r)),R=S.filter(D=>cb(D,r)),L=b.filter(D=>Ka(D.created_at,r)),J=h.filter(D=>Ka(D.observed_at,r)),le=k.filter(D=>Ka(D.executed_at,r)),j=P.filter(D=>Ka(D.finished_at??D.started_at,r)),Q=ti(j),C=new Map(f.map(D=>[D.id,D])),F=new Map(S.map(D=>[D.id,D])),X=new Map(v.map(D=>[D.id,D])),ne=X0({changes:f,tasks:S,executions:v,prds:g,specs:m,runs:Q}),ve=i.overviewOnly||i.skipTestArtifacts?new Map:await Fp(e,R,D=>l.path(D)),ge=Tp(v),q=Q0(v),A=F0(Q),I=Y0(g,m),he=U.map(D=>{let Ne=ne.forPrd(D.id);return Xv({id:D.id,title:D.title,createdAt:D.created_at,updatedAt:D.updated_at,kind:"prd",parentId:null,artifactPath:a.path(D.id),lifecycleStatus:D.status,...Ne,decisions:b,executions:X,tasks:F,plannedTasks:I.byPrd.get(D.id)??[]})}),me=$.map(D=>{let Ne=ne.forSpec(D.id);return Xv({id:D.id,title:D.title,createdAt:D.created_at,updatedAt:D.updated_at,kind:"spec",parentId:D.prd_id,artifactPath:s.path(D.id),lifecycleStatus:D.status,...Ne,decisions:b,executions:X,tasks:F,plannedTasks:I.bySpec.get(D.id)??[]})}),Le=R.map(D=>{let Ne=C.get(D.change_id);return{...D,attempt_count:D.attempt_count??null,artifact_path:u.path(D.id),progress:Np(D.status),test_count:ve.get(D.id)??0,spec_id:Ne?.source.type==="spec"||Ne?.source.type==="prd"?Ne.source.spec_id:null,execution_started:ge.has(D.id),execution_ids:q.get(D.id)??[],execution_count:q.get(D.id)?.length??0,telemetry:A.get(D.id)??null}}),Ce=Nn(Q),Pe=mc(Q),Qt=gP(Q,r),Y=i.overviewOnly?await Hc(e,t,r):null,ce=mP(R,D=>D.status),$e=mP(R,D=>D.risk),Ke=hP(U,$),x={prd_count:he.length,spec_count:me.length,selected_counts:{prds:he.length,specs:me.length},task_count:R.length,completed_prd_count:Ke.prds,completed_spec_count:Ke.specs,completed_task_count:ce.completed??0,task_status_counts:ce,task_risk_counts:$e,latest_task_created_at:Vc(R.map(D=>D.created_at))},se={conversation:Nn(Q.filter(D=>D.entrypoint==="conversation")),task:Nn(Q.filter(D=>D.entrypoint==="task")),spec:Nn(Q.filter(D=>D.entrypoint==="spec")),prd:Nn(Q.filter(D=>D.entrypoint==="prd"))};return{schema_version:2,layout_version:t.version,readonly:!0,source:".agents/records",filters:r,summary:{prd_count:he.length,spec_count:me.length,execution_count:z.length,task_count:R.length,run_count:Q.length,execution_duration_ms:Si(Pe)??0,execution_day_count:new Set(Pe.map(D=>D.started_at.slice(0,10))).size,overview_metrics:Y?.summary.overview_metrics===void 0?{...Qt,...x,data_source:"run_records",partial:!1}:{...Y.summary.overview_metrics,...x,partial:!1},decisions:Cp(L),source_latest_at:Y?.summary.source_latest_at??Vc([...U.map(D=>D.updated_at),...$.map(D=>D.updated_at),...B.map(D=>D.updated_at),...z.map(D=>D.updated_at),...R.map(D=>D.updated_at),...L.map(D=>D.created_at),...Q.map(D=>D.finished_at??D.started_at)]),quality:qc(R,Q),reconciliation:Ip(Ce,se),usage:Y?.summary.usage??Ce},origins:se,prds:he,specs:me,tasks:Le,changes:i.overviewOnly&&!i.includeOverviewChanges?[]:B.map(D=>({...D,artifact_path:l.path(D.id)})),executions:i.overviewOnly?[]:z.map(D=>({...D,kind:D.kind??"delivery",client_turn_id:D.client_turn_id??null,...J0(D,{runs:Q.map(Ne=>({agent:Ne.agent,call_count:Ne.call_count,duration_ms:Ne.duration_ms,...Ne.duration_provenance===void 0?{}:{duration_provenance:Ne.duration_provenance},execution_id:Ne.execution_id,finished_at:Ne.finished_at,parent_run_id:Ne.parent_run_id,run_purpose:Ne.run_purpose,source_duration_ms:Ne.source_duration_ms??null,started_at:Ne.started_at,status:Ne.status,task_id:Ne.task_id,usage:Ne.usage.total})),tasks:R,changes:B,specs:$}),artifact_path:c.path(D.id),work_status:V0(D.status)})),runs:i.overviewOnly?[]:uP(Q),evidences:J,validations:le,decisions:i.overviewOnly?[]:L.map(D=>({id:D.id,title:D.title,origin:D.origin,scope_type:D.scope_type,scope_id:D.scope_id,artifact_path:d.path(D.scope_type,D.scope_id,D.id),created_at:D.created_at}))}}function hP(e,t){return{prds:e.filter(n=>n.status==="delivered").length,specs:t.filter(n=>n.status==="delivered").length}}function mP(e,t){return e.reduce((n,i)=>{let r=t(i);return n[r]=(n[r]??0)+1,n},{})}function N8(e){return e.flatMap(t=>{let n=t.data;return t.kind!=="validation"||n===null||typeof n.executed_at!="string"?[]:[{id:t.id,task_id:typeof n.task_id=="string"?n.task_id:null,executed_at:n.executed_at}]})}function P8(e){return e.flatMap(t=>{let n=t.data;return t.kind!=="evidence"||n===null||typeof n.observed_at!="string"?[]:[{id:t.id,task_id:typeof n.task_id=="string"?n.task_id:null,observed_at:n.observed_at}]})}function Jc(e,t){return e.flatMap(n=>n.kind===t&&n.data!==null?[{...n.data,id:n.id,title:n.title??n.data.title,status:n.status??n.data.status,risk:n.risk??n.data.risk,priority:n.priority??n.data.priority,updated_at:n.updated_at}]:[])}function $8(e){return e.flatMap(t=>{if(t.kind!=="decision"||t.data===null)return[];let n=t.data;return n.origin!=="human"&&n.origin!=="agent"||n.scope_type!=="change"&&n.scope_type!=="execution"||typeof n.scope_id!="string"||typeof n.created_at!="string"?[]:[{id:t.id,title:t.title??t.id,origin:n.origin,scope_type:n.scope_type,scope_id:n.scope_id,created_at:n.created_at}]})}function cb(e,t){return Ka(e.finished_at??e.updated_at,t)}function fP(e,t,n){return Ka(t,n)}function Ka(e,t){let n=new Date(e).toISOString();return(t.from===null||n>=t.from)&&(t.to===null||n<=t.to)}var yP=O(()=>{"use strict";yc();Qr();qo();Wv();fc();Bv();Zv();Jv();Pp();G0();Gv();Qv();eP();ab();dP();pP();sb();Wc();Hv();Jv();Pp();Qv()});async function lb(e,t,n){if(t.version===1)throw new Error("Task detail requires a modern WorkspaceLayout");let i=new Ja(e,t),r=new zo(e,t),o=new ro(e,t),{task:a,body:s}=await i.read(n),{change:l}=await r.read(a.change_id),c=l.source.type==="spec"||l.source.type==="prd"?l.source.spec_id:null,u=await Fp(e,[a],g=>r.path(g)),d=await o.list(),_=Tp(d),p=d.filter(g=>g.kind!=="interaction"&&(g.origin.type==="task"&&g.origin.task_id===a.id||g.dag.nodes.some(m=>m.task_id===a.id))).map(g=>g.id).sort();return{task:{...a,attempt_count:a.attempt_count??null,artifact_path:i.path(a.id),progress:Np(a.status),spec_id:c,execution_started:_.has(a.id),execution_ids:p,execution_count:p.length,test_count:u.get(a.id)??0},body:s,artifact_path:i.path(a.id)}}async function ub(e,t,n){if(t.version===1)throw new Error("PRD detail requires a modern WorkspaceLayout");let i=new Uo(e,t),{prd:r,body:o}=await i.read(n);return{id:r.id,title:r.title,body:o,artifact_path:i.path(r.id)}}async function db(e,t,n){if(t.version===1)throw new Error("SPEC detail requires a modern WorkspaceLayout");let i=new Fo(e,t),{spec:r,body:o}=await i.read(n);return{id:r.id,title:r.title,body:o,artifact_path:i.path(r.id)}}var vP=O(()=>{"use strict";qo();Wv();Bv();sb();Wc()});var bP={};lM(bP,{aggregateOverviewRunMetrics:()=>ib,aggregateTopTasks:()=>lP,buildOperationsProjection:()=>Gc,buildQuickOperationsProjection:()=>Hc,coverageFromRuns:()=>R8,createDescendantQueries:()=>z0,deliveredMacroCounts:()=>hP,effectiveOperationsDurationMs:()=>Z0,estimatedTokenDurationMs:()=>nP,hybridDailyDuration:()=>Wo,hybridLegacyDurationMetric:()=>ob,latestObservedSourceTiming:()=>Rp,macroInWindow:()=>T8,manifestDailyPeriods:()=>k8,normalizeDailyPeriods:()=>tb,normalizeTokenBackedDailyDuration:()=>rP,observedExecutionElapsedMs:()=>Si,observedMacroRunTelemetry:()=>Yv,observedSourceTiming:()=>xp,overviewMetricTotals:()=>gP,projectExecutionDurations:()=>ti,readPrdDetail:()=>ub,readSpecDetail:()=>db,readTaskDetail:()=>lb,recalculateOperationsRunSummary:()=>Lp,rootExecutionDurationByDay:()=>Bc,summaryTopTasks:()=>A8,taskCountsInWindow:()=>b8,withExecutionDurations:()=>v8});var Zo=O(()=>{"use strict";fc();yP();nb();ab();vP()});import{randomUUID as i7}from"node:crypto";import{basename as o7,resolve as KL}from"node:path";var eS="x-hono-already-sent";import{STATUS_CODES as dM,createServer as _M}from"node:http";import{Http2ServerRequest as Ko,constants as pM}from"node:http2";import{Readable as nS}from"node:stream";var tS=e=>((...t)=>{if(typeof t[0]=="function"){let[n,i]=t;return async function(o,a){let s=await n(o),l=await e(o,s,i);if(l)return l;await a()}}else{let[n,i,r]=t;return(async()=>{let o=await e(n,i,r);if(!o)throw new Error("Failed to upgrade WebSocket");return o})()}});var Zn=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}},mM=/^\/[!#$&-;=?-\[\]_a-z~]*$/,fM=/\/\.\.?(?:[/?#]|$)/,gM=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,hM=(e,t,n)=>{let i=`${e}://${t}${n}`;if(gM.test(t)){if(n.length===0)return i+"/";if(n.charCodeAt(0)!==47)throw new Zn("Invalid URL");return!mM.test(n)||fM.test(n)?new URL(i).href:i}else{let r=new URL(i);if(r.hostname.length!==t.length&&r.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new Zn("Invalid host header");return r.href}},yM=e=>e instanceof Zn?e:new Zn(e.message,{cause:e}),vM=global.Request,Xo=class extends vM{constructor(e,t){if(typeof e=="object"&&Ri in e){let n=t!==void 0&&"body"in t&&t.body!=null;if(e[ci]&&!n)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[Ri]()}typeof t?.body?.getReader<"u"&&(t.duplex??="half"),super(e,t)}},uS=e=>{let t=[],n=e.rawHeaders;for(let i=0,r=n.length;i<r;i+=2){let o=n[i];o.charCodeAt(0)!==58&&t.push([o,n[i+1]])}return new Headers(t)},dS=Symbol("wrapBodyStream"),bM=new Set(["latin1","binary","hex","base64","base64url"]),SM=e=>e===null||bM.has(e),vm=Symbol("bodyBufferedBeforeDisconnect"),bm=Symbol("bodyBufferedLengthBeforeDisconnect"),_S=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),Tm=e=>!(e instanceof Ko)&&!!e.complete&&!!e.readableAborted&&typeof e.read=="function"&&SM(e.readableEncoding),rS=e=>{if(e.readableDidRead||!Tm(e))return;let t=e;t[bm]??=e.readableLength},ul=(e,t)=>{if(e.readableDidRead&&!t||!Tm(e))return;let n=e;if(n[vm]!==void 0)return n[vm];let i,r=e.errored;if(r&&r.code!=="ECONNRESET")i=r;else if(n[bm]!==void 0&&e.readableLength!==n[bm])i=dl();else{let o=t??[],a=e.read();a!==null&&o.push(_S(a,e.readableEncoding));let s=o.length===1?o[0]:Buffer.concat(o);i=s;let l=e.headers["content-length"];if(typeof l=="string"&&/^\d+$/.test(l)){let c=Number(l);Number.isSafeInteger(c)&&s.length!==c&&(i=dl())}}return n[vm]=i,i},iS=(e,t)=>{if(t instanceof Error){e.error(t);return}t.length>0&&e.enqueue(t),e.close()},kM=(e,t,n,i,r)=>{let o={method:e,headers:n,signal:r.signal};if(e==="TRACE"){o.method="GET";let a=new Xo(t,o);return Object.defineProperty(a,"method",{get(){return"TRACE"}}),a}if(!(e==="GET"||e==="HEAD"))if("rawBody"in i&&i.rawBody instanceof Buffer)o.body=new ReadableStream({start(a){a.enqueue(i.rawBody),a.close()}});else if(i[dS]){let a;o.body=new ReadableStream({async pull(s){try{if(!a){let u=ul(i);if(u!==void 0){iS(s,u);return}}a||=nS.toWeb(i).getReader();let{done:l,value:c}=await a.read();l?s.close():s.enqueue(c)}catch(l){s.error(l)}}})}else{let a=ul(i);a!==void 0?o.body=new ReadableStream({start(s){iS(s,a)}}):o.body=nS.toWeb(i)}return new Xo(t,o)},Ri=Symbol("getRequestCache"),ai=Symbol("requestCache"),Yo=Symbol("incomingKey"),ss=Symbol("urlKey"),pS=Symbol("methodKey"),mS=Symbol("headersKey"),os=Symbol("abortControllerKey"),Sm=Symbol("getAbortController"),km=Symbol("abortRequest"),xi=Symbol("bodyBuffer"),ll=Symbol("bodyReadPromise"),ci=Symbol("bodyConsumedDirectly"),oS=Symbol("bodyLockReader"),as=Symbol("abortReason"),dl=()=>new TypeError("Body is unusable"),cs=()=>Promise.reject(dl()),wM=new TextDecoder,EM=e=>{if(e[ci])return cs();e[ci]=!0},AM=e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),TM=e=>(e[mS]||=uS(e[Yo])).get("content-type")||"",xM=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,RM=e=>{if(typeof e!="string"||e.length===0)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}},OM=e=>{if(!xM.test(e))return new TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(t==="CONNECT"||t==="TRACK"||t==="TRACE"&&e!=="TRACE")return new TypeError(`'${e}' HTTP method is unsupported.`)},xm=(e,t,n)=>{if(e[ci])return cs();let i=e.method;if(i==="GET"||i==="HEAD")return e[Ri]()[t]();let r=OM(i);if(r)return Promise.reject(r);if(e[ai]&&i!=="TRACE")return e[ai][t]();let o=EM(e);if(o)return o;let a=CM(e);if(a){let s=Promise.resolve(n(a,e));return e[xi]=void 0,s}return IM(e).then(s=>{let l=n(s,e);return e[xi]=void 0,l})},CM=e=>{let t=e[Yo];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},aS=(e,t)=>{if(t.errored)return t.errored;let n=e[as];return n!==void 0?n instanceof Error?n:new Error(String(n)):new Error("Client connection prematurely closed.")},IM=e=>{if(e[xi])return Promise.resolve(e[xi]);if(e[ll])return e[ll];let t=e[Yo];if(t.readableDidRead)return cs();let n=ul(t);if(n!==void 0)return n instanceof Error?Promise.reject(n):(e[xi]=n,Promise.resolve(n));let i=new Promise((r,o)=>{let a=[],s=!1,l=m=>{s||(s=!0,g(),m())},c=m=>{let f=t.errored??m;return!Tm(t)||f&&f.code!=="ECONNRESET"?!1:(l(()=>{let v=ul(t,a);v instanceof Error?o(v):v===void 0?o(m??aS(e,t)):(e[xi]=v,r(v))}),!0)},u=m=>{a.push(_S(m,t.readableEncoding))},d=()=>{l(()=>{let m=a.length===1?a[0]:Buffer.concat(a);e[xi]=m,r(m)})},_=m=>{c(m)||l(()=>{o(m)})},p=()=>{if(t.readableEnded){d();return}c()||l(()=>{o(aS(e,t))})},g=()=>{t.off("data",u),t.off("end",d),t.off("error",_),t.off("close",p),e[ll]=void 0};t.on("data",u),t.on("end",d),t.on("error",_),t.on("close",p),queueMicrotask(()=>{s||(t.readableEnded?d():t.errored?_(t.errored):t.destroyed&&p())})});return e[ll]=i,i},Jn={get method(){return this[pS]},get url(){return this[ss]},get headers(){return this[mS]||=uS(this[Yo])},[km](e){this[as]===void 0&&(this[as]=e);let t=this[os];t&&!t.signal.aborted&&t.abort(e)},[Sm](){return this[os]||=new AbortController,this[as]!==void 0&&!this[os].signal.aborted&&this[os].abort(this[as]),this[os]},[Ri](){let e=this[Sm]();if(this[ai])return this[ai];let t=this.method;if(this[ci]&&!(t==="GET"||t==="HEAD")){this[xi]=void 0;let n={method:t==="TRACE"?"GET":t,headers:this.headers,signal:e.signal};t!=="TRACE"&&(n.body=new ReadableStream({start(r){r.close()}}),n.duplex="half");let i=new Xo(this[ss],n);return t==="TRACE"&&Object.defineProperty(i,"method",{get(){return"TRACE"}}),this[ai]=i}return this[ai]=kM(this.method,this[ss],this.headers,this[Yo],e)},get body(){if(!this[ci])return this[Ri]().body;let e=this[Ri]();return!this[oS]&&e.body&&(this[oS]=e.body.getReader()),e.body},get bodyUsed(){return this[ci]?!0:this[ai]?this[ai].bodyUsed:!1}};Object.defineProperty(Jn,"signal",{get(){return this[Sm]().signal}});["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(Jn,e,{get(){return this[Ri]()[e]}})});["clone","formData"].forEach(e=>{Object.defineProperty(Jn,e,{value:function(){if(this[ci]){if(e==="clone")throw dl();return cs()}return this[Ri]()[e]()}})});Object.defineProperty(Jn,"text",{value:function(){return xm(this,"text",e=>wM.decode(e))}});Object.defineProperty(Jn,"arrayBuffer",{value:function(){return xm(this,"arrayBuffer",e=>AM(e))}});Object.defineProperty(Jn,"blob",{value:function(){return xm(this,"blob",(e,t)=>{let n=TM(t),i=n?{headers:{"content-type":n}}:void 0;return new Response(e,i).blob()})}});Object.defineProperty(Jn,"json",{value:function(){return this[ci]?cs():this.text().then(JSON.parse)}});Object.defineProperty(Jn,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,n){return`Request (lightweight) ${n({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[ai]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Jn,Xo.prototype);var NM=(e,t)=>{let n=Object.create(Jn);n[Yo]=e,n[pS]=RM(e.method);let i=e.url||"";if(i[0]!=="/"&&(i.startsWith("http://")||i.startsWith("https://"))){if(e instanceof Ko)throw new Zn("Absolute URL for :path is not allowed in HTTP/2");try{n[ss]=new URL(i).href}catch(a){throw new Zn("Invalid absolute URL",{cause:a})}return n}let r=(e instanceof Ko?e.authority:e.headers.host)||t;if(!r)throw new Zn("Missing host header");let o;if(e instanceof Ko){if(o=e.scheme,!(o==="http"||o==="https"))throw new Zn("Unsupported scheme")}else o=e.socket&&e.socket.encrypted?"https":"http";try{n[ss]=hM(o,r,i)}catch(a){throw a instanceof Zn?a:new Zn("Invalid URL",{cause:a})}return n},Ti="text/plain; charset=UTF-8",wm=Symbol("responseCache"),Go=Symbol("getResponseCache"),si=Symbol("cache"),Rm=global.Response,Hn=class fS{#e;#t;[Go](){let t=this[si],n=t&&t[2]instanceof Headers?t[2]:void 0;return delete this[si],this[wm]||=new Rm(this.#e,n?{status:this.#t?.status,statusText:this.#t?.statusText,headers:n}:this.#t)}constructor(t,n){let i;if(this.#e=t,n instanceof fS){let r=n[wm];if(r){this.#t=r,this[Go]();return}else this.#t=n.#t,i=new Headers(n.headers)}else this.#t=n;(t==null||typeof t=="string"||typeof t?.getReader<"u"||t instanceof Blob||t instanceof Uint8Array)&&(this[si]=[n?.status||200,t??null,i||n?.headers])}get headers(){let t=this[si];return t?(t[2]instanceof Headers||(t[2]=new Headers(t[2]||(t[1]===null?void 0:{"content-type":Ti}))),t[2]):this[Go]().headers}get status(){return this[si]?.[0]??this[Go]().status}get ok(){let t=this.status;return t>=200&&t<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(Hn.prototype,e,{get(){return this[Go]()[e]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(Hn.prototype,e,{value:function(){return this[Go]()[e]()}})});Object.defineProperty(Hn.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,n){return`Response (lightweight) ${n({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[wm]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Hn,Rm);Object.setPrototypeOf(Hn.prototype,Rm.prototype);var PM=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,$M=e=>e instanceof URL?e.href:PM.test(e)?e:new URL(e).href,LM=new Set([301,302,303,307,308]);Object.defineProperty(Hn,"redirect",{value:function(t,n=302){if(!LM.has(n))throw new RangeError("Invalid status code");return new Hn(null,{status:n,headers:{location:$M(t)}})},writable:!0,configurable:!0});Object.defineProperty(Hn,"json",{value:function(t,n){let i=JSON.stringify(t);if(i===void 0)throw new TypeError("The data is not JSON serializable");let r=n?.headers,o;return r?(o=new Headers(r),o.has("content-type")||o.set("content-type","application/json")):o={"content-type":"application/json"},new Hn(i,{status:n?.status??200,statusText:n?.statusText,headers:o})},writable:!0,configurable:!0});async function MM(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function gS(e,t,n){let i=s=>{e.cancel(s).catch(()=>{})};return t.on("close",i),t.on("error",i),(n??e.read()).then(a,r),e.closed.finally(()=>{t.off("close",i),t.off("error",i)});function r(s){s&&t.destroy(s)}function o(){e.read().then(a,r)}function a({done:s,value:l}){try{if(s)t.end();else if(!t.write(l))t.once("drain",o);else return e.read().then(a,r)}catch(c){r(c)}}}function sS(e,t){if(e.locked)throw new TypeError("ReadableStream is locked.");return t.destroyed?void 0:gS(e.getReader(),t)}var Em=(e,t)=>{let n={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let i=[];for(let[r,o]of e)r==="set-cookie"?i.push(o):n[r]=o;i.length>0&&(n["set-cookie"]=i)}else for(let[i,r]of e)n[i]=r;return t&&(n["content-type"]??=t),n},_l=Symbol("outgoingEnded"),cS=Symbol("incomingDraining"),DM=500,jM=64*1024*1024,hS=e=>{let t=e;if(e.destroyed||t[cS])return;if(t[cS]=!0,e instanceof Ko){try{e.stream?.close?.(pM.NGHTTP2_NO_ERROR)}catch{}return}let n=0,i=()=>{clearTimeout(o),e.off("data",a),e.off("end",i),e.off("error",i)},r=()=>{i();let s=e.socket;s&&!s.destroyed&&s.destroySoon()},o=setTimeout(r,DM);o.unref?.();let a=s=>{n+=s.length,n>jM&&r()};e.on("data",a),e.on("end",i),e.on("error",i),e.resume()},UM=(e,t,n,i)=>()=>{t.errored?(rS(t),e[km](t.errored.toString())):n.writableFinished||(rS(t),e[km]("Client connection prematurely closed.")),i&&!t.readableEnded&&setTimeout(()=>{t.readableEnded||setTimeout(()=>{hS(t)})})},FM=e=>{if(!(si in e))return!1;let t=e[si][1];return t===null||typeof t=="string"||t instanceof Uint8Array},zM=()=>new Response(null,{status:400}),yS=e=>new Response(null,{status:e instanceof Error&&(e.name==="TimeoutError"||e.constructor.name==="TimeoutError")?504:500}),pl=(e,t)=>{let n=e instanceof Error?e:new Error("unknown error",{cause:e});n.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(e),t.headersSent||t.writeHead(500,{"Content-Type":"text/plain"}),t.end(`Error: ${n.message}`),t.destroy(n))},Am=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},vS=async(e,t)=>{let[n,i,r]=e[si];if(!r){i===null?(t.writeHead(n),t.end()):typeof i=="string"?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":Buffer.byteLength(i)}),t.end(i)):i instanceof Uint8Array?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":i.byteLength}),t.end(i)):i instanceof Blob?(t.writeHead(n,{"Content-Type":Ti,"Content-Length":i.size}),t.end(new Uint8Array(await i.arrayBuffer()))):(t.writeHead(n,{"Content-Type":Ti}),Am(t),await sS(i,t)?.catch(a=>pl(a,t))),t[_l]?.();return}let o=!1;if(r instanceof Headers)o=r.has("content-length"),r=Em(r,i===null?void 0:Ti);else if(Array.isArray(r)){let a=new Headers(r);o=a.has("content-length"),r=Em(a,i===null?void 0:Ti)}else for(let a in r)if(a.length===14&&a.toLowerCase()==="content-length"){o=!0;break}o||(typeof i=="string"?r["Content-Length"]=Buffer.byteLength(i):i instanceof Uint8Array?r["Content-Length"]=i.byteLength:i instanceof Blob&&(r["Content-Length"]=i.size)),t.writeHead(n,r),i==null?t.end():typeof i=="string"||i instanceof Uint8Array?t.end(i):i instanceof Blob?t.end(new Uint8Array(await i.arrayBuffer())):(Am(t),await sS(i,t)?.catch(a=>pl(a,t))),t[_l]?.()},bS=e=>typeof e.then=="function",qM=async(e,t,n={})=>{if(bS(e))if(n.errorHandler)try{e=await e}catch(r){let o=await n.errorHandler(r);if(!o)return;e=o}else e=await e.catch(yS);if(si in e)return vS(e,t);let i=Em(e.headers,e.body===null?void 0:Ti);if(e.body){let r=e.body.getReader(),o=[],a=!1,s;if(i["transfer-encoding"]!=="chunked"){let l=2;for(let c=0;c<l;c++){s||=r.read();let u=await MM(s).catch(d=>{console.error(d),a=!0});if(!u){if(c===1){await new Promise(d=>setTimeout(d)),l=3;continue}break}if(s=void 0,u.value&&o.push(u.value),u.done){a=!0;break}}a&&!("content-length"in i)&&(i["content-length"]=o.reduce((c,u)=>c+u.length,0))}t.writeHead(e.status,i),o.forEach(l=>{t.write(l)}),a?t.end():(o.length===0&&Am(t),await gS(r,t,s))}else i[eS]||(t.writeHead(e.status,i),t.end());t[_l]?.()},VM=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==Xo&&(Object.defineProperty(global,"Request",{value:Xo}),Object.defineProperty(global,"Response",{value:Hn})),async(i,r)=>{let o,a,s=!1,l=!1,c=()=>{!a||l||(l=!0,r.on("close",UM(a,i,r,s)))};try{if(a=NM(i,t.hostname),s=n&&!(i.method==="GET"||i.method==="HEAD"),s&&(i[dS]=!0,i instanceof Ko&&(r[_l]=()=>{i.readableEnded||setTimeout(()=>{i.readableEnded||setTimeout(()=>{i.destroy(),r.destroy()})})})),o=e(a,{incoming:i,outgoing:r}),!bS(o)&&FM(o))return s&&!i.readableEnded&&r.once("finish",()=>{i.readableEnded||hS(i)}),vS(o,r);c()}catch(u){if(o)return pl(u,r);if(t.errorHandler){if(c(),o=await t.errorHandler(a?u:yM(u)),!o)return}else a?o=yS(u):o=zM()}try{return await qM(o,r,t)}catch(u){return pl(u,r)}}},WM=globalThis.CloseEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get wasClean(){return this.#e.wasClean??!1}get code(){return this.#e.code??0}get reason(){return this.#e.reason??""}},BM=globalThis.ErrorEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get message(){return this.#e.message??""}get filename(){return this.#e.filename??""}get lineno(){return this.#e.lineno??0}get colno(){return this.#e.colno??0}get error(){return this.#e.error??null}},ZM=()=>Symbol("connection"),SS=Symbol("CONNECTION_SYMBOL_KEY"),kS=Symbol("WAIT_FOR_WEBSOCKET_SYMBOL"),HM=new Set(["connection","content-length","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","sec-websocket-accept","sec-websocket-extensions","sec-websocket-protocol"]),wS=(e,t)=>{t&&t.forEach((n,i)=>{HM.has(i.toLowerCase())||e.push(`${i}: ${n}`)})},lS=(e,t,n)=>{let i=["Connection: close","Content-Length: 0"];wS(i,n),e.end(`HTTP/1.1 ${t.toString()} ${dM[t]??""}\r
|
|
349
349
|
${i.join(`\r
|
|
350
350
|
`)}\r
|
|
351
351
|
\r
|
|
@@ -361,13 +361,13 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
361
361
|
|
|
362
362
|
`;await this.write(i)}},YY=async(e,t,n)=>{try{await t(e)}catch(i){i instanceof Error&&n?(await n(i,e),await e.writeSSE({event:"error",data:i.message})):console.error(i)}finally{e.close()}},QY=new WeakMap,ey=(e,t,n)=>{let{readable:i,writable:r}=new TransformStream,o=new zO(r,i);return x_()&&e.req.raw.signal.addEventListener("abort",()=>{o.closed||o.abort()}),QY.set(o.responseReadable,e),e.header("Transfer-Encoding","chunked"),e.header("Content-Type","text/event-stream"),e.header("Cache-Control","no-cache"),e.header("Connection","keep-alive"),YY(o,t,n),e.newResponse(o.responseReadable)};function qO(e,t,n=!1){let i=new Set,r;n&&(r=setTimeout(()=>process.exit(0),12e3),r.unref());let o=a=>{i.delete(a)&&(!n||i.size!==0||(r!==void 0&&clearTimeout(r),r=setTimeout(()=>process.exit(0),12e3),r.unref()))};e.get(`${t}/browser-lease`,a=>{let s={};return r!==void 0&&clearTimeout(r),r=void 0,i.add(s),ey(a,async l=>{let c,u;l.onAbort(()=>{c!==void 0&&clearTimeout(c),u?.(),o(s)});try{for(await l.writeSSE({event:"lease",data:"active"});!l.aborted;)await new Promise(d=>{u=d,c=setTimeout(d,1e4),c.unref()}),l.aborted||await l.write(`: keep-alive
|
|
363
363
|
|
|
364
|
-
`)}finally{c!==void 0&&clearTimeout(c),o(s)}})})}function O_(e,t){let n=e.length;return{tasks:R_(e.map(i=>i.task_count),n),specs:R_(e.map(i=>i.spec_count),n),prds:R_(e.map(i=>i.prd_count),n),durationMs:R_(e.map(i=>i.duration_ms),n),tokens:VO(e.map(i=>i.total_tokens)),cost:VO(e.map(i=>t==="BRL"?i.estimated_brl:i.estimated_usd))}}function VO(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)/t.length}function R_(e,t){return t===0||e.every(n=>n===null)?null:e.reduce((n,i)=>n+(i??0),0)/t}Dn();Oa();function SC(e,t){let n=new Map(e.map(i=>[i.key,i]));for(let i of t??[])n.has(i)||n.set(i,E9(i));return[...n.values()].sort((i,r)=>r.latest_started_at.localeCompare(i.latest_started_at)||i.label.localeCompare(r.label))}function E9(e){return{key:e,label:e,latest_started_at:"",run_count:0,task_count:0,prd_count:0,spec_count:0,evidence_count:0,test_count:0,event_count:0,total_tokens:0,estimated_usd:0,estimated_brl:0,duration_ms:0,duration:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},coverage:{events:0,tokens:0,usd:0,brl:0}}}function dy(e){return e.length===0||e.some(t=>t===null)?null:e.reduce((t,n)=>t+(n??0),0)/e.length}function Ca(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function pc(e,t="all_invocations"){let n=new Map;for(let a of e)n.has(a.run_id)||n.set(a.run_id,a);let i=[...n.values()];if(t==="all_invocations")return i;let r=new Set(i.map(a=>a.run_id));return t==="all_execution"?i.filter(a=>a.phase==="execution"):i.filter(a=>a.phase==="execution"&&(a.parent_run_id===null||!r.has(a.parent_run_id)))}function $_(e,t="all_invocations"){let n=pc(e,t),i=n.filter(o=>o.duration_ms!==null),r=n.length-i.length;return{known_sum:i.reduce((o,a)=>o+a.duration_ms,0),unknown:r,complete:r===0,coverage_ratio:n.length===0?1:i.length/n.length}}function L_(e){let t=e?.trim().toLowerCase();return!t||t==="unknown"||t==="codex"?"openai":t}var A9={events:0,tokens:0,usd:0,brl:0};function wC(e,t){let n=new Map;for(let l of t)l.task_id!==null&&n.set(l.task_id,[...n.get(l.task_id)??[],l]);let i=e.filter(l=>n.has(l.id)).map(l=>EC(l,n.get(l.id)??[])),r=new Set(e.map(l=>l.id)),o=[...n].filter(([l])=>!r.has(l)).map(([l,c])=>kC(l,c)),a=t.filter(l=>l.task_id===null),s=a.length===0?[]:[kC("Sem tarefa vinculada",a)];return[...i,...o,...s].sort((l,c)=>c.latest_started_at.localeCompare(l.latest_started_at))}function kC(e,t){return{...EC({id:e,title:e,created_at:t[0]?.started_at??"",test_count:0},t),label:`Tarefa hist\xF3rica: ${e}`,latest_started_at:t.reduce((n,i)=>i.started_at>n?i.started_at:n,"")}}function EC(e,t){let n=$_(t);return{key:e.id,label:e.title,latest_started_at:e.created_at,run_count:t.length,task_count:1,tasksCreated:1,tasksActive:1,prd_count:0,spec_count:0,evidence_count:0,test_count:e.test_count??0,event_count:t.reduce((i,r)=>i+(r.event_count??0),0),total_tokens:Ca(t.map(i=>i.total_tokens)),estimated_usd:Ca(t.map(i=>i.estimated_usd)),estimated_brl:Ca(t.map(i=>i.estimated_brl)),duration_ms:n.known_sum,duration:n,coverage:t.reduce((i,r)=>({events:i.events+r.coverage.events,tokens:i.tokens+r.coverage.tokens,usd:i.usd+r.coverage.usd,brl:i.brl+r.coverage.brl}),A9),coverage_counts:{source:"run_rows",granularity:"event",events:t.reduce((i,r)=>i+r.coverage.events,0),tokens:null,usd:null,brl:null,metrics:{tokens:_y(t,i=>i.total_tokens),usd:_y(t,i=>i.estimated_usd),brl:_y(t,i=>i.estimated_brl)}}}}function _y(e,t){let n=e.filter(i=>t(i)!==null).length;return{eligible_runs:e.length,known_runs:n,unknown_runs:e.length-n}}function Ia(e,t,n=r=>r,i="all_invocations"){let r=[...new Set(e.map(t).filter(a=>a!==null))],o=new Set(pc(e,i).map(a=>a.run_id));return r.map(a=>{let s=e.filter(c=>t(c)===a),l=$_(s.filter(c=>o.has(c.run_id)),i);return{key:a,label:n(a),latest_started_at:s.reduce((c,u)=>u.started_at>c?u.started_at:c,s[0]?.started_at??""),run_count:s.length,task_count:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,tasksActive:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,taskDaysActive:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,prd_count:0,spec_count:0,evidence_count:0,test_count:0,event_count:s.reduce((c,u)=>c+(u.event_count??0),0),total_tokens:py(s.map(c=>c.total_tokens)),estimated_usd:py(s.map(c=>c.estimated_usd)),estimated_brl:py(s.map(c=>c.estimated_brl)),duration_ms:l.known_sum,duration:l,coverage:T9(s)}}).sort(x9)}function py(e){return Ca(e)}function AC(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)/t.length}function T9(e){return e.reduce((t,n)=>({events:t.events+n.coverage.events,tokens:t.tokens+n.coverage.tokens,usd:t.usd+n.coverage.usd,brl:t.brl+n.coverage.brl}),{events:0,tokens:0,usd:0,brl:0})}function x9(e,t){return t.latest_started_at.localeCompare(e.latest_started_at)}function M_(e,t,n){if(e.schema_version!==2)throw new TypeError("Cost Monitor accepts only OperationsProjection V2");let i=t?.currency??"BRL",r=Yr(n?.agentNames??[]),o=e.runs,a=new Map(e.runs.map(h=>[h.id,h])),s=o,l=s,c=new Map(e.tasks.map(h=>[h.id,h])),d=l.map(h=>{let k=h.task_id===null?void 0:c.get(h.task_id),P=a.get(h.id),U=P?.usage.total.cost??{usd:null,brl:null},$=(P?.pricing_segments??[]).map(Q=>Q.recorded_fx_rate??RC(Q.recorded_usd??null,Q.recorded_brl??null)).filter(Q=>Q!==null),B=h.usage.total,z=B.coverage.tokens>0,R=B.coverage.usd>0,L=B.coverage.brl>0,J=t?C9(h,t):null,le=z?IC(P?.usage.total.tokens??B.tokens):null,j=M9(h);return{run_id:h.id,execution_id:h.execution_id,conversation_id:h.conversation_id,task_id:h.task_id,task_title:k?.title??h.task_id??h.conversation_id??h.id,task_status:k?.status??h.status,priority:k?.priority??"none",risk:k?.risk??"none",spec_id:h.spec_id,prd_id:h.prd_id,change_id:h.change_id,parent_run_id:h.parent_run_id,run_role:h.run_role,run_kind:h.run_kind,run_purpose:h.run_purpose,requires_finalizer:h.requires_finalizer,client:h.client,agent:h.agent,agent_name:O9(h,n),provider:L_(h.provider),model:h.effective_model??h.model,requested_model:h.model,reasoning_effort:h.reasoning_effort??null,effective_reasoning_effort:h.effective_reasoning_effort,service_tier:h.service_tier??null,call_count:h.call_count,status:h.status,phase:R9(h),origin:h.entrypoint,work_type:h.work_type,started_at:h.started_at,finished_at:h.finished_at,...j,estimation_basis:null,source_started_at:h.source_started_at??null,source_finished_at:h.source_finished_at??null,capture_lag_ms:h.capture_lag_ms??null,event_count:B.events,input_tokens:B.tokens.input,cached_input_tokens:B.tokens.cached_input,output_tokens:B.tokens.output,reasoning_tokens:B.tokens.reasoning,total_tokens:le,uncached_input_tokens:B.tokens.input===null?null:Math.max(B.tokens.input-(B.tokens.cached_input??0),0),visible_output_tokens:B.tokens.output===null?null:Math.max(B.tokens.output-(B.tokens.reasoning??0),0),input_rate_usd_per_million:J?.rates.input??null,cached_input_rate_usd_per_million:J?.rates.cached??null,output_rate_usd_per_million:J?.rates.output??null,reasoning_rate_usd_per_million:J?.rates.reasoning??null,context_input_multiplier:J?.context.input??null,context_output_multiplier:J?.context.output??null,speed_cost_multiplier:J?.speedMultiplier??null,standard_cost_usd:J?.standardUsd??null,speed_uplift_usd:J?.upliftUsd??null,input_cost_usd:J?.components.input??null,cached_input_cost_usd:J?.components.cached??null,output_cost_usd:J?.components.output??null,reasoning_cost_usd:J?.components.reasoning??null,fx_rate:i==="BRL"?t?.fxRate?.rate??null:null,estimated_usd:R?U.usd:null,estimated_brl:L?U.brl:null,recorded_usd:R?U.usd:null,recorded_brl:L?U.brl:null,recorded_fx_rate:L9($)??RC(U.usd,U.brl),coverage:B.coverage,artifact_path:h.artifact_path}}),_=(h,k,P)=>Ia(d,h,k,P),p=Ji(s),g={conversation:Ji(s.filter(h=>h.entrypoint==="conversation")),task:Ji(s.filter(h=>h.entrypoint==="task")),spec:Ji(s.filter(h=>h.entrypoint==="spec")),prd:Ji(s.filter(h=>h.entrypoint==="prd"))},m=p.total,f=d.filter(h=>h.total_tokens!==null),v=f.reduce((h,k)=>h+(k.total_tokens??0),0),S=f.reduce((h,k)=>h+(k.event_count??0),0),b=[...f].sort((h,k)=>(k.total_tokens??0)-(h.total_tokens??0)).slice(0,10).reduce((h,k)=>h+(k.total_tokens??0),0);return{schema_version:2,layout_version:2,readonly:!0,legacy_effort_baseline:{cutoff:_n.cutoff,duration_ms:_n.durationMs},source:e.source,currency:i,pricing:{catalog_updated_at:t?.catalog.updated_at??null,fx_rate:i==="BRL"?t?.fxRate?.rate??null:null,conversion_applied:t!==void 0&&i==="BRL"&&t.fxRate!==null},filters:e.filters,overview:{task_count:new Set(d.flatMap(h=>h.task_id===null?[]:[h.task_id])).size,run_count:d.length,event_count:d.reduce((h,k)=>h+(k.event_count??0),0),total_tokens:m.tokens.total,estimated_usd:m.cost.usd,estimated_brl:m.cost.brl,recorded_usd:xC(s.map(h=>a.get(h.id)?.usage.total.cost.usd??null)),recorded_brl:xC(s.map(h=>a.get(h.id)?.usage.total.cost.brl??null)),average_run_cost_usd:dy(d.map(h=>h.estimated_usd)),average_run_cost_brl:dy(d.map(h=>h.estimated_brl)),average_run_duration_ms:AC(pc(d).map(h=>h.duration_ms)),known_tokens_per_cycle:S===0?null:v/S,top_10_token_share:v===0?null:b/v,coverage:m.coverage},filters_available:{providers:Yr(d.map(h=>L_(h.provider))),agents:Yr(d.map(h=>h.agent_name)),models:Yr(d.map(h=>h.model)),statuses:Yr(d.map(h=>h.task_status)),priorities:Yr(d.map(h=>h.priority)),risks:Yr(d.map(h=>h.risk)),phases:Yr(d.map(h=>h.phase)),origins:Yr(d.map(h=>h.origin)),work_types:Yr(d.map(h=>h.work_type))},configured_agents:r,usage:p,origins:g,prds:OC(e.prds,s),specs:OC(e.specs,s),runs:[...d].sort((h,k)=>k.started_at.localeCompare(h.started_at)),groups:{conversations:Ia(d,h=>h.conversation_id,void 0,"all_invocations"),tasks:wC(e.tasks,d),providers:_(h=>L_(h.provider)),agents:SC(_(h=>h.agent_name),r),models:_(h=>h.model),daily:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"day")??k.slice(0,10)},void 0,"all_invocations"),e.tasks,"day"),monthly:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"month")??k.slice(0,7)},void 0,"all_invocations"),e.tasks,"month"),annual:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"year")??k.slice(0,4)},void 0,"all_invocations"),e.tasks,"year")}}}function my(e,t,n){let i=new Map(e.map(r=>[r.key,{...r,tasksActive:r.tasksActive??r.task_count,taskDaysActive:r.tasksActive??r.task_count,tasksCreated:0}]));for(let r of t){let o=qt(r.created_at,n);if(o===null)continue;let a=i.get(o);a!==void 0&&(a.tasksCreated=(a.tasksCreated??0)+1)}return[...i.values()]}function R9(e){return e.entrypoint==="task"&&e.phase==="conversation"?"planning":e.phase}function O9(e,t){if(e.agent==="codex")return"codex";let n=t?.agentNamesById?.[e.agent];if(n!==void 0)return n;if(e.agent==="agent-orchestrator")return t?.agentNamesByRole?.orchestrator??"zaip-agent-orchestrator";if(e.agent_name.trim()===e.agent){let i=t?.agentNamesByRole?.[e.run_role];if(i!==void 0)return i}return e.agent_name!=="codex",e.agent_name}function C9(e,t){let n=e.pricing_segments??[],i=n.length>0?n.map(m=>({provider:m.provider,model:m.model??e.effective_model??e.model,serviceTier:m.service_tier??e.service_tier??"default",usage:P9(m)})):[{provider:e.provider,model:e.effective_model??e.model,serviceTier:e.service_tier??"default",usage:$9(e.usage.total)}],r=i.map(m=>Ro({provider:m.provider==="openai"||m.provider==="anthropic"?m.provider:null,model:m.model,serviceTier:m.serviceTier,usage:m.usage,catalog:t.catalog,fxRate:null})),o=i.map(m=>Ro({provider:m.provider==="openai"||m.provider==="anthropic"?m.provider:null,model:m.model,serviceTier:"default",usage:m.usage,catalog:t.catalog,fxRate:null})),a=TC(r.map(m=>m.estimated_usd)),s=TC(o.map(m=>m.estimated_usd)),l=a,c=l===null&&s!==null,u=I9(i,t.catalog),d=N9(t.catalog,i.map(m=>m.model)),_=i.some(m=>m.serviceTier==="priority"||m.serviceTier==="fast"),p=(m,f)=>_&&!c?f:m,g=i.some(m=>d?.long_context_threshold_tokens!==null&&d?.long_context_threshold_tokens!==void 0&&(m.usage.input??0)>d.long_context_threshold_tokens);return{rates:{input:d?p(d.input_per_million_usd,d.priority_input_per_million_usd??null):null,cached:d?p(d.cached_input_per_million_usd,d.priority_cached_input_per_million_usd??null):null,output:d?p(d.output_per_million_usd,d.priority_output_per_million_usd??null):null,reasoning:d?p(d.reasoning_per_million_usd??d.output_per_million_usd,d.priority_reasoning_per_million_usd??d.priority_output_per_million_usd??null):null},context:{input:d?g?d.long_context_input_multiplier:1:null,output:d?g?d.long_context_output_multiplier:1:null},speedMultiplier:l!==null&&s!==null&&s>0?Math.round(l/s*1e3)/1e3:null,standardUsd:s,upliftUsd:l!==null&&s!==null?D_(l-s):null,components:{input:u?.input??null,cached:u?.cached??null,output:u?.output??null,reasoning:u?.reasoning??null}}}function I9(e,t){let n=0,i=0,r=0;for(let o of e){let a=CC(t,o.model);if(a===null||o.provider!==null&&o.provider!==a.provider||o.usage.input===null||o.usage.cached_input===null||o.usage.output===null)return null;let s=a.long_context_threshold_tokens!==null&&o.usage.input>a.long_context_threshold_tokens,l=o.serviceTier==="priority"||o.serviceTier==="fast",c=a.priority_input_per_million_usd,u=a.priority_output_per_million_usd,d=l&&!s&&c!==null&&c!==void 0&&u!==null&&u!==void 0,_=d&&c!==null&&c!==void 0?c:a.input_per_million_usd,p=d?a.priority_cached_input_per_million_usd??0:a.cached_input_per_million_usd??0,g=d&&u!==null&&u!==void 0?u:a.output_per_million_usd,m=s?a.long_context_input_multiplier:1,f=s?a.long_context_output_multiplier:1,v=Math.max(o.usage.input-o.usage.cached_input,0);n+=v/1e6*_*m,i+=o.usage.cached_input/1e6*p*m,r+=o.usage.output/1e6*g*f}return{input:n,cached:i,output:r,reasoning:0}}function CC(e,t){let n=t.toLowerCase();return e.models.find(i=>i.id.toLowerCase()===n||i.aliases.some(r=>r.toLowerCase()===n))??null}function N9(e,t){let n=t.map(r=>CC(e,r));if(n.some(r=>r===null))return null;let i=n[0];return!i||n.some(r=>r?.id!==i.id)?null:i}function P9(e){return{input:e.input_tokens,cached_input:e.cached_input_tokens,output:e.output_tokens,reasoning:e.reasoning_tokens,total:e.total_tokens,source:"provider_reported"}}function $9(e){return{input:e.tokens.input,cached_input:e.tokens.cached_input,output:e.tokens.output,reasoning:e.tokens.reasoning,total:e.tokens.total,source:"provider_reported"}}function TC(e){return e.length===0||e.some(t=>t===null)?null:D_(e.reduce((t,n)=>t+n,0))}function xC(e){let t=e.filter(n=>n!==null);return t.length===0?null:D_(t.reduce((n,i)=>n+i,0))}function D_(e){return Math.round(e*1e6)/1e6}function RC(e,t){return e!==null&&e>0&&t!==null?D_(t/e):null}function L9(e){if(e.length===0)return null;let t=e[0]??null;return e.every(n=>n===t)?t:null}function M9(e){return typeof e.source_duration_ms=="number"&&e.source_duration_ms>=0?{duration_ms:e.source_duration_ms,duration_provenance:"observed"}:typeof e.duration_ms=="number"&&e.duration_ms>=0&&(e.duration_provenance===void 0||e.duration_provenance==="observed"||e.duration_provenance==="reconciled"||e.duration_provenance==="legacy_inferred")?{duration_ms:e.duration_ms,duration_provenance:e.duration_provenance??"legacy_inferred"}:{duration_ms:null,duration_provenance:"unavailable"}}function Ji(e){return Object.fromEntries(["conversation","planning","execution","total","new_work","rework"].map(n=>[n,D9(e.map(i=>i.usage[n]))]))}function D9(e){let t=n=>{let i=n.filter(r=>r!==null);return i.length===0?null:i.reduce((r,o)=>r+o,0)};return{events:e.reduce((n,i)=>n+i.events,0),duration_ms:t(e.map(n=>n.duration_ms??null)),tokens:{input:t(e.map(n=>n.tokens.input)),cached_input:t(e.map(n=>n.tokens.cached_input)),output:t(e.map(n=>n.tokens.output)),reasoning:t(e.map(n=>n.tokens.reasoning)),total:t(e.map(n=>IC(n.tokens)))},cost:{usd:t(e.map(n=>n.cost.usd)),brl:t(e.map(n=>n.cost.brl))},coverage:{events:e.reduce((n,i)=>n+i.coverage.events,0),tokens:e.reduce((n,i)=>n+i.coverage.tokens,0),usd:e.reduce((n,i)=>n+i.coverage.usd,0),brl:e.reduce((n,i)=>n+i.coverage.brl,0)}}}function IC(e){return e.input!==null&&e.output!==null?e.input+e.output:e.total}function OC(e,t){return e.map(n=>{let i=new Set(n.run_ids),r=t.filter(o=>i.has(o.id)||n.kind==="prd"&&o.prd_id===n.id||n.kind==="spec"&&o.spec_id===n.id);return{...n,usage:Ji(r)}})}function Yr(e){return[...new Set(e)].sort()}Oa();Zo();function Xa(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function SP(){let e=()=>({conversation:Xa(),planning:Xa(),execution:Xa(),total:Xa(),new_work:Xa(),rework:Xa()});return{conversation:e(),task:e(),spec:e(),prd:e()}}function zp(e,t,n,i){let r=(e.run_metrics??[]).map(DQ),o=r.filter(z=>{let R=qt(z.finished_at??z.started_at,"day");return R!==null&&wP(R,t.filters.from,t.filters.to)}).map(MQ),a=t.schema_version===2?M_({...t,tasks:t.tasks??[],runs:o},void 0):null,s=z=>z.filter(R=>{let L=R.key.trim().toLowerCase();return L.length>0&&!["mixed","unknown","unavailable"].includes(L)}),l=e.run_metrics!==void 0,c=e.cost_monitor_daily_duration!==void 0||e.canonical_daily_duration_ms!==void 0,u=new Map(Object.entries(jQ(e)));for(let z of Object.keys(e.cost_monitor_daily_duration??{}))u.has(z)||u.set(z,hb());if(!l&&!c)for(let z of Object.keys(Xr))u.has(z)||u.set(z,hb());let d=[...u].filter(([z])=>wP(z,t.filters.from,t.filters.to)),_=FQ(r),p=e.cost_monitor_daily_duration,g=(z,R)=>{if(p!==void 0){let L=p[z];return L===void 0?mb():{value:{known_sum:L.known_sum,unknown:L.eligible_runs-L.known_runs,complete:L.eligible_runs===L.known_runs,coverage_ratio:L.eligible_runs===0?1:L.known_runs/L.eligible_runs},population:ni(L.eligible_runs,L.known_runs)}}if(e.canonical_daily_duration_ms!==void 0){let L=e.canonical_daily_duration_ms[z];return L===void 0?mb():{value:{known_sum:L,unknown:0,complete:!0,coverage_ratio:1},population:ni(R.runs,R.runs)}}return l?_.get(z)??mb():LQ(z,R)},m=new Map((e.daily_rows??[]).map(z=>[z.key,z])),v=d.map(([z,R])=>UQ(z,R,i,g(z,R),m.get(z))),S=v.reduce((z,R)=>z+R.run_count,0),b=v.reduce((z,R)=>z+R.event_count,0),h=!c&&o.every(z=>z.usage.total.tokens.total===null)?null:fb(v.map(z=>z.total_tokens)),k=!c&&o.every(z=>z.usage.total.cost.brl===null)?null:fb(v.map(z=>z.estimated_brl)),P=fb(v.map(z=>z.estimated_usd)),U=zQ(e.run_metrics??[]),$=t.summary.overview_metrics?.task_count??t.summary.task_count,B={events:S,tokens:v.reduce((z,R)=>z+R.coverage.tokens,0),usd:v.reduce((z,R)=>z+R.coverage.usd,0),brl:v.reduce((z,R)=>z+R.coverage.brl,0)};return{schema_version:2,layout_version:t.layout_version,readonly:!0,source:".agents/records",aggregate_only:!0,data_source:l||c?"run_records":"lifecycle_manifest_summary",legacy_effort_baseline:!l&&!c&&t.filters.from===null&&t.filters.to===null?{cutoff:_n.cutoff,duration_ms:_n.durationMs}:null,currency:n,pricing:{catalog_updated_at:null,fx_rate:i,conversion_applied:i!==null},filters:t.filters,overview:{task_count:$,run_count:S,event_count:b,total_tokens:h,estimated_usd:P,estimated_brl:k,recorded_usd:null,recorded_brl:null,average_run_cost_usd:S===0||P===null||B.usd!==S?null:P/S,average_run_cost_brl:S===0||k===null||B.brl!==S?null:k/S,average_run_duration_ms:U,known_tokens_per_cycle:S===0||h===null?null:h/S,top_10_token_share:null,coverage:B},filters_available:{providers:e.filters_available?.providers??a?.filters_available.providers??[],agents:e.filters_available?.agents??a?.filters_available.agents??[],models:e.filters_available?.models??a?.filters_available.models??[],statuses:e.filters_available?.statuses??a?.filters_available.statuses??[],priorities:e.filters_available?.priorities??a?.filters_available.priorities??[],risks:e.filters_available?.risks??a?.filters_available.risks??[],phases:e.filters_available?.phases??a?.filters_available.phases??[],origins:e.filters_available?.origins??a?.filters_available.origins??[],work_types:e.filters_available?.work_types??a?.filters_available.work_types??[]},configured_agents:a?.configured_agents??[],usage:e.aggregate_usage??a?.usage??Ji(o),origins:SP(),prds:a?.prds??t.prds,specs:a?.specs??t.specs,runs:[],groups:{conversations:[],tasks:[],providers:s(a?.groups.providers??[]),agents:a?.groups.agents??[],models:s(e.model_groups??a?.groups.models??[]),daily:v,monthly:kP(v,7),annual:kP(v,4)}}}function LQ(e,t){if((Xr[e]??0)>0)return Wo(e,t);if(t.duration!==void 0){let n=yb(t.runs,t.duration.unknown);return{value:t.duration,population:ni(t.runs,n)}}return{value:{known_sum:0,unknown:t.runs,complete:t.runs===0,coverage_ratio:t.runs===0?1:0},population:ni(t.runs,0)}}function hb(){let e={known_sum:0,unknown:0,complete:!0,coverage_ratio:1};return{prds:0,specs:0,tasks:0,validations:0,evidences:0,runs:0,usage:{total_tokens:e,cost:{...e,currency:"BRL"}}}}function MQ(e){let t={events:0,duration_ms:null,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},n={...t,events:e.events??0,duration_ms:e.source_duration_ms??null,tokens:{...t.tokens,input:e.input_tokens??null,cached_input:e.cached_input_tokens??null,output:e.output_tokens??null,reasoning:e.reasoning_tokens??null,total:e.total_tokens},cost:{usd:null,brl:e.currency==="BRL"?e.cost:null},coverage:{events:e.events??0,tokens:e.total_tokens===null?0:1,usd:0,brl:e.cost===null?0:1}},i=e.phase==="conversation"||e.phase==="planning"?e.phase:"execution";return{id:e.id,artifact_path:`.agents/records/runs/${e.id}`,status:e.status==="failed"||e.status==="cancelled"||e.status==="running"?e.status:"completed",phase:i,entrypoint:e.entrypoint==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:e.run_kind==="subrun"?"subagent":"orchestrator",run_kind:e.run_kind??"run",run_purpose:e.run_purpose==="observation"?"observation":"execution",requires_finalizer:!1,parent_run_id:e.parent_run_id,client:"unknown",agent:e.agent??"unknown",agent_name:e.agent_name??e.agent??"unknown",provider:e.provider??"unavailable",model:e.model??"unknown",reasoning_effort:null,effective_model:e.model??null,effective_reasoning_effort:null,effective_config_mixed:!1,call_count:null,terminal_call_count:null,failed_call_count:0,cancelled_call_count:0,conversation_id:e.entrypoint==="observation"?null:e.conversation_id??e.id,execution_id:e.execution_id??null,task_id:e.task_id,spec_id:e.spec_id??null,prd_id:e.prd_id??null,change_id:e.change_id??null,started_at:e.started_at,finished_at:e.finished_at,duration_ms:e.duration_ms,source_duration_ms:e.source_duration_ms??null,...e.duration_provenance===void 0?{}:{duration_provenance:e.duration_provenance},...e.estimation_basis===void 0?{}:{estimation_basis:e.estimation_basis},usage:{conversation:i==="conversation"?n:t,planning:i==="planning"?n:t,execution:i==="execution"?n:t,total:n,new_work:n,rework:t}}}function DQ(e){let t=e.source_duration_ms??e.duration_ms,n=e.source_duration_ms!==null&&e.source_duration_ms!==void 0?"observed":e.duration_provenance??"legacy_inferred";return typeof t=="number"&&t>=0&&(n==="observed"||n==="reconciled"||n==="legacy_inferred")?{...e,duration_ms:t,duration_provenance:n,estimation_basis:null}:{...e,duration_ms:null,duration_provenance:"unavailable",estimation_basis:null}}function jQ(e){let t=[...new Map((e.run_metrics??[]).map(r=>[r.id,r])).values()];if(e.run_metrics===void 0)return e.periods.daily;let n=new Map;for(let r of t){let o=qt(r.started_at,"day");o!==null&&n.set(o,[...n.get(o)??[],r])}let i=new Set([...Object.keys(e.periods.daily),...n.keys()]);return Object.fromEntries([...i].map(r=>{let o=e.periods.daily[r]??hb(),a=n.get(r)??[],s=_b(a.map(u=>u.total_tokens)),l=_b(a.map(u=>u.cost)),c=_b(a.map(u=>u.events));return[r,{...o,runs:a.length,usage:{total_tokens:s,cost:{...l,currency:a.find(u=>u.currency!==null)?.currency??o.usage.cost.currency}},events:c}]}))}function _b(e){let t=e.filter(i=>i!==null),n=e.length-t.length;return{known_sum:t.reduce((i,r)=>i+r,0),unknown:n,complete:n===0,coverage_ratio:e.length===0?1:t.length/e.length}}function UQ(e,t,n,i,r){let o=t.usage.cost.known_sum===0&&t.usage.cost.unknown>0?null:t.usage.cost.known_sum,a=r===void 0?o:r.total_cost_brl,s=r===void 0?a!==null&&n!==null&&n>0?a/n:null:r.total_cost_usd,l=t.events?.known_sum??0,c=yb(t.runs,t.usage.total_tokens.unknown),u=yb(t.runs,t.usage.cost.unknown);return{key:e,label:e,latest_started_at:`${e}T23:59:59.999-03:00`,run_count:t.runs,task_count:t.tasks,tasksCreated:t.tasks,tasksActive:t.tasks,taskDaysActive:t.tasks,prd_count:t.prds,spec_count:t.specs,evidence_count:t.evidences,test_count:t.validations,event_count:l,total_tokens:t.usage.total_tokens.known_sum===0&&t.usage.total_tokens.unknown>0?null:t.usage.total_tokens.known_sum,estimated_usd:s,estimated_brl:a,duration_ms:i.population.known_runs>0?i.value.known_sum:null,duration:i.value,coverage:{events:t.runs,tokens:c,usd:u,brl:u},coverage_counts:{source:"period_summary",granularity:t.events===void 0?"unavailable":"event",events:t.events?.known_sum??null,tokens:null,usd:null,brl:null,metrics:{duration:i.population,tokens:ni(t.runs,c),usd:ni(t.runs,u),brl:ni(t.runs,u)}}}}function kP(e,t){let n=new Map;for(let i of e){let r=i.key.slice(0,t);n.set(r,[...n.get(r)??[],i])}return[...n].map(([i,r])=>{let o=r[0],a=r.reduce((d,_)=>d+_.duration.known_sum,0),s=r.reduce((d,_)=>d+_.duration.unknown,0),l=r.reduce((d,_)=>d+(_.coverage_counts?.metrics?.duration?.eligible_runs??0),0),c=r.reduce((d,_)=>d+(_.coverage_counts?.metrics?.duration?.known_runs??0),0),u=r.reduce((d,_)=>d+_.run_count,0);return{...o,key:i,label:i,latest_started_at:r.map(d=>d.latest_started_at).sort().at(-1)??o.latest_started_at,run_count:u,task_count:r.reduce((d,_)=>d+(_.task_count??0),0),tasksCreated:r.reduce((d,_)=>d+(_.tasksCreated??0),0),tasksActive:r.reduce((d,_)=>d+(_.tasksActive??0),0),taskDaysActive:r.reduce((d,_)=>d+(_.taskDaysActive??0),0),prd_count:r.reduce((d,_)=>d+(_.prd_count??0),0),spec_count:r.reduce((d,_)=>d+(_.spec_count??0),0),evidence_count:r.reduce((d,_)=>d+(_.evidence_count??0),0),test_count:r.reduce((d,_)=>d+(_.test_count??0),0),event_count:r.reduce((d,_)=>d+_.event_count,0),total_tokens:gb(r.map(d=>d.total_tokens)),estimated_usd:gb(r.map(d=>d.estimated_usd)),estimated_brl:gb(r.map(d=>d.estimated_brl)),duration_ms:s===0?a:null,duration:{known_sum:a,unknown:s,complete:s===0,coverage_ratio:l===0?1:c/l},coverage:{events:r.reduce((d,_)=>d+_.coverage.events,0),tokens:r.reduce((d,_)=>d+_.coverage.tokens,0),usd:r.reduce((d,_)=>d+_.coverage.usd,0),brl:r.reduce((d,_)=>d+_.coverage.brl,0)},...o.coverage_counts===void 0?{}:{coverage_counts:{...o.coverage_counts,metrics:{duration:ni(l,c),tokens:pb(r,"tokens"),usd:pb(r,"usd"),brl:pb(r,"brl")}}}}}).sort((i,r)=>r.key.localeCompare(i.key))}function pb(e,t){let n=e.map(i=>i.coverage_counts?.metrics?.[t]);return ni(n.reduce((i,r)=>i+(r?.eligible_runs??0),0),n.reduce((i,r)=>i+(r?.known_runs??0),0))}function FQ(e){return Bc(e)}function zQ(e){let t=e.filter(n=>n.phase==="execution"&&n.parent_run_id==null&&P_(n.duration_started_at??n.started_at)&&n.duration_ms!==null&&n.duration_ms>=0);return t.length===0?null:t.reduce((n,i)=>n+i.duration_ms,0)/t.length}function mb(){return{value:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},population:ni(0,0)}}function wP(e,t,n){let i=a=>a===null?null:/^\d{4}-\d{2}-\d{2}$/.test(a)?a:qt(a,"day"),r=i(t),o=i(n);return(r===null||e>=r)&&(o===null||e<=o)}function fb(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function gb(e){return e.some(t=>t===null)?null:e.reduce((t,n)=>t+(n??0),0)}function yb(e,t){return Math.max(0,e-t)}function ni(e,t){return{eligible_runs:e,known_runs:t,unknown_runs:e-t}}Dn();function xt(e){let t=e.req.query("from")??null,n=e.req.query("to")??null;return{from:EP(t,"start"),to:EP(n,"end")}}function EP(e,t){if(e===null||!/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let n=AP(e);if(t==="start")return new Date(n).toISOString();let[i,r,o]=e.split("-").map(Number),a=new Date(Date.UTC(i,r-1,o+1)).toISOString().slice(0,10);return new Date(AP(a)-1).toISOString()}function AP(e){let[t,n,i]=e.split("-").map(Number),r=Date.UTC(t,n-1,i),o=r-TP(r);return o=r-TP(o),o}function TP(e){let n=new Intl.DateTimeFormat("en-US",{timeZone:"America/Sao_Paulo",timeZoneName:"longOffset"}).formatToParts(new Date(e)).find(o=>o.type==="timeZoneName")?.value??"GMT",i=/^GMT([+-])(\d{2}):(\d{2})$/.exec(n);if(i===null)return 0;let r=Number(i[2])*60+Number(i[3]);return(i[1]==="+"?1:-1)*r*6e4}Dn();Zo();function qp(e,t){let n=new Map(e.map(i=>[i.id,i]));for(let i of t.map(r=>xP(r,t))){let r=n.get(i.id);if(r===void 0){n.set(i.id,i);continue}n.set(i.id,{...i,...r,usage:qQ(r.usage,i.usage),provider:r.provider??i.provider,model:r.model==="unknown"?i.model:r.model,reasoning_effort:r.reasoning_effort??i.reasoning_effort,service_tier:r.service_tier??i.service_tier??null,call_count:r.call_count??i.call_count,terminal_call_count:r.terminal_call_count??i.terminal_call_count,...(r.pricing_segments?.length??0)>0?{pricing_segments:r.pricing_segments}:i.pricing_segments===void 0?{}:{pricing_segments:i.pricing_segments},...r.duration_ms!==null&&(r.source_duration_ms===null||r.source_duration_ms===0)?{duration_ms:r.duration_ms,source_duration_ms:null,source_started_at:null,source_finished_at:null,capture_lag_ms:null}:VQ(r)})}return[...n.values()]}function qQ(e,t){let n=(i,r)=>({...r,...i,tokens:{...r.tokens,...i.tokens,input:i.tokens.input??r.tokens.input,cached_input:i.tokens.cached_input??r.tokens.cached_input,output:i.tokens.output??r.tokens.output,reasoning:i.tokens.reasoning??r.tokens.reasoning,total:i.tokens.total??r.tokens.total},cost:{...r.cost,...i.cost,usd:i.cost.usd??r.cost.usd,brl:i.cost.brl??r.cost.brl}});return{conversation:n(e.conversation,t.conversation),planning:n(e.planning,t.planning),execution:n(e.execution,t.execution),total:n(e.total,t.total),new_work:n(e.new_work,t.new_work),rework:n(e.rework,t.rework)}}function VQ(e){return{duration_ms:e.duration_ms,...typeof e.source_duration_ms=="number"?{duration_provenance:"observed"}:e.duration_provenance===void 0?{}:{duration_provenance:e.duration_provenance},estimation_basis:typeof e.source_duration_ms=="number"?null:e.estimation_basis??null,source_duration_ms:e.source_duration_ms??null,source_started_at:e.source_started_at??null,source_finished_at:e.source_finished_at??null,capture_lag_ms:e.capture_lag_ms??null}}function xP(e,t){let n=Array.isArray(e.usage_segments)?e.usage_segments:[],i=d=>n.length===0||n.some(_=>!BQ(_.tokens?.[d]))?null:n.reduce((_,p)=>_+(p.tokens?.[d]??0),0),r=e.quantitative_metrics.tokens_total,o=e.quantitative_metrics.estimated_usd,a=e.quantitative_metrics.estimated_brl,s={events:e.source_event_count,tokens:{input:i("input"),cached_input:i("cached_input"),output:i("output"),reasoning:i("reasoning"),total:r.known_sum},cost:{usd:e.historical_cost?.estimated_usd??o.known_sum,brl:e.historical_cost?.estimated_brl??a.known_sum},coverage:{events:e.source_event_count,tokens:r.complete,usd:o.complete,brl:a.complete}},l={...s,events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},c=e.phase==="execution"?s:l,u=e.invocation_kind==="delegated";return{id:e.run_id,artifact_path:`.agents/records/runs/${e.run_id}`,status:e.status??"completed",phase:e.phase??"execution",entrypoint:e.purpose==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:u?"subagent":"orchestrator",run_kind:u?"subrun":"run",run_purpose:WQ(e.purpose,u),requires_finalizer:!1,parent_run_id:t.find(d=>d.agent_invocation_id===e.parent_agent_invocation_id)?.run_id??null,client:"codex",agent:e.zaip_agent??"unknown",agent_name:e.zaip_agent??"unknown",provider:n.find(d=>typeof d.provider=="string")?.provider??null,model:n.find(d=>typeof d.model=="string")?.model??"unknown",reasoning_effort:n.find(d=>typeof d.reasoning_effort=="string")?.reasoning_effort??null,effective_model:null,effective_reasoning_effort:null,effective_config_mixed:!1,service_tier:n.find(d=>typeof d.service_tier=="string")?.service_tier??null,call_count:e.llm_call_count,terminal_call_count:e.llm_call_count,failed_call_count:e.status==="failed"?e.llm_call_count:0,cancelled_call_count:e.status==="cancelled"?e.llm_call_count:0,conversation_id:e.purpose==="observation"?null:e.agent_invocation_id,execution_id:e.execution_id,task_id:e.task_id,spec_id:e.spec_id,prd_id:e.prd_id,change_id:e.change_id,started_at:e.occurred_at,finished_at:e.status===null?null:e.occurred_at,duration_ms:e.time.duration_ms,source_duration_ms:e.time.duration_ms,source_started_at:null,source_finished_at:e.time.source_latest_at,pricing_segments:n.map(d=>({phase:"execution",provider:d.provider,model:d.model,service_tier:d.service_tier,input_tokens:d.tokens?.input??null,cached_input_tokens:d.tokens?.cached_input??null,output_tokens:d.tokens?.output??null,reasoning_tokens:d.tokens?.reasoning??null,total_tokens:d.tokens?.total??null})),usage:{conversation:l,planning:l,execution:c,total:s,new_work:s,rework:l}}}function WQ(e,t){return e==="observation"||e==="intake"||e==="orchestration"||e==="execution"||e==="review"||e==="audit"||e==="finalization"?e:t?"execution":"orchestration"}function BQ(e){return typeof e=="number"&&Number.isFinite(e)}function RP(e,t,n){let i=t.trim().toLowerCase();if(!i)return[...e];let r=new Map(n.map(o=>[o.id,o.title]));return e.filter(o=>[o.id,o.task_id,o.task_id===null?null:r.get(o.task_id),o.provider,o.agent,o.agent_name,o.model,o.phase,o.spec_id,o.prd_id,o.execution_id,o.conversation_id].some(a=>a?.toLowerCase().includes(i)))}ze();Dn();function Wn(e){return e.req.query("currency")==="USD"?"USD":"BRL"}function et(e,t){let n=e.req.query(t);return n===void 0||n===""?[]:n.split(",").filter(Boolean)}async function vb(e,t){let n=new Map,i=new Map,r=1,o=!0;for(;o;){let a=await hC(e,{...t,cache:n,page:r,page_size:500});for(let s of a.summaries)ZQ(s)&&i.set(s.agent_invocation_id,s);o=a.has_more,r+=1}return[...i.values()]}function ZQ(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.agent_invocation_id=="string"&&typeof t.root_agent_invocation_id=="string"&&(t.parent_agent_invocation_id===null||typeof t.parent_agent_invocation_id=="string")&&(t.invocation_kind==="orchestrator"||t.invocation_kind==="delegated")&&typeof t.run_id=="string"&&typeof t.quantitative_metrics=="object"&&t.quantitative_metrics!==null&&typeof t.time=="object"&&t.time!==null&&Array.isArray(t.usage_segments)}async function OP(e){try{let t=Ii(Ct(await e.readText(".agents/config/agents/catalog.yaml"))).agents;return{agentNames:t.map(n=>n.codex_name),agentNamesById:Object.fromEntries(t.map(n=>[n.id,n.codex_name])),agentNamesByRole:Object.fromEntries(t.map(n=>[n.role,n.codex_name]))}}catch{return{agentNames:[],agentNamesById:{},agentNamesByRole:{}}}}Dn();async function Kc(e){return new bi(e).readLatestFxRate()}function bb(e){return["provider","model","agent","phase","status"].every(t=>(e.req.queries(t)?.length??0)===0)}var HQ=".agents/dashboard/work-priority.json";async function Qa(e,t,n,i=!1,r=!1){let o=await Gc(e,t,n,{overviewOnly:i,includeOverviewChanges:r}),a=JQ(o,await Wp(e,Bp(o)));if(i||n.from===null||n.to===null)return a;let s=await vb(e,{from:n.from,to:n.to});return s.length===0?a:Lp({...a,runs:ti(NP(a.runs,s))})}async function Wp(e,t){try{let n=Sb(JSON.parse(await e.readText(HQ)),!1);return t===void 0?n:{...n,item_ids:n.item_ids.filter(i=>t.has(i))}}catch{return{schema_version:1,item_ids:[],updated_at:null}}}function Bp(e){return new Set([...e.prds.map(t=>t.id),...e.specs.map(t=>t.id),...e.tasks.map(t=>t.id)])}function Sb(e,t=!0){let n=typeof e=="object"&&e!==null?e:{};return{schema_version:1,item_ids:Array.isArray(n.item_ids)?[...new Set(n.item_ids.filter(r=>typeof r=="string"&&r.length>0))]:[],updated_at:typeof n.updated_at=="string"&&!t?n.updated_at:new Date().toISOString()}}function JQ(e,t){let n=new Map(t.item_ids.map((r,o)=>[r,o])),i=r=>n.get(r)??null;return{...e,prds:e.prds.map(r=>({...r,manual_order:i(r.id)})),specs:e.specs.map(r=>({...r,manual_order:i(r.id)})),tasks:e.tasks.map(r=>({...r,manual_order:i(r.id)}))}}async function Ya(e,t,n){let i=new bi(e),[r,o]=await Promise.all([i.readCatalog(),n==="BRL"?i.readLatestFxRate():Promise.resolve(null)]),a=await OP(e);return M_(t,{catalog:r,fxRate:o,currency:n},a)}async function IP(e,t,n){let i=n.req.query("from")??null,r=n.req.query("to")??null;if(i===null||r===null)return Ya(e,t,Wn(n));let o={providers:et(n,"provider"),models:et(n,"model"),zaip_agents:et(n,"agent"),phases:et(n,"phase"),statuses:et(n,"status")},a=await vb(e,{from:i,to:r,filters:o});if(a.length===0)return Ya(e,t,Wn(n));let s=ti(NP(t.runs,a));return Ya(e,{...t,runs:s},Wn(n))}function NP(e,t){let n=new Set(e.map(i=>i.id));return qp(e,t.filter(i=>n.has(i.run_id)))}async function PP(e,t,n,i,r,o){let a=await KQ(e,i.from,i.to),{from:s,to:l}=a,c={providers:et(n,"provider"),models:et(n,"model"),zaip_agents:et(n,"agent"),phases:et(n,"phase"),statuses:et(n,"status")},u=c.providers.length>0||c.models.length>0||c.zaip_agents.length>0||c.statuses.length>0,[d,_]=await Promise.all([Promise.resolve().then(()=>(Zo(),bP)).then(({buildQuickOperationsProjection:k})=>k(e,t,{from:s,to:l},{includeBoardTasks:!0})),e.readText(".agents/records/lifecycle/summary.json").then(k=>JSON.parse(k))]),p=RP(_.run_metrics??[],n.req.query("query")??"",d.tasks).filter(k=>XQ(k.finished_at??k.started_at,s,l)).sort((k,P)=>(P.finished_at??P.started_at).localeCompare(k.finished_at??k.started_at)||k.id.localeCompare(P.id)),g=c.phases.length===0?p:p.filter(k=>k.phase!==null&&c.phases.includes(k.phase)),m=await ly(e,{from:s,to:l,filters:c,offset:r,limit:o,...n.req.query("query")?{runIds:new Set(g.map(k=>k.id))}:{}}),f=new Set(m.summaries.map(k=>k.run_id)),v=u?g.filter(k=>f.has(k.id)).map(CP):g.slice(r,r+o).map(CP),S=GQ(v,m.summaries),b=ti(S),h=await Ya(e,{...d,runs:b},Wn(n));return{...h,page_only:!0,overview:{...h.overview,run_count:0,event_count:0,total_tokens:null,estimated_usd:null,estimated_brl:null,recorded_usd:null,recorded_brl:null,average_run_cost_usd:null,average_run_cost_brl:null,average_run_duration_ms:null,known_tokens_per_cycle:null,top_10_token_share:null},groups:{conversations:[],tasks:[],providers:[],agents:[],models:[],daily:[],monthly:[],annual:[]},run_page:{offset:r,limit:o,total:u?null:g.length,has_more:u?m.has_more:r+o<g.length}}}function GQ(e,t){let n=new Set(e.map(o=>o.id)),i=qp(e,t.filter(o=>n.has(o.run_id))),r=new Map(i.map(o=>[o.id,o]));return e.map(o=>r.get(o.id)??o)}function CP(e){let t={events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},n={...t,events:e.events??0,tokens:{...t.tokens,total:e.total_tokens},cost:{usd:null,brl:e.currency==="BRL"?e.cost:null},coverage:{events:e.events??0,tokens:e.total_tokens===null?0:1,usd:0,brl:e.cost===null?0:1}};return{id:e.id,artifact_path:`.agents/records/runs/${e.id}`,status:e.status==="failed"||e.status==="cancelled"||e.status==="running"?e.status:"completed",phase:e.phase??"execution",entrypoint:e.entrypoint==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:e.run_kind==="subrun"?"subagent":"orchestrator",run_kind:e.run_kind??"run",run_purpose:e.run_purpose==="observation"?"observation":"execution",requires_finalizer:!1,parent_run_id:e.parent_run_id,client:"unknown",agent:e.agent??"unknown",agent_name:e.agent_name??e.agent??"unknown",provider:e.provider,model:e.model??"unknown",reasoning_effort:null,effective_model:e.model,effective_reasoning_effort:null,effective_config_mixed:!1,call_count:null,terminal_call_count:null,failed_call_count:0,cancelled_call_count:0,conversation_id:e.entrypoint==="observation"?null:e.conversation_id??e.id,execution_id:e.execution_id,task_id:e.task_id,spec_id:e.spec_id,prd_id:e.prd_id,change_id:e.change_id,started_at:e.started_at,finished_at:e.finished_at,duration_ms:e.duration_ms,source_duration_ms:e.duration_ms,usage:{conversation:t,planning:t,execution:n,total:n,new_work:n,rework:t}}}async function KQ(e,t,n){if(t!==null&&n!==null)return{from:t,to:n};let i=await e.readText(".agents/records/lifecycle/summary.json").then(l=>JSON.parse(l)),r=Object.keys(i.periods?.daily??{}).sort(),o=r.at(0),a=r.at(-1),s=new Date().toISOString().slice(0,10);return{from:Vp(t??o??s,"start"),to:Vp(n??a??s,"end")}}function XQ(e,t,n){let i=Date.parse(e),r=Date.parse(Vp(t,"start")),o=Date.parse(Vp(n,"end"));return Number.isFinite(i)&&Number.isFinite(r)&&Number.isFinite(o)&&i>=r&&i<=o}function Vp(e,t){return/^\d{4}-\d{2}-\d{2}$/.test(e)?`${e}T${t==="start"?"00:00:00.000":"23:59:59.999"}Z`:e}Zo();Qr();function kb(e){return e.map(t=>({task_id:t.task_id,duration_ms:t.total_duration_ms,total_tokens:t.total_tokens,total_cost_usd:t.total_cost_usd,cost_brl:t.total_cost_brl,run_count:t.total_run_count}))}var Xc=e=>typeof e=="number"&&Number.isFinite(e)?e:null,YQ=(e,t)=>{let n=String(t);return n==="draft"?e==="prd"?"definition":"planning":n==="ready"||n==="planned"?"ready":n==="active"?"executing":n==="delivered"?"completed":["definition","planning","executing","verifying","completed","blocked","failed","cancelled"].includes(n)?n:"planning"};function wb(e,t){let n=_=>{let p=e.map(g=>g[_]).filter(g=>typeof g=="number"&&Number.isFinite(g));return p.length===0?null:p.reduce((g,m)=>g+m,0)},i=(_,p)=>Xc(_[p])??0,r=n("total_duration"),o=n("total_tokens"),a=n("total_cost_usd"),s=n("total_cost_brl"),l={},c={empty:0,structured:0,rework:0};for(let _ of e){let p=YQ(t,_.stage??_.status);l[p]=(l[p]??0)+1;let g=i(_,"rework_run_count")>0?"rework":i(_,"task_count")>0?"structured":"empty";c[g]=(c[g]??0)+1}let u=e.map(_=>({entity_id:String(_.id),title:String(_.title??_.id),duration_ms:Xc(_.total_duration),total_tokens:Xc(_.total_tokens),total_cost_usd:Xc(_.total_cost_usd),cost_brl:Xc(_.total_cost_brl),run_count:i(_,"invocation_count")})).toSorted((_,p)=>(p.duration_ms??-1)-(_.duration_ms??-1)||_.entity_id.localeCompare(p.entity_id)).slice(0,5).map(_=>({..._,duration_share:r===null||r===0||_.duration_ms===null?0:_.duration_ms/r})),d=e.flatMap(_=>typeof _.occurred_at=="string"?[_.occurred_at]:[]).toSorted().at(-1)??null;return{status_counts:l,classification_counts:c,entity_count:e.length,total_run_count:e.reduce((_,p)=>_+i(p,"invocation_count"),0),total_duration_ms:r,total_tokens:o,total_cost_usd:a,total_cost_brl:s,average_duration_ms:r===null||e.length===0?null:r/e.length,average_tokens:o===null||e.length===0?null:o/e.length,average_cost_usd:a===null||e.length===0?null:a/e.length,average_cost_brl:s===null||e.length===0?null:s/e.length,latest_created_at:d,top_entities:u}}import{execFile as QQ}from"node:child_process";import{createHash as e8}from"node:crypto";import{resolve as LP}from"node:path";import{promisify as t8}from"node:util";var $P=".agents/dashboard/dashboard.config.json",MP=t8(QQ);async function Zp(e,t){let n=process.env.ZAIP_DASHBOARD_TITLE?.trim()||"Dashboard ZAIP AIOS",i="auto";try{if(await e.exists($P)){let r=JSON.parse(await e.readText($P));typeof r.title=="string"&&r.title.trim()&&(n=r.title.trim()),typeof r.github_repository=="string"&&(i=r.github_repository.trim())}}catch{}if(i.toLowerCase()!=="auto")return{title:n,repository_name:Eb(i)??""};try{let{stdout:r}=await MP("git",["-C",t,"remote","get-url","origin"],{encoding:"utf8",windowsHide:!0});return{title:n,repository_name:Eb(r)??""}}catch{return{title:n,repository_name:""}}}function Eb(e){let t=e.trim(),n=t.match(/github\.com(?::|\/)([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i)??t.match(/^([^/:\s]+)\/([^/\s]+?)(?:\.git)?$/);return n?`${n[1]}/${n[2]}`:null}function Ab(e){return e8("sha256").update(`${LP(e)}:dashboard-sqlite`).digest("hex").slice(0,16)}var Hp=17e4,Ho=class extends Error{constructor(){super(`Open-work reconciliation exceeded ${Hp}ms. Canonical records may contain partial changes; the dashboard projection is being refreshed.`),this.name="ReconciliationCommandTimeoutError"}};async function DP(e,t,n={}){let i=v_(t,"reconciliation"),r=n.jobId??i.correlationId;if(i.log("cli_start",{job_id:r,host_terminal_only:n.hostTerminalOnly===!0}),!await e.exists(".agents/runtime/bin/zaip.mjs"))throw i.log("cli_unavailable",{job_id:r}),new Error("ZAIP runtime is unavailable; open work could not be reconciled.");let o=LP(t,".agents","runtime","bin","zaip.mjs"),a;try{let s=await MP(process.execPath,[o,"run","reconcile","--open","--json",...n.hostTerminalOnly?["--host-terminal-only"]:[]],{cwd:t,windowsHide:!0,maxBuffer:10485760,timeout:Hp,killSignal:"SIGTERM"});a=s.stdout,i.log("cli_output",{job_id:r,stdout:a,stderr:s.stderr})}catch(s){throw i.log("cli_error",{job_id:r,error:s}),typeof s=="object"&&s!==null&&"killed"in s&&s.killed===!0?new Ho:s}try{let s=jP(JSON.parse(a));return i.log("cli_completed",{job_id:r,result:s}),s}catch(s){throw i.log("cli_invalid_result",{job_id:r,error:s,stdout:a}),s}}function jP(e){let t=new Set,n=new Map,i=new Map,r=new Map,o=(f,v,S)=>{typeof f=="string"&&typeof v=="string"&&r.set(f,{id:f,status:v,reason:typeof S=="string"?S:null})},a=(f,v,S)=>{typeof v=="string"&&f.set(v,typeof S=="string"&&S.trim()?S:null)},s=typeof e=="object"&&e!==null?e:{},l=new Set(["completed","delivered","blocked","cancelled","failed"]),c=Array.isArray(s.reconciliations)?s.reconciliations:[];for(let f of c){if(typeof f!="object"||f===null)continue;let v=f,S=v.error,b=["tasks","changes","executions","specs","prds"].flatMap(h=>Array.isArray(v[h])?v[h]:[]);for(let h of b){if(typeof h!="object"||h===null)continue;let k=h;v.status==="closed"&&l.has(k.status)&&typeof k.id=="string"&&(t.add(k.id),o(k.id,k.status,k.status_reason??S)),k.status==="blocked"?a(n,k.id,k.status_reason??S):v.status==="deferred"&&a(i,k.id,S)}}(Array.isArray(s.runs)?s.runs:[]).forEach(f=>{if(typeof f!="object"||f===null)return;let v=f,S=v.run;typeof S?.run_id=="string"&&(t.add(S.run_id),o(S.run_id,v.status??v.finished?.status,v.finished?.summary))}),(Array.isArray(s.orphaned_executions)?s.orphaned_executions:[]).forEach(f=>{a(n,f,"Execution orphaned after the reconciliation grace period.")}),(Array.isArray(s.orphaned_interaction_executions)?s.orphaned_interaction_executions:[]).forEach(f=>{a(n,f,"Interaction Execution orphaned after the reconciliation grace period.")});for(let f of["orphaned_owner_entities","orphaned_execution_entities"])for(let v of Array.isArray(s[f])?s[f]:[]){if(typeof v!="object"||v===null)continue;let S=v;typeof S.id!="string"||!l.has(S.status)||(t.add(S.id),o(S.id,S.status,S.status_reason),S.status==="blocked"&&a(n,S.id,S.status_reason))}(Array.isArray(s.reconciliation_errors)?s.reconciliation_errors:[]).forEach(f=>{if(typeof f!="object"||f===null)return;let v=f;a(i,v.run_id,v.error)}),(Array.isArray(s.unresolved_running_run_ids)?s.unresolved_running_run_ids:[]).forEach(f=>{a(i,f,"Invocation is still running.")});let m=f=>[...f.entries()].map(([v,S])=>({id:v,reason:S})).sort((v,S)=>v.id.localeCompare(S.id));return{reconciled_ids:[...t].sort(),blocked:m(n),not_reconciled:m(i),outcomes:[...r.values()].sort((f,v)=>f.id.localeCompare(v.id))}}function es(e){return e.status==="completed"?"completed":e.status==="cancelled"?"cancelled":e.status==="failed"?"failed":e.status==="blocked"?"blocked":e.is_active===!0||e.status==="executing"?"executing":e.status==="verifying"?"verifying":(e.attempt_count??0)>0||e.started_at!=null||e.execution_started===!0?"executing":e.status==="draft"?null:e.status==="planned"?"ready":null}function Jp(e,t){if(e.lifecycle_status==="cancelled")return"cancelled";if(e.lifecycle_status==="failed")return"failed";if(e.lifecycle_status==="blocked")return"blocked";if(e.lifecycle_status==="delivered"||e.lifecycle_status==="completed")return"completed";if(e.lifecycle_status==="ready")return"ready";if(e.kind==="prd"&&e.lifecycle_status==="draft")return"definition";if(e.kind==="spec"&&e.lifecycle_status==="draft")return"planning";if(e.work_status==="cancelled")return"cancelled";if(e.work_status==="failed")return"failed";if(e.work_status==="blocked")return"blocked";if(e.work_status==="completed")return"completed";if(e.is_active||t.some(n=>e.task_ids.includes(n.id)&&n.is_active))return"executing";if(e.lifecycle_status==="verifying"||e.work_status==="verifying")return"verifying";if(e.work_status==="executing"){let n=t.filter(i=>e.task_ids.includes(i.id));return n.length>0&&n.every(i=>i.status==="verifying"||i.status==="completed")?"verifying":"executing"}return e.lifecycle_status==="active"?"executing":"planning"}ze();function Gp(e){return/^\.agents\/(?:data|records)\/(?:executions\/.*\/execution\.md|changes\/.*\/change\.md|(?:changes|executions)\/.*\/decisions\/.*\.md)$/.test(e)}function Tb(e){let t=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/.exec(e)?.[1];if(t===void 0)return null;try{let n=Ct(t);return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function ts(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function dt(e){return typeof e=="string"&&e.length>0?e:null}function Yc(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function hn(e){let t=[...new Set(e.filter(n=>typeof n=="string"&&n.length>0&&n!=="unavailable"))];return t.length===0?null:t.length===1?t[0]:"mixed"}Dn();var n8=new Intl.DateTimeFormat("en",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit"});function yt(e){let t=Object.fromEntries(n8.formatToParts(new Date(e)).filter(n=>n.type!=="literal").map(n=>[n.type,n.value]));return`${t.year}-${t.month}-${t.day}`}import{existsSync as o8}from"node:fs";import{resolve as VP}from"node:path";import{DatabaseSync as WP}from"node:sqlite";import{randomUUID as r8}from"node:crypto";import{DatabaseSync as gbe}from"node:sqlite";var Kp=[["first_fold_viewport_cache","first_fold_viewport_cache:all_time"],["first_fold_all_time_cache","first_fold_all_time_cache:all_time"],["first_fold_all_time_board_cache","first_fold_all_time_board_cache:all_time"],["cost_monitor_summary_cache","cost_monitor_summary_cache:all_time"],["cost_monitor_summary_month_cache","cost_monitor_summary_month_cache:current"],["first_fold_monthly_quick_cache","first_fold_monthly_quick_cache:default"]];function UP(e,t){let n=e.prepare("SELECT payload_json FROM zaip_aios_activities WHERE payload_type=? ORDER BY recorded_at DESC LIMIT 1").get(t);if(typeof n?.payload_json!="string")return null;try{let i=JSON.parse(n.payload_json);return i!==null&&typeof i=="object"?i:null}catch{return null}}function i8(e,t,n){let i="json_extract(payload_json, '$.occurred_day_sp')",r=t&&n?` AND ${i} >= ? AND ${i} <= ?`:"",o=e.prepare(`SELECT json_extract(payload_json, '$.entity_kind') AS kind, COUNT(*) AS count
|
|
365
|
-
FROM zaip_aios_activities WHERE payload_type='work_item'${r} GROUP BY kind`).all(...t&&n?[t,n]:[]);return Object.fromEntries(o.map(a=>[a.kind,Number(a.count)]))}function FP(e,t,n=!1){let i=typeof t.from_day=="string"?t.from_day:void 0,r=typeof t.to_day=="string"?t.to_day:void 0;if(n&&(!i||!r))return!1;let o=
|
|
364
|
+
`)}finally{c!==void 0&&clearTimeout(c),o(s)}})})}function O_(e,t){let n=e.length;return{tasks:R_(e.map(i=>i.task_count),n),specs:R_(e.map(i=>i.spec_count),n),prds:R_(e.map(i=>i.prd_count),n),durationMs:R_(e.map(i=>i.duration_ms),n),tokens:VO(e.map(i=>i.total_tokens)),cost:VO(e.map(i=>t==="BRL"?i.estimated_brl:i.estimated_usd))}}function VO(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)/t.length}function R_(e,t){return t===0||e.every(n=>n===null)?null:e.reduce((n,i)=>n+(i??0),0)/t}Dn();Oa();function SC(e,t){let n=new Map(e.map(i=>[i.key,i]));for(let i of t??[])n.has(i)||n.set(i,E9(i));return[...n.values()].sort((i,r)=>r.latest_started_at.localeCompare(i.latest_started_at)||i.label.localeCompare(r.label))}function E9(e){return{key:e,label:e,latest_started_at:"",run_count:0,task_count:0,prd_count:0,spec_count:0,evidence_count:0,test_count:0,event_count:0,total_tokens:0,estimated_usd:0,estimated_brl:0,duration_ms:0,duration:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},coverage:{events:0,tokens:0,usd:0,brl:0}}}function dy(e){return e.length===0||e.some(t=>t===null)?null:e.reduce((t,n)=>t+(n??0),0)/e.length}function Ca(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function pc(e,t="all_invocations"){let n=new Map;for(let a of e)n.has(a.run_id)||n.set(a.run_id,a);let i=[...n.values()];if(t==="all_invocations")return i;let r=new Set(i.map(a=>a.run_id));return t==="all_execution"?i.filter(a=>a.phase==="execution"):i.filter(a=>a.phase==="execution"&&(a.parent_run_id===null||!r.has(a.parent_run_id)))}function $_(e,t="all_invocations"){let n=pc(e,t),i=n.filter(o=>o.duration_ms!==null),r=n.length-i.length;return{known_sum:i.reduce((o,a)=>o+a.duration_ms,0),unknown:r,complete:r===0,coverage_ratio:n.length===0?1:i.length/n.length}}function L_(e){let t=e?.trim().toLowerCase();return!t||t==="unknown"||t==="codex"?"openai":t}var A9={events:0,tokens:0,usd:0,brl:0};function wC(e,t){let n=new Map;for(let l of t)l.task_id!==null&&n.set(l.task_id,[...n.get(l.task_id)??[],l]);let i=e.filter(l=>n.has(l.id)).map(l=>EC(l,n.get(l.id)??[])),r=new Set(e.map(l=>l.id)),o=[...n].filter(([l])=>!r.has(l)).map(([l,c])=>kC(l,c)),a=t.filter(l=>l.task_id===null),s=a.length===0?[]:[kC("Sem tarefa vinculada",a)];return[...i,...o,...s].sort((l,c)=>c.latest_started_at.localeCompare(l.latest_started_at))}function kC(e,t){return{...EC({id:e,title:e,created_at:t[0]?.started_at??"",test_count:0},t),label:`Tarefa hist\xF3rica: ${e}`,latest_started_at:t.reduce((n,i)=>i.started_at>n?i.started_at:n,"")}}function EC(e,t){let n=$_(t);return{key:e.id,label:e.title,latest_started_at:e.created_at,run_count:t.length,task_count:1,tasksCreated:1,tasksActive:1,prd_count:0,spec_count:0,evidence_count:0,test_count:e.test_count??0,event_count:t.reduce((i,r)=>i+(r.event_count??0),0),total_tokens:Ca(t.map(i=>i.total_tokens)),estimated_usd:Ca(t.map(i=>i.estimated_usd)),estimated_brl:Ca(t.map(i=>i.estimated_brl)),duration_ms:n.known_sum,duration:n,coverage:t.reduce((i,r)=>({events:i.events+r.coverage.events,tokens:i.tokens+r.coverage.tokens,usd:i.usd+r.coverage.usd,brl:i.brl+r.coverage.brl}),A9),coverage_counts:{source:"run_rows",granularity:"event",events:t.reduce((i,r)=>i+r.coverage.events,0),tokens:null,usd:null,brl:null,metrics:{tokens:_y(t,i=>i.total_tokens),usd:_y(t,i=>i.estimated_usd),brl:_y(t,i=>i.estimated_brl)}}}}function _y(e,t){let n=e.filter(i=>t(i)!==null).length;return{eligible_runs:e.length,known_runs:n,unknown_runs:e.length-n}}function Ia(e,t,n=r=>r,i="all_invocations"){let r=[...new Set(e.map(t).filter(a=>a!==null))],o=new Set(pc(e,i).map(a=>a.run_id));return r.map(a=>{let s=e.filter(c=>t(c)===a),l=$_(s.filter(c=>o.has(c.run_id)),i);return{key:a,label:n(a),latest_started_at:s.reduce((c,u)=>u.started_at>c?u.started_at:c,s[0]?.started_at??""),run_count:s.length,task_count:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,tasksActive:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,taskDaysActive:new Set(s.flatMap(c=>c.task_id===null?[]:[c.task_id])).size,prd_count:0,spec_count:0,evidence_count:0,test_count:0,event_count:s.reduce((c,u)=>c+(u.event_count??0),0),total_tokens:py(s.map(c=>c.total_tokens)),estimated_usd:py(s.map(c=>c.estimated_usd)),estimated_brl:py(s.map(c=>c.estimated_brl)),duration_ms:l.known_sum,duration:l,coverage:T9(s)}}).sort(x9)}function py(e){return Ca(e)}function AC(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)/t.length}function T9(e){return e.reduce((t,n)=>({events:t.events+n.coverage.events,tokens:t.tokens+n.coverage.tokens,usd:t.usd+n.coverage.usd,brl:t.brl+n.coverage.brl}),{events:0,tokens:0,usd:0,brl:0})}function x9(e,t){return t.latest_started_at.localeCompare(e.latest_started_at)}function M_(e,t,n){if(e.schema_version!==2)throw new TypeError("Cost Monitor accepts only OperationsProjection V2");let i=t?.currency??"BRL",r=Yr(n?.agentNames??[]),o=e.runs,a=new Map(e.runs.map(h=>[h.id,h])),s=o,l=s,c=new Map(e.tasks.map(h=>[h.id,h])),d=l.map(h=>{let k=h.task_id===null?void 0:c.get(h.task_id),P=a.get(h.id),U=P?.usage.total.cost??{usd:null,brl:null},$=(P?.pricing_segments??[]).map(Q=>Q.recorded_fx_rate??RC(Q.recorded_usd??null,Q.recorded_brl??null)).filter(Q=>Q!==null),B=h.usage.total,z=B.coverage.tokens>0,R=B.coverage.usd>0,L=B.coverage.brl>0,J=t?C9(h,t):null,le=z?IC(P?.usage.total.tokens??B.tokens):null,j=M9(h);return{run_id:h.id,execution_id:h.execution_id,conversation_id:h.conversation_id,task_id:h.task_id,task_title:k?.title??h.task_id??h.conversation_id??h.id,task_status:k?.status??h.status,priority:k?.priority??"none",risk:k?.risk??"none",spec_id:h.spec_id,prd_id:h.prd_id,change_id:h.change_id,parent_run_id:h.parent_run_id,run_role:h.run_role,run_kind:h.run_kind,run_purpose:h.run_purpose,requires_finalizer:h.requires_finalizer,client:h.client,agent:h.agent,agent_name:O9(h,n),provider:L_(h.provider),model:h.effective_model??h.model,requested_model:h.model,reasoning_effort:h.reasoning_effort??null,effective_reasoning_effort:h.effective_reasoning_effort,service_tier:h.service_tier??null,call_count:h.call_count,status:h.status,phase:R9(h),origin:h.entrypoint,work_type:h.work_type,started_at:h.started_at,finished_at:h.finished_at,...j,estimation_basis:null,source_started_at:h.source_started_at??null,source_finished_at:h.source_finished_at??null,capture_lag_ms:h.capture_lag_ms??null,event_count:B.events,input_tokens:B.tokens.input,cached_input_tokens:B.tokens.cached_input,output_tokens:B.tokens.output,reasoning_tokens:B.tokens.reasoning,total_tokens:le,uncached_input_tokens:B.tokens.input===null?null:Math.max(B.tokens.input-(B.tokens.cached_input??0),0),visible_output_tokens:B.tokens.output===null?null:Math.max(B.tokens.output-(B.tokens.reasoning??0),0),input_rate_usd_per_million:J?.rates.input??null,cached_input_rate_usd_per_million:J?.rates.cached??null,output_rate_usd_per_million:J?.rates.output??null,reasoning_rate_usd_per_million:J?.rates.reasoning??null,context_input_multiplier:J?.context.input??null,context_output_multiplier:J?.context.output??null,speed_cost_multiplier:J?.speedMultiplier??null,standard_cost_usd:J?.standardUsd??null,speed_uplift_usd:J?.upliftUsd??null,input_cost_usd:J?.components.input??null,cached_input_cost_usd:J?.components.cached??null,output_cost_usd:J?.components.output??null,reasoning_cost_usd:J?.components.reasoning??null,fx_rate:i==="BRL"?t?.fxRate?.rate??null:null,estimated_usd:R?U.usd:null,estimated_brl:L?U.brl:null,recorded_usd:R?U.usd:null,recorded_brl:L?U.brl:null,recorded_fx_rate:L9($)??RC(U.usd,U.brl),coverage:B.coverage,artifact_path:h.artifact_path}}),_=(h,k,P)=>Ia(d,h,k,P),p=Ji(s),g={conversation:Ji(s.filter(h=>h.entrypoint==="conversation")),task:Ji(s.filter(h=>h.entrypoint==="task")),spec:Ji(s.filter(h=>h.entrypoint==="spec")),prd:Ji(s.filter(h=>h.entrypoint==="prd"))},m=p.total,f=d.filter(h=>h.total_tokens!==null),v=f.reduce((h,k)=>h+(k.total_tokens??0),0),S=f.reduce((h,k)=>h+(k.event_count??0),0),b=[...f].sort((h,k)=>(k.total_tokens??0)-(h.total_tokens??0)).slice(0,10).reduce((h,k)=>h+(k.total_tokens??0),0);return{schema_version:2,layout_version:2,readonly:!0,legacy_effort_baseline:{cutoff:_n.cutoff,duration_ms:_n.durationMs},source:e.source,currency:i,pricing:{catalog_updated_at:t?.catalog.updated_at??null,fx_rate:i==="BRL"?t?.fxRate?.rate??null:null,conversion_applied:t!==void 0&&i==="BRL"&&t.fxRate!==null},filters:e.filters,overview:{task_count:new Set(d.flatMap(h=>h.task_id===null?[]:[h.task_id])).size,run_count:d.length,event_count:d.reduce((h,k)=>h+(k.event_count??0),0),total_tokens:m.tokens.total,estimated_usd:m.cost.usd,estimated_brl:m.cost.brl,recorded_usd:xC(s.map(h=>a.get(h.id)?.usage.total.cost.usd??null)),recorded_brl:xC(s.map(h=>a.get(h.id)?.usage.total.cost.brl??null)),average_run_cost_usd:dy(d.map(h=>h.estimated_usd)),average_run_cost_brl:dy(d.map(h=>h.estimated_brl)),average_run_duration_ms:AC(pc(d).map(h=>h.duration_ms)),known_tokens_per_cycle:S===0?null:v/S,top_10_token_share:v===0?null:b/v,coverage:m.coverage},filters_available:{providers:Yr(d.map(h=>L_(h.provider))),agents:Yr(d.map(h=>h.agent_name)),models:Yr(d.map(h=>h.model)),statuses:Yr(d.map(h=>h.task_status)),priorities:Yr(d.map(h=>h.priority)),risks:Yr(d.map(h=>h.risk)),phases:Yr(d.map(h=>h.phase)),origins:Yr(d.map(h=>h.origin)),work_types:Yr(d.map(h=>h.work_type))},configured_agents:r,usage:p,origins:g,prds:OC(e.prds,s),specs:OC(e.specs,s),runs:[...d].sort((h,k)=>k.started_at.localeCompare(h.started_at)),groups:{conversations:Ia(d,h=>h.conversation_id,void 0,"all_invocations"),tasks:wC(e.tasks,d),providers:_(h=>L_(h.provider)),agents:SC(_(h=>h.agent_name),r),models:_(h=>h.model),daily:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"day")??k.slice(0,10)},void 0,"all_invocations"),e.tasks,"day"),monthly:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"month")??k.slice(0,7)},void 0,"all_invocations"),e.tasks,"month"),annual:my(Ia(d,h=>{let k=h.finished_at??h.started_at;return qt(k,"year")??k.slice(0,4)},void 0,"all_invocations"),e.tasks,"year")}}}function my(e,t,n){let i=new Map(e.map(r=>[r.key,{...r,tasksActive:r.tasksActive??r.task_count,taskDaysActive:r.tasksActive??r.task_count,tasksCreated:0}]));for(let r of t){let o=qt(r.created_at,n);if(o===null)continue;let a=i.get(o);a!==void 0&&(a.tasksCreated=(a.tasksCreated??0)+1)}return[...i.values()]}function R9(e){return e.entrypoint==="task"&&e.phase==="conversation"?"planning":e.phase}function O9(e,t){if(e.agent==="codex")return"codex";let n=t?.agentNamesById?.[e.agent];if(n!==void 0)return n;if(e.agent==="agent-orchestrator")return t?.agentNamesByRole?.orchestrator??"zaip-agent-orchestrator";if(e.agent_name.trim()===e.agent){let i=t?.agentNamesByRole?.[e.run_role];if(i!==void 0)return i}return e.agent_name!=="codex",e.agent_name}function C9(e,t){let n=e.pricing_segments??[],i=n.length>0?n.map(m=>({provider:m.provider,model:m.model??e.effective_model??e.model,serviceTier:m.service_tier??e.service_tier??"default",usage:P9(m)})):[{provider:e.provider,model:e.effective_model??e.model,serviceTier:e.service_tier??"default",usage:$9(e.usage.total)}],r=i.map(m=>Ro({provider:m.provider==="openai"||m.provider==="anthropic"?m.provider:null,model:m.model,serviceTier:m.serviceTier,usage:m.usage,catalog:t.catalog,fxRate:null})),o=i.map(m=>Ro({provider:m.provider==="openai"||m.provider==="anthropic"?m.provider:null,model:m.model,serviceTier:"default",usage:m.usage,catalog:t.catalog,fxRate:null})),a=TC(r.map(m=>m.estimated_usd)),s=TC(o.map(m=>m.estimated_usd)),l=a,c=l===null&&s!==null,u=I9(i,t.catalog),d=N9(t.catalog,i.map(m=>m.model)),_=i.some(m=>m.serviceTier==="priority"||m.serviceTier==="fast"),p=(m,f)=>_&&!c?f:m,g=i.some(m=>d?.long_context_threshold_tokens!==null&&d?.long_context_threshold_tokens!==void 0&&(m.usage.input??0)>d.long_context_threshold_tokens);return{rates:{input:d?p(d.input_per_million_usd,d.priority_input_per_million_usd??null):null,cached:d?p(d.cached_input_per_million_usd,d.priority_cached_input_per_million_usd??null):null,output:d?p(d.output_per_million_usd,d.priority_output_per_million_usd??null):null,reasoning:d?p(d.reasoning_per_million_usd??d.output_per_million_usd,d.priority_reasoning_per_million_usd??d.priority_output_per_million_usd??null):null},context:{input:d?g?d.long_context_input_multiplier:1:null,output:d?g?d.long_context_output_multiplier:1:null},speedMultiplier:l!==null&&s!==null&&s>0?Math.round(l/s*1e3)/1e3:null,standardUsd:s,upliftUsd:l!==null&&s!==null?D_(l-s):null,components:{input:u?.input??null,cached:u?.cached??null,output:u?.output??null,reasoning:u?.reasoning??null}}}function I9(e,t){let n=0,i=0,r=0;for(let o of e){let a=CC(t,o.model);if(a===null||o.provider!==null&&o.provider!==a.provider||o.usage.input===null||o.usage.cached_input===null||o.usage.output===null)return null;let s=a.long_context_threshold_tokens!==null&&o.usage.input>a.long_context_threshold_tokens,l=o.serviceTier==="priority"||o.serviceTier==="fast",c=a.priority_input_per_million_usd,u=a.priority_output_per_million_usd,d=l&&!s&&c!==null&&c!==void 0&&u!==null&&u!==void 0,_=d&&c!==null&&c!==void 0?c:a.input_per_million_usd,p=d?a.priority_cached_input_per_million_usd??0:a.cached_input_per_million_usd??0,g=d&&u!==null&&u!==void 0?u:a.output_per_million_usd,m=s?a.long_context_input_multiplier:1,f=s?a.long_context_output_multiplier:1,v=Math.max(o.usage.input-o.usage.cached_input,0);n+=v/1e6*_*m,i+=o.usage.cached_input/1e6*p*m,r+=o.usage.output/1e6*g*f}return{input:n,cached:i,output:r,reasoning:0}}function CC(e,t){let n=t.toLowerCase();return e.models.find(i=>i.id.toLowerCase()===n||i.aliases.some(r=>r.toLowerCase()===n))??null}function N9(e,t){let n=t.map(r=>CC(e,r));if(n.some(r=>r===null))return null;let i=n[0];return!i||n.some(r=>r?.id!==i.id)?null:i}function P9(e){return{input:e.input_tokens,cached_input:e.cached_input_tokens,output:e.output_tokens,reasoning:e.reasoning_tokens,total:e.total_tokens,source:"provider_reported"}}function $9(e){return{input:e.tokens.input,cached_input:e.tokens.cached_input,output:e.tokens.output,reasoning:e.tokens.reasoning,total:e.tokens.total,source:"provider_reported"}}function TC(e){return e.length===0||e.some(t=>t===null)?null:D_(e.reduce((t,n)=>t+n,0))}function xC(e){let t=e.filter(n=>n!==null);return t.length===0?null:D_(t.reduce((n,i)=>n+i,0))}function D_(e){return Math.round(e*1e6)/1e6}function RC(e,t){return e!==null&&e>0&&t!==null?D_(t/e):null}function L9(e){if(e.length===0)return null;let t=e[0]??null;return e.every(n=>n===t)?t:null}function M9(e){return typeof e.source_duration_ms=="number"&&e.source_duration_ms>=0?{duration_ms:e.source_duration_ms,duration_provenance:"observed"}:typeof e.duration_ms=="number"&&e.duration_ms>=0&&(e.duration_provenance===void 0||e.duration_provenance==="observed"||e.duration_provenance==="reconciled"||e.duration_provenance==="legacy_inferred")?{duration_ms:e.duration_ms,duration_provenance:e.duration_provenance??"legacy_inferred"}:{duration_ms:null,duration_provenance:"unavailable"}}function Ji(e){return Object.fromEntries(["conversation","planning","execution","total","new_work","rework"].map(n=>[n,D9(e.map(i=>i.usage[n]))]))}function D9(e){let t=n=>{let i=n.filter(r=>r!==null);return i.length===0?null:i.reduce((r,o)=>r+o,0)};return{events:e.reduce((n,i)=>n+i.events,0),duration_ms:t(e.map(n=>n.duration_ms??null)),tokens:{input:t(e.map(n=>n.tokens.input)),cached_input:t(e.map(n=>n.tokens.cached_input)),output:t(e.map(n=>n.tokens.output)),reasoning:t(e.map(n=>n.tokens.reasoning)),total:t(e.map(n=>IC(n.tokens)))},cost:{usd:t(e.map(n=>n.cost.usd)),brl:t(e.map(n=>n.cost.brl))},coverage:{events:e.reduce((n,i)=>n+i.coverage.events,0),tokens:e.reduce((n,i)=>n+i.coverage.tokens,0),usd:e.reduce((n,i)=>n+i.coverage.usd,0),brl:e.reduce((n,i)=>n+i.coverage.brl,0)}}}function IC(e){return e.input!==null&&e.output!==null?e.input+e.output:e.total}function OC(e,t){return e.map(n=>{let i=new Set(n.run_ids),r=t.filter(o=>i.has(o.id)||n.kind==="prd"&&o.prd_id===n.id||n.kind==="spec"&&o.spec_id===n.id);return{...n,usage:Ji(r)}})}function Yr(e){return[...new Set(e)].sort()}Oa();Zo();function Xa(){return{events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}}}function SP(){let e=()=>({conversation:Xa(),planning:Xa(),execution:Xa(),total:Xa(),new_work:Xa(),rework:Xa()});return{conversation:e(),task:e(),spec:e(),prd:e()}}function zp(e,t,n,i){let r=(e.run_metrics??[]).map(D8),o=r.filter(z=>{let R=qt(z.finished_at??z.started_at,"day");return R!==null&&wP(R,t.filters.from,t.filters.to)}).map(M8),a=t.schema_version===2?M_({...t,tasks:t.tasks??[],runs:o},void 0):null,s=z=>z.filter(R=>{let L=R.key.trim().toLowerCase();return L.length>0&&!["mixed","unknown","unavailable"].includes(L)}),l=e.run_metrics!==void 0,c=e.cost_monitor_daily_duration!==void 0||e.canonical_daily_duration_ms!==void 0,u=new Map(Object.entries(j8(e)));for(let z of Object.keys(e.cost_monitor_daily_duration??{}))u.has(z)||u.set(z,hb());if(!l&&!c)for(let z of Object.keys(Xr))u.has(z)||u.set(z,hb());let d=[...u].filter(([z])=>wP(z,t.filters.from,t.filters.to)),_=F8(r),p=e.cost_monitor_daily_duration,g=(z,R)=>{if(p!==void 0){let L=p[z];return L===void 0?mb():{value:{known_sum:L.known_sum,unknown:L.eligible_runs-L.known_runs,complete:L.eligible_runs===L.known_runs,coverage_ratio:L.eligible_runs===0?1:L.known_runs/L.eligible_runs},population:ni(L.eligible_runs,L.known_runs)}}if(e.canonical_daily_duration_ms!==void 0){let L=e.canonical_daily_duration_ms[z];return L===void 0?mb():{value:{known_sum:L,unknown:0,complete:!0,coverage_ratio:1},population:ni(R.runs,R.runs)}}return l?_.get(z)??mb():L8(z,R)},m=new Map((e.daily_rows??[]).map(z=>[z.key,z])),v=d.map(([z,R])=>U8(z,R,i,g(z,R),m.get(z))),S=v.reduce((z,R)=>z+R.run_count,0),b=v.reduce((z,R)=>z+R.event_count,0),h=!c&&o.every(z=>z.usage.total.tokens.total===null)?null:fb(v.map(z=>z.total_tokens)),k=!c&&o.every(z=>z.usage.total.cost.brl===null)?null:fb(v.map(z=>z.estimated_brl)),P=fb(v.map(z=>z.estimated_usd)),U=z8(e.run_metrics??[]),$=t.summary.overview_metrics?.task_count??t.summary.task_count,B={events:S,tokens:v.reduce((z,R)=>z+R.coverage.tokens,0),usd:v.reduce((z,R)=>z+R.coverage.usd,0),brl:v.reduce((z,R)=>z+R.coverage.brl,0)};return{schema_version:2,layout_version:t.layout_version,readonly:!0,source:".agents/records",aggregate_only:!0,data_source:l||c?"run_records":"lifecycle_manifest_summary",legacy_effort_baseline:!l&&!c&&t.filters.from===null&&t.filters.to===null?{cutoff:_n.cutoff,duration_ms:_n.durationMs}:null,currency:n,pricing:{catalog_updated_at:null,fx_rate:i,conversion_applied:i!==null},filters:t.filters,overview:{task_count:$,run_count:S,event_count:b,total_tokens:h,estimated_usd:P,estimated_brl:k,recorded_usd:null,recorded_brl:null,average_run_cost_usd:S===0||P===null||B.usd!==S?null:P/S,average_run_cost_brl:S===0||k===null||B.brl!==S?null:k/S,average_run_duration_ms:U,known_tokens_per_cycle:S===0||h===null?null:h/S,top_10_token_share:null,coverage:B},filters_available:{providers:e.filters_available?.providers??a?.filters_available.providers??[],agents:e.filters_available?.agents??a?.filters_available.agents??[],models:e.filters_available?.models??a?.filters_available.models??[],statuses:e.filters_available?.statuses??a?.filters_available.statuses??[],priorities:e.filters_available?.priorities??a?.filters_available.priorities??[],risks:e.filters_available?.risks??a?.filters_available.risks??[],phases:e.filters_available?.phases??a?.filters_available.phases??[],origins:e.filters_available?.origins??a?.filters_available.origins??[],work_types:e.filters_available?.work_types??a?.filters_available.work_types??[]},configured_agents:a?.configured_agents??[],usage:e.aggregate_usage??a?.usage??Ji(o),origins:SP(),prds:a?.prds??t.prds,specs:a?.specs??t.specs,runs:[],groups:{conversations:[],tasks:[],providers:s(a?.groups.providers??[]),agents:a?.groups.agents??[],models:s(e.model_groups??a?.groups.models??[]),daily:v,monthly:kP(v,7),annual:kP(v,4)}}}function L8(e,t){if((Xr[e]??0)>0)return Wo(e,t);if(t.duration!==void 0){let n=yb(t.runs,t.duration.unknown);return{value:t.duration,population:ni(t.runs,n)}}return{value:{known_sum:0,unknown:t.runs,complete:t.runs===0,coverage_ratio:t.runs===0?1:0},population:ni(t.runs,0)}}function hb(){let e={known_sum:0,unknown:0,complete:!0,coverage_ratio:1};return{prds:0,specs:0,tasks:0,validations:0,evidences:0,runs:0,usage:{total_tokens:e,cost:{...e,currency:"BRL"}}}}function M8(e){let t={events:0,duration_ms:null,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},n={...t,events:e.events??0,duration_ms:e.source_duration_ms??null,tokens:{...t.tokens,input:e.input_tokens??null,cached_input:e.cached_input_tokens??null,output:e.output_tokens??null,reasoning:e.reasoning_tokens??null,total:e.total_tokens},cost:{usd:null,brl:e.currency==="BRL"?e.cost:null},coverage:{events:e.events??0,tokens:e.total_tokens===null?0:1,usd:0,brl:e.cost===null?0:1}},i=e.phase==="conversation"||e.phase==="planning"?e.phase:"execution";return{id:e.id,artifact_path:`.agents/records/runs/${e.id}`,status:e.status==="failed"||e.status==="cancelled"||e.status==="running"?e.status:"completed",phase:i,entrypoint:e.entrypoint==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:e.run_kind==="subrun"?"subagent":"orchestrator",run_kind:e.run_kind??"run",run_purpose:e.run_purpose==="observation"?"observation":"execution",requires_finalizer:!1,parent_run_id:e.parent_run_id,client:"unknown",agent:e.agent??"unknown",agent_name:e.agent_name??e.agent??"unknown",provider:e.provider??"unavailable",model:e.model??"unknown",reasoning_effort:null,effective_model:e.model??null,effective_reasoning_effort:null,effective_config_mixed:!1,call_count:null,terminal_call_count:null,failed_call_count:0,cancelled_call_count:0,conversation_id:e.entrypoint==="observation"?null:e.conversation_id??e.id,execution_id:e.execution_id??null,task_id:e.task_id,spec_id:e.spec_id??null,prd_id:e.prd_id??null,change_id:e.change_id??null,started_at:e.started_at,finished_at:e.finished_at,duration_ms:e.duration_ms,source_duration_ms:e.source_duration_ms??null,...e.duration_provenance===void 0?{}:{duration_provenance:e.duration_provenance},...e.estimation_basis===void 0?{}:{estimation_basis:e.estimation_basis},usage:{conversation:i==="conversation"?n:t,planning:i==="planning"?n:t,execution:i==="execution"?n:t,total:n,new_work:n,rework:t}}}function D8(e){let t=e.source_duration_ms??e.duration_ms,n=e.source_duration_ms!==null&&e.source_duration_ms!==void 0?"observed":e.duration_provenance??"legacy_inferred";return typeof t=="number"&&t>=0&&(n==="observed"||n==="reconciled"||n==="legacy_inferred")?{...e,duration_ms:t,duration_provenance:n,estimation_basis:null}:{...e,duration_ms:null,duration_provenance:"unavailable",estimation_basis:null}}function j8(e){let t=[...new Map((e.run_metrics??[]).map(r=>[r.id,r])).values()];if(e.run_metrics===void 0)return e.periods.daily;let n=new Map;for(let r of t){let o=qt(r.started_at,"day");o!==null&&n.set(o,[...n.get(o)??[],r])}let i=new Set([...Object.keys(e.periods.daily),...n.keys()]);return Object.fromEntries([...i].map(r=>{let o=e.periods.daily[r]??hb(),a=n.get(r)??[],s=_b(a.map(u=>u.total_tokens)),l=_b(a.map(u=>u.cost)),c=_b(a.map(u=>u.events));return[r,{...o,runs:a.length,usage:{total_tokens:s,cost:{...l,currency:a.find(u=>u.currency!==null)?.currency??o.usage.cost.currency}},events:c}]}))}function _b(e){let t=e.filter(i=>i!==null),n=e.length-t.length;return{known_sum:t.reduce((i,r)=>i+r,0),unknown:n,complete:n===0,coverage_ratio:e.length===0?1:t.length/e.length}}function U8(e,t,n,i,r){let o=t.usage.cost.known_sum===0&&t.usage.cost.unknown>0?null:t.usage.cost.known_sum,a=r===void 0?o:r.total_cost_brl,s=r===void 0?a!==null&&n!==null&&n>0?a/n:null:r.total_cost_usd,l=t.events?.known_sum??0,c=yb(t.runs,t.usage.total_tokens.unknown),u=yb(t.runs,t.usage.cost.unknown);return{key:e,label:e,latest_started_at:`${e}T23:59:59.999-03:00`,run_count:t.runs,task_count:t.tasks,tasksCreated:t.tasks,tasksActive:t.tasks,taskDaysActive:t.tasks,prd_count:t.prds,spec_count:t.specs,evidence_count:t.evidences,test_count:t.validations,event_count:l,total_tokens:t.usage.total_tokens.known_sum===0&&t.usage.total_tokens.unknown>0?null:t.usage.total_tokens.known_sum,estimated_usd:s,estimated_brl:a,duration_ms:i.population.known_runs>0?i.value.known_sum:null,duration:i.value,coverage:{events:t.runs,tokens:c,usd:u,brl:u},coverage_counts:{source:"period_summary",granularity:t.events===void 0?"unavailable":"event",events:t.events?.known_sum??null,tokens:null,usd:null,brl:null,metrics:{duration:i.population,tokens:ni(t.runs,c),usd:ni(t.runs,u),brl:ni(t.runs,u)}}}}function kP(e,t){let n=new Map;for(let i of e){let r=i.key.slice(0,t);n.set(r,[...n.get(r)??[],i])}return[...n].map(([i,r])=>{let o=r[0],a=r.reduce((d,_)=>d+_.duration.known_sum,0),s=r.reduce((d,_)=>d+_.duration.unknown,0),l=r.reduce((d,_)=>d+(_.coverage_counts?.metrics?.duration?.eligible_runs??0),0),c=r.reduce((d,_)=>d+(_.coverage_counts?.metrics?.duration?.known_runs??0),0),u=r.reduce((d,_)=>d+_.run_count,0);return{...o,key:i,label:i,latest_started_at:r.map(d=>d.latest_started_at).sort().at(-1)??o.latest_started_at,run_count:u,task_count:r.reduce((d,_)=>d+(_.task_count??0),0),tasksCreated:r.reduce((d,_)=>d+(_.tasksCreated??0),0),tasksActive:r.reduce((d,_)=>d+(_.tasksActive??0),0),taskDaysActive:r.reduce((d,_)=>d+(_.taskDaysActive??0),0),prd_count:r.reduce((d,_)=>d+(_.prd_count??0),0),spec_count:r.reduce((d,_)=>d+(_.spec_count??0),0),evidence_count:r.reduce((d,_)=>d+(_.evidence_count??0),0),test_count:r.reduce((d,_)=>d+(_.test_count??0),0),event_count:r.reduce((d,_)=>d+_.event_count,0),total_tokens:gb(r.map(d=>d.total_tokens)),estimated_usd:gb(r.map(d=>d.estimated_usd)),estimated_brl:gb(r.map(d=>d.estimated_brl)),duration_ms:s===0?a:null,duration:{known_sum:a,unknown:s,complete:s===0,coverage_ratio:l===0?1:c/l},coverage:{events:r.reduce((d,_)=>d+_.coverage.events,0),tokens:r.reduce((d,_)=>d+_.coverage.tokens,0),usd:r.reduce((d,_)=>d+_.coverage.usd,0),brl:r.reduce((d,_)=>d+_.coverage.brl,0)},...o.coverage_counts===void 0?{}:{coverage_counts:{...o.coverage_counts,metrics:{duration:ni(l,c),tokens:pb(r,"tokens"),usd:pb(r,"usd"),brl:pb(r,"brl")}}}}}).sort((i,r)=>r.key.localeCompare(i.key))}function pb(e,t){let n=e.map(i=>i.coverage_counts?.metrics?.[t]);return ni(n.reduce((i,r)=>i+(r?.eligible_runs??0),0),n.reduce((i,r)=>i+(r?.known_runs??0),0))}function F8(e){return Bc(e)}function z8(e){let t=e.filter(n=>n.phase==="execution"&&n.parent_run_id==null&&P_(n.duration_started_at??n.started_at)&&n.duration_ms!==null&&n.duration_ms>=0);return t.length===0?null:t.reduce((n,i)=>n+i.duration_ms,0)/t.length}function mb(){return{value:{known_sum:0,unknown:0,complete:!0,coverage_ratio:1},population:ni(0,0)}}function wP(e,t,n){let i=a=>a===null?null:/^\d{4}-\d{2}-\d{2}$/.test(a)?a:qt(a,"day"),r=i(t),o=i(n);return(r===null||e>=r)&&(o===null||e<=o)}function fb(e){let t=e.filter(n=>n!==null);return t.length===0?null:t.reduce((n,i)=>n+i,0)}function gb(e){return e.some(t=>t===null)?null:e.reduce((t,n)=>t+(n??0),0)}function yb(e,t){return Math.max(0,e-t)}function ni(e,t){return{eligible_runs:e,known_runs:t,unknown_runs:e-t}}Dn();function xt(e){let t=e.req.query("from")??null,n=e.req.query("to")??null;return{from:EP(t,"start"),to:EP(n,"end")}}function EP(e,t){if(e===null||!/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let n=AP(e);if(t==="start")return new Date(n).toISOString();let[i,r,o]=e.split("-").map(Number),a=new Date(Date.UTC(i,r-1,o+1)).toISOString().slice(0,10);return new Date(AP(a)-1).toISOString()}function AP(e){let[t,n,i]=e.split("-").map(Number),r=Date.UTC(t,n-1,i),o=r-TP(r);return o=r-TP(o),o}function TP(e){let n=new Intl.DateTimeFormat("en-US",{timeZone:"America/Sao_Paulo",timeZoneName:"longOffset"}).formatToParts(new Date(e)).find(o=>o.type==="timeZoneName")?.value??"GMT",i=/^GMT([+-])(\d{2}):(\d{2})$/.exec(n);if(i===null)return 0;let r=Number(i[2])*60+Number(i[3]);return(i[1]==="+"?1:-1)*r*6e4}Dn();Zo();function qp(e,t){let n=new Map(e.map(i=>[i.id,i]));for(let i of t.map(r=>xP(r,t))){let r=n.get(i.id);if(r===void 0){n.set(i.id,i);continue}n.set(i.id,{...i,...r,usage:q8(r.usage,i.usage),provider:r.provider??i.provider,model:r.model==="unknown"?i.model:r.model,reasoning_effort:r.reasoning_effort??i.reasoning_effort,service_tier:r.service_tier??i.service_tier??null,call_count:r.call_count??i.call_count,terminal_call_count:r.terminal_call_count??i.terminal_call_count,...(r.pricing_segments?.length??0)>0?{pricing_segments:r.pricing_segments}:i.pricing_segments===void 0?{}:{pricing_segments:i.pricing_segments},...r.duration_ms!==null&&(r.source_duration_ms===null||r.source_duration_ms===0)?{duration_ms:r.duration_ms,source_duration_ms:null,source_started_at:null,source_finished_at:null,capture_lag_ms:null}:V8(r)})}return[...n.values()]}function q8(e,t){let n=(i,r)=>({...r,...i,tokens:{...r.tokens,...i.tokens,input:i.tokens.input??r.tokens.input,cached_input:i.tokens.cached_input??r.tokens.cached_input,output:i.tokens.output??r.tokens.output,reasoning:i.tokens.reasoning??r.tokens.reasoning,total:i.tokens.total??r.tokens.total},cost:{...r.cost,...i.cost,usd:i.cost.usd??r.cost.usd,brl:i.cost.brl??r.cost.brl}});return{conversation:n(e.conversation,t.conversation),planning:n(e.planning,t.planning),execution:n(e.execution,t.execution),total:n(e.total,t.total),new_work:n(e.new_work,t.new_work),rework:n(e.rework,t.rework)}}function V8(e){return{duration_ms:e.duration_ms,...typeof e.source_duration_ms=="number"?{duration_provenance:"observed"}:e.duration_provenance===void 0?{}:{duration_provenance:e.duration_provenance},estimation_basis:typeof e.source_duration_ms=="number"?null:e.estimation_basis??null,source_duration_ms:e.source_duration_ms??null,source_started_at:e.source_started_at??null,source_finished_at:e.source_finished_at??null,capture_lag_ms:e.capture_lag_ms??null}}function xP(e,t){let n=Array.isArray(e.usage_segments)?e.usage_segments:[],i=d=>n.length===0||n.some(_=>!B8(_.tokens?.[d]))?null:n.reduce((_,p)=>_+(p.tokens?.[d]??0),0),r=e.quantitative_metrics.tokens_total,o=e.quantitative_metrics.estimated_usd,a=e.quantitative_metrics.estimated_brl,s={events:e.source_event_count,tokens:{input:i("input"),cached_input:i("cached_input"),output:i("output"),reasoning:i("reasoning"),total:r.known_sum},cost:{usd:e.historical_cost?.estimated_usd??o.known_sum,brl:e.historical_cost?.estimated_brl??a.known_sum},coverage:{events:e.source_event_count,tokens:r.complete,usd:o.complete,brl:a.complete}},l={...s,events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},c=e.phase==="execution"?s:l,u=e.invocation_kind==="delegated";return{id:e.run_id,artifact_path:`.agents/records/runs/${e.run_id}`,status:e.status??"completed",phase:e.phase??"execution",entrypoint:e.purpose==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:u?"subagent":"orchestrator",run_kind:u?"subrun":"run",run_purpose:W8(e.purpose,u),requires_finalizer:!1,parent_run_id:t.find(d=>d.agent_invocation_id===e.parent_agent_invocation_id)?.run_id??null,client:"codex",agent:e.zaip_agent??"unknown",agent_name:e.zaip_agent??"unknown",provider:n.find(d=>typeof d.provider=="string")?.provider??null,model:n.find(d=>typeof d.model=="string")?.model??"unknown",reasoning_effort:n.find(d=>typeof d.reasoning_effort=="string")?.reasoning_effort??null,effective_model:null,effective_reasoning_effort:null,effective_config_mixed:!1,service_tier:n.find(d=>typeof d.service_tier=="string")?.service_tier??null,call_count:e.llm_call_count,terminal_call_count:e.llm_call_count,failed_call_count:e.status==="failed"?e.llm_call_count:0,cancelled_call_count:e.status==="cancelled"?e.llm_call_count:0,conversation_id:e.purpose==="observation"?null:e.agent_invocation_id,execution_id:e.execution_id,task_id:e.task_id,spec_id:e.spec_id,prd_id:e.prd_id,change_id:e.change_id,started_at:e.occurred_at,finished_at:e.status===null?null:e.occurred_at,duration_ms:e.time.duration_ms,source_duration_ms:e.time.duration_ms,source_started_at:null,source_finished_at:e.time.source_latest_at,pricing_segments:n.map(d=>({phase:"execution",provider:d.provider,model:d.model,service_tier:d.service_tier,input_tokens:d.tokens?.input??null,cached_input_tokens:d.tokens?.cached_input??null,output_tokens:d.tokens?.output??null,reasoning_tokens:d.tokens?.reasoning??null,total_tokens:d.tokens?.total??null})),usage:{conversation:l,planning:l,execution:c,total:s,new_work:s,rework:l}}}function W8(e,t){return e==="observation"||e==="intake"||e==="orchestration"||e==="execution"||e==="review"||e==="audit"||e==="finalization"?e:t?"execution":"orchestration"}function B8(e){return typeof e=="number"&&Number.isFinite(e)}function RP(e,t,n){let i=t.trim().toLowerCase();if(!i)return[...e];let r=new Map(n.map(o=>[o.id,o.title]));return e.filter(o=>[o.id,o.task_id,o.task_id===null?null:r.get(o.task_id),o.provider,o.agent,o.agent_name,o.model,o.phase,o.spec_id,o.prd_id,o.execution_id,o.conversation_id].some(a=>a?.toLowerCase().includes(i)))}ze();Dn();function Wn(e){return e.req.query("currency")==="USD"?"USD":"BRL"}function et(e,t){let n=e.req.query(t);return n===void 0||n===""?[]:n.split(",").filter(Boolean)}async function vb(e,t){let n=new Map,i=new Map,r=1,o=!0;for(;o;){let a=await hC(e,{...t,cache:n,page:r,page_size:500});for(let s of a.summaries)Z8(s)&&i.set(s.agent_invocation_id,s);o=a.has_more,r+=1}return[...i.values()]}function Z8(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.agent_invocation_id=="string"&&typeof t.root_agent_invocation_id=="string"&&(t.parent_agent_invocation_id===null||typeof t.parent_agent_invocation_id=="string")&&(t.invocation_kind==="orchestrator"||t.invocation_kind==="delegated")&&typeof t.run_id=="string"&&typeof t.quantitative_metrics=="object"&&t.quantitative_metrics!==null&&typeof t.time=="object"&&t.time!==null&&Array.isArray(t.usage_segments)}async function OP(e){try{let t=Ii(Ct(await e.readText(".agents/config/agents/catalog.yaml"))).agents;return{agentNames:t.map(n=>n.codex_name),agentNamesById:Object.fromEntries(t.map(n=>[n.id,n.codex_name])),agentNamesByRole:Object.fromEntries(t.map(n=>[n.role,n.codex_name]))}}catch{return{agentNames:[],agentNamesById:{},agentNamesByRole:{}}}}Dn();async function Kc(e){return new bi(e).readLatestFxRate()}function bb(e){return["provider","model","agent","phase","status"].every(t=>(e.req.queries(t)?.length??0)===0)}var H8=".agents/dashboard/work-priority.json";async function Qa(e,t,n,i=!1,r=!1){let o=await Gc(e,t,n,{overviewOnly:i,includeOverviewChanges:r}),a=J8(o,await Wp(e,Bp(o)));if(i||n.from===null||n.to===null)return a;let s=await vb(e,{from:n.from,to:n.to});return s.length===0?a:Lp({...a,runs:ti(NP(a.runs,s))})}async function Wp(e,t){try{let n=Sb(JSON.parse(await e.readText(H8)),!1);return t===void 0?n:{...n,item_ids:n.item_ids.filter(i=>t.has(i))}}catch{return{schema_version:1,item_ids:[],updated_at:null}}}function Bp(e){return new Set([...e.prds.map(t=>t.id),...e.specs.map(t=>t.id),...e.tasks.map(t=>t.id)])}function Sb(e,t=!0){let n=typeof e=="object"&&e!==null?e:{};return{schema_version:1,item_ids:Array.isArray(n.item_ids)?[...new Set(n.item_ids.filter(r=>typeof r=="string"&&r.length>0))]:[],updated_at:typeof n.updated_at=="string"&&!t?n.updated_at:new Date().toISOString()}}function J8(e,t){let n=new Map(t.item_ids.map((r,o)=>[r,o])),i=r=>n.get(r)??null;return{...e,prds:e.prds.map(r=>({...r,manual_order:i(r.id)})),specs:e.specs.map(r=>({...r,manual_order:i(r.id)})),tasks:e.tasks.map(r=>({...r,manual_order:i(r.id)}))}}async function Ya(e,t,n){let i=new bi(e),[r,o]=await Promise.all([i.readCatalog(),n==="BRL"?i.readLatestFxRate():Promise.resolve(null)]),a=await OP(e);return M_(t,{catalog:r,fxRate:o,currency:n},a)}async function IP(e,t,n){let i=n.req.query("from")??null,r=n.req.query("to")??null;if(i===null||r===null)return Ya(e,t,Wn(n));let o={providers:et(n,"provider"),models:et(n,"model"),zaip_agents:et(n,"agent"),phases:et(n,"phase"),statuses:et(n,"status")},a=await vb(e,{from:i,to:r,filters:o});if(a.length===0)return Ya(e,t,Wn(n));let s=ti(NP(t.runs,a));return Ya(e,{...t,runs:s},Wn(n))}function NP(e,t){let n=new Set(e.map(i=>i.id));return qp(e,t.filter(i=>n.has(i.run_id)))}async function PP(e,t,n,i,r,o){let a=await K8(e,i.from,i.to),{from:s,to:l}=a,c={providers:et(n,"provider"),models:et(n,"model"),zaip_agents:et(n,"agent"),phases:et(n,"phase"),statuses:et(n,"status")},u=c.providers.length>0||c.models.length>0||c.zaip_agents.length>0||c.statuses.length>0,[d,_]=await Promise.all([Promise.resolve().then(()=>(Zo(),bP)).then(({buildQuickOperationsProjection:k})=>k(e,t,{from:s,to:l},{includeBoardTasks:!0})),e.readText(".agents/records/lifecycle/summary.json").then(k=>JSON.parse(k))]),p=RP(_.run_metrics??[],n.req.query("query")??"",d.tasks).filter(k=>X8(k.finished_at??k.started_at,s,l)).sort((k,P)=>(P.finished_at??P.started_at).localeCompare(k.finished_at??k.started_at)||k.id.localeCompare(P.id)),g=c.phases.length===0?p:p.filter(k=>k.phase!==null&&c.phases.includes(k.phase)),m=await ly(e,{from:s,to:l,filters:c,offset:r,limit:o,...n.req.query("query")?{runIds:new Set(g.map(k=>k.id))}:{}}),f=new Set(m.summaries.map(k=>k.run_id)),v=u?g.filter(k=>f.has(k.id)).map(CP):g.slice(r,r+o).map(CP),S=G8(v,m.summaries),b=ti(S),h=await Ya(e,{...d,runs:b},Wn(n));return{...h,page_only:!0,overview:{...h.overview,run_count:0,event_count:0,total_tokens:null,estimated_usd:null,estimated_brl:null,recorded_usd:null,recorded_brl:null,average_run_cost_usd:null,average_run_cost_brl:null,average_run_duration_ms:null,known_tokens_per_cycle:null,top_10_token_share:null},groups:{conversations:[],tasks:[],providers:[],agents:[],models:[],daily:[],monthly:[],annual:[]},run_page:{offset:r,limit:o,total:u?null:g.length,has_more:u?m.has_more:r+o<g.length}}}function G8(e,t){let n=new Set(e.map(o=>o.id)),i=qp(e,t.filter(o=>n.has(o.run_id))),r=new Map(i.map(o=>[o.id,o]));return e.map(o=>r.get(o.id)??o)}function CP(e){let t={events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},n={...t,events:e.events??0,tokens:{...t.tokens,total:e.total_tokens},cost:{usd:null,brl:e.currency==="BRL"?e.cost:null},coverage:{events:e.events??0,tokens:e.total_tokens===null?0:1,usd:0,brl:e.cost===null?0:1}};return{id:e.id,artifact_path:`.agents/records/runs/${e.id}`,status:e.status==="failed"||e.status==="cancelled"||e.status==="running"?e.status:"completed",phase:e.phase??"execution",entrypoint:e.entrypoint==="observation"?"observation":e.task_id===null?"conversation":"task",work_type:"new",run_role:e.run_kind==="subrun"?"subagent":"orchestrator",run_kind:e.run_kind??"run",run_purpose:e.run_purpose==="observation"?"observation":"execution",requires_finalizer:!1,parent_run_id:e.parent_run_id,client:"unknown",agent:e.agent??"unknown",agent_name:e.agent_name??e.agent??"unknown",provider:e.provider,model:e.model??"unknown",reasoning_effort:null,effective_model:e.model,effective_reasoning_effort:null,effective_config_mixed:!1,call_count:null,terminal_call_count:null,failed_call_count:0,cancelled_call_count:0,conversation_id:e.entrypoint==="observation"?null:e.conversation_id??e.id,execution_id:e.execution_id,task_id:e.task_id,spec_id:e.spec_id,prd_id:e.prd_id,change_id:e.change_id,started_at:e.started_at,finished_at:e.finished_at,duration_ms:e.duration_ms,source_duration_ms:e.duration_ms,usage:{conversation:t,planning:t,execution:n,total:n,new_work:n,rework:t}}}async function K8(e,t,n){if(t!==null&&n!==null)return{from:t,to:n};let i=await e.readText(".agents/records/lifecycle/summary.json").then(l=>JSON.parse(l)),r=Object.keys(i.periods?.daily??{}).sort(),o=r.at(0),a=r.at(-1),s=new Date().toISOString().slice(0,10);return{from:Vp(t??o??s,"start"),to:Vp(n??a??s,"end")}}function X8(e,t,n){let i=Date.parse(e),r=Date.parse(Vp(t,"start")),o=Date.parse(Vp(n,"end"));return Number.isFinite(i)&&Number.isFinite(r)&&Number.isFinite(o)&&i>=r&&i<=o}function Vp(e,t){return/^\d{4}-\d{2}-\d{2}$/.test(e)?`${e}T${t==="start"?"00:00:00.000":"23:59:59.999"}Z`:e}Zo();Qr();function kb(e){return e.map(t=>({task_id:t.task_id,duration_ms:t.total_duration_ms,total_tokens:t.total_tokens,total_cost_usd:t.total_cost_usd,cost_brl:t.total_cost_brl,run_count:t.total_run_count}))}var Xc=e=>typeof e=="number"&&Number.isFinite(e)?e:null,Y8=(e,t)=>{let n=String(t);return n==="draft"?e==="prd"?"definition":"planning":n==="ready"||n==="planned"?"ready":n==="active"?"executing":n==="delivered"?"completed":["definition","planning","executing","verifying","completed","blocked","failed","cancelled"].includes(n)?n:"planning"};function wb(e,t){let n=_=>{let p=e.map(g=>g[_]).filter(g=>typeof g=="number"&&Number.isFinite(g));return p.length===0?null:p.reduce((g,m)=>g+m,0)},i=(_,p)=>Xc(_[p])??0,r=n("total_duration"),o=n("total_tokens"),a=n("total_cost_usd"),s=n("total_cost_brl"),l={},c={empty:0,structured:0,rework:0};for(let _ of e){let p=Y8(t,_.stage??_.status);l[p]=(l[p]??0)+1;let g=i(_,"rework_run_count")>0?"rework":i(_,"task_count")>0?"structured":"empty";c[g]=(c[g]??0)+1}let u=e.map(_=>({entity_id:String(_.id),title:String(_.title??_.id),duration_ms:Xc(_.total_duration),total_tokens:Xc(_.total_tokens),total_cost_usd:Xc(_.total_cost_usd),cost_brl:Xc(_.total_cost_brl),run_count:i(_,"invocation_count")})).toSorted((_,p)=>(p.duration_ms??-1)-(_.duration_ms??-1)||_.entity_id.localeCompare(p.entity_id)).slice(0,5).map(_=>({..._,duration_share:r===null||r===0||_.duration_ms===null?0:_.duration_ms/r})),d=e.flatMap(_=>typeof _.occurred_at=="string"?[_.occurred_at]:[]).toSorted().at(-1)??null;return{status_counts:l,classification_counts:c,entity_count:e.length,total_run_count:e.reduce((_,p)=>_+i(p,"invocation_count"),0),total_duration_ms:r,total_tokens:o,total_cost_usd:a,total_cost_brl:s,average_duration_ms:r===null||e.length===0?null:r/e.length,average_tokens:o===null||e.length===0?null:o/e.length,average_cost_usd:a===null||e.length===0?null:a/e.length,average_cost_brl:s===null||e.length===0?null:s/e.length,latest_created_at:d,top_entities:u}}import{execFile as Q8}from"node:child_process";import{createHash as eQ}from"node:crypto";import{resolve as LP}from"node:path";import{promisify as tQ}from"node:util";var $P=".agents/dashboard/dashboard.config.json",MP=tQ(Q8);async function Zp(e,t){let n=process.env.ZAIP_DASHBOARD_TITLE?.trim()||"Dashboard ZAIP AIOS",i="auto";try{if(await e.exists($P)){let r=JSON.parse(await e.readText($P));typeof r.title=="string"&&r.title.trim()&&(n=r.title.trim()),typeof r.github_repository=="string"&&(i=r.github_repository.trim())}}catch{}if(i.toLowerCase()!=="auto")return{title:n,repository_name:Eb(i)??""};try{let{stdout:r}=await MP("git",["-C",t,"remote","get-url","origin"],{encoding:"utf8",windowsHide:!0});return{title:n,repository_name:Eb(r)??""}}catch{return{title:n,repository_name:""}}}function Eb(e){let t=e.trim(),n=t.match(/github\.com(?::|\/)([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i)??t.match(/^([^/:\s]+)\/([^/\s]+?)(?:\.git)?$/);return n?`${n[1]}/${n[2]}`:null}function Ab(e){return eQ("sha256").update(`${LP(e)}:dashboard-sqlite`).digest("hex").slice(0,16)}var Hp=17e4,Ho=class extends Error{constructor(){super(`Open-work reconciliation exceeded ${Hp}ms. Canonical records may contain partial changes; the dashboard projection is being refreshed.`),this.name="ReconciliationCommandTimeoutError"}};async function DP(e,t,n={}){let i=v_(t,"reconciliation"),r=n.jobId??i.correlationId;if(i.log("cli_start",{job_id:r,host_terminal_only:n.hostTerminalOnly===!0}),!await e.exists(".agents/runtime/bin/zaip.mjs"))throw i.log("cli_unavailable",{job_id:r}),new Error("ZAIP runtime is unavailable; open work could not be reconciled.");let o=LP(t,".agents","runtime","bin","zaip.mjs"),a;try{let s=await MP(process.execPath,[o,"run","reconcile","--open","--json",...n.hostTerminalOnly?["--host-terminal-only"]:[]],{cwd:t,windowsHide:!0,maxBuffer:10485760,timeout:Hp,killSignal:"SIGTERM"});a=s.stdout,i.log("cli_output",{job_id:r,stdout:a,stderr:s.stderr})}catch(s){throw i.log("cli_error",{job_id:r,error:s}),typeof s=="object"&&s!==null&&"killed"in s&&s.killed===!0?new Ho:s}try{let s=jP(JSON.parse(a));return i.log("cli_completed",{job_id:r,result:s}),s}catch(s){throw i.log("cli_invalid_result",{job_id:r,error:s,stdout:a}),s}}function jP(e){let t=new Set,n=new Map,i=new Map,r=new Map,o=(f,v,S)=>{typeof f=="string"&&typeof v=="string"&&r.set(f,{id:f,status:v,reason:typeof S=="string"?S:null})},a=(f,v,S)=>{typeof v=="string"&&f.set(v,typeof S=="string"&&S.trim()?S:null)},s=typeof e=="object"&&e!==null?e:{},l=new Set(["completed","delivered","blocked","cancelled","failed"]),c=Array.isArray(s.reconciliations)?s.reconciliations:[];for(let f of c){if(typeof f!="object"||f===null)continue;let v=f,S=v.error,b=["tasks","changes","executions","specs","prds"].flatMap(h=>Array.isArray(v[h])?v[h]:[]);for(let h of b){if(typeof h!="object"||h===null)continue;let k=h;v.status==="closed"&&l.has(k.status)&&typeof k.id=="string"&&(t.add(k.id),o(k.id,k.status,k.status_reason??S)),k.status==="blocked"?a(n,k.id,k.status_reason??S):v.status==="deferred"&&a(i,k.id,S)}}(Array.isArray(s.runs)?s.runs:[]).forEach(f=>{if(typeof f!="object"||f===null)return;let v=f,S=v.run;typeof S?.run_id=="string"&&(t.add(S.run_id),o(S.run_id,v.status??v.finished?.status,v.finished?.summary))}),(Array.isArray(s.orphaned_executions)?s.orphaned_executions:[]).forEach(f=>{a(n,f,"Execution orphaned after the reconciliation grace period.")}),(Array.isArray(s.orphaned_interaction_executions)?s.orphaned_interaction_executions:[]).forEach(f=>{a(n,f,"Interaction Execution orphaned after the reconciliation grace period.")});for(let f of["orphaned_owner_entities","orphaned_execution_entities"])for(let v of Array.isArray(s[f])?s[f]:[]){if(typeof v!="object"||v===null)continue;let S=v;typeof S.id!="string"||!l.has(S.status)||(t.add(S.id),o(S.id,S.status,S.status_reason),S.status==="blocked"&&a(n,S.id,S.status_reason))}(Array.isArray(s.reconciliation_errors)?s.reconciliation_errors:[]).forEach(f=>{if(typeof f!="object"||f===null)return;let v=f;a(i,v.run_id,v.error)}),(Array.isArray(s.unresolved_running_run_ids)?s.unresolved_running_run_ids:[]).forEach(f=>{a(i,f,"Invocation is still running.")});let m=f=>[...f.entries()].map(([v,S])=>({id:v,reason:S})).sort((v,S)=>v.id.localeCompare(S.id));return{reconciled_ids:[...t].sort(),blocked:m(n),not_reconciled:m(i),outcomes:[...r.values()].sort((f,v)=>f.id.localeCompare(v.id))}}function es(e){return e.status==="completed"?"completed":e.status==="cancelled"?"cancelled":e.status==="failed"?"failed":e.status==="blocked"?"blocked":e.is_active===!0||e.status==="executing"?"executing":e.status==="verifying"?"verifying":(e.attempt_count??0)>0||e.started_at!=null||e.execution_started===!0?"executing":e.status==="draft"?null:e.status==="planned"?"ready":null}function Jp(e,t){if(e.lifecycle_status==="cancelled")return"cancelled";if(e.lifecycle_status==="failed")return"failed";if(e.lifecycle_status==="blocked")return"blocked";if(e.lifecycle_status==="delivered"||e.lifecycle_status==="completed")return"completed";if(e.lifecycle_status==="ready")return"ready";if(e.kind==="prd"&&e.lifecycle_status==="draft")return"definition";if(e.kind==="spec"&&e.lifecycle_status==="draft")return"planning";if(e.work_status==="cancelled")return"cancelled";if(e.work_status==="failed")return"failed";if(e.work_status==="blocked")return"blocked";if(e.work_status==="completed")return"completed";if(e.is_active||t.some(n=>e.task_ids.includes(n.id)&&n.is_active))return"executing";if(e.lifecycle_status==="verifying"||e.work_status==="verifying")return"verifying";if(e.work_status==="executing"){let n=t.filter(i=>e.task_ids.includes(i.id));return n.length>0&&n.every(i=>i.status==="verifying"||i.status==="completed")?"verifying":"executing"}return e.lifecycle_status==="active"?"executing":"planning"}ze();function Gp(e){return/^\.agents\/(?:data|records)\/(?:executions\/.*\/execution\.md|changes\/.*\/change\.md|(?:changes|executions)\/.*\/decisions\/.*\.md)$/.test(e)}function Tb(e){let t=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/.exec(e)?.[1];if(t===void 0)return null;try{let n=Ct(t);return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function ts(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function dt(e){return typeof e=="string"&&e.length>0?e:null}function Yc(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function hn(e){let t=[...new Set(e.filter(n=>typeof n=="string"&&n.length>0&&n!=="unavailable"))];return t.length===0?null:t.length===1?t[0]:"mixed"}Dn();var nQ=new Intl.DateTimeFormat("en",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit"});function yt(e){let t=Object.fromEntries(nQ.formatToParts(new Date(e)).filter(n=>n.type!=="literal").map(n=>[n.type,n.value]));return`${t.year}-${t.month}-${t.day}`}import{existsSync as oQ}from"node:fs";import{resolve as VP}from"node:path";import{DatabaseSync as WP}from"node:sqlite";import{randomUUID as rQ}from"node:crypto";import{DatabaseSync as gbe}from"node:sqlite";var Kp=[["first_fold_viewport_cache","first_fold_viewport_cache:all_time"],["first_fold_all_time_cache","first_fold_all_time_cache:all_time"],["first_fold_all_time_board_cache","first_fold_all_time_board_cache:all_time"],["cost_monitor_summary_cache","cost_monitor_summary_cache:all_time"],["cost_monitor_summary_month_cache","cost_monitor_summary_month_cache:current"],["first_fold_monthly_quick_cache","first_fold_monthly_quick_cache:default"]];function UP(e,t){let n=e.prepare("SELECT payload_json FROM zaip_aios_activities WHERE payload_type=? ORDER BY recorded_at DESC LIMIT 1").get(t);if(typeof n?.payload_json!="string")return null;try{let i=JSON.parse(n.payload_json);return i!==null&&typeof i=="object"?i:null}catch{return null}}function iQ(e,t,n){let i="json_extract(payload_json, '$.occurred_day_sp')",r=t&&n?` AND ${i} >= ? AND ${i} <= ?`:"",o=e.prepare(`SELECT json_extract(payload_json, '$.entity_kind') AS kind, COUNT(*) AS count
|
|
365
|
+
FROM zaip_aios_activities WHERE payload_type='work_item'${r} GROUP BY kind`).all(...t&&n?[t,n]:[]);return Object.fromEntries(o.map(a=>[a.kind,Number(a.count)]))}function FP(e,t,n=!1){let i=typeof t.from_day=="string"?t.from_day:void 0,r=typeof t.to_day=="string"?t.to_day:void 0;if(n&&(!i||!r))return!1;let o=iQ(e,n?i:void 0,n?r:void 0);return["task","spec","prd"].every(a=>Array.isArray(t.pages?.[a])&&t.pages?.[a].length===(o[a]??0))}function zP(e){if(Number(e.prepare(`SELECT COUNT(DISTINCT payload_type) AS count FROM zaip_aios_activities
|
|
366
366
|
WHERE payload_type IN (${Kp.map(()=>"?").join(", ")})`).get(...Kp.map(([r])=>r)).count??0)!==Kp.length)return!1;let n=UP(e,"first_fold_all_time_board_cache"),i=UP(e,"first_fold_monthly_quick_cache");return n!==null&&i!==null&&FP(e,n)&&FP(e,i,!0)}function qP(e,t){let n=e.prepare(`INSERT INTO zaip_aios_activities(
|
|
367
367
|
activity_row_id, activity_source_kind, activity_key, source_path, source_hash,
|
|
368
368
|
recorded_at, run_role, root_run_id, payload_type, payload_json
|
|
369
|
-
) VALUES (?, 'technical_payload', ?, ?, '', datetime('now'), 'technical', 'technical', ?, ?)`);for(let[i,r]of Kp){let o=e.prepare("SELECT activity_row_id,payload_json FROM zaip_aios_activities WHERE payload_type=? AND activity_key=?").get(i,r);if(o){o.payload_json!==t[i]&&e.prepare("UPDATE zaip_aios_activities SET payload_json=?,recorded_at=datetime('now') WHERE activity_row_id=?").run(t[i],o.activity_row_id);continue}n.run(`TECH-${
|
|
370
|
-
`)).trim(),o=/\bcodex_name:\s*([^\s#]+)/.exec(i)?.[1]??null;if(o===null)continue;let a=/persona:\s*\{\s*nome:\s*([^,}\s]+),\s*cargo:\s*([^,}\s]+)\s*\}/.exec(i),s=/\brole:\s*([^\s#]+)/.exec(i)?.[1]??null,l={catalogId:r,persona:a?.[1]??null,job:a?.[2]??null,role:s},c=new Set([o,r]);for(let u of i.matchAll(/^ {8}- kind:\s*(?:id|codex_name|codex_task_name)\s*\r?\n {10}value:\s*([^\s#]+)/gm)){let d=u[1];d!==void 0&&c.add(d)}for(let u of[...c])u.startsWith("agent-")&&c.add(`zaip-${u}`);for(let u of c)n.set(u,l)}return/^ {2}- id:\s*codex\s*$/m.test(t??"")&&n.set("codex",{catalogId:"client:codex",persona:"codex",job:"client_host",role:"host"}),n}function GP(e){return e.prd_id!==null&&e.execution_id===null||e.spec_id!==null&&e.execution_id===null||e.phase==="planning"||e.purpose==="planning"?"planning":e.execution_id!==null||e.task_id!==null||e.phase==="execution"||e.purpose==="implementation"?"development":"conversation"}function yn(e,t){let n=e.map(i=>i.tokens[t]).filter(i=>typeof i=="number");return n.length===0?null:n.reduce((i,r)=>i+r,0)}function is(e,t,n){return e==="openai"||e==="anthropic"?e:e==="unavailable"||t==="unavailable"||t===null?null:I_(t,n,"")}function
|
|
369
|
+
) VALUES (?, 'technical_payload', ?, ?, '', datetime('now'), 'technical', 'technical', ?, ?)`);for(let[i,r]of Kp){let o=e.prepare("SELECT activity_row_id,payload_json FROM zaip_aios_activities WHERE payload_type=? AND activity_key=?").get(i,r);if(o){o.payload_json!==t[i]&&e.prepare("UPDATE zaip_aios_activities SET payload_json=?,recorded_at=datetime('now') WHERE activity_row_id=?").run(t[i],o.activity_row_id);continue}n.run(`TECH-${rQ().toLowerCase()}`,r,`sqlite://${i}/${r.split(":")[1]}`,i,t[i])}}var xb=".local/sqlite/zaip-aios-dashboard.sqlite",Bn="85",Qc=["zaip_aios_activities","zaip_dim_llm_model","zaip_dim_provider","zaip_dim_zaip_agent","cost_invocation_dimension_facts","cost_group_daily_projection","cost_group_entity_projection","developer_cost_projection","operations_work_projection"],ns=["zaip_activities_agent_run","zaip_activities_relationships","zaip_activities_task_day","zaip_activities_spec_day","zaip_activities_prd_day","zaip_activities_agent","zaip_activities_run_id","zaip_activities_run_hierarchy","zaip_activities_period","zaip_activities_period_invocation","zaip_activities_status","zaip_activities_payload","zaip_activities_duration_activity","zaip_activities_file_path","zaip_activities_work_item_identity","cost_dimension_facts_day_model","cost_dimension_facts_day_provider","cost_dimension_facts_invocation","cost_group_daily_projection_lookup","cost_group_entity_projection_lookup","developer_cost_projection_lookup"],el=["zaip_vw_read_model_metadata","zaip_vw_operations_overview","zaip_vw_cost_overview","zaip_vw_cost_models","zaip_vw_cost_providers","zaip_vw_operations_agent_invocations"],BP=2*36e5,Rb=48*36e5;function ri(e){return VP(process.env.ZAIP_SQLITE_DB_PATH??VP(e,xb))}function Xp(e){if(!oQ(e))return new Map;let t;try{t=new WP(e,{readOnly:!0});let n=t.prepare("SELECT source_path, source_hash, mtime_ms, ctime_ms, size_bytes, file_identity FROM zaip_vw_read_model_source_state").all();return new Map(n.flatMap(i=>{let r=typeof i.source_path=="string"?i.source_path:null,o=typeof i.source_hash=="string"?i.source_hash:null,a=typeof i.file_identity=="string"?i.file_identity:null,s=typeof i.mtime_ms=="number"?i.mtime_ms:typeof i.mtime_ms=="string"?Number(i.mtime_ms):Number.NaN,l=typeof i.ctime_ms=="number"?i.ctime_ms:typeof i.ctime_ms=="string"?Number(i.ctime_ms):Number.NaN;return r===null||o===null||a===null||!Number.isFinite(s)||!Number.isFinite(l)||typeof i.size_bytes!="number"?[]:[[r,{source:r,mtimeMs:s,ctimeMs:l,size:i.size_bytes,contentHash:o,fileIdentity:a}]]}))}catch{return new Map}finally{t?.close()}}function rs(e,t={}){let n=new WP(e,{readOnly:!0});try{let i=t.integrity==="quick"?"quick_check":"integrity_check",r=n.prepare(`PRAGMA ${i}`).get();if(r[i]!=="ok")throw new Error(`SQLite ${i} failed for ${e}: ${r[i]??"unknown"}`);let o=n.prepare("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view', 'index')").all(),a=o.filter(f=>f.type==="table").map(f=>f.name).sort(),s=[...Qc].sort();if(a.length!==s.length||a.some((f,v)=>f!==s[v]))throw new Error(`SQLite schema ${Bn} requires the complete persisted table contract; found ${a.join(", ")||"none"}`);let l=n.prepare("PRAGMA table_info(operations_work_projection)").all(),c=new Set(l.flatMap(f=>typeof f.name=="string"?[f.name]:[])),u=["task_count","rework_run_count"].filter(f=>!c.has(f));if(u.length>0)throw new Error(`SQLite schema ${Bn} requires operations_work_projection columns: ${u.join(", ")}`);let d=new Set(o.map(f=>f.name)),_=el.filter(f=>!d.has(f));if(_.length>0)throw new Error(`SQLite schema is missing required views: ${_.join(", ")}`);let p=o.filter(f=>f.type==="view").map(f=>f.name);if(p.some(f=>!f.startsWith("zaip_vw_")))throw new Error("SQLite persisted views must use the zaip_vw_ namespace");let g=ns.filter(f=>!d.has(f));if(g.length>0)throw new Error(`SQLite schema is missing required indexes: ${g.join(", ")}`);let m=n.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key = ?").get("schema_version")?.value;if(m!==Bn)throw new Error(`SQLite schema version must be ${Bn}; found ${m??"missing"}`);return{schemaVersion:m,tableCount:a.length,viewCount:p.length,indexCount:o.filter(f=>f.type==="index"&&!f.name.startsWith("sqlite_")).length}}finally{n.close()}}function Yp(e){let t=e.prepare("SELECT name FROM sqlite_master WHERE type='index'").all(),n=new Set(t.map(i=>i.name));return ns.every(i=>n.has(i))&&zP(e)}function Qp(e){let t=new Set;for(let r of e){t.add(r.startMs),t.add(r.endMs);for(let o=r.startMs;o<r.endMs;){let a=Date.parse(`${yt(new Date(o).toISOString())}T03:00:00.000Z`)+864e5;if(a>=r.endMs)break;t.add(a),o=a}}let n=[...t].sort((r,o)=>r-o),i=new Map;for(let r=0;r<n.length-1;r+=1){let o=n[r],a=n[r+1],s=e.filter(u=>u.startMs<a&&u.endMs>o);if(s.length===0||a<=o)continue;let l=(a-o)/s.length,c=yt(new Date(o).toISOString());for(let u of s){let d=`${u.activityRowId}:${c}`,_=i.get(d);i.set(d,{activityRowId:u.activityRowId,day:c,value:(_?.value??0)+l})}}return[...i.values()]}function ZP(){let e=new Intl.DateTimeFormat("en-CA",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date),t=Object.fromEntries(e.map(i=>[i.type,i.value])),n=`${t.year}-${t.month}-${t.day}`;return{from:`${t.year}-${t.month}-01`,to:n}}function HP(e){let t=[],n=[],i=[];for(let r of e){if(!Gp(r.path))continue;let o=Tb(r.content);if(o===null)continue;let a=dt(o.id),s=dt(o.created_at);if(!(a===null||s===null||Number.isNaN(Date.parse(s)))){if(/^\.agents\/(?:data|records)\/executions\/.*\/execution\.md$/.test(r.path)){let l=ts(o.origin),c=dt(l?.type),u=c==="interaction"?dt(l?.conversation_id):c==="task"?dt(l?.task_id):c==="spec"?dt(l?.spec_id):c==="prd"?dt(l?.prd_id):null;t.push({id:a,status:dt(o.status),kind:dt(o.kind),originType:c,originId:u,createdAt:s,finishedAt:dt(o.finished_at),sourcePath:r.path});continue}if(/^\.agents\/(?:data|records)\/changes\/.*\/change\.md$/.test(r.path)){let l=ts(o.source),c=dt(l?.type),u=c==="task"?dt(l?.task_id):c==="spec"?dt(l?.spec_id):c==="prd"?dt(l?.prd_id):null;if(c===null||u===null)continue;n.push({id:a,title:dt(o.title)??a,status:dt(o.status)??"unclassified",risk:dt(o.risk)??"unclassified",sourceType:c,sourceId:u,sourceSpecId:dt(l?.spec_id),sourcePrdId:dt(l?.prd_id),requirementIds:Yc(o.requirement_ids),acceptanceIds:Yc(o.acceptance_ids),taskIds:Yc(o.task_ids),result:dt(o.result),createdAt:s,sourcePath:r.path});continue}if(/^\.agents\/(?:data|records)\/(changes|executions)\/.*\/decisions\/.*\.md$/.test(r.path)){let l=o.origin,c=o.scope_type,u=dt(o.scope_id);if(l!=="human"&&l!=="agent"||c!=="change"&&c!=="execution"||u===null)continue;i.push({id:a,title:dt(o.title)??a,origin:l,scopeType:c,scopeId:u,createdAt:s,sourcePath:r.path})}}}return{executions:t,changes:n,decisions:i}}function Ob(e){let t=new Map;for(let n of e){let i=/^\.agents\/(?:data|records)\/(tasks|specs|prds|changes|executions|conversations)\//.exec(n.path);if(i===null)continue;let r=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/.exec(n.content)?.[1];if(r===void 0)continue;let o=l=>{let c=new RegExp(`^${l}:\\s*(.+?)\\s*$`,"m").exec(r)?.[1]?.trim();return c===void 0||c==="null"?null:c.replace(/^['"]|['"]$/g,"")},a=o("id");if(a===null)continue;let s=i[1]?.slice(0,-1);s!==void 0&&t.set(`${s}:${a}`,{kind:s,id:a,title:o("title"),status:o("status"),stage:s==="task"?es({status:o("status"),spec_id:o("spec_id"),started_at:o("started_at"),attempt_count:Number(o("attempt_count")??0)}):o("stage"),risk:o("risk"),priority:o("priority"),specId:o("spec_id"),prdId:o("prd_id"),changeId:o("change_id"),occurredAt:o("created_at")??o("started_at")??o("recorded_at"),creationRunId:o("creation_run_id"),completedRunId:o("completed_run_id")})}return t}function JP(e,t){let n=new Map;for(let i of(e??"").split(/^ {2}- id: /m).slice(1)){let r=i.slice(0,i.indexOf(`
|
|
370
|
+
`)).trim(),o=/\bcodex_name:\s*([^\s#]+)/.exec(i)?.[1]??null;if(o===null)continue;let a=/persona:\s*\{\s*nome:\s*([^,}\s]+),\s*cargo:\s*([^,}\s]+)\s*\}/.exec(i),s=/\brole:\s*([^\s#]+)/.exec(i)?.[1]??null,l={catalogId:r,persona:a?.[1]??null,job:a?.[2]??null,role:s},c=new Set([o,r]);for(let u of i.matchAll(/^ {8}- kind:\s*(?:id|codex_name|codex_task_name)\s*\r?\n {10}value:\s*([^\s#]+)/gm)){let d=u[1];d!==void 0&&c.add(d)}for(let u of[...c])u.startsWith("agent-")&&c.add(`zaip-${u}`);for(let u of c)n.set(u,l)}return/^ {2}- id:\s*codex\s*$/m.test(t??"")&&n.set("codex",{catalogId:"client:codex",persona:"codex",job:"client_host",role:"host"}),n}function GP(e){return e.prd_id!==null&&e.execution_id===null||e.spec_id!==null&&e.execution_id===null||e.phase==="planning"||e.purpose==="planning"?"planning":e.execution_id!==null||e.task_id!==null||e.phase==="execution"||e.purpose==="implementation"?"development":"conversation"}function yn(e,t){let n=e.map(i=>i.tokens[t]).filter(i=>typeof i=="number");return n.length===0?null:n.reduce((i,r)=>i+r,0)}function is(e,t,n){return e==="openai"||e==="anthropic"?e:e==="unavailable"||t==="unavailable"||t===null?null:I_(t,n,"")}function aQ(e){return typeof e.duration_ms=="number"&&(e.duration_provenance==="observed"||e.duration_provenance==="reconciled"||e.duration_provenance==="legacy_inferred")}function sQ(e){let t=e.flatMap(r=>{let o=r.source_started_at,a=r.source_finished_at,s=typeof o=="string"?Date.parse(o):Number.NaN,l=typeof a=="string"?Date.parse(a):Number.NaN;return typeof o=="string"&&typeof a=="string"&&Number.isFinite(s)&&Number.isFinite(l)&&l>s&&l-s<=Rb?[{start:o,end:a,startMs:s,endMs:l}]:[]});if(t.length===0)return null;let n=t.reduce((r,o)=>o.startMs<r.startMs?o:r),i=t.reduce((r,o)=>o.endMs>r.endMs?o:r);return i.endMs-n.startMs<=Rb?{start:n.start,end:i.end,duration:i.endMs-n.startMs}:null}function KP(e,t){let n=sQ(e);if(n!==null)return{source:n.duration,effective:n.duration,provenance:"reconciled",sourceStartedAt:n.start,sourceFinishedAt:n.end};if(typeof t.finished?.duration_ms=="number"&&t.finished.duration_provenance!=="estimated"&&t.finished.duration_provenance!=="unavailable")return{source:t.finished.duration_ms,effective:t.finished.duration_ms,provenance:t.finished.duration_provenance??"observed",sourceStartedAt:null,sourceFinishedAt:null};let i=e.filter(aQ);if(i.length>0){let a=i.reduce((l,c)=>l+(c.duration_ms??0),0),s=hn(i.map(l=>l.duration_provenance))??"observed";return{source:a,effective:a,provenance:s,sourceStartedAt:null,sourceFinishedAt:null}}let r=Date.parse(t.run.occurred_at),o=typeof t.finished?.occurred_at=="string"?Date.parse(t.finished.occurred_at):Number.NaN;return Number.isFinite(r)&&Number.isFinite(o)&&o>r&&o-r<=BP?{source:null,effective:o-r,provenance:"reconciled",sourceStartedAt:null,sourceFinishedAt:null}:{source:null,effective:null,provenance:null,sourceStartedAt:null,sourceFinishedAt:null}}function XP(e){return e.flatMap(t=>{try{return[To.parse(JSON.parse(t.content))]}catch{return[]}}).sort((t,n)=>n.as_of.localeCompare(t.as_of))[0]??null}function em(e,t,n,i){let r=0,o=0,a=!1,s=!1,l=!1,c=[],u=[];for(let _ of e){if(typeof _.cost.usd=="number"&&(r+=_.cost.usd,a=!0),typeof _.cost.brl=="number"&&(o+=_.cost.brl,s=!0),typeof _.cost.usd=="number"&&typeof _.cost.brl=="number"||_.tokens.total===null)continue;if(_.tokens.total===0){a=!0,s=!0;continue}let p=_.model??t.run.model;if(p===null||p==="unavailable")continue;let g=Ro({provider:is(_.provider,p,t.run.client),model:p,usage:_.tokens,catalog:n,fxRate:i,serviceTier:_.runtime?.service_tier??null});typeof _.cost.usd!="number"&&g.estimated_usd!==null&&(r+=g.estimated_usd,a=!0,l=!0),typeof _.cost.brl!="number"&&g.estimated_brl!==null&&(o+=g.estimated_brl,s=!0,l=!0),g.pricing_model!==null&&c.push(g.pricing_model),g.pricing_source!==null&&u.push(g.pricing_source)}let d=yn(e,"total");return{usd:a?Math.round(r*1e6)/1e6:null,brl:s?Math.round(o*1e6)/1e6:null,method:d===0?"zero_no_llm_usage":l?"token_pricing_estimate":a||s?"canonical_recorded":null,pricingModel:hn(c),pricingSource:hn(u),fxRate:s?i?.rate??null:null}}function cQ(e,t){if(t===null)return null;let n=t.toLowerCase(),i=r=>{let o=r.toLowerCase();if(n===o)return!0;let a=n.slice(o.length);return a.startsWith("@")||a.startsWith(":")||a.startsWith("/")||/^-\d{4}-\d{2}-\d{2}(?:$|[.:@/])/.test(a)};return e.models.find(r=>i(r.id)||r.aliases.some(o=>i(o)))??null}function YP(e,t,n,i){let r=e.model??t.run.model,o=is(e.provider,r,t.run.client),a=e.runtime?.service_tier??null,s=cQ(n,r),l=r===null?null:Ro({provider:o,model:r,usage:e.tokens,catalog:n,fxRate:i,serviceTier:a}),c=r===null?null:Ro({provider:o,model:r,usage:e.tokens,catalog:n,fxRate:i,serviceTier:"default"}),u=s?.long_context_threshold_tokens!==null&&s?.long_context_threshold_tokens!==void 0&&(e.tokens.input??0)>s.long_context_threshold_tokens,d=a==="priority"||a==="fast",_=d&&!u,p=s?_?s.priority_input_per_million_usd??null:s.input_per_million_usd:null,g=s?_?s.priority_cached_input_per_million_usd??null:s.cached_input_per_million_usd:null,m=s?_?s.priority_output_per_million_usd??null:s.output_per_million_usd:null,f=s?_?s.priority_reasoning_per_million_usd??s.priority_output_per_million_usd??null:s.reasoning_per_million_usd??s.output_per_million_usd:null,v=l?.estimated_usd!==null&&l!==null?l:c,S=v?.estimated_usd??null,b=c?.estimated_usd??null,h=e.cost.usd,k=h??S,P=e.cost.brl??l?.estimated_brl??(k!==null&&i!==null?Math.round(k*i.rate*1e6)/1e6:null);return{provider:o,model:r,serviceTier:a,uncachedInputTokens:e.tokens.input===null?null:Math.max(e.tokens.input-(e.tokens.cached_input??0),0),visibleOutputTokens:e.tokens.output===null?null:Math.max(e.tokens.output-(e.tokens.reasoning??0),0),inputRate:p,cachedRate:g,outputRate:m,reasoningRate:f,contextInputMultiplier:s?u?s.long_context_input_multiplier:1:null,contextOutputMultiplier:s?u?s.long_context_output_multiplier:1:null,speedCostMultiplier:S!==null&&b!==null&&b>0?Math.round(S/b*1e3)/1e3:null,pricingScenario:d&&u?"standard_long_context_fallback":d?"priority":"standard",standardUsd:b,speedUpliftUsd:S!==null&&b!==null?Math.round((S-b)*1e6)/1e6:null,inputUsd:v?.input_usd??null,cachedInputUsd:v?.cached_input_usd??null,outputUsd:v?.output_usd??null,reasoningUsd:v?.reasoning_usd??null,calculatedUsd:S,recordedUsd:h,effectiveUsd:k,effectiveBrl:P,varianceUsd:h!==null&&S!==null?Math.round((h-S)*1e6)/1e6:null,pricingModel:v?.pricing_model??s?.id??null,pricingSource:v?.pricing_source??s?.source_label??null,fxRate:e.cost.fx_rate??i?.rate??null}}function ot(e){return e==null?null:/^\d{4}-\d{2}-\d{2}$/.test(e)?e:yt(e)}function Cb(e,t){let n=e.map(i=>i[t]).filter(i=>typeof i=="number"&&Number.isFinite(i));return n.length===0?null:n.reduce((i,r)=>i+r,0)}function QP(e,t){let n=e.includes("/artifacts/evidence/")?"evidence":e.includes("/artifacts/validations/")||e.includes("/artifacts/tests/")?"validation":null;if(n===null)return null;let i=/^---\r?\n([\s\S]*?)\r?\n---/.exec(t)?.[1]??"",r=a=>{let s=new RegExp(`^${a}:\\s*['"]?(.+?)['"]?\\s*$`,"m").exec(i)?.[1]?.trim();return s===void 0||s==="null"?null:s},o=r("observed_at")??r("executed_at")??r("created_at")??r("recorded_at");return o===null||Number.isNaN(Date.parse(o))?null:{kind:n,id:r("id")??e.slice(e.lastIndexOf("/")+1,-3),occurredAt:o,occurredDaySp:yt(o),taskId:r("task_id"),changeId:r("change_id"),runId:r("run_id")}}ze();import{DatabaseSync as Y$}from"node:sqlite";var lQ=["prd_count","spec_count","task_count","test_count","evidence_count"],tm=()=>({prd_count:0,spec_count:0,task_count:0,test_count:0,evidence_count:0});function uQ(e,t){let n=["a.payload_type IS NULL","a.run_id IS NOT NULL","a.zaip_agent IS NOT NULL"],i=[];for(let p of["from","to"])t[p]&&(n.push(`a.occurred_day_sp ${p==="from"?">=":"<="} ?`),i.push(t[p].slice(0,10)));for(let p of["agent","phase","status"])t[p]&&(n.push(`a.${p==="agent"?"zaip_agent":p}=?`),i.push(t[p]));t.risk&&(n.push("EXISTS (SELECT 1 FROM zaip_aios_activities t WHERE t.payload_type='work_item' AND json_extract(t.payload_json,'$.entity_kind')='task' AND json_extract(t.payload_json,'$.id')=a.task_id AND json_extract(t.payload_json,'$.risk')=?)"),i.push(t.risk)),(t.priority||t.workType)&&n.push("0"),t.origin&&n.push(t.origin==="prd"?"a.prd_id IS NOT NULL":t.origin==="spec"?"a.prd_id IS NULL AND a.spec_id IS NOT NULL":t.origin==="task"?"a.prd_id IS NULL AND a.spec_id IS NULL AND a.task_id IS NOT NULL":"a.prd_id IS NULL AND a.spec_id IS NULL AND a.task_id IS NULL");let r=[];for(let p of["provider","model"])t[p]&&(r.push(`COALESCE(u.${p},'unavailable')=?`),i.push(t[p]));r.length&&n.push(`EXISTS (SELECT 1 FROM invocation_usage u WHERE u.agent_invocation_id=a.agent_invocation_id AND ${r.join(" AND ")})`),t.query&&(n.push("(a.zaip_agent LIKE ? OR a.zaip_agent_persona LIKE ? OR a.zaip_agent_job LIKE ?)"),i.push(...Array(3).fill(`%${t.query}%`)));let o=e.prepare(`SELECT a.run_id, MIN(a.zaip_agent) AS agent FROM zaip_aios_activities a WHERE ${n.join(" AND ")} GROUP BY a.run_id HAVING COUNT(DISTINCT a.zaip_agent)=1`).all(...i),a=new Map(o.map(p=>[p.run_id,p.agent])),s=new Map,l=new Set,c=t.from?.slice(0,10)??"0000-01-01",u=t.to?.slice(0,10)??"9999-12-31",d=e.prepare(`WITH files AS (
|
|
371
371
|
SELECT json_extract(payload_json,'$.path') path,
|
|
372
372
|
json_extract(payload_json,'$.artifact_kind') artifact_kind,
|
|
373
373
|
json_extract(payload_json,'$.artifact_id') artifact_id,
|
|
@@ -389,7 +389,7 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
389
389
|
`).all();for(let p of d){if(!p.day||p.day<c||p.day>u)continue;let g=a.get(p.run_id);if(!g)continue;let m=`${p.kind}:${p.id}`;if(l.has(m))continue;l.add(m);let f=s.get(g)??tm(),v=`${p.kind}_count`;f[v]=(f[v]??0)+1,s.set(g,f)}let _=e.prepare(`SELECT a.zaip_agent AS agent,
|
|
390
390
|
COUNT(DISTINCT NULLIF(trim(a.task_id),'')) AS task_count
|
|
391
391
|
FROM zaip_aios_activities a WHERE ${n.join(" AND ")}
|
|
392
|
-
GROUP BY a.zaip_agent`).all(...i);for(let p of _){let g=s.get(p.agent)??tm();g.task_count=p.task_count,s.set(p.agent,g)}return s}function e$(e,t,n){let i=
|
|
392
|
+
GROUP BY a.zaip_agent`).all(...i);for(let p of _){let g=s.get(p.agent)??tm();g.task_count=p.task_count,s.set(p.agent,g)}return s}function e$(e,t,n){let i=uQ(e,t);for(let r of n.rows)r.tasks_active=r.task_count,Object.assign(r,i.get(String(r.key))??tm()),r.validation_count=r.test_count;if(n.totals){let r=tm();for(let o of i.values())for(let a of lQ)r[a]=r[a]===null||o[a]===null?null:r[a]+o[a];Object.assign(n.totals,r,{validation_count:r.test_count})}}function t$(e,t,n,i){let r=performance.now(),o=i();if(e){let a=Math.round(performance.now()-r);t(n,82,`${n}: ${a}ms.`),process.stderr.write(`${JSON.stringify({event:"dashboard_sqlite_first_fold",phase:n,elapsed_ms:a})}
|
|
393
393
|
`)}return o}function Ib(e,t){let n=performance.now(),i=t();return process.env.ZAIP_DASHBOARD_LAUNCH_PROGRESS==="1"&&process.stderr.write(`${JSON.stringify({event:"dashboard_sqlite_first_fold_query",phase:e,elapsed_ms:Math.round(performance.now()-n)})}
|
|
394
394
|
`),i}var kt=(e,t=0)=>typeof e=="number"?e:t,vt=e=>typeof e=="number"?e:null;function tl(e,t){let n=e.prepare("SELECT payload_json FROM zaip_aios_activities WHERE payload_type=? ORDER BY recorded_at DESC LIMIT 1").get(t);if(typeof n?.payload_json!="string")return null;try{return JSON.parse(n.payload_json)}catch{return null}}function r$(e){return["specs","prds"].every(t=>{let n=e.macro_metrics?.[t];if(n==null||!Number.isSafeInteger(n.entity_count)||n.entity_count<0||!n$(n.status_counts)||!n$(n.classification_counts))return!1;let i=r=>Object.values(r).reduce((o,a)=>o+a,0);return i(n.status_counts)===n.entity_count&&i(n.classification_counts)===n.entity_count})}function n$(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&Object.values(e).every(t=>Number.isSafeInteger(t)&&t>=0)}function i$(e,t,n){let i=tl(e,"first_fold_all_time_cache");if(i!==null&&r$(i))return i;let r=(c,u)=>Ib(c,u),o=n===void 0?e.prepare("SELECT * FROM zaip_vw_first_fold_overview_all_time").get():null,a=n===void 0?e.prepare("SELECT status, task_count FROM zaip_vw_first_fold_task_status_all_time").all():null,s=n===void 0?e.prepare("SELECT risk, task_count FROM zaip_vw_first_fold_task_risk_all_time").all():null,l=r("first_fold_all_time_top_tasks",()=>e.prepare("SELECT * FROM zaip_vw_first_fold_top_tasks_all_time ORDER BY rank").all());return{aggregate:n?.aggregate??{days:typeof o?.start_day=="string"&&typeof o.end_day=="string"?t():0,start_day:typeof o?.start_day=="string"?o.start_day:null,end_day:typeof o?.end_day=="string"?o.end_day:null,task_count:kt(o?.task_count),completed_task_count:kt(o?.completed_task_count),spec_count:kt(o?.spec_count),completed_spec_count:kt(o?.completed_spec_count),prd_count:kt(o?.prd_count),completed_prd_count:kt(o?.completed_prd_count),total_run_count:kt(o?.total_run_count),agent_invocation_count:kt(o?.agent_invocation_count),llm_call_count:vt(o?.llm_call_count),duration_ms:vt(o?.total_duration_ms),total_tokens:vt(o?.total_tokens),total_cost_usd:vt(o?.total_cost_usd),cost_brl:vt(o?.total_cost_brl),execution_day_count:kt(o?.execution_day_count),latest_task_created_at:typeof o?.latest_task_created_at=="string"?o.latest_task_created_at:null},task_status_counts:n?.task_status_counts??Object.fromEntries(a?.map(c=>[c.status,Number(c.task_count)])??[]),task_risk_counts:n?.task_risk_counts??Object.fromEntries(s?.map(c=>[c.risk,Number(c.task_count)])??[]),task_metrics:n?{average_duration_ms_per_task:n.aggregate.task_count===0||n.aggregate.duration_ms===null?null:n.aggregate.duration_ms/n.aggregate.task_count,average_tokens_per_task:n.aggregate.task_count===0||n.aggregate.total_tokens===null?null:n.aggregate.total_tokens/n.aggregate.task_count,average_cost_usd_per_task:n.aggregate.task_count===0||n.aggregate.total_cost_usd===null?null:n.aggregate.total_cost_usd/n.aggregate.task_count,average_cost_brl_per_task:n.aggregate.task_count===0||n.aggregate.cost_brl===null?null:n.aggregate.cost_brl/n.aggregate.task_count,latest_task_created_at:n.aggregate.latest_task_created_at}:(()=>{let c=e.prepare("SELECT * FROM zaip_vw_first_fold_task_metrics_all_time").get();return{average_duration_ms_per_task:vt(c.average_duration_ms_per_task),average_tokens_per_task:vt(c.average_tokens_per_task),average_cost_usd_per_task:vt(c.average_cost_usd_per_task),average_cost_brl_per_task:vt(c.average_cost_brl_per_task),latest_task_created_at:typeof c.latest_task_created_at=="string"?c.latest_task_created_at:null}})(),top_tasks:l,macro_metrics:Nb(e)}}function o$(e,t){let n=tl(e,"first_fold_viewport_cache");if(n!==null)return n;let i=performance.now(),r=e.prepare(`WITH totals AS (
|
|
395
395
|
SELECT SUM(CASE WHEN activity_source_kind='agent_run' THEN 1 ELSE 0 END) AS agent_invocation_count,
|
|
@@ -436,10 +436,10 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
436
436
|
)
|
|
437
437
|
SELECT totals.*, run_totals.*, duration_totals.*, bounds.*, item_totals.*, task_status.*, task_risk.*
|
|
438
438
|
FROM totals CROSS JOIN run_totals CROSS JOIN duration_totals CROSS JOIN bounds
|
|
439
|
-
CROSS JOIN item_totals CROSS JOIN task_status CROSS JOIN task_risk`).get();return process.env.ZAIP_DASHBOARD_PROFILE_FIRST_FOLD==="1"&&(t.viewport_overview=Math.round((performance.now()-i)*10)/10,console.info(JSON.stringify({event:"dashboard_first_fold_select",select:"viewport_overview",elapsed_ms:t.viewport_overview}))),{aggregate:{days:kt(r.day_count),start_day:typeof r.start_day=="string"?r.start_day:null,end_day:typeof r.end_day=="string"?r.end_day:null,task_count:kt(r.task_count),completed_task_count:kt(r.completed_task_count),spec_count:kt(r.spec_count),completed_spec_count:kt(r.completed_spec_count),prd_count:kt(r.prd_count),completed_prd_count:kt(r.completed_prd_count),total_run_count:kt(r.total_run_count),agent_invocation_count:kt(r.agent_invocation_count),llm_call_count:vt(r.llm_call_count),duration_ms:vt(r.total_duration_ms),total_tokens:vt(r.total_tokens),total_cost_usd:vt(r.total_cost_usd),cost_brl:vt(r.total_cost_brl),execution_day_count:kt(r.execution_day_count),latest_task_created_at:typeof r.latest_task_created_at=="string"?r.latest_task_created_at:null},task_status_counts:typeof r.task_status_json=="string"?JSON.parse(r.task_status_json):{},task_risk_counts:typeof r.task_risk_json=="string"?JSON.parse(r.task_risk_json):{}}}function a$(e,t){return tl(e,"first_fold_all_time_board_cache")??t()}function s$(e){return e.prepare("SELECT * FROM zaip_vw_first_fold_top_tasks_all_time ORDER BY rank").all()}function c$(e,t,n){let i=t;if(i===void 0){let u=tl(e,"first_fold_monthly_quick_cache");i=u!==null&&typeof u.from_day=="string"&&typeof u.to_day=="string"&&u.aggregate!==void 0&&u.pages!==void 0&&Array.isArray(u.top_tasks)?u:null}if(i===null)return{cache:i,result:null};let r=n.from?.slice(0,10)??null,o=n.to?.slice(0,10)??null,a=r===i.from_day&&o===i.to_day,s=r===i.from_day&&o!==null&&o>i.to_day&&o.slice(0,7)===i.from_day.slice(0,7),l=i.source_latest_day===null||i.source_latest_day<=i.to_day;if(a||s&&l)return{cache:i,result:i};let c=i.source_latest_day===null?i.from_day.slice(0,7):i.source_latest_day.slice(0,7);return r===null||o===null||r.slice(0,7)<=c?{cache:i,result:null}:{cache:i,result:{from_day:r,to_day:o,source_latest_day:i.source_latest_day,aggregate:{days:0,total_run_count:0,agent_invocation_count:0,llm_call_count:null,duration_ms:null,total_tokens:null,cost_brl:null,execution_day_count:0},pages:{task:[],spec:[],prd:[]},top_tasks:[]}}}function Nb(e){let t=tl(e,"first_fold_all_time_cache");if(t!==null&&r$(t))return t.macro_metrics;let n=(r,o)=>Ib(r,o),i=r=>{let o=n(`first_fold_${r}_status`,()=>e.prepare(`SELECT stage, entity_count FROM zaip_vw_first_fold_${r}_status_all_time`).all()),a=n(`first_fold_${r}_classification`,()=>e.prepare(`SELECT classification, entity_count FROM zaip_vw_first_fold_${r}_classification_all_time`).all()),s=n(`first_fold_${r}_metrics`,()=>e.prepare(`SELECT * FROM zaip_vw_first_fold_${r}_metrics_all_time`).get()),l=n(`first_fold_${r}_top_entities`,()=>e.prepare(`SELECT * FROM zaip_vw_first_fold_top_${r}s_all_time ORDER BY rank`).all());return{status_counts:Object.fromEntries(o.map(c=>[c.stage,Number(c.entity_count)])),classification_counts:Object.fromEntries(a.map(c=>[c.classification,Number(c.entity_count)])),entity_count:kt(s.entity_count),total_run_count:kt(s.total_run_count),total_duration_ms:vt(s.total_duration_ms),total_tokens:vt(s.total_tokens),total_cost_usd:vt(s.total_cost_usd),total_cost_brl:vt(s.total_cost_brl),average_duration_ms:vt(s.average_duration_ms),average_tokens:vt(s.average_tokens),average_cost_usd:vt(s.average_cost_usd),average_cost_brl:vt(s.average_cost_brl),latest_created_at:typeof s.latest_created_at=="string"?s.latest_created_at:null,top_entities:l}};return{specs:i("spec"),prds:i("prd")}}function
|
|
439
|
+
CROSS JOIN item_totals CROSS JOIN task_status CROSS JOIN task_risk`).get();return process.env.ZAIP_DASHBOARD_PROFILE_FIRST_FOLD==="1"&&(t.viewport_overview=Math.round((performance.now()-i)*10)/10,console.info(JSON.stringify({event:"dashboard_first_fold_select",select:"viewport_overview",elapsed_ms:t.viewport_overview}))),{aggregate:{days:kt(r.day_count),start_day:typeof r.start_day=="string"?r.start_day:null,end_day:typeof r.end_day=="string"?r.end_day:null,task_count:kt(r.task_count),completed_task_count:kt(r.completed_task_count),spec_count:kt(r.spec_count),completed_spec_count:kt(r.completed_spec_count),prd_count:kt(r.prd_count),completed_prd_count:kt(r.completed_prd_count),total_run_count:kt(r.total_run_count),agent_invocation_count:kt(r.agent_invocation_count),llm_call_count:vt(r.llm_call_count),duration_ms:vt(r.total_duration_ms),total_tokens:vt(r.total_tokens),total_cost_usd:vt(r.total_cost_usd),cost_brl:vt(r.total_cost_brl),execution_day_count:kt(r.execution_day_count),latest_task_created_at:typeof r.latest_task_created_at=="string"?r.latest_task_created_at:null},task_status_counts:typeof r.task_status_json=="string"?JSON.parse(r.task_status_json):{},task_risk_counts:typeof r.task_risk_json=="string"?JSON.parse(r.task_risk_json):{}}}function a$(e,t){return tl(e,"first_fold_all_time_board_cache")??t()}function s$(e){return e.prepare("SELECT * FROM zaip_vw_first_fold_top_tasks_all_time ORDER BY rank").all()}function c$(e,t,n){let i=t;if(i===void 0){let u=tl(e,"first_fold_monthly_quick_cache");i=u!==null&&typeof u.from_day=="string"&&typeof u.to_day=="string"&&u.aggregate!==void 0&&u.pages!==void 0&&Array.isArray(u.top_tasks)?u:null}if(i===null)return{cache:i,result:null};let r=n.from?.slice(0,10)??null,o=n.to?.slice(0,10)??null,a=r===i.from_day&&o===i.to_day,s=r===i.from_day&&o!==null&&o>i.to_day&&o.slice(0,7)===i.from_day.slice(0,7),l=i.source_latest_day===null||i.source_latest_day<=i.to_day;if(a||s&&l)return{cache:i,result:i};let c=i.source_latest_day===null?i.from_day.slice(0,7):i.source_latest_day.slice(0,7);return r===null||o===null||r.slice(0,7)<=c?{cache:i,result:null}:{cache:i,result:{from_day:r,to_day:o,source_latest_day:i.source_latest_day,aggregate:{days:0,total_run_count:0,agent_invocation_count:0,llm_call_count:null,duration_ms:null,total_tokens:null,cost_brl:null,execution_day_count:0},pages:{task:[],spec:[],prd:[]},top_tasks:[]}}}function Nb(e){let t=tl(e,"first_fold_all_time_cache");if(t!==null&&r$(t))return t.macro_metrics;let n=(r,o)=>Ib(r,o),i=r=>{let o=n(`first_fold_${r}_status`,()=>e.prepare(`SELECT stage, entity_count FROM zaip_vw_first_fold_${r}_status_all_time`).all()),a=n(`first_fold_${r}_classification`,()=>e.prepare(`SELECT classification, entity_count FROM zaip_vw_first_fold_${r}_classification_all_time`).all()),s=n(`first_fold_${r}_metrics`,()=>e.prepare(`SELECT * FROM zaip_vw_first_fold_${r}_metrics_all_time`).get()),l=n(`first_fold_${r}_top_entities`,()=>e.prepare(`SELECT * FROM zaip_vw_first_fold_top_${r}s_all_time ORDER BY rank`).all());return{status_counts:Object.fromEntries(o.map(c=>[c.stage,Number(c.entity_count)])),classification_counts:Object.fromEntries(a.map(c=>[c.classification,Number(c.entity_count)])),entity_count:kt(s.entity_count),total_run_count:kt(s.total_run_count),total_duration_ms:vt(s.total_duration_ms),total_tokens:vt(s.total_tokens),total_cost_usd:vt(s.total_cost_usd),total_cost_brl:vt(s.total_cost_brl),average_duration_ms:vt(s.average_duration_ms),average_tokens:vt(s.average_tokens),average_cost_usd:vt(s.average_cost_usd),average_cost_brl:vt(s.average_cost_brl),latest_created_at:typeof s.latest_created_at=="string"?s.latest_created_at:null,top_entities:l}};return{specs:i("spec"),prds:i("prd")}}function dQ(e){if(e===null||typeof e!="object")return!1;let t=e.pages;return t===null||typeof t!="object"?!1:["task","spec","prd"].every(n=>Array.isArray(t[n]))}function _Q(e,t){return t!=="task"?t:e.kind==="task"||e.kind==="standalone-task"?e.kind:typeof e.spec_id=="string"&&e.spec_id.length>0||e.origin==="spec"||e.origin==="prd"?"task":"standalone-task"}function pQ(e,t,n){if(n.kind&&n.kind!=="all"&&!(n.kind==="all-tasks"?t==="task"||t==="standalone-task":t===n.kind))return!1;if(n.query){let i=n.query.toLowerCase();if(!String(e.id??"").toLowerCase().includes(i)&&!String(e.title??"").toLowerCase().includes(i))return!1}return!(n.status&&e.stage!==n.status||n.risk&&e.risk!==n.risk||n.origin&&(t==="prd"||t==="spec"||typeof e.origin!="string")||n.origin&&e.origin!==n.origin)}function u$(e,t){if(!dQ(t)||(e.from||e.to)&&!(typeof t.from_day=="string"))return null;let n=["task","spec","prd"].flatMap(a=>t.pages[a].map(s=>({...s,kind:_Q(s,a)}))).filter(a=>pQ(a,String(a.kind),e)).sort((a,s)=>String(s.occurred_at??"").localeCompare(String(a.occurred_at??""))||String(s.id??"").localeCompare(String(a.id??""))),i=Math.min(200,Math.max(1,e.limit??50)),r=Math.max(0,e.offset??0),o=n.slice(r,r+i);return{offset:r,limit:i,total_count:n.length,has_more:r+o.length<n.length,rows:o}}var $b="canonical.spec_id IS NOT NULL",Lb="(COALESCE(canonical.change_id, (SELECT change.id FROM canonical_changes change, json_each(change.task_ids_json) task WHERE task.value = canonical.id ORDER BY change.created_at DESC, change.id DESC LIMIT 1)))",nm=`(SELECT change.source_type FROM canonical_changes change WHERE change.id=${Lb})`,Pb=`(${$b} OR COALESCE(${nm} IN ('spec', 'prd'), 0))`;function d$(e){let t=[],n=[];if(e.from&&(t.push("canonical.occurred_day_sp >= ?"),n.push(e.from.slice(0,10))),e.to&&(t.push("canonical.occurred_day_sp <= ?"),n.push(e.to.slice(0,10))),e.query&&(t.push("(work.id LIKE ? OR work.title LIKE ?)"),n.push(`%${e.query}%`,`%${e.query}%`)),e.status&&(t.push("canonical.stage = ?"),n.push(e.status)),e.risk&&(t.push("canonical.risk = ?"),n.push(e.risk)),e.origin){t.push("canonical.entity_kind = 'task'");let r=e.origin==="spec"?$b:e.origin==="task"?`NOT ${$b}`:"0";t.push(`(${nm} = ? OR (${nm} IS NULL AND ${r}))`),n.push(e.origin)}return e.kind==="prd"||e.kind==="spec"?(t.push("canonical.entity_kind = ?"),n.push(e.kind)):(e.kind==="all-tasks"||e.kind==="task"||e.kind==="standalone-task")&&(t.push("canonical.entity_kind = 'task'"),e.kind!=="all-tasks"&&t.push(e.kind==="task"?Pb:`NOT ${Pb}`)),{source:"operations_work_kanban work JOIN canonical_work_items canonical ON canonical.entity_kind=work.entity_kind AND canonical.id=work.id",where:t.length===0?"":` WHERE ${t.join(" AND ")}`,values:n,select:`SELECT work.*, canonical.stage, canonical.prd_id,
|
|
440
440
|
COALESCE(canonical.spec_id, (SELECT COALESCE(change.source_spec_id, CASE WHEN change.source_type='spec' THEN change.source_id END) FROM canonical_changes change WHERE change.id=${Lb})) AS spec_id,
|
|
441
441
|
${Lb} AS change_id, ${nm} AS origin,
|
|
442
|
-
CASE WHEN canonical.entity_kind='task' THEN CASE WHEN ${Pb} THEN 'task' ELSE 'standalone-task' END ELSE canonical.entity_kind END AS kind`}}function _$(e){return e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='operations_work_projection' LIMIT 1").get()!==void 0}function
|
|
442
|
+
CASE WHEN canonical.entity_kind='task' THEN CASE WHEN ${Pb} THEN 'task' ELSE 'standalone-task' END ELSE canonical.entity_kind END AS kind`}}function _$(e){return e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='operations_work_projection' LIMIT 1").get()!==void 0}function mQ(e){let t=[],n=[];if(e.from&&(t.push("occurred_day_sp >= ?"),n.push(e.from.slice(0,10))),e.to&&(t.push("occurred_day_sp <= ?"),n.push(e.to.slice(0,10))),e.query&&(t.push("(id LIKE ? OR title LIKE ?)"),n.push(`%${e.query}%`,`%${e.query}%`)),e.status&&(t.push("stage = ?"),n.push(e.status)),e.risk&&(t.push("risk = ?"),n.push(e.risk)),e.origin){t.push("entity_kind = 'task'");let i=e.origin==="spec"?"spec_id IS NOT NULL":e.origin==="task"?"spec_id IS NULL":"0";t.push(`(origin = ? OR (origin IS NULL AND ${i}))`),n.push(e.origin)}return e.kind==="prd"||e.kind==="spec"?(t.push("entity_kind = ?"),n.push(e.kind)):e.kind==="all-tasks"?t.push("entity_kind = 'task'"):(e.kind==="task"||e.kind==="standalone-task")&&(t.push("kind = ?"),n.push(e.kind)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,values:n}}function p$(e,t){let n=Math.min(200,Math.max(1,t.limit??50)),i=Math.max(0,t.offset??0);if(_$(e)){let s=mQ(t),l=Number(e.prepare(`SELECT COUNT(*) AS count FROM operations_work_projection${s.where}`).get(...s.values).count),c=e.prepare(`SELECT * FROM operations_work_projection${s.where} ORDER BY occurred_at DESC, id DESC LIMIT ? OFFSET ?`).all(...s.values,n,i);return{offset:i,limit:n,total_count:l,has_more:i+c.length<l,rows:c}}let r=d$(t),o=Number(e.prepare(`SELECT COUNT(*) AS count FROM ${r.source}${r.where}`).get(...r.values).count),a=e.prepare(`${r.select} FROM ${r.source}${r.where} ORDER BY work.occurred_at DESC, work.id DESC LIMIT ? OFFSET ?`).all(...r.values,n,i);return{offset:i,limit:n,total_count:o,has_more:i+a.length<o,rows:a}}function l$(e){let t=e.entity_kind??e.kind;return t==="task"||t==="standalone-task"?"task":t==="spec"||t==="prd"?t:null}function m$(e,t,n){let i=t.flatMap(c=>{let u=l$(c),d=typeof c.id=="string"&&c.id.length>0?c.id:null;return u&&d?[{entityKind:u,id:d}]:[]});if(i.length===0)return t.map(c=>({...c,developers:[]}));let r=i.flatMap(({entityKind:c,id:u})=>[c,u]),o=n.from?.slice(0,10)??null,a=n.to?.slice(0,10)??null,s=e.prepare(`WITH page_items(entity_kind, id) AS (VALUES ${i.map(()=>"(?, ?)").join(", ")}),
|
|
443
443
|
identified_developers AS (
|
|
444
444
|
SELECT page_items.entity_kind, page_items.id,
|
|
445
445
|
CAST(activity.developer_account_id AS TEXT) AS account_id,
|
|
@@ -820,7 +820,7 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
820
820
|
a.occurred_at, a.task_id, a.attributed_token_active_ms AS duration_ms, a.source_event_count, a.total_tokens, a.cost_usd, a.cost_brl
|
|
821
821
|
FROM activities a LEFT JOIN tasks activity_task ON activity_task.id=a.task_id LEFT JOIN zaip_dim_zaip_agent d ON d.zaip_agent = a.zaip_agent
|
|
822
822
|
WHERE ${o.join(" AND ")}
|
|
823
|
-
)`,d=Math.min(200,Math.max(1,n.limit??50)),_=Math.max(0,n.offset??0),p=Number(e.database.prepare(`${u} SELECT COUNT(DISTINCT key) AS count FROM agent_facts`).get(...l,...a).count),g=e.database.prepare(`${u} SELECT COUNT(*) AS invocation_count, COUNT(DISTINCT task_id) AS task_count, SUM(duration_ms) AS total_duration, SUM(CASE WHEN duration_ms IS NULL THEN 1 ELSE 0 END) AS duration_unknown, SUM(CASE WHEN duration_ms IS NULL THEN 0 ELSE duration_ms END) AS duration_known, SUM(source_event_count) AS source_event_count, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM agent_facts`).get(...l,...a),m=e.database.prepare(`${u} SELECT key, key AS label, COALESCE(MAX(persona), MAX(catalog_persona)) AS persona, COALESCE(MAX(job), MAX(catalog_job)) AS job, MAX(occurred_at) AS latest_started_at, COUNT(*) AS invocation_count, COUNT(DISTINCT task_id) AS task_count, SUM(duration_ms) AS total_duration, SUM(CASE WHEN duration_ms IS NULL THEN 1 ELSE 0 END) AS duration_unknown, SUM(CASE WHEN duration_ms IS NULL THEN 0 ELSE duration_ms END) AS duration_known, SUM(source_event_count) AS source_event_count, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM agent_facts GROUP BY key ORDER BY total_cost_brl DESC, key LIMIT ? OFFSET ?`).all(...l,...a,d,_);return{data_source:"sqlite_read_model",view:t,offset:_,limit:d,total_count:p,has_more:_+m.length<p,totals:g,rows:m}}function Ub(e){if(!e)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let t=new Date(e);if(Number.isNaN(t.valueOf()))return null;let n=new Intl.DateTimeFormat("en-CA",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(t);return`${n.find(i=>i.type==="year")?.value}-${n.find(i=>i.type==="month")?.value}-${n.find(i=>i.type==="day")?.value}`}function D$(e,t){let n=Ub(t.from),i=Ub(t.to),r=a=>a.replace(/[A-Z]/g,s=>s.toLowerCase()),o=t.query?r(t.query):null;return e.filter(a=>{if(o!==null&&![a.agent_invocation_id,a.task_id,a.execution_id].some(c=>typeof c=="string"&&r(c).includes(o)))return!1;let s=a.source_started_at??a.source_occurred_at??a.occurred_at,l=typeof s=="string"?Ub(s):null;return l!==null&&(n===null||l>=n)&&(i===null||l<=i)})}function j$(e,t){let n=[...new Set(t.flatMap(o=>typeof o.task_id=="string"?[o.task_id]:[]))],i=n.length===0?[]:e.prepare("SELECT id, priority, risk, status AS task_status, title AS task_title FROM tasks WHERE id IN ("+n.map(()=>"?").join(",")+")").all(...n),r=new Map(i.map(o=>[o.id,o]));return t.map(o=>{let a=r.get(o.task_id);return{...o,priority:a?.priority??null,risk:a?.risk??null,task_status:a?.task_status??null,task_title:a?.task_title??null}})}function U$(e,t,n){let i=!n.from&&!n.to&&!n.query&&!n.status&&!n.risk&&!n.provider&&!n.model&&!n.agent&&!n.phase&&!n.origin&&!n.workType&&!n.priority;if(t==="cost_monitor_agent_invocations"&&!/[\0%_]/.test(n.query??"")&&!n.status&&!n.risk&&!n.provider&&!n.model&&!n.agent&&!n.phase&&!n.origin&&!n.workType&&!n.priority){let s=e.technicalPayloadRows("cost_agent_invocation_projection_v1"),l=D$(s,n);if(s.length>0){let c=Math.min(200,Math.max(1,n.limit??100)),u=Math.max(0,n.offset??0),d=l.slice(u,u+c);return{data_source:"sqlite_read_model",view:t,offset:u,limit:c,total_count:l.length,has_more:u+d.length<l.length,rows:n.query?j$(e.database,d):d}}}let a={cost_monitor_zaip_agents:"agent",cost_monitor_executions:"execution",cost_monitor_tasks:"task",cost_monitor_conversations:"conversation"}[t];if(i&&a!==void 0){let s=e.technicalPayloadRows("cost_dimension_aggregate_v1").filter(u=>u.dimension===a),l=s.filter(u=>u.row_kind==="row").map(u=>t==="cost_monitor_zaip_agents"?{key:u.key,label:u.label,persona:u.persona,job:u.job,latest_started_at:u.latest_started_at,invocation_count:u.invocation_count,task_count:u.task_count,total_duration:u.total_duration,duration_unknown:u.duration_unknown,duration_known:u.duration_known,source_event_count:u.source_event_count,total_tokens:u.total_tokens,total_cost_usd:u.total_cost_usd,total_cost_brl:u.total_cost_brl}:{id:u.id,key:u.key,title:u.title,status:u.status,risk:u.risk,first_day:u.first_day,last_day:u.last_day,occurred_at:u.occurred_at,invocation_count:u.invocation_count,llm_call_count:u.llm_call_count,total_duration:u.total_duration,total_input_tokens:u.total_input_tokens,total_cached_input_tokens:u.total_cached_input_tokens,total_output_tokens:u.total_output_tokens,total_reasoning_tokens:u.total_reasoning_tokens,total_tokens:u.total_tokens,total_cost_usd:u.total_cost_usd,total_cost_brl:u.total_cost_brl}).sort((u,d)=>Number(d.total_cost_brl??-1)-Number(u.total_cost_brl??-1)||String(u.key??"").localeCompare(String(d.key??""))),c=s.find(u=>u.row_kind==="totals");if(l.length>0&&c!==void 0){let u=Math.min(200,Math.max(1,n.limit??50)),d=Math.max(0,n.offset??0),_=l.slice(d,d+u),p=t!=="cost_monitor_zaip_agents"?{entity_count:c.entity_count,invocation_count:c.invocation_count,total_duration:c.total_duration,total_tokens:c.total_tokens,total_cost_usd:c.total_cost_usd,total_cost_brl:c.total_cost_brl}:{invocation_count:c.invocation_count,task_count:c.task_count,total_duration:c.total_duration,duration_unknown:c.duration_unknown,duration_known:c.duration_known,source_event_count:c.source_event_count,total_tokens:c.total_tokens,total_cost_usd:c.total_cost_usd,total_cost_brl:c.total_cost_brl};return{data_source:"sqlite_read_model",view:t,offset:d,limit:u,total_count:l.length,has_more:d+_.length<l.length,totals:p,rows:_}}}return null}var
|
|
823
|
+
)`,d=Math.min(200,Math.max(1,n.limit??50)),_=Math.max(0,n.offset??0),p=Number(e.database.prepare(`${u} SELECT COUNT(DISTINCT key) AS count FROM agent_facts`).get(...l,...a).count),g=e.database.prepare(`${u} SELECT COUNT(*) AS invocation_count, COUNT(DISTINCT task_id) AS task_count, SUM(duration_ms) AS total_duration, SUM(CASE WHEN duration_ms IS NULL THEN 1 ELSE 0 END) AS duration_unknown, SUM(CASE WHEN duration_ms IS NULL THEN 0 ELSE duration_ms END) AS duration_known, SUM(source_event_count) AS source_event_count, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM agent_facts`).get(...l,...a),m=e.database.prepare(`${u} SELECT key, key AS label, COALESCE(MAX(persona), MAX(catalog_persona)) AS persona, COALESCE(MAX(job), MAX(catalog_job)) AS job, MAX(occurred_at) AS latest_started_at, COUNT(*) AS invocation_count, COUNT(DISTINCT task_id) AS task_count, SUM(duration_ms) AS total_duration, SUM(CASE WHEN duration_ms IS NULL THEN 1 ELSE 0 END) AS duration_unknown, SUM(CASE WHEN duration_ms IS NULL THEN 0 ELSE duration_ms END) AS duration_known, SUM(source_event_count) AS source_event_count, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM agent_facts GROUP BY key ORDER BY total_cost_brl DESC, key LIMIT ? OFFSET ?`).all(...l,...a,d,_);return{data_source:"sqlite_read_model",view:t,offset:_,limit:d,total_count:p,has_more:_+m.length<p,totals:g,rows:m}}function Ub(e){if(!e)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let t=new Date(e);if(Number.isNaN(t.valueOf()))return null;let n=new Intl.DateTimeFormat("en-CA",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(t);return`${n.find(i=>i.type==="year")?.value}-${n.find(i=>i.type==="month")?.value}-${n.find(i=>i.type==="day")?.value}`}function D$(e,t){let n=Ub(t.from),i=Ub(t.to),r=a=>a.replace(/[A-Z]/g,s=>s.toLowerCase()),o=t.query?r(t.query):null;return e.filter(a=>{if(o!==null&&![a.agent_invocation_id,a.task_id,a.execution_id].some(c=>typeof c=="string"&&r(c).includes(o)))return!1;let s=a.source_started_at??a.source_occurred_at??a.occurred_at,l=typeof s=="string"?Ub(s):null;return l!==null&&(n===null||l>=n)&&(i===null||l<=i)})}function j$(e,t){let n=[...new Set(t.flatMap(o=>typeof o.task_id=="string"?[o.task_id]:[]))],i=n.length===0?[]:e.prepare("SELECT id, priority, risk, status AS task_status, title AS task_title FROM tasks WHERE id IN ("+n.map(()=>"?").join(",")+")").all(...n),r=new Map(i.map(o=>[o.id,o]));return t.map(o=>{let a=r.get(o.task_id);return{...o,priority:a?.priority??null,risk:a?.risk??null,task_status:a?.task_status??null,task_title:a?.task_title??null}})}function U$(e,t,n){let i=!n.from&&!n.to&&!n.query&&!n.status&&!n.risk&&!n.provider&&!n.model&&!n.agent&&!n.phase&&!n.origin&&!n.workType&&!n.priority;if(t==="cost_monitor_agent_invocations"&&!/[\0%_]/.test(n.query??"")&&!n.status&&!n.risk&&!n.provider&&!n.model&&!n.agent&&!n.phase&&!n.origin&&!n.workType&&!n.priority){let s=e.technicalPayloadRows("cost_agent_invocation_projection_v1"),l=D$(s,n);if(s.length>0){let c=Math.min(200,Math.max(1,n.limit??100)),u=Math.max(0,n.offset??0),d=l.slice(u,u+c);return{data_source:"sqlite_read_model",view:t,offset:u,limit:c,total_count:l.length,has_more:u+d.length<l.length,rows:n.query?j$(e.database,d):d}}}let a={cost_monitor_zaip_agents:"agent",cost_monitor_executions:"execution",cost_monitor_tasks:"task",cost_monitor_conversations:"conversation"}[t];if(i&&a!==void 0){let s=e.technicalPayloadRows("cost_dimension_aggregate_v1").filter(u=>u.dimension===a),l=s.filter(u=>u.row_kind==="row").map(u=>t==="cost_monitor_zaip_agents"?{key:u.key,label:u.label,persona:u.persona,job:u.job,latest_started_at:u.latest_started_at,invocation_count:u.invocation_count,task_count:u.task_count,total_duration:u.total_duration,duration_unknown:u.duration_unknown,duration_known:u.duration_known,source_event_count:u.source_event_count,total_tokens:u.total_tokens,total_cost_usd:u.total_cost_usd,total_cost_brl:u.total_cost_brl}:{id:u.id,key:u.key,title:u.title,status:u.status,risk:u.risk,first_day:u.first_day,last_day:u.last_day,occurred_at:u.occurred_at,invocation_count:u.invocation_count,llm_call_count:u.llm_call_count,total_duration:u.total_duration,total_input_tokens:u.total_input_tokens,total_cached_input_tokens:u.total_cached_input_tokens,total_output_tokens:u.total_output_tokens,total_reasoning_tokens:u.total_reasoning_tokens,total_tokens:u.total_tokens,total_cost_usd:u.total_cost_usd,total_cost_brl:u.total_cost_brl}).sort((u,d)=>Number(d.total_cost_brl??-1)-Number(u.total_cost_brl??-1)||String(u.key??"").localeCompare(String(d.key??""))),c=s.find(u=>u.row_kind==="totals");if(l.length>0&&c!==void 0){let u=Math.min(200,Math.max(1,n.limit??50)),d=Math.max(0,n.offset??0),_=l.slice(d,d+u),p=t!=="cost_monitor_zaip_agents"?{entity_count:c.entity_count,invocation_count:c.invocation_count,total_duration:c.total_duration,total_tokens:c.total_tokens,total_cost_usd:c.total_cost_usd,total_cost_brl:c.total_cost_brl}:{invocation_count:c.invocation_count,task_count:c.task_count,total_duration:c.total_duration,duration_unknown:c.duration_unknown,duration_known:c.duration_known,source_event_count:c.source_event_count,total_tokens:c.total_tokens,total_cost_usd:c.total_cost_usd,total_cost_brl:c.total_cost_brl};return{data_source:"sqlite_read_model",view:t,offset:d,limit:u,total_count:l.length,has_more:d+_.length<l.length,totals:p,rows:_}}}return null}var fQ={task:{title:"entity.title",status:"entity.status",risk:"entity.risk"},spec:{title:"entity.title",status:"entity.status",risk:"entity.risk"},prd:{title:"entity.title",status:"entity.status",risk:"entity.risk"},execution:{title:"grouped.group_value",status:"entity.status",risk:"NULL"},conversation:{title:"grouped.group_value",status:"entity.status",risk:"NULL"}};function F$(e,t,n,i){let r=fQ[n],o=["group_kind = ?","group_value IS NOT NULL"],a=[n];i.from&&(o.push("day >= ?"),a.push(i.from.slice(0,10))),i.to&&(o.push("day <= ?"),a.push(i.to.slice(0,10))),i.query&&(o.push("group_value LIKE ?"),a.push(`%${i.query}%`));let s=o.join(" AND "),l=om(i)?"cost_group_daily_projection":"cost_monitor_group_daily_cache",c=Number(e.prepare(`SELECT COUNT(DISTINCT group_value) AS count FROM ${l} WHERE ${s}`).get(...a).count),u=e.prepare(`SELECT COUNT(DISTINCT group_value) AS entity_count,
|
|
824
824
|
COALESCE(SUM(invocation_count), 0) AS invocation_count,
|
|
825
825
|
ROUND(SUM(total_duration)) AS total_duration,
|
|
826
826
|
SUM(total_tokens) AS total_tokens,
|
|
@@ -1134,7 +1134,7 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
1134
1134
|
FROM zaip_aios_activities
|
|
1135
1135
|
WHERE payload_type='cost_dimension_aggregate_v1'
|
|
1136
1136
|
AND json_extract(payload_json, '$.dimension')=?
|
|
1137
|
-
ORDER BY total_cost_brl DESC, key`).all(k),U=k==="model"?P.filter(j=>j.key!=="unavailable"&&j.key!==null):P.filter($$),$=Math.min(200,Math.max(1,n.limit??50)),B=Math.max(0,n.offset??0),z=U.slice(B,B+$),R=k!=="model"||U.every(j=>typeof j.conversation_count=="number"),L=["invocation_count","task_count","conversation_count","prd_count","spec_count","validation_count","evidence_count","total_duration","source_event_count","total_tokens","total_cost_usd","total_cost_brl"];if(k==="model")for(let j of U)for(let Q of L)j[Q]=typeof j[Q]=="number"?j[Q]:0;let J=k==="provider"?P:U,le=j=>J.some(Q=>typeof Q[j]=="number")?J.reduce((Q,C)=>Q+(typeof C[j]=="number"?Number(C[j]):0),0):null;if(R)return{data_source:"sqlite_read_model",view:t,offset:B,limit:$,total_count:U.length,has_more:B+z.length<U.length,totals:{invocation_count:J.reduce((j,Q)=>j+Number(Q.invocation_count??0),0),task_count:le("task_count")??(k==="model"?0:null),conversation_count:le("conversation_count")??(k==="model"?0:null),prd_count:le("prd_count")??(k==="model"?0:null),spec_count:le("spec_count")??(k==="model"?0:null),validation_count:le("validation_count")??(k==="model"?0:null),evidence_count:le("evidence_count")??(k==="model"?0:null),total_duration:le("total_duration")??(k==="model"?0:null),source_event_count:le("source_event_count")??(k==="model"?0:null),total_tokens:le("total_tokens")??(k==="model"?0:null),total_cost_usd:le("total_cost_usd")??(k==="model"?0:null),total_cost_brl:le("total_cost_brl")??(k==="model"?0:null)},rows:z}}if(a==="agent")return M$(e,t,n,a);if(a==="model")return W$(e,t,n,a);if(a==="provider")return Z$(e,t,n,a);let l=a==="day"||a==="month"||a==="year",c=!!(n.provider||n.model||n.agent||n.phase||n.status||n.origin||n.priority||n.risk||n.workType);if(a!==void 0&&l&&!c)return H$(e,t,n,a);if(a!==void 0&&(!l||c))return V$(e,t,n,a);let d={cost_monitor_executions:"execution",cost_monitor_tasks:"task",cost_monitor_specs:"spec",cost_monitor_prds:"prd",cost_monitor_conversations:"conversation"}[t];if(d!==void 0)return z$(e,t,n,d);let _=Jo[t],p=[],g=[],m=t==="cost_monitor_monthly"||t==="cost_monitor_annual"||t==="operations_monthly"||t==="operations_annual";m&&n.from?(p.push("end_day >= ?"),g.push(n.from.slice(0,10))):_.date!==null&&n.from&&(p.push(`${_.date} >= ?`),g.push(n.from.slice(0,10))),m&&n.to?(p.push("start_day <= ?"),g.push(n.to.slice(0,10))):_.date!==null&&n.to&&(p.push(`${_.date} <= ?`),g.push(n.to.slice(0,10))),n.query&&["cost_monitor_daily","cost_monitor_monthly","cost_monitor_annual","cost_monitor_overview_view","operations_monthly","operations_annual"].includes(t)&&(p.push("period_key LIKE ?"),g.push(`%${n.query}%`)),n.query&&t==="operations_daily"&&(p.push("day LIKE ?"),g.push(`%${n.query}%`)),n.status&&["operations_work_list","operations_work_kanban","operations_executions","operations_conversations","operations_decisions","operations_changes","operations_agent_invocations","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("status = ?"),g.push(n.status)),n.risk&&["operations_work_list","operations_work_kanban","operations_executions","operations_conversations","operations_decisions","operations_changes","operations_agent_invocations","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("risk = ?"),g.push(n.risk)),n.query&&["operations_work_list","operations_work_kanban","first_fold_top_tasks","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("(id LIKE ? OR title LIKE ?)"),g.push(`%${n.query}%`,`%${n.query}%`)),n.query&&t==="operations_executions"&&(p.push("execution_id LIKE ?"),g.push(`%${n.query}%`)),n.query&&t==="operations_conversations"&&(p.push("conversation_id LIKE ?"),g.push(`%${n.query}%`)),n.query&&(t==="operations_decisions"||t==="operations_changes")&&(p.push("id LIKE ?"),g.push(`%${n.query}%`)),t==="operations_agent_invocations"&&(n.query&&(p.push("(agent_invocation_id LIKE ? OR task_id LIKE ? OR execution_id LIKE ?)"),g.push(`%${n.query}%`,`%${n.query}%`,`%${n.query}%`)),n.agent&&(p.push("zaip_agent = ?"),g.push(n.agent)),n.phase&&(p.push("phase = ?"),g.push(n.phase)),n.provider&&(p.push("provider = ?"),g.push(n.provider)),n.model&&(p.push("model = ?"),g.push(n.model)));let f=p.length===0?"":` WHERE ${p.join(" AND ")}`,v=Number(e.database.prepare(`SELECT COUNT(*) AS count FROM ${t}${f}`).get(...g).count),S=Math.min(200,Math.max(1,n.limit??(t.includes("agent_invocations")?100:t==="first_fold_top_tasks"?5:50))),b=Math.max(0,n.offset??0),h=e.database.prepare(`SELECT * FROM ${t}${f} ORDER BY ${_.order} LIMIT ? OFFSET ?`).all(...g,S,b);return B$(e,t,n,h),{data_source:"sqlite_read_model",view:t,offset:b,limit:S,total_count:v,has_more:b+h.length<v,rows:h}}import{DatabaseSync as
|
|
1137
|
+
ORDER BY total_cost_brl DESC, key`).all(k),U=k==="model"?P.filter(j=>j.key!=="unavailable"&&j.key!==null):P.filter($$),$=Math.min(200,Math.max(1,n.limit??50)),B=Math.max(0,n.offset??0),z=U.slice(B,B+$),R=k!=="model"||U.every(j=>typeof j.conversation_count=="number"),L=["invocation_count","task_count","conversation_count","prd_count","spec_count","validation_count","evidence_count","total_duration","source_event_count","total_tokens","total_cost_usd","total_cost_brl"];if(k==="model")for(let j of U)for(let Q of L)j[Q]=typeof j[Q]=="number"?j[Q]:0;let J=k==="provider"?P:U,le=j=>J.some(Q=>typeof Q[j]=="number")?J.reduce((Q,C)=>Q+(typeof C[j]=="number"?Number(C[j]):0),0):null;if(R)return{data_source:"sqlite_read_model",view:t,offset:B,limit:$,total_count:U.length,has_more:B+z.length<U.length,totals:{invocation_count:J.reduce((j,Q)=>j+Number(Q.invocation_count??0),0),task_count:le("task_count")??(k==="model"?0:null),conversation_count:le("conversation_count")??(k==="model"?0:null),prd_count:le("prd_count")??(k==="model"?0:null),spec_count:le("spec_count")??(k==="model"?0:null),validation_count:le("validation_count")??(k==="model"?0:null),evidence_count:le("evidence_count")??(k==="model"?0:null),total_duration:le("total_duration")??(k==="model"?0:null),source_event_count:le("source_event_count")??(k==="model"?0:null),total_tokens:le("total_tokens")??(k==="model"?0:null),total_cost_usd:le("total_cost_usd")??(k==="model"?0:null),total_cost_brl:le("total_cost_brl")??(k==="model"?0:null)},rows:z}}if(a==="agent")return M$(e,t,n,a);if(a==="model")return W$(e,t,n,a);if(a==="provider")return Z$(e,t,n,a);let l=a==="day"||a==="month"||a==="year",c=!!(n.provider||n.model||n.agent||n.phase||n.status||n.origin||n.priority||n.risk||n.workType);if(a!==void 0&&l&&!c)return H$(e,t,n,a);if(a!==void 0&&(!l||c))return V$(e,t,n,a);let d={cost_monitor_executions:"execution",cost_monitor_tasks:"task",cost_monitor_specs:"spec",cost_monitor_prds:"prd",cost_monitor_conversations:"conversation"}[t];if(d!==void 0)return z$(e,t,n,d);let _=Jo[t],p=[],g=[],m=t==="cost_monitor_monthly"||t==="cost_monitor_annual"||t==="operations_monthly"||t==="operations_annual";m&&n.from?(p.push("end_day >= ?"),g.push(n.from.slice(0,10))):_.date!==null&&n.from&&(p.push(`${_.date} >= ?`),g.push(n.from.slice(0,10))),m&&n.to?(p.push("start_day <= ?"),g.push(n.to.slice(0,10))):_.date!==null&&n.to&&(p.push(`${_.date} <= ?`),g.push(n.to.slice(0,10))),n.query&&["cost_monitor_daily","cost_monitor_monthly","cost_monitor_annual","cost_monitor_overview_view","operations_monthly","operations_annual"].includes(t)&&(p.push("period_key LIKE ?"),g.push(`%${n.query}%`)),n.query&&t==="operations_daily"&&(p.push("day LIKE ?"),g.push(`%${n.query}%`)),n.status&&["operations_work_list","operations_work_kanban","operations_executions","operations_conversations","operations_decisions","operations_changes","operations_agent_invocations","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("status = ?"),g.push(n.status)),n.risk&&["operations_work_list","operations_work_kanban","operations_executions","operations_conversations","operations_decisions","operations_changes","operations_agent_invocations","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("risk = ?"),g.push(n.risk)),n.query&&["operations_work_list","operations_work_kanban","first_fold_top_tasks","first_fold_task","first_fold_spec","first_fold_prd"].includes(t)&&(p.push("(id LIKE ? OR title LIKE ?)"),g.push(`%${n.query}%`,`%${n.query}%`)),n.query&&t==="operations_executions"&&(p.push("execution_id LIKE ?"),g.push(`%${n.query}%`)),n.query&&t==="operations_conversations"&&(p.push("conversation_id LIKE ?"),g.push(`%${n.query}%`)),n.query&&(t==="operations_decisions"||t==="operations_changes")&&(p.push("id LIKE ?"),g.push(`%${n.query}%`)),t==="operations_agent_invocations"&&(n.query&&(p.push("(agent_invocation_id LIKE ? OR task_id LIKE ? OR execution_id LIKE ?)"),g.push(`%${n.query}%`,`%${n.query}%`,`%${n.query}%`)),n.agent&&(p.push("zaip_agent = ?"),g.push(n.agent)),n.phase&&(p.push("phase = ?"),g.push(n.phase)),n.provider&&(p.push("provider = ?"),g.push(n.provider)),n.model&&(p.push("model = ?"),g.push(n.model)));let f=p.length===0?"":` WHERE ${p.join(" AND ")}`,v=Number(e.database.prepare(`SELECT COUNT(*) AS count FROM ${t}${f}`).get(...g).count),S=Math.min(200,Math.max(1,n.limit??(t.includes("agent_invocations")?100:t==="first_fold_top_tasks"?5:50))),b=Math.max(0,n.offset??0),h=e.database.prepare(`SELECT * FROM ${t}${f} ORDER BY ${_.order} LIMIT ? OFFSET ?`).all(...g,S,b);return B$(e,t,n,h),{data_source:"sqlite_read_model",view:t,offset:b,limit:S,total_count:v,has_more:b+h.length<v,rows:h}}import{DatabaseSync as gQ}from"node:sqlite";function G$(e,t,n,i){let r;try{r=new gQ(e,{readOnly:!0});let o=r,a=c=>o.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key = ?").get(c)?.value,s=Number(a("source_file_count")??0);return a("source_fingerprint")===t&&a("schema_version")===n&&i(r)?s:null}catch{return null}finally{r?.close()}}function Fb(e){let t=e.prepare("SELECT name FROM sqlite_master WHERE type = 'view' AND name LIKE 'zaip_vw_%'").all();for(let{name:n}of t){let i=n.slice(8),r=a=>`"${a.replaceAll('"','""')}"`;e.prepare("SELECT 1 FROM sqlite_temp_master WHERE name=? LIMIT 1").get(i)===void 0&&e.exec(`CREATE TEMP VIEW ${r(i)} AS SELECT * FROM main.${r(n)}`)}}function K$(e,t){return encodeURIComponent(JSON.stringify([e,t]))}function X$(e){if(e===null)return null;try{let t=JSON.parse(decodeURIComponent(e));return Array.isArray(t)&&typeof t[0]=="string"&&typeof t[1]=="string"?[t[0],t[1]]:null}catch{return null}}var ct=class extends Kr{executionDurationCache=new Map;dailyAggregateRowsCache=null;firstFoldAllTimeCache=null;firstFoldAllTimeBoardCache=null;firstFoldTopTasksAllTimeCache=null;firstFoldViewportCache=null;firstFoldMonthlyQuickCache=void 0;firstFoldViewportTimings={};metadataValues=null;unfilteredViewPageCache=new Map;technicalPayloadRowsCache=new Map;viewPageResultCache=new Map;costMonitorSummaryCache=new Map;canonicalSource(){return this.database.prepare("SELECT 1 FROM files WHERE path LIKE '.agents/data/%' LIMIT 1").get()===void 0?".agents/records":".agents/data"}dailyAggregateRows(){return this.dailyAggregateRowsCache===null&&(this.dailyAggregateRowsCache=this.database.prepare("SELECT * FROM daily_aggregate_cache ORDER BY day").all()),this.dailyAggregateRowsCache}unfilteredViewRows(t){let n=this.unfilteredViewPageCache.get(t);if(n!==void 0)return n;let i=Jo[t].order,r=this.database.prepare(`SELECT * FROM ${t} ORDER BY ${i}`).all();return this.unfilteredViewPageCache.set(t,r),r}technicalPayloadRows(t){let n=this.technicalPayloadRowsCache.get(t);if(n!==void 0)return n;let i=this.database.prepare("SELECT payload_json FROM zaip_aios_activities WHERE payload_type=?").all(t).flatMap(({payload_json:r})=>{try{let o=JSON.parse(r);return o!==null&&typeof o=="object"&&!Array.isArray(o)?[o]:[]}catch{return[]}});return this.technicalPayloadRowsCache.set(t,i),i}database;ownsDatabase;constructor(t,n){super(t),this.ownsDatabase=n===void 0,this.database=n??new Y$(ri(t),{readOnly:!0}),Fb(this.database)}async exists(t){let n=this.database.prepare("SELECT 1 FROM files WHERE path = ? LIMIT 1").get(t),i=this.database.prepare("SELECT 1 FROM files WHERE path LIKE ? LIMIT 1").get(`${t.replace(/\/$/,"")}/%`);return n!==void 0||i!==void 0}async readText(t){let n=this.database.prepare("SELECT content FROM files WHERE path = ?").get(t);if(n?.content===void 0)throw Object.assign(new Error(`SQLite read model is missing ${t}`),{code:"ENOENT"});return n.content}async readBytes(t){return Buffer.from(await this.readText(t),"utf8")}async readTextFrom(t,n){let i=await this.readText(t),r=Buffer.from(i,"utf8");return{content:r.subarray(Math.min(n,r.byteLength)).toString("utf8"),nextOffset:r.byteLength}}async listFiles(t,n=""){let i=`${t.replace(/\/$/,"")}/%`;return this.database.prepare("SELECT path FROM files WHERE path LIKE ? ORDER BY path").all(i).map(o=>o.path).filter(o=>o.endsWith(n))}async listDirectories(t){let n=`${t.replace(/\/$/,"")}/`,i=this.database.prepare("SELECT path FROM files WHERE path LIKE ?").all(`${n}%`);return[...new Set(i.map(r=>r.path.slice(n.length).split("/")[0]).filter(Boolean).map(r=>`${t.replace(/\/$/,"")}/${r}`))].sort()}close(){this.ownsDatabase&&this.database.close()}reopen(){this.database=new Y$(ri(this.root),{readOnly:!0}),Fb(this.database),this.executionDurationCache.clear(),this.dailyAggregateRowsCache=null,this.firstFoldAllTimeCache=null,this.firstFoldAllTimeBoardCache=null,this.firstFoldTopTasksAllTimeCache=null,this.firstFoldViewportCache=null,this.firstFoldMonthlyQuickCache=void 0,this.firstFoldViewportTimings={},this.metadataValues=null,this.unfilteredViewPageCache.clear(),this.technicalPayloadRowsCache.clear(),this.costMonitorSummaryCache.clear(),this.viewPageResultCache.clear()}refresh(){this.database.close(),this.reopen()}async rebuildAndRefresh(t){this.database.close();try{await t()}finally{this.reopen()}this.viewPage("cost_monitor_daily",{limit:1,offset:0})}executionDurationByDay(t,n=null){return x$(this.queryContext(),t,n)}canonicalRunCountByDay(t){return R$(this.queryContext(),t)}dailyPeriods(t){return O$(this.queryContext(),t)}firstFoldAggregate(t){return C$(this.queryContext(),t)}firstFoldMonthlyQuick(t){let n=c$(this.database,this.firstFoldMonthlyQuickCache,t);return this.firstFoldMonthlyQuickCache=n.cache,n.result}firstFoldRelevantLatestDay(){let t=this.database.prepare(`SELECT MAX(day) AS day FROM (
|
|
1138
1138
|
SELECT occurred_day_sp AS day FROM activities
|
|
1139
1139
|
UNION ALL SELECT occurred_day_sp AS day FROM canonical_work_items
|
|
1140
1140
|
UNION ALL SELECT occurred_day_sp AS day FROM canonical_artifacts
|
|
@@ -1144,13 +1144,13 @@ ${"stderr"in e?String(e.stderr??""):""}`:String(e)).includes("Lifecycle manifest
|
|
|
1144
1144
|
WHERE (path LIKE '.agents/data/%' OR path LIKE '.agents/records/%')${o} AND (${r}) ORDER BY path`).all(...n===void 0?[]:[n],...i.map(a=>`%${a}%`))}taskTraceUsage(t){let n=this.database.prepare(`SELECT run_id, run_role, phase, duration_ms FROM canonical_run_index
|
|
1145
1145
|
WHERE task_id = ?`).all(t),i=this.database.prepare("SELECT run_id, total_tokens, cost_brl FROM activities WHERE task_id = ?").all(t),r=n.filter(u=>u.run_role==="root"&&u.phase==="execution"&&typeof u.duration_ms=="number").length,o=this.executionDurationByDay({from:null,to:null},t),a=o.size===0?null:[...o.values()].reduce((u,d)=>u+d,0),s=i.filter(u=>typeof u.total_tokens=="number"),l=i.filter(u=>typeof u.cost_brl=="number"),c=(u,d)=>({value:u,known_runs:d,unknown_runs:Math.max(0,n.length-d),coverage_ratio:n.length===0?1:d/n.length});return{run_count:n.length,duration_ms:c(a,r),total_tokens:c(s.length===0?null:s.reduce((u,d)=>u+Number(d.total_tokens),0),s.length),cost:{...c(l.length===0?null:l.reduce((u,d)=>u+Number(d.cost_brl),0),l.length),currency:l.length===0?null:"BRL"}}}invocationTotals(t){return y$(this.queryContext(),t)}invocationCostRows(t){return v$(this.queryContext(),t)}costMonitorFactualDurationByDay(t,n=this.costMonitorFinancialActivityRows(t)){return b$(this.queryContext(),t,n)}activityCostRows(t){return S$(this.queryContext(),t)}costMonitorFinancialActivityRows(t){return k$(this.queryContext(),t)}developerCostAggregate(t){return Mb(this.queryContext(),t)}operationsDeveloperAggregate(t){return Db(this.queryContext(),t)}costMonitorSummaryAggregate(t){return T$(this.queryContext(),t)}summaryPage(t,n,i,r,o=null){let a="operations_work_summary",s=n.from?.slice(0,10)??null,l=n.to?.slice(0,10)??null,c=X$(o),u=["entity_kind = ?","(? IS NULL OR occurred_day_sp >= ?)","(? IS NULL OR occurred_day_sp <= ?)"],d=[t,s,s,l,l];n.status&&(u.push("status = ?"),d.push(n.status)),n.risk&&(u.push("risk = ?"),d.push(n.risk)),n.query&&(u.push("(id LIKE ? OR title LIKE ?)"),d.push(`%${n.query}%`,`%${n.query}%`));let _=u.join(" AND "),p=[...d];c!==null&&(u.push("(occurred_at < ? OR (occurred_at = ? AND id < ?))"),d.push(c[0],c[0],c[1]));let g=u.join(" AND "),m=Number(this.database.prepare(`SELECT COUNT(*) AS count FROM ${a} WHERE ${_}`).get(...p).count),f=c===null?i:0,v=this.database.prepare(`SELECT id, title, status, risk, occurred_at, occurred_day_sp,
|
|
1146
1146
|
invocation_count, llm_call_count, total_duration, total_tokens, total_cost_usd, total_cost_brl
|
|
1147
|
-
FROM ${a} WHERE ${g} ORDER BY occurred_at DESC, id DESC LIMIT ? OFFSET ?`).all(...d,r,f),S=v.at(-1);return{data_source:"sqlite_read_model",kind:t,offset:f,limit:r,total:m,has_more:v.length===r&&(c!==null||f+v.length<m),next_cursor:S===void 0||v.length<r?null:K$(String(S.occurred_at),String(S.id)),rows:v}}canonicalWorkPage(t,n,i,r){return this.viewPage("operations_work_list",{...n,kind:t==="task"?"all-tasks":t,offset:i,limit:r})}overviewPage(t,n,i){return N$(this.queryContext(),t,n,i)}viewPage(t,n){let i=`${t}:${JSON.stringify(n)}`,r=this.viewPageResultCache.get(i);if(r!==void 0)return structuredClone(r);let o=this.uncachedViewPage(t,n);if(t==="cost_monitor_zaip_agents"&&e$(this.database,n,o),this.viewPageResultCache.size>=256){let a=this.viewPageResultCache.keys().next().value;a!==void 0&&this.viewPageResultCache.delete(a)}return this.viewPageResultCache.set(i,structuredClone(o)),o}uncachedViewPage(t,n){return J$(this.queryContext(),t,n)}metadata(){this.metadataValues===null&&(this.metadataValues=new Map(this.database.prepare("SELECT key, value FROM read_model_metadata").all().map(n=>[n.key,n.value])));let t=n=>Number(this.metadataValues?.get(n)??0);return{storage_mode:"sqlite_read_model",db_path:process.env.ZAIP_SQLITE_DB_PATH?"session-specific":xb,source_file_count:t("source_file_count"),excluded_source_count:t("excluded_source_count"),daily_aggregate_count:t("daily_aggregate_count"),activity_count:t("activity_count"),canonical_run_count:t("canonical_run_count"),agent_run_count:t("agent_run_count"),telemetry_summary_count:t("telemetry_summary_count"),unassisted_activity_count:t("unassisted_activity_count")}}projectionUpdatedAt(){this.metadataValues===null&&this.metadata();let t=this.metadataValues?.get("snapshot_updated_at")??null;return t!==null&&Number.isFinite(Date.parse(t))?t:null}latestTokenCollectedAt(){this.metadataValues===null&&this.metadata();let t=this.metadataValues?.get("latest_token_collected_at")??null;return t!==null&&Number.isFinite(Date.parse(t))?t:null}queryContext(){return{database:this.database,executionDurationCache:this.executionDurationCache,costMonitorSummaryCache:this.costMonitorSummaryCache,executionDurationByDay:this.executionDurationByDay.bind(this),costMonitorFinancialActivityRows:this.costMonitorFinancialActivityRows.bind(this),costMonitorFactualDurationByDay:this.costMonitorFactualDurationByDay.bind(this),costMonitorSummaryAggregate:this.costMonitorSummaryAggregate.bind(this),firstFoldMonthlyQuick:this.firstFoldMonthlyQuick.bind(this),dailyAggregateRows:this.dailyAggregateRows.bind(this),technicalPayloadRows:this.technicalPayloadRows.bind(this),unfilteredViewRows:this.unfilteredViewRows.bind(this)}}};import{createHash as
|
|
1147
|
+
FROM ${a} WHERE ${g} ORDER BY occurred_at DESC, id DESC LIMIT ? OFFSET ?`).all(...d,r,f),S=v.at(-1);return{data_source:"sqlite_read_model",kind:t,offset:f,limit:r,total:m,has_more:v.length===r&&(c!==null||f+v.length<m),next_cursor:S===void 0||v.length<r?null:K$(String(S.occurred_at),String(S.id)),rows:v}}canonicalWorkPage(t,n,i,r){return this.viewPage("operations_work_list",{...n,kind:t==="task"?"all-tasks":t,offset:i,limit:r})}overviewPage(t,n,i){return N$(this.queryContext(),t,n,i)}viewPage(t,n){let i=`${t}:${JSON.stringify(n)}`,r=this.viewPageResultCache.get(i);if(r!==void 0)return structuredClone(r);let o=this.uncachedViewPage(t,n);if(t==="cost_monitor_zaip_agents"&&e$(this.database,n,o),this.viewPageResultCache.size>=256){let a=this.viewPageResultCache.keys().next().value;a!==void 0&&this.viewPageResultCache.delete(a)}return this.viewPageResultCache.set(i,structuredClone(o)),o}uncachedViewPage(t,n){return J$(this.queryContext(),t,n)}metadata(){this.metadataValues===null&&(this.metadataValues=new Map(this.database.prepare("SELECT key, value FROM read_model_metadata").all().map(n=>[n.key,n.value])));let t=n=>Number(this.metadataValues?.get(n)??0);return{storage_mode:"sqlite_read_model",db_path:process.env.ZAIP_SQLITE_DB_PATH?"session-specific":xb,source_file_count:t("source_file_count"),excluded_source_count:t("excluded_source_count"),daily_aggregate_count:t("daily_aggregate_count"),activity_count:t("activity_count"),canonical_run_count:t("canonical_run_count"),agent_run_count:t("agent_run_count"),telemetry_summary_count:t("telemetry_summary_count"),unassisted_activity_count:t("unassisted_activity_count")}}projectionUpdatedAt(){this.metadataValues===null&&this.metadata();let t=this.metadataValues?.get("snapshot_updated_at")??null;return t!==null&&Number.isFinite(Date.parse(t))?t:null}latestTokenCollectedAt(){this.metadataValues===null&&this.metadata();let t=this.metadataValues?.get("latest_token_collected_at")??null;return t!==null&&Number.isFinite(Date.parse(t))?t:null}queryContext(){return{database:this.database,executionDurationCache:this.executionDurationCache,costMonitorSummaryCache:this.costMonitorSummaryCache,executionDurationByDay:this.executionDurationByDay.bind(this),costMonitorFinancialActivityRows:this.costMonitorFinancialActivityRows.bind(this),costMonitorFactualDurationByDay:this.costMonitorFactualDurationByDay.bind(this),costMonitorSummaryAggregate:this.costMonitorSummaryAggregate.bind(this),firstFoldMonthlyQuick:this.firstFoldMonthlyQuick.bind(this),dailyAggregateRows:this.dailyAggregateRows.bind(this),technicalPayloadRows:this.technicalPayloadRows.bind(this),unfilteredViewRows:this.unfilteredViewRows.bind(this)}}};import{createHash as vQ}from"node:crypto";import{mkdir as bQ,readFile as SQ}from"node:fs/promises";import{dirname as kQ}from"node:path";import{DatabaseSync as pL}from"node:sqlite";import{randomUUID as Q$}from"node:crypto";var cm=class{constructor(t){this.database=t}database;read(t,n,i,r){let o=`parsed_source:${t}:${n}`,a=this.database.prepare("SELECT source_hash, payload_json FROM zaip_aios_activities WHERE payload_type='parsed_source' AND activity_key=?").get(o);if(a?.source_hash===i)try{return JSON.parse(a.payload_json)}catch{}let s=r();return this.database.prepare("DELETE FROM zaip_aios_activities WHERE payload_type='parsed_source' AND activity_key=?").run(o),this.database.prepare(`INSERT INTO zaip_aios_activities(
|
|
1148
1148
|
activity_row_id, activity_source_kind, activity_key, source_path, source_hash,
|
|
1149
1149
|
recorded_at, run_role, root_run_id, payload_type, payload_json
|
|
1150
1150
|
) VALUES (?, 'technical_payload', ?, ?, ?, ?, 'technical', 'technical', 'parsed_source', ?)`).run(`TECH-${Q$()}`,o,n,i,new Date().toISOString(),JSON.stringify(s)),s}};function lm(e,t,n){let i=new Map(e.prepare("SELECT activity_row_id,activity_key,payload_json FROM zaip_aios_activities WHERE payload_type=?").all(t).map(l=>[l.activity_key,l])),r=e.prepare(`INSERT INTO zaip_aios_activities(
|
|
1151
1151
|
activity_row_id,activity_source_kind,activity_key,source_path,source_hash,recorded_at,run_role,root_run_id,payload_type,payload_json,occurred_day_sp
|
|
1152
|
-
) VALUES (?,'technical_payload',?,?,'',?,'technical','technical',?,?,?)`),o=e.prepare("UPDATE zaip_aios_activities SET payload_json=?,recorded_at=?,occurred_day_sp=? WHERE activity_row_id=?"),a=e.prepare("DELETE FROM zaip_aios_activities WHERE activity_row_id=?"),s=typeof n=="string"?e.prepare(n).all():n;for(let l of s){let c=`${t}:${l.row_key}`,u=i.get(c),d=l.payload_json;if(t==="source_state"&&u){let _=JSON.parse(d),p=JSON.parse(u.payload_json);_.source_hash===p.source_hash&&(_.last_processed_at=p.last_processed_at),d=JSON.stringify(_)}u?d!==u.payload_json&&o.run(d,new Date().toISOString(),l.occurred_day_sp??null,u.activity_row_id):r.run(`TECH-${Q$()}`,c,`sqlite://${t}`,new Date().toISOString(),t,d,l.occurred_day_sp??null),i.delete(c)}for(let l of i.values())a.run(l.activity_row_id)}function eL(e,t,n){let i=new Set(n),r=[...e,...t].filter(a=>i.has(a.activityRowId)),o=!0;for(;o;){o=!1;for(let a of t)i.has(a.activityRowId)||r.some(s=>a.startMs<s.endMs&&a.endMs>s.startMs)&&(i.add(a.activityRowId),r.push(a),o=!0)}return{ids:i,intervals:t.filter(a=>i.has(a.activityRowId))}}var
|
|
1153
|
-
`)}function zb(e,t){let n=vn,i=(_,p)=>t$(process.env.ZAIP_DASHBOARD_LAUNCH_PROGRESS==="1",n,_,p),r=new ct(e,t),o=i("first_fold_viewport",()=>r.firstFoldViewportAllTime()),a=i("first_fold_all_time",()=>r.firstFoldAllTime()),s=i("first_fold_board",()=>r.firstFoldBoardAllTime()),l=i("first_fold_cost_summary",()=>r.costMonitorSummaryAggregate({from:null,to:null})),c=ZP(),u=i("first_fold_cost_summary_month",()=>r.costMonitorSummaryAggregate(c)),d={from_day:c.from,to_day:c.to,source_latest_day:i("first_fold_latest_day",()=>r.firstFoldRelevantLatestDay()),aggregate:i("first_fold_month_aggregate",()=>r.firstFoldAggregate(c)),pages:{task:rm(s.pages.task,c.from,c.to),spec:rm(s.pages.spec,c.from,c.to),prd:rm(s.pages.prd,c.from,c.to)},top_tasks:i("first_fold_month_top_tasks",()=>r.topTasks(c))};r.close(),qP(t,{first_fold_viewport_cache:JSON.stringify(o),first_fold_all_time_cache:JSON.stringify(a),first_fold_all_time_board_cache:JSON.stringify(s),cost_monitor_summary_cache:JSON.stringify(l),cost_monitor_summary_month_cache:JSON.stringify({...c,aggregate:u}),first_fold_monthly_quick_cache:JSON.stringify(d)})}Qr();import{createHash as
|
|
1152
|
+
) VALUES (?,'technical_payload',?,?,'',?,'technical','technical',?,?,?)`),o=e.prepare("UPDATE zaip_aios_activities SET payload_json=?,recorded_at=?,occurred_day_sp=? WHERE activity_row_id=?"),a=e.prepare("DELETE FROM zaip_aios_activities WHERE activity_row_id=?"),s=typeof n=="string"?e.prepare(n).all():n;for(let l of s){let c=`${t}:${l.row_key}`,u=i.get(c),d=l.payload_json;if(t==="source_state"&&u){let _=JSON.parse(d),p=JSON.parse(u.payload_json);_.source_hash===p.source_hash&&(_.last_processed_at=p.last_processed_at),d=JSON.stringify(_)}u?d!==u.payload_json&&o.run(d,new Date().toISOString(),l.occurred_day_sp??null,u.activity_row_id):r.run(`TECH-${Q$()}`,c,`sqlite://${t}`,new Date().toISOString(),t,d,l.occurred_day_sp??null),i.delete(c)}for(let l of i.values())a.run(l.activity_row_id)}function eL(e,t,n){let i=new Set(n),r=[...e,...t].filter(a=>i.has(a.activityRowId)),o=!0;for(;o;){o=!1;for(let a of t)i.has(a.activityRowId)||r.some(s=>a.startMs<s.endMs&&a.endMs>s.startMs)&&(i.add(a.activityRowId),r.push(a),o=!0)}return{ids:i,intervals:t.filter(a=>i.has(a.activityRowId))}}var hQ=performance.now();function vn(e,t,n){process.env.ZAIP_DASHBOARD_LAUNCH_PROGRESS==="1"&&process.stderr.write(`${JSON.stringify({event:"dashboard_sqlite_rebuild_progress",phase:e,percent:t,detail:n,elapsed_ms:Math.round(performance.now()-hQ)})}
|
|
1153
|
+
`)}function zb(e,t){let n=vn,i=(_,p)=>t$(process.env.ZAIP_DASHBOARD_LAUNCH_PROGRESS==="1",n,_,p),r=new ct(e,t),o=i("first_fold_viewport",()=>r.firstFoldViewportAllTime()),a=i("first_fold_all_time",()=>r.firstFoldAllTime()),s=i("first_fold_board",()=>r.firstFoldBoardAllTime()),l=i("first_fold_cost_summary",()=>r.costMonitorSummaryAggregate({from:null,to:null})),c=ZP(),u=i("first_fold_cost_summary_month",()=>r.costMonitorSummaryAggregate(c)),d={from_day:c.from,to_day:c.to,source_latest_day:i("first_fold_latest_day",()=>r.firstFoldRelevantLatestDay()),aggregate:i("first_fold_month_aggregate",()=>r.firstFoldAggregate(c)),pages:{task:rm(s.pages.task,c.from,c.to),spec:rm(s.pages.spec,c.from,c.to),prd:rm(s.pages.prd,c.from,c.to)},top_tasks:i("first_fold_month_top_tasks",()=>r.topTasks(c))};r.close(),qP(t,{first_fold_viewport_cache:JSON.stringify(o),first_fold_all_time_cache:JSON.stringify(a),first_fold_all_time_board_cache:JSON.stringify(s),cost_monitor_summary_cache:JSON.stringify(l),cost_monitor_summary_month_cache:JSON.stringify({...c,aggregate:u}),first_fold_monthly_quick_cache:JSON.stringify(d)})}Qr();import{createHash as yQ}from"node:crypto";function bn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0&&!["unavailable","unknown","mixed"].includes(t.toLowerCase())?t:null}function tL(e,t){let n=["model","provider"],i=new Set(e.prepare("SELECT provider FROM zaip_dim_provider").all().map(C=>C.provider)),r=e.prepare(`SELECT activity_row_id, agent_invocation_id, task_id, duration_ms,
|
|
1154
1154
|
source_event_count, provider, model, total_tokens, cost_usd, cost_brl, run_id,
|
|
1155
1155
|
activity_source_kind, zaip_agent, zaip_agent_persona, zaip_agent_job,
|
|
1156
1156
|
execution_id, conversation_id, occurred_at, occurred_day_sp, llm_call_count,
|
|
@@ -2215,7 +2215,7 @@ SELECT i.*,
|
|
|
2215
2215
|
CREATE VIEW prd_summary_daily AS SELECT * FROM vw_prd_summary_daily;
|
|
2216
2216
|
CREATE VIEW task_status_daily AS SELECT * FROM vw_task_status_daily;
|
|
2217
2217
|
CREATE VIEW task_risk_daily AS SELECT * FROM vw_task_risk_daily;
|
|
2218
|
-
`;function lL(e){let{database:t,canonicalEntities:n,changedCreationRunIds:i,hasPersistentSchema:r,files:o,skipped:a,fingerprint:s,temporalRuns:l,getFold:c,pricingCatalog:u,fxRate:d,rootRunId:_,catalogHash:p,columns:g,canonicalInsertActivity:m,excludedUnknownTokenRunCount:f,unassistedActivityCount:v,agentProfiles:S}=e,b=new Map;for(let A of n.values())A.kind!=="spec"||A.creationRunId===null||b.set(A.creationRunId,[...b.get(A.creationRunId)??[],A]);for(let A of t.prepare("SELECT DISTINCT run_id FROM zaip_aios_activities WHERE payload_type='shared_creation_allocation'").all())(i.has(A.run_id)||l.has(A.run_id))&&t.prepare("DELETE FROM zaip_aios_activities WHERE payload_type='shared_creation_allocation' AND run_id=?").run(A.run_id);(()=>{for(let[A,I]of b){if(I.length===0||r&&!i.has(A)&&!l.has(A))continue;let he=c(A);if(he===void 0)continue;let{fold:me,row:Le}=he,Ce=me.run,Pe=me.effective_usage_records,Qt=t.prepare("SELECT duration_ms, duration_provenance, source_started_at, source_finished_at FROM zaip_aios_activities WHERE run_id=? AND payload_type IS NULL LIMIT 1").get(A),Y=em(Pe,me,u,d),ce=I.map(x=>x.id),$e=Qt?.duration_ms??null,Ke={source_duration_ms:fn($e,ce),duration_ms:fn($e,ce),input_tokens:fn(yn(Pe,"input"),ce),cached_input_tokens:fn(yn(Pe,"cached_input"),ce),output_tokens:fn(yn(Pe,"output"),ce),reasoning_tokens:fn(yn(Pe,"reasoning"),ce),total_tokens:fn(yn(Pe,"total"),ce),cost_usd:fn(Y.usd,ce),cost_brl:fn(Y.brl,ce)};for(let x of I){let se=Pe.find(Bt=>Bt.attributed_spec_id===x.id)??null,D=se?.source_started_at&&se?.source_finished_at?Math.max(0,Date.parse(se.source_finished_at)-Date.parse(se.source_started_at)):null,Ne=`ACTV-${y8("sha256").update(`shared-creation:${A}:${x.id}`).digest("hex").slice(0,24)}`,mt=me.records.at(-1),sn={activity_row_id:Ne,activity_source_kind:"shared_creation_allocation",activity_key:`shared-creation:${A}:${x.id}`,source_path:Le.path,source_hash:Le.content_sha256,source_occurred_at:Ce.occurred_at,recorded_at:mt?.occurred_at??Ce.occurred_at,version_activity_id:null,source_last_event_id:mt?.event_id??null,source_last_sequence:mt?.sequence??null,work_item_kind:"spec",title:x.title,work_item_status:x.status,work_stage:x.stage,risk:x.risk,run_role:"shared_creation_allocation",root_run_id:_(me),parent_run_id:Ce.parent_run_id,agent_run_id:null,root_agent_run_id:null,parent_agent_run_id:null,agent_run_role:null,delegation_depth:Ce.delegation_depth??null,agent_invocation_id:null,root_agent_invocation_id:null,parent_agent_invocation_id:null,invocation_kind:null,execution_id:Ce.execution_id,task_id:null,spec_id:x.id,prd_id:null,change_id:null,conversation_id:Ce.conversation_id,run_id:Ce.run_id,occurred_at:Ce.occurred_at,occurred_day_sp:yt(Ce.occurred_at),execution_kind:Ce.execution_kind??null,entrypoint:Ce.entrypoint,work_type:Ce.work_type,phase:Ce.phase,purpose:Ce.run_purpose??null,status:me.status,activity_kind:"planning",zaip_agent:Ce.agent_name??Ce.agent,zaip_agent_persona:null,zaip_agent_job:null,zaip_agent_role:null,agent_catalog_id:null,agent_catalog_hash:p,client:Ce.client,provider:null,model:null,service_tier:null,reasoning_effort:Ce.reasoning_effort??null,developer_account_id:null,developer_login:null,developer_attribution_source:null,source_duration_ms:D??Ke.source_duration_ms.get(x.id)??null,source_started_at:se?.source_started_at??Qt?.source_started_at??null,source_finished_at:se?.source_finished_at??Qt?.source_finished_at??null,duration_ms:D??Ke.duration_ms.get(x.id)??null,duration_provenance:se?"explicit_spec_turn_recovery":"shared_creation_allocation",input_tokens:se?.tokens.input??Ke.input_tokens.get(x.id)??null,cached_input_tokens:se?.tokens.cached_input??Ke.cached_input_tokens.get(x.id)??null,output_tokens:se?.tokens.output??Ke.output_tokens.get(x.id)??null,reasoning_tokens:se?.tokens.reasoning??Ke.reasoning_tokens.get(x.id)??null,total_tokens:se?.tokens.total??Ke.total_tokens.get(x.id)??null,token_source:hn(Pe.map(Bt=>Bt.tokens.source)),usage_event_count:Pe.length,llm_call_count:null,cost_usd:se?.cost.usd??Ke.cost_usd.get(x.id)??null,cost_brl:se?.cost.brl??Ke.cost_brl.get(x.id)??null,cost_method:Y.method,pricing_model:Y.pricingModel,pricing_source:Y.pricingSource,fx_rate:Y.fxRate,source_event_count:me.records.length,root_run_duration:null,sub_run_duration:null,payload_type:"shared_creation_allocation",payload_json:JSON.stringify({provenance:se?"explicit_spec_turn_recovery":"shared_creation_allocation",base_duration_provenance:Qt?.duration_provenance??null,creation_run_id:A,spec_id:x.id})};m.run(...g.map(Bt=>sn[Bt]??null))}}})(),vn("projection_allocations_ready",78,"Rateios de cria\xE7\xE3o conclu\xEDdos.");let k=Number(t.prepare("SELECT COUNT(*) count FROM zaip_aios_activities WHERE payload_type IS NULL").get().count),P=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE agent_invocation_id IS NOT NULL").get().count;t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("source_file_count",String(o)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("excluded_source_count",String(a));let U=t.prepare("SELECT COUNT(DISTINCT occurred_day_sp) AS count FROM zaip_aios_activities WHERE occurred_day_sp IS NOT NULL").get().count,$=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE payload_type IS NULL OR payload_type='shared_creation_allocation'").get().count,B=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE activity_source_kind = 'agent_run'").get().count,z=null;for(let A of new Set(t.prepare("SELECT DISTINCT run_id FROM zaip_aios_activities WHERE payload_type IS NULL").all().map(I=>I.run_id))){let I=c(A)?.fold.effective_usage_records??[];for(let he of I){if(typeof he.tokens.total!="number"||he.tokens.total<=0)continue;let me=Date.parse(he.occurred_at);Number.isFinite(me)&&(z===null||me>z.instant)&&(z={occurredAt:he.occurred_at,instant:me})}}t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("daily_aggregate_count",String(U)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("activity_count",String($)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("canonical_run_count",String(k)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("excluded_unknown_token_run_count",String(f)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("agent_run_count",String(B)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("telemetry_summary_count","0"),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("unassisted_activity_count",String(v)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("unassisted_turn_count",String(v)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("agent_invocation_count",String(P)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("schema_version",Bn),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("source_fingerprint",s),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("snapshot_updated_at",new Date().toISOString()),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("latest_token_collected_at",z?.occurredAt??"");let R=t.prepare("INSERT OR IGNORE INTO zaip_dim_llm_model(model) VALUES (?)"),L=t.prepare("INSERT OR IGNORE INTO zaip_dim_provider(provider) VALUES (?)");for(let A of u.models)R.run(A.id),L.run(A.provider);let J=tL(t,S);vn("projection_costs_ready",78,"Agregados de custo conclu\xEDdos.");let le=(A,I,he=!1)=>lm(t,A,I);le("metadata","SELECT key AS row_key, json_object('key', key, 'value', value) AS payload_json FROM read_model_metadata"),le("source_state","SELECT source_path AS row_key, json_object('source_path', source_path, 'source_hash', source_hash, 'mtime_ms', mtime_ms, 'ctime_ms', ctime_ms, 'size_bytes', size_bytes, 'file_identity', file_identity, 'source_kind', source_kind, 'last_processed_at', last_processed_at) AS payload_json FROM read_model_source_state",!0),le("file","SELECT path AS row_key, json_object('path', path, 'content', content, 'mtime_ms', mtime_ms, 'size_bytes', size_bytes, 'content_sha256', content_sha256, 'artifact_kind', artifact_kind, 'artifact_id', artifact_id, 'artifact_occurred_at', artifact_occurred_at, 'artifact_occurred_day_sp', artifact_occurred_day_sp, 'artifact_task_id', artifact_task_id, 'artifact_change_id', artifact_change_id, 'artifact_run_id', artifact_run_id) AS payload_json FROM files",!0),le("work_item","SELECT entity_kind || ':' || id AS row_key, json_object('entity_kind', entity_kind, 'id', id, 'title', title, 'status', status, 'stage', stage, 'risk', risk, 'priority', priority, 'spec_id', spec_id, 'prd_id', prd_id, 'change_id', change_id, 'creation_run_id', creation_run_id, 'completed_run_id', completed_run_id, 'occurred_at', occurred_at, 'occurred_day_sp', occurred_day_sp) AS payload_json FROM canonical_work_items"),le("execution","SELECT id AS row_key, json_object('id', id, 'status', status, 'kind', kind, 'origin_type', origin_type, 'origin_id', origin_id, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'finished_at', finished_at, 'source_path', source_path) AS payload_json FROM canonical_executions"),le("change","SELECT id AS row_key, json_object('id', id, 'title', title, 'status', status, 'risk', risk, 'source_type', source_type, 'source_id', source_id, 'source_spec_id', source_spec_id, 'source_prd_id', source_prd_id, 'requirement_ids_json', requirement_ids_json, 'acceptance_ids_json', acceptance_ids_json, 'task_ids_json', task_ids_json, 'result', result, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'source_path', source_path) AS payload_json FROM canonical_changes"),le("decision","SELECT id AS row_key, json_object('id', id, 'title', title, 'origin', origin, 'scope_type', scope_type, 'scope_id', scope_id, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'source_path', source_path) AS payload_json FROM canonical_decisions"),le("run_index","SELECT run_id AS row_key, json_object('run_id', run_id, 'occurred_at', occurred_at, 'occurred_day_sp', occurred_day_sp, 'task_id', task_id, 'phase', phase, 'run_role', run_role, 'duration_ms', duration_ms, 'source_event_count', source_event_count, 'zaip_agent', zaip_agent, 'provider', provider, 'model', model, 'status', status) AS payload_json FROM canonical_run_index"),le("usage_segment","SELECT agent_invocation_id || ':' || ROW_NUMBER() OVER(PARTITION BY agent_invocation_id ORDER BY rowid) AS row_key, json_object('agent_invocation_id', agent_invocation_id, 'provider', provider, 'model', model, 'service_tier', service_tier, 'reasoning_effort', reasoning_effort, 'input_tokens', input_tokens, 'cached_input_tokens', cached_input_tokens, 'uncached_input_tokens', uncached_input_tokens, 'output_tokens', output_tokens, 'reasoning_tokens', reasoning_tokens, 'visible_output_tokens', visible_output_tokens, 'total_tokens', total_tokens, 'input_rate_usd_per_million', input_rate_usd_per_million, 'cached_input_rate_usd_per_million', cached_input_rate_usd_per_million, 'output_rate_usd_per_million', output_rate_usd_per_million, 'reasoning_rate_usd_per_million', reasoning_rate_usd_per_million, 'context_input_multiplier', context_input_multiplier, 'context_output_multiplier', context_output_multiplier, 'speed_cost_multiplier', speed_cost_multiplier, 'pricing_scenario', pricing_scenario, 'standard_cost_usd', standard_cost_usd, 'speed_uplift_usd', speed_uplift_usd, 'input_cost_usd', input_cost_usd, 'cached_input_cost_usd', cached_input_cost_usd, 'output_cost_usd', output_cost_usd, 'reasoning_cost_usd', reasoning_cost_usd, 'calculated_cost_usd', calculated_cost_usd, 'recorded_cost_usd', recorded_cost_usd, 'cost_variance_usd', cost_variance_usd, 'cost_usd', cost_usd, 'cost_brl', cost_brl, 'cost_method', cost_method, 'pricing_model', pricing_model, 'pricing_source', pricing_source, 'fx_rate', fx_rate) AS payload_json FROM invocation_usage_segments"),le("duration_allocation","SELECT activity_row_id || ':' || occurred_day_sp AS row_key, json_object('activity_row_id', activity_row_id, 'occurred_day_sp', occurred_day_sp, 'attributed_token_active_ms', attributed_token_active_ms) AS payload_json FROM attributed_token_active_facts");let j=t.prepare("INSERT OR IGNORE INTO zaip_dim_zaip_agent(zaip_agent, catalog_id, persona, job, role, catalog_hash) VALUES (?, ?, ?, ?, ?, ?)");for(let[A,I]of S)j.run(A,I.catalogId,I.persona,I.job,I.role,p);let Q=[];for(let A of["model","provider"])for(let I of J[A])Q.push({row_key:`${A}:${I.key}`,payload_json:JSON.stringify({schema_version:1,dimension:A,...I})});for(let[A,I]of Object.entries(J.remote)){for(let he of I.rows)Q.push({row_key:`${A}:${he.key}`,payload_json:JSON.stringify({schema_version:1,dimension:A,row_kind:"row",...he})});Q.push({row_key:`${A}:__totals__`,payload_json:JSON.stringify({schema_version:1,dimension:A,row_kind:"totals",...I.totals})})}lm(t,"cost_dimension_aggregate_v1",Q),vn("projection_payloads_ready",78,"Proje\xE7\xF5es incrementais persistidas."),t.exec(r?qb.replace("CREATE TABLE cost_invocation_dimension_facts AS","DELETE FROM cost_invocation_dimension_facts; INSERT INTO cost_invocation_dimension_facts").replace(/CREATE INDEX cost_dimension_facts_[A-Za-z_]+ ON [^;]+;/g,""):qb),vn("projection_facts_ready",78,"Fatos das dimens\xF5es conclu\xEDdos.");let C=aL+cL,X=[...C.matchAll(/\bCREATE VIEW ([A-Za-z_][A-Za-z0-9_]*)/g)].map(A=>A[1]).filter(A=>A!==void 0).reduce((A,I)=>{let he=I.startsWith("vw_")?I.slice(3):I;return A.replace(new RegExp(`\\b${I}\\b`,"g"),`zaip_vw_${he}`)},C),ne=new Set,ve=X.replace(/\bCREATE VIEW ([A-Za-z_][A-Za-z0-9_]*)[\s\S]*?;/g,(A,I)=>ne.has(I)?"":(ne.add(I),A));r||t.exec(ve),vn("projection_views_ready",78,"Views p\xFAblicas preparadas.");let ge=`
|
|
2218
|
+
`;function lL(e){let{database:t,canonicalEntities:n,changedCreationRunIds:i,hasPersistentSchema:r,files:o,skipped:a,fingerprint:s,temporalRuns:l,getFold:c,pricingCatalog:u,fxRate:d,rootRunId:_,catalogHash:p,columns:g,canonicalInsertActivity:m,excludedUnknownTokenRunCount:f,unassistedActivityCount:v,agentProfiles:S}=e,b=new Map;for(let A of n.values())A.kind!=="spec"||A.creationRunId===null||b.set(A.creationRunId,[...b.get(A.creationRunId)??[],A]);for(let A of t.prepare("SELECT DISTINCT run_id FROM zaip_aios_activities WHERE payload_type='shared_creation_allocation'").all())(i.has(A.run_id)||l.has(A.run_id))&&t.prepare("DELETE FROM zaip_aios_activities WHERE payload_type='shared_creation_allocation' AND run_id=?").run(A.run_id);(()=>{for(let[A,I]of b){if(I.length===0||r&&!i.has(A)&&!l.has(A))continue;let he=c(A);if(he===void 0)continue;let{fold:me,row:Le}=he,Ce=me.run,Pe=me.effective_usage_records,Qt=t.prepare("SELECT duration_ms, duration_provenance, source_started_at, source_finished_at FROM zaip_aios_activities WHERE run_id=? AND payload_type IS NULL LIMIT 1").get(A),Y=em(Pe,me,u,d),ce=I.map(x=>x.id),$e=Qt?.duration_ms??null,Ke={source_duration_ms:fn($e,ce),duration_ms:fn($e,ce),input_tokens:fn(yn(Pe,"input"),ce),cached_input_tokens:fn(yn(Pe,"cached_input"),ce),output_tokens:fn(yn(Pe,"output"),ce),reasoning_tokens:fn(yn(Pe,"reasoning"),ce),total_tokens:fn(yn(Pe,"total"),ce),cost_usd:fn(Y.usd,ce),cost_brl:fn(Y.brl,ce)};for(let x of I){let se=Pe.find(Bt=>Bt.attributed_spec_id===x.id)??null,D=se?.source_started_at&&se?.source_finished_at?Math.max(0,Date.parse(se.source_finished_at)-Date.parse(se.source_started_at)):null,Ne=`ACTV-${yQ("sha256").update(`shared-creation:${A}:${x.id}`).digest("hex").slice(0,24)}`,mt=me.records.at(-1),sn={activity_row_id:Ne,activity_source_kind:"shared_creation_allocation",activity_key:`shared-creation:${A}:${x.id}`,source_path:Le.path,source_hash:Le.content_sha256,source_occurred_at:Ce.occurred_at,recorded_at:mt?.occurred_at??Ce.occurred_at,version_activity_id:null,source_last_event_id:mt?.event_id??null,source_last_sequence:mt?.sequence??null,work_item_kind:"spec",title:x.title,work_item_status:x.status,work_stage:x.stage,risk:x.risk,run_role:"shared_creation_allocation",root_run_id:_(me),parent_run_id:Ce.parent_run_id,agent_run_id:null,root_agent_run_id:null,parent_agent_run_id:null,agent_run_role:null,delegation_depth:Ce.delegation_depth??null,agent_invocation_id:null,root_agent_invocation_id:null,parent_agent_invocation_id:null,invocation_kind:null,execution_id:Ce.execution_id,task_id:null,spec_id:x.id,prd_id:null,change_id:null,conversation_id:Ce.conversation_id,run_id:Ce.run_id,occurred_at:Ce.occurred_at,occurred_day_sp:yt(Ce.occurred_at),execution_kind:Ce.execution_kind??null,entrypoint:Ce.entrypoint,work_type:Ce.work_type,phase:Ce.phase,purpose:Ce.run_purpose??null,status:me.status,activity_kind:"planning",zaip_agent:Ce.agent_name??Ce.agent,zaip_agent_persona:null,zaip_agent_job:null,zaip_agent_role:null,agent_catalog_id:null,agent_catalog_hash:p,client:Ce.client,provider:null,model:null,service_tier:null,reasoning_effort:Ce.reasoning_effort??null,developer_account_id:null,developer_login:null,developer_attribution_source:null,source_duration_ms:D??Ke.source_duration_ms.get(x.id)??null,source_started_at:se?.source_started_at??Qt?.source_started_at??null,source_finished_at:se?.source_finished_at??Qt?.source_finished_at??null,duration_ms:D??Ke.duration_ms.get(x.id)??null,duration_provenance:se?"explicit_spec_turn_recovery":"shared_creation_allocation",input_tokens:se?.tokens.input??Ke.input_tokens.get(x.id)??null,cached_input_tokens:se?.tokens.cached_input??Ke.cached_input_tokens.get(x.id)??null,output_tokens:se?.tokens.output??Ke.output_tokens.get(x.id)??null,reasoning_tokens:se?.tokens.reasoning??Ke.reasoning_tokens.get(x.id)??null,total_tokens:se?.tokens.total??Ke.total_tokens.get(x.id)??null,token_source:hn(Pe.map(Bt=>Bt.tokens.source)),usage_event_count:Pe.length,llm_call_count:null,cost_usd:se?.cost.usd??Ke.cost_usd.get(x.id)??null,cost_brl:se?.cost.brl??Ke.cost_brl.get(x.id)??null,cost_method:Y.method,pricing_model:Y.pricingModel,pricing_source:Y.pricingSource,fx_rate:Y.fxRate,source_event_count:me.records.length,root_run_duration:null,sub_run_duration:null,payload_type:"shared_creation_allocation",payload_json:JSON.stringify({provenance:se?"explicit_spec_turn_recovery":"shared_creation_allocation",base_duration_provenance:Qt?.duration_provenance??null,creation_run_id:A,spec_id:x.id})};m.run(...g.map(Bt=>sn[Bt]??null))}}})(),vn("projection_allocations_ready",78,"Rateios de cria\xE7\xE3o conclu\xEDdos.");let k=Number(t.prepare("SELECT COUNT(*) count FROM zaip_aios_activities WHERE payload_type IS NULL").get().count),P=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE agent_invocation_id IS NOT NULL").get().count;t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("source_file_count",String(o)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("excluded_source_count",String(a));let U=t.prepare("SELECT COUNT(DISTINCT occurred_day_sp) AS count FROM zaip_aios_activities WHERE occurred_day_sp IS NOT NULL").get().count,$=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE payload_type IS NULL OR payload_type='shared_creation_allocation'").get().count,B=t.prepare("SELECT COUNT(*) AS count FROM zaip_aios_activities WHERE activity_source_kind = 'agent_run'").get().count,z=null;for(let A of new Set(t.prepare("SELECT DISTINCT run_id FROM zaip_aios_activities WHERE payload_type IS NULL").all().map(I=>I.run_id))){let I=c(A)?.fold.effective_usage_records??[];for(let he of I){if(typeof he.tokens.total!="number"||he.tokens.total<=0)continue;let me=Date.parse(he.occurred_at);Number.isFinite(me)&&(z===null||me>z.instant)&&(z={occurredAt:he.occurred_at,instant:me})}}t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("daily_aggregate_count",String(U)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("activity_count",String($)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("canonical_run_count",String(k)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("excluded_unknown_token_run_count",String(f)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("agent_run_count",String(B)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("telemetry_summary_count","0"),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("unassisted_activity_count",String(v)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("unassisted_turn_count",String(v)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("agent_invocation_count",String(P)),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("schema_version",Bn),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("source_fingerprint",s),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("snapshot_updated_at",new Date().toISOString()),t.prepare("INSERT INTO read_model_metadata(key, value) VALUES (?, ?)").run("latest_token_collected_at",z?.occurredAt??"");let R=t.prepare("INSERT OR IGNORE INTO zaip_dim_llm_model(model) VALUES (?)"),L=t.prepare("INSERT OR IGNORE INTO zaip_dim_provider(provider) VALUES (?)");for(let A of u.models)R.run(A.id),L.run(A.provider);let J=tL(t,S);vn("projection_costs_ready",78,"Agregados de custo conclu\xEDdos.");let le=(A,I,he=!1)=>lm(t,A,I);le("metadata","SELECT key AS row_key, json_object('key', key, 'value', value) AS payload_json FROM read_model_metadata"),le("source_state","SELECT source_path AS row_key, json_object('source_path', source_path, 'source_hash', source_hash, 'mtime_ms', mtime_ms, 'ctime_ms', ctime_ms, 'size_bytes', size_bytes, 'file_identity', file_identity, 'source_kind', source_kind, 'last_processed_at', last_processed_at) AS payload_json FROM read_model_source_state",!0),le("file","SELECT path AS row_key, json_object('path', path, 'content', content, 'mtime_ms', mtime_ms, 'size_bytes', size_bytes, 'content_sha256', content_sha256, 'artifact_kind', artifact_kind, 'artifact_id', artifact_id, 'artifact_occurred_at', artifact_occurred_at, 'artifact_occurred_day_sp', artifact_occurred_day_sp, 'artifact_task_id', artifact_task_id, 'artifact_change_id', artifact_change_id, 'artifact_run_id', artifact_run_id) AS payload_json FROM files",!0),le("work_item","SELECT entity_kind || ':' || id AS row_key, json_object('entity_kind', entity_kind, 'id', id, 'title', title, 'status', status, 'stage', stage, 'risk', risk, 'priority', priority, 'spec_id', spec_id, 'prd_id', prd_id, 'change_id', change_id, 'creation_run_id', creation_run_id, 'completed_run_id', completed_run_id, 'occurred_at', occurred_at, 'occurred_day_sp', occurred_day_sp) AS payload_json FROM canonical_work_items"),le("execution","SELECT id AS row_key, json_object('id', id, 'status', status, 'kind', kind, 'origin_type', origin_type, 'origin_id', origin_id, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'finished_at', finished_at, 'source_path', source_path) AS payload_json FROM canonical_executions"),le("change","SELECT id AS row_key, json_object('id', id, 'title', title, 'status', status, 'risk', risk, 'source_type', source_type, 'source_id', source_id, 'source_spec_id', source_spec_id, 'source_prd_id', source_prd_id, 'requirement_ids_json', requirement_ids_json, 'acceptance_ids_json', acceptance_ids_json, 'task_ids_json', task_ids_json, 'result', result, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'source_path', source_path) AS payload_json FROM canonical_changes"),le("decision","SELECT id AS row_key, json_object('id', id, 'title', title, 'origin', origin, 'scope_type', scope_type, 'scope_id', scope_id, 'created_at', created_at, 'occurred_day_sp', occurred_day_sp, 'source_path', source_path) AS payload_json FROM canonical_decisions"),le("run_index","SELECT run_id AS row_key, json_object('run_id', run_id, 'occurred_at', occurred_at, 'occurred_day_sp', occurred_day_sp, 'task_id', task_id, 'phase', phase, 'run_role', run_role, 'duration_ms', duration_ms, 'source_event_count', source_event_count, 'zaip_agent', zaip_agent, 'provider', provider, 'model', model, 'status', status) AS payload_json FROM canonical_run_index"),le("usage_segment","SELECT agent_invocation_id || ':' || ROW_NUMBER() OVER(PARTITION BY agent_invocation_id ORDER BY rowid) AS row_key, json_object('agent_invocation_id', agent_invocation_id, 'provider', provider, 'model', model, 'service_tier', service_tier, 'reasoning_effort', reasoning_effort, 'input_tokens', input_tokens, 'cached_input_tokens', cached_input_tokens, 'uncached_input_tokens', uncached_input_tokens, 'output_tokens', output_tokens, 'reasoning_tokens', reasoning_tokens, 'visible_output_tokens', visible_output_tokens, 'total_tokens', total_tokens, 'input_rate_usd_per_million', input_rate_usd_per_million, 'cached_input_rate_usd_per_million', cached_input_rate_usd_per_million, 'output_rate_usd_per_million', output_rate_usd_per_million, 'reasoning_rate_usd_per_million', reasoning_rate_usd_per_million, 'context_input_multiplier', context_input_multiplier, 'context_output_multiplier', context_output_multiplier, 'speed_cost_multiplier', speed_cost_multiplier, 'pricing_scenario', pricing_scenario, 'standard_cost_usd', standard_cost_usd, 'speed_uplift_usd', speed_uplift_usd, 'input_cost_usd', input_cost_usd, 'cached_input_cost_usd', cached_input_cost_usd, 'output_cost_usd', output_cost_usd, 'reasoning_cost_usd', reasoning_cost_usd, 'calculated_cost_usd', calculated_cost_usd, 'recorded_cost_usd', recorded_cost_usd, 'cost_variance_usd', cost_variance_usd, 'cost_usd', cost_usd, 'cost_brl', cost_brl, 'cost_method', cost_method, 'pricing_model', pricing_model, 'pricing_source', pricing_source, 'fx_rate', fx_rate) AS payload_json FROM invocation_usage_segments"),le("duration_allocation","SELECT activity_row_id || ':' || occurred_day_sp AS row_key, json_object('activity_row_id', activity_row_id, 'occurred_day_sp', occurred_day_sp, 'attributed_token_active_ms', attributed_token_active_ms) AS payload_json FROM attributed_token_active_facts");let j=t.prepare("INSERT OR IGNORE INTO zaip_dim_zaip_agent(zaip_agent, catalog_id, persona, job, role, catalog_hash) VALUES (?, ?, ?, ?, ?, ?)");for(let[A,I]of S)j.run(A,I.catalogId,I.persona,I.job,I.role,p);let Q=[];for(let A of["model","provider"])for(let I of J[A])Q.push({row_key:`${A}:${I.key}`,payload_json:JSON.stringify({schema_version:1,dimension:A,...I})});for(let[A,I]of Object.entries(J.remote)){for(let he of I.rows)Q.push({row_key:`${A}:${he.key}`,payload_json:JSON.stringify({schema_version:1,dimension:A,row_kind:"row",...he})});Q.push({row_key:`${A}:__totals__`,payload_json:JSON.stringify({schema_version:1,dimension:A,row_kind:"totals",...I.totals})})}lm(t,"cost_dimension_aggregate_v1",Q),vn("projection_payloads_ready",78,"Proje\xE7\xF5es incrementais persistidas."),t.exec(r?qb.replace("CREATE TABLE cost_invocation_dimension_facts AS","DELETE FROM cost_invocation_dimension_facts; INSERT INTO cost_invocation_dimension_facts").replace(/CREATE INDEX cost_dimension_facts_[A-Za-z_]+ ON [^;]+;/g,""):qb),vn("projection_facts_ready",78,"Fatos das dimens\xF5es conclu\xEDdos.");let C=aL+cL,X=[...C.matchAll(/\bCREATE VIEW ([A-Za-z_][A-Za-z0-9_]*)/g)].map(A=>A[1]).filter(A=>A!==void 0).reduce((A,I)=>{let he=I.startsWith("vw_")?I.slice(3):I;return A.replace(new RegExp(`\\b${I}\\b`,"g"),`zaip_vw_${he}`)},C),ne=new Set,ve=X.replace(/\bCREATE VIEW ([A-Za-z_][A-Za-z0-9_]*)[\s\S]*?;/g,(A,I)=>ne.has(I)?"":(ne.add(I),A));r||t.exec(ve),vn("projection_views_ready",78,"Views p\xFAblicas preparadas.");let ge=`
|
|
2219
2219
|
CREATE TABLE developer_cost_projection AS
|
|
2220
2220
|
WITH completed AS (
|
|
2221
2221
|
SELECT a.developer_account_id, COUNT(DISTINCT w.id) AS completed_task_count
|
|
@@ -2254,7 +2254,7 @@ SELECT i.*,
|
|
|
2254
2254
|
DROP TABLE IF EXISTS invocation_usage_segments;
|
|
2255
2255
|
`)}Dn();yc();import{createHash as uL}from"node:crypto";function dL(e){let{database:t,previousActivities:n,parsedSources:i,refresh:r,hasPersistentSchema:o,dirtyRunIds:a,changedSources:s,oldIntervals:l,canonicalEntities:c,entityChanged:u}=e,d=t.prepare("SELECT content FROM files WHERE path = ?").get(".agents/config/agents/catalog.yaml")?.content,_=t.prepare("SELECT content FROM files WHERE path = ?").get(".agents/config/clients.yaml")?.content,p=JP(d,_),g=d===void 0?null:uL("sha256").update(d).digest("hex"),m=t.prepare("SELECT content FROM files WHERE path = ?").get(".agents/config/pricing/models.json")?.content,f=xo.parse(JSON.parse(m??'{"schema_version":1,"updated_at":"1970-01-01T00:00:00.000Z","source":"missing","disclaimer":"missing","models":[]}')),v=XP(t.prepare("SELECT path, content FROM files WHERE path LIKE '.agents/config/pricing/fx/%.json'").all()),S=t.prepare("SELECT path, content, content_sha256 FROM files WHERE (path LIKE '.agents/data/runs/%.jsonl' OR path LIKE '.agents/records/runs/%.jsonl') ORDER BY CASE WHEN path LIKE '.agents/data/%' THEN 1 ELSE 0 END, path").all(),b=t.prepare("SELECT content FROM files WHERE path LIKE '.agents/data/lifecycle/historical-developer-attribution/%.json' OR path LIKE '.agents/records/lifecycle/historical-developer-attribution/%.json'").all().flatMap(q=>{try{return[uy(JSON.parse(q.content))]}catch{return[]}}),h=(q,A)=>{let I=ts(A);if(I!==null&&typeof I.account_id=="string"&&typeof I.login_snapshot=="string")return{accountId:I.account_id,login:I.login_snapshot,source:typeof I.attribution_source=="string"?I.attribution_source:"native"};for(let he of b)try{let me=he({run_id:String(JSON.parse(q.content.split(/\r?\n/u)[0]??"{}").run_id??""),path:q.path,content:q.content});if(me!==null)return{accountId:me.account_id,login:me.login_snapshot,source:me.attribution_source}}catch{}return null},k=new Map(S.map(q=>[q.path.split("/").at(-1)?.replace(/\.jsonl$/,""),q]));for(let q of n){let A=S.find(he=>he.path===q.source_path),I=k.get(q.run_id);A&&(I===void 0||!I.path.startsWith(".agents/data/"))&&k.set(q.run_id,A)}let P=new Map,U=q=>i.read("fold",q.path,q.content_sha256,()=>(r.canonical_runs_refolded+=1,La($a(q.content)))),$=q=>{let A=P.get(q);if(A)return A;let I=k.get(q);if(I)return{row:I,fold:U(I)}};for(let q of S){let A=n.find(he=>he.source_path===q.path);if(o&&A&&!a.has(A.run_id)&&!s.has(q.path))continue;let I=U(q);a.add(I.run.run_id),P.set(I.run.run_id,{row:q,fold:I})}let B=q=>{let A=q,I=new Set;for(;A.run.parent_run_id!==null&&!I.has(A.run.run_id);){I.add(A.run.run_id);let he=$(A.run.parent_run_id)?.fold;if(he===void 0)break;A=he}return A.run.run_id},z=["activity_row_id","activity_source_kind","activity_key","source_path","source_hash","source_occurred_at","recorded_at","version_activity_id","source_last_event_id","source_last_sequence","work_item_kind","title","work_item_status","work_stage","risk","run_role","root_run_id","parent_run_id","agent_run_id","root_agent_run_id","parent_agent_run_id","agent_run_role","delegation_depth","agent_invocation_id","root_agent_invocation_id","parent_agent_invocation_id","invocation_kind","execution_id","task_id","spec_id","prd_id","change_id","conversation_id","run_id","occurred_at","occurred_day_sp","execution_kind","entrypoint","work_type","phase","purpose","status","activity_kind","zaip_agent","zaip_agent_persona","zaip_agent_job","zaip_agent_role","agent_catalog_id","agent_catalog_hash","client","provider","model","service_tier","reasoning_effort","developer_account_id","developer_login","developer_attribution_source","source_duration_ms","source_started_at","source_finished_at","duration_ms","duration_provenance","input_tokens","cached_input_tokens","output_tokens","reasoning_tokens","total_tokens","token_source","usage_event_count","llm_call_count","cost_usd","cost_brl","cost_method","pricing_model","pricing_source","fx_rate","source_event_count","root_run_duration","sub_run_duration","payload_type","payload_json"],R=t.prepare(`INSERT INTO zaip_aios_activities(${z.join(",")}) VALUES (${z.map(()=>"?").join(",")})`),L=t.prepare("INSERT INTO attributed_token_active_facts(activity_row_id, occurred_day_sp, attributed_token_active_ms) VALUES (?, ?, ?)"),J=t.prepare("INSERT INTO invocation_usage_segments VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),le=t.prepare("INSERT INTO canonical_run_index(run_id, occurred_at, occurred_day_sp, task_id, phase, run_role, duration_ms, source_event_count, zaip_agent, provider, model, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),j=n.filter(q=>!a.has(q.run_id)&&q.agent_invocation_id===null).length,Q=0,C=l.filter(q=>!n.some(A=>A.activity_row_id===q.activityRowId&&a.has(A.run_id))),F=[];for(let{row:q,fold:A}of P.values()){let I=A.run,he=h(q,I.developer_identity??null),me=A.effective_usage_records,Le=I.agent_invocation_id??null,Ce=Le!==null,Pe=I.parent_run_id===null?"root":"subrun",Qt=Ce?I.parent_agent_invocation_id===null?"root":"subagent":null,Y=yn(me,"total"),ce=KP(me,A),$e=em(me,A,f,v),Ke=me.filter(je=>typeof je.tokens.total=="number"||typeof je.cost.usd=="number"||typeof je.cost.brl=="number"),x=hn(Ke.map(je=>je.model??I.model))??(I.model==="unavailable"?null:I.model),se=hn(Ke.map(je=>is(je.provider,je.model??I.model,I.client)))??is(I.provider,x,I.client),D=I.agent_name??I.agent;le.run(I.run_id,I.occurred_at,yt(I.occurred_at),I.task_id,I.phase,Pe,ce.effective,A.records.length,D,se,x,A.status);let Ne=p.get(D)??p.get(I.agent),mt=I.task_id===null?I.spec_id===null?I.prd_id===null?null:c.get(`prd:${I.prd_id}`):c.get(`spec:${I.spec_id}`):c.get(`task:${I.task_id}`),sn=new Set([...A.model_call_records.map(je=>je.call_id),...me.map(je=>je.model_call_id).filter(je=>typeof je=="string")]),Bt=A.records.at(-1),cn=`ACTV-${uL("sha256").update(`run:${I.run_id}`).digest("hex").slice(0,24)}`,sl={activity_row_id:cn,activity_source_kind:Ce?"agent_run":"unassisted_turn",activity_key:`run:${I.run_id}`,source_path:q.path,source_hash:q.content_sha256,source_occurred_at:me.map(je=>je.source_occurred_at).filter(je=>typeof je=="string").sort()[0]??I.occurred_at,recorded_at:Bt.occurred_at,version_activity_id:null,source_last_event_id:Bt.event_id,source_last_sequence:Bt.sequence,work_item_kind:mt?.kind??null,title:mt?.title??null,work_item_status:mt?.status??null,work_stage:mt?.stage??null,risk:mt?.risk??null,run_role:Pe,root_run_id:B(A),parent_run_id:I.parent_run_id,agent_run_id:Le,root_agent_run_id:I.root_agent_invocation_id??Le,parent_agent_run_id:I.parent_agent_invocation_id??null,agent_run_role:Qt,delegation_depth:I.delegation_depth??null,agent_invocation_id:Le,root_agent_invocation_id:I.root_agent_invocation_id??Le,parent_agent_invocation_id:I.parent_agent_invocation_id??null,invocation_kind:I.invocation_kind??null,execution_id:I.execution_id,task_id:I.task_id,spec_id:I.spec_id,prd_id:I.prd_id,change_id:I.change_id,conversation_id:I.conversation_id,run_id:I.run_id,occurred_at:I.occurred_at,occurred_day_sp:yt(I.occurred_at),execution_kind:I.execution_kind??null,entrypoint:I.entrypoint,work_type:I.work_type,phase:I.phase,purpose:I.run_purpose??null,status:A.status,activity_kind:GP({execution_id:I.execution_id,task_id:I.task_id,spec_id:I.spec_id,prd_id:I.prd_id,phase:I.phase,purpose:I.run_purpose??null}),zaip_agent:D,zaip_agent_persona:Ne?.persona??null,zaip_agent_job:Ne?.job??null,zaip_agent_role:Ne?.role??null,agent_catalog_id:Ne?.catalogId??null,agent_catalog_hash:g,client:I.client,provider:se,model:x,service_tier:hn(me.map(je=>je.runtime?.service_tier??null)),reasoning_effort:hn(me.map(je=>je.runtime?.reasoning_effort??null))??I.reasoning_effort??null,developer_account_id:he?.accountId??null,developer_login:he?.login??null,developer_attribution_source:he?.source??null,source_duration_ms:ce.source,source_started_at:ce.sourceStartedAt,source_finished_at:ce.sourceFinishedAt,duration_ms:ce.effective,duration_provenance:ce.provenance,input_tokens:yn(me,"input"),cached_input_tokens:yn(me,"cached_input"),output_tokens:yn(me,"output"),reasoning_tokens:yn(me,"reasoning"),total_tokens:Y,token_source:hn(me.map(je=>je.tokens.source)),usage_event_count:me.length,llm_call_count:sn.size>0?sn.size:null,cost_usd:$e.usd,cost_brl:$e.brl,cost_method:$e.method,pricing_model:$e.pricingModel,pricing_source:$e.pricingSource,fx_rate:$e.fxRate,source_event_count:A.records.length,root_run_duration:Pe==="root"?ce.effective:null,sub_run_duration:Pe==="subrun"?ce.effective:null,payload_type:null,payload_json:null};if(R.run(...z.map(je=>sl[je]??null)),Y!==null&&Y>0&&ce.effective!==null&&ce.effective>=0){let je=Date.parse(ce.sourceStartedAt??I.occurred_at),Sn=Date.parse(ce.sourceFinishedAt??"")||je+ce.effective;Number.isFinite(je)&&Number.isFinite(Sn)&&Sn>je?C.push({activityRowId:cn,startMs:je,endMs:Sn}):ce.effective===0&&F.push({activityRowId:cn,day:yt(I.occurred_at)})}if(Le!==null)for(let je of me){let Sn=je.tokens,tt=YP(je,A,f,v);J.run(Le,is(je.provider,je.model??I.model,I.client),je.model??null,tt.serviceTier,je.runtime?.reasoning_effort??null,Sn.input,Sn.cached_input,tt.uncachedInputTokens,Sn.output,Sn.reasoning,tt.visibleOutputTokens,Sn.total,tt.inputRate,tt.cachedRate,tt.outputRate,tt.reasoningRate,tt.contextInputMultiplier,tt.contextOutputMultiplier,tt.speedCostMultiplier,tt.pricingScenario,tt.standardUsd,tt.speedUpliftUsd,tt.inputUsd,tt.cachedInputUsd,tt.outputUsd,tt.reasoningUsd,tt.calculatedUsd,tt.recordedUsd,tt.varianceUsd,tt.effectiveUsd,tt.effectiveBrl,tt.recordedUsd!==null?"canonical_recorded":"token_pricing_estimate",tt.pricingModel,tt.pricingSource,tt.fxRate)}Ce||(j+=1)}let X=new Set(n.filter(q=>a.has(q.run_id)).map(q=>String(q.activity_row_id)));for(let q of t.prepare("SELECT activity_row_id,run_id FROM zaip_aios_activities WHERE payload_type IS NULL").all())a.has(q.run_id)&&X.add(q.activity_row_id);let ne=eL(l,C,X);for(let q of ne.ids)t.prepare("DELETE FROM attributed_token_active_facts WHERE activity_row_id=?").run(q);for(let q of Qp(ne.intervals))L.run(q.activityRowId,q.day,q.value);for(let q of F)L.run(q.activityRowId,q.day,0);let ve=t.prepare(`UPDATE zaip_aios_activities SET duration_ms=?,duration_provenance=?
|
|
2256
2256
|
WHERE activity_row_id=? AND (duration_ms IS NOT ? OR duration_provenance IS NOT ?)`),ge=new Set(a);for(let q of ne.ids){let A=t.prepare("SELECT SUM(attributed_token_active_ms) value,COUNT(*) count FROM attributed_token_active_facts WHERE activity_row_id=?").get(q),I=A.count?"attributed_token_active":null;ve.run(A.value,I,q,A.value,I);let he=t.prepare("SELECT run_id FROM zaip_aios_activities WHERE activity_row_id=?").get(q);he&&ge.add(he.run_id)}if(u)for(let q of t.prepare("SELECT activity_row_id,task_id,spec_id,prd_id,change_id,execution_id,conversation_id FROM zaip_aios_activities WHERE payload_type IS NULL").all()){let A=q.task_id!==null?c.get(`task:${q.task_id}`):q.spec_id!==null?c.get(`spec:${q.spec_id}`):q.prd_id!==null?c.get(`prd:${q.prd_id}`):null,I=[A?.kind??null,A?.title??null,A?.status??null,A?.stage??null,A?.risk??null];t.prepare("UPDATE zaip_aios_activities SET work_item_kind=?,title=?,work_item_status=?,work_stage=?,risk=? WHERE activity_row_id=? AND (work_item_kind IS NOT ? OR title IS NOT ? OR work_item_status IS NOT ? OR work_stage IS NOT ? OR risk IS NOT ?)").run(...I,q.activity_row_id,...I)}return{temporalRuns:ge,getFold:$,pricingCatalog:f,fxRate:v,rootRunId:B,catalogHash:g,columns:z,canonicalInsertActivity:R,excludedUnknownTokenRunCount:Q,unassistedActivityCount:j,agentProfiles:p}}function Wb(e,t){return t.forceCanonical?{verifyContent:!0,sourceRoots:t.sourceRoots}:{previous:Xp(e),sourceRoots:t.sourceRoots}}function _L(e,t){let n=new Map,i=new Map(t.map(a=>[a.id,a])),r=new Map;for(let a of t)for(let s of a.taskIds)r.has(s)||r.set(s,a);let o=(a,s,l)=>{if(s===null)return;let c=`${a}:${s}`,u=n.get(c)??new Set;u.add(l),n.set(c,u)};for(let a of e.values()){if(a.kind!=="task"||a.status==="draft")continue;let s=i.get(a.changeId??"")??r.get(a.id),l=a.specId??s?.sourceSpecId??(s?.sourceType==="spec"?s.sourceId:null),c=s?.sourcePrdId??(s?.sourceType==="prd"?s.sourceId:null)??(l?e.get(`spec:${l}`)?.prdId??null:null);o("spec",l,a.id),o("prd",c,a.id)}for(let a of e.values()){if(a.kind!=="spec"&&a.kind!=="prd")continue;let s=a.status;if(s==="delivered"||s==="completed")a.stage="completed";else if(s==="blocked"||s==="failed"||s==="cancelled"||s==="ready"||s==="verifying")a.stage=s;else if(s==="draft")a.stage=a.kind==="prd"?"definition":"planning";else if(s==="active"||s==="executing"){let l=[...n.get(`${a.kind}:${a.id}`)??[]].map(c=>e.get(`task:${c}`));a.stage=l.length>0&&l.every(c=>c?.status==="verifying"||c?.status==="completed")?"verifying":"executing"}}}async function um(e,t={}){let n=ri(e);if(t.preferExisting&&!t.forceCanonical)try{rs(n,{integrity:"quick"});let p=new pL(n,{readOnly:!0});try{if(Yp(p)){let g=p.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key = 'source_file_count'").get(),m=Number(g?.value);if(!Number.isSafeInteger(m)||m<0)throw new Error("Invalid snapshot file count");return{files:m,path:n,cache:"stale_seed",fingerprint_ms:0,materialize_ms:0,refresh:{reused_sources:0,processed_sources:0,added_sources:0,changed_sources:0,removed_sources:0,canonical_runs_refolded:0}}}}finally{p.close()}}catch{}let i=vn,r=performance.now();i("source_fingerprint_started",8,"Inventariando fontes can\xF4nicas.");let o=await w_(e,Wb(n,t)),a={reused_sources:o.reusedFiles,processed_sources:o.hashedFiles,added_sources:0,changed_sources:0,removed_sources:0,canonical_runs_refolded:0};i("source_fingerprint_ready",20,"Invent\xE1rio can\xF4nico conclu\xEDdo.");let s=`${o.fingerprint}
|
|
2257
|
-
current_day=${yt(new Date().toISOString())}`,l=Math.round(performance.now()-r),c=G$(n,s,Bn,Yp);if(c!==null&&!t.forceCanonical&&o.hashedFiles===0)return rs(n),{files:c,path:n,cache:"generation",fingerprint_ms:l,materialize_ms:0,refresh:a};i("source_inventory",52,`Encontradas ${o.candidates.length} fontes can\xF4nicas.`),await
|
|
2257
|
+
current_day=${yt(new Date().toISOString())}`,l=Math.round(performance.now()-r),c=G$(n,s,Bn,Yp);if(c!==null&&!t.forceCanonical&&o.hashedFiles===0)return rs(n),{files:c,path:n,cache:"generation",fingerprint_ms:l,materialize_ms:0,refresh:a};i("source_inventory",52,`Encontradas ${o.candidates.length} fontes can\xF4nicas.`),await bQ(kQ(n),{recursive:!0});let u=new pL(n),d=0;try{u.exec("PRAGMA busy_timeout=180000; PRAGMA journal_mode=WAL; BEGIN IMMEDIATE;");try{o=await w_(e,Wb(n,t)),a={reused_sources:o.reusedFiles,processed_sources:o.hashedFiles,added_sources:0,changed_sources:0,removed_sources:0,canonical_runs_refolded:0},s=`${o.fingerprint}
|
|
2258
2258
|
current_day=${yt(new Date().toISOString())}`;let p=new Map((()=>{try{return u.prepare("SELECT path, content, content_sha256 FROM zaip_vw_files").all()}catch{return[]}})().map(x=>[x.path,x])),g=u.prepare("SELECT name, type FROM sqlite_master WHERE name NOT LIKE 'sqlite_%'").all(),m=!t.forceCanonical&&Qc.every(x=>g.some(se=>se.type==="table"&&se.name===x))&&ns.every(x=>g.some(se=>se.type==="index"&&se.name===x))&&el.every(x=>g.some(se=>se.type==="view"&&se.name===x))&&(()=>{try{let x=u.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key='schema_version'").get();return u.prepare("SELECT source_path, ctime_ms, file_identity FROM zaip_vw_read_model_source_state LIMIT 1").all(),x?.value===Bn}catch{return!1}})(),f=new Map((()=>{try{return u.prepare("SELECT source_path, source_hash FROM zaip_vw_read_model_source_state").all()}catch{return[]}})().map(x=>[x.source_path,x.source_hash]));a={...a,added_sources:o.candidates.filter(x=>!f.has(x.source)).length,changed_sources:o.candidates.filter(x=>{let se=f.get(x.source);return se!==void 0&&se!==x.contentHash}).length,removed_sources:[...f.keys()].filter(x=>!o.candidates.some(se=>se.source===x)).length};let v=o.candidates.filter(x=>f.get(x.source)!==x.contentHash),S=[...f.keys()].filter(x=>!o.candidates.some(se=>se.source===x));if(m&&v.length===0&&S.length===0){let x=u.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key='source_fingerprint'").get(),se=Xp(n);for(let D of o.candidates){let Ne=se.get(D.source);Ne&&(Ne.mtimeMs!==D.mtimeMs||Ne.ctimeMs!==D.ctimeMs||Ne.fileIdentity!==D.fileIdentity)&&u.prepare(`UPDATE zaip_aios_activities SET payload_json=json_set(payload_json,'$.mtime_ms',?,'$.ctime_ms',?,'$.file_identity',?,'$.size_bytes',?)
|
|
2259
2259
|
WHERE payload_type='source_state' AND activity_key=?`).run(String(D.mtimeMs),String(D.ctimeMs),D.fileIdentity,D.size,`source_state:${D.source}`)}return u.prepare("UPDATE zaip_aios_activities SET payload_json=json_set(payload_json,'$.value',?) WHERE payload_type='metadata' AND activity_key='metadata:source_fingerprint'").run(s),x.value.split(`
|
|
2260
2260
|
current_day=`)[1]!==s.split(`
|
|
@@ -2317,11 +2317,11 @@ current_day=`)[1]&&(u.exec("DELETE FROM zaip_aios_activities WHERE payload_type
|
|
|
2317
2317
|
occurred_day_sp TEXT NOT NULL,
|
|
2318
2318
|
attributed_token_active_ms REAL NOT NULL,
|
|
2319
2319
|
PRIMARY KEY(activity_row_id, occurred_day_sp)
|
|
2320
|
-
);`),u.exec("CREATE INDEX IF NOT EXISTS zaip_activities_payload ON zaip_aios_activities(payload_type, activity_key)");let F=new cm(u),X=x=>b.get(x)?.contentHash??"",ne=(x,se)=>{if(!se.length)return;let D=Object.keys(se[0]),Ne=u.prepare(`INSERT INTO ${x}(${D.join(",")}) VALUES (${D.map(()=>"?").join(",")})`);for(let mt of se)Ne.run(...D.map(sn=>mt[sn]??null))};ne("canonical_run_index",P.filter(x=>!j.has(x.run_id)));let ve=new Set(k.filter(x=>j.has(x.run_id)).map(x=>x.agent_invocation_id));ne("invocation_usage_segments",U.filter(x=>!ve.has(x.agent_invocation_id))),ne("attributed_token_active_facts",$);for(let x of j)u.prepare("DELETE FROM zaip_aios_activities WHERE payload_type IS NULL AND run_id=?").run(x);for(let x of S)u.prepare("DELETE FROM zaip_aios_activities WHERE payload_type='parsed_source' AND source_path=?").run(x);let ge=u.prepare("INSERT INTO files(path, content, mtime_ms, size_bytes, content_sha256, artifact_kind, artifact_id, artifact_occurred_at, artifact_occurred_day_sp, artifact_task_id, artifact_change_id, artifact_run_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),q=u.prepare("INSERT INTO read_model_source_state(source_path, source_hash, mtime_ms, ctime_ms, size_bytes, file_identity, source_kind, last_processed_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"),A=0,I=0,he=32;for(let x=0;x<o.candidates.length;x+=he){let se=o.candidates.slice(x,x+he),D=await Promise.all(se.map(async mt=>{let sn=p.get(mt.source);if(sn?.content_sha256===mt.contentHash)return sn.content;let Bt=await S8(mt.path,"utf8");if(v8("sha256").update(Bt).digest("hex")!==mt.contentHash)throw new Error(`Canonical source changed during refresh: ${mt.source}`);return Bt}));for(let mt=0;mt<se.length;mt+=1){let sn=se[mt],Bt=D[mt];if(sn===void 0||Bt===void 0)continue;let{source:cn,mtimeMs:sl,ctimeMs:je,size:Sn,fileIdentity:tt}=sn,hm=sn.contentHash,rM=cn.includes("/runs/")?"run":cn.includes("/artifacts/evidence/")?"evidence":cn.includes("/artifacts/validations/")||cn.includes("/artifacts/tests/")?"validation":cn.startsWith(".agents/config/")?"config":"entity",co=F.read("artifact",cn,hm,()=>QP(cn,Bt));ge.run(cn,Bt,sl,Sn,hm,co?.kind??null,co?.id??null,co?.occurredAt??null,co?.occurredDaySp??null,co?.taskId??null,co?.changeId??null,co?.runId??null),q.run(cn,hm,String(sl),String(je),Sn,tt,rM,new Date().toISOString()),A+=1}let Ne=52+Math.round((x+se.length)/o.candidates.length*20);i("source_import",Ne,`Lidas ${Math.min(x+se.length,o.candidates.length)} de ${o.candidates.length} fontes.`)}i("projection_build",74,"Organizando fatos e proje\xE7\xF5es do banco local.");let me=u.prepare("SELECT path, content FROM files WHERE (path LIKE '.agents/data/%' OR path LIKE '.agents/records/%') AND path NOT LIKE '.agents/data/runs/%' AND path NOT LIKE '.agents/records/runs/%' ORDER BY CASE WHEN path LIKE '.agents/data/%' THEN 1 ELSE 0 END, path").all(),Le=new Map(me.flatMap(x=>F.read("entities",x.path,X(x.path),()=>[...Ob([x])])));for(let x of me)if(h.has(x.path)&&/^\.agents\/(?:data|records)\/specs\//.test(x.path))for(let[,se]of F.read("entities",x.path,X(x.path),()=>[...Ob([x])]))se.creationRunId&&le.add(se.creationRunId);i("projection_entities",75,"Entidades can\xF4nicas interpretadas.");let Ce=u.prepare("INSERT INTO canonical_work_items(entity_kind, id, title, status, stage, risk, priority, spec_id, prd_id, change_id, creation_run_id, completed_run_id, occurred_at, occurred_day_sp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Le.values())x.kind!=="task"&&x.kind!=="spec"&&x.kind!=="prd"||x.occurredAt===null||Number.isNaN(Date.parse(x.occurredAt))||Ce.run(x.kind,x.id,x.title,x.status,x.stage,x.risk,x.priority,x.specId,x.prdId,x.changeId,x.creationRunId,x.completedRunId,x.occurredAt,yt(x.occurredAt));let Pe={executions:[],changes:[],decisions:[]};for(let x of me){if(!Gp(x.path))continue;let se=F.read("lifecycle",x.path,X(x.path),()=>HP([x]));Pe.executions.push(...se.executions),Pe.changes.push(...se.changes),Pe.decisions.push(...se.decisions)}Pe.executions=[...new Map(Pe.executions.map(x=>[x.id,x])).values()],Pe.changes=[...new Map(Pe.changes.map(x=>[x.id,x])).values()],Pe.decisions=[...new Map(Pe.decisions.map(x=>[x.id,x])).values()],i("projection_lifecycle",76,"Registros de ciclo de vida interpretados.");let Qt=u.prepare("INSERT INTO canonical_executions(id, status, kind, origin_type, origin_id, created_at, occurred_day_sp, finished_at, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.executions)Qt.run(x.id,x.status,x.kind,x.originType,x.originId,x.createdAt,yt(x.createdAt),x.finishedAt,x.sourcePath);let Y=u.prepare("INSERT INTO canonical_changes(id, title, status, risk, source_type, source_id, source_spec_id, source_prd_id, requirement_ids_json, acceptance_ids_json, task_ids_json, result, created_at, occurred_day_sp, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.changes)Y.run(x.id,x.title,x.status,x.risk,x.sourceType,x.sourceId,x.sourceSpecId,x.sourcePrdId,JSON.stringify(x.requirementIds),JSON.stringify(x.acceptanceIds),JSON.stringify(x.taskIds),x.result,x.createdAt,yt(x.createdAt),x.sourcePath);let ce=u.prepare("INSERT INTO canonical_decisions(id, title, origin, scope_type, scope_id, created_at, occurred_day_sp, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.decisions)ce.run(x.id,x.title,x.origin,x.scopeType,x.scopeId,x.createdAt,yt(x.createdAt),x.sourcePath);i("projection_runs_started",77,"Construindo fatos das invoca\xE7\xF5es."),_L(Le,Pe.changes);let $e=u.prepare("UPDATE canonical_work_items SET stage=? WHERE entity_kind=? AND id=?");for(let x of Le.values())$e.run(x.stage,x.kind,x.id);let Ke=dL({database:u,previousActivities:k,parsedSources:F,refresh:a,hasPersistentSchema:m,dirtyRunIds:j,changedSources:h,oldIntervals:R,canonicalEntities:Le,entityChanged:J});i("projection_dimensions_started",78,"Construindo dimens\xF5es e agregados."),lL({...Ke,database:u,canonicalEntities:Le,changedCreationRunIds:le,hasPersistentSchema:m,files:A,skipped:I,fingerprint:s}),i("projection_overview_started",79,"Construindo a vis\xE3o geral."),zb(e,u),u.exec("COMMIT;"),i("projection_finalize",80,"Finalizando \xEDndices do banco persistente do dashboard."),d=A}catch(p){throw u.exec("ROLLBACK;"),p}u.exec("PRAGMA busy_timeout=0; PRAGMA wal_checkpoint(TRUNCATE);")}finally{u.close()}let _=r+l;return i("snapshot_ready",86,"O banco SQLite persistente est\xE1 pronto."),rs(n),{files:d,path:n,cache:"rebuilt",fingerprint_ms:l,materialize_ms:Math.round(performance.now()-_),refresh:a}}async function ao(e,t,n,i={}){let r=e instanceof ct?w8(e,t,n,i):await Hc(e,t,n,i);if(!(e instanceof ct))return r;let o=e.firstFoldMonthlyQuick(n),a=n.from===null&&n.to===null?e.firstFoldViewportAllTime().aggregate:o?.aggregate??e.firstFoldAggregate(n);return{...r,summary:{...r.summary,projection_updated_at:e.projectionUpdatedAt(),latest_token_collected_at:e.latestTokenCollectedAt(),run_count:a.total_run_count,overview_metrics:{...r.summary.overview_metrics,duration_ms:a.duration_ms,tokens:a.total_tokens,cost_brl:a.cost_brl,execution_day_count:a.execution_day_count,data_source:"run_records"}}}}function w8(e,t,n,i){let r=e.firstFoldMonthlyQuick(n),o=n.from===null&&n.to===null&&i.includeExtended===!0?e.firstFoldAllTime():null,a=o??(n.from===null&&n.to===null?e.firstFoldViewportAllTime():null),s=n.from===null&&n.to===null&&i.includeBoardTasks===!0?e.firstFoldBoardAllTime():null,l=j=>r?.pages[j]??s?.pages[j]??e.canonicalWorkPage(j,n,0,1e4).rows,c=a===null||i.includeBoardTasks===!0,u=c?l("task"):[],d=c?l("spec"):[],_=c?l("prd"):[],p=a?.aggregate??r?.aggregate??e.firstFoldAggregate(n),g=a?.task_status_counts.draft??0,m=a===null?u.length:Math.max(0,a.aggregate.task_count-g),f=n.from===null&&n.to===null&&(o!==null||i.includeTopTasks===!0)?o?.top_tasks??e.firstFoldTopTasksAllTime():null,v=f===null?(r?.top_tasks??e.topTasks(n)).map(j=>({task_id:j.task_id,duration_ms:j.duration_ms,total_tokens:j.total_tokens,cost_brl:j.cost_brl,run_count:j.run_count})):kb(f),S=a===null?null:o?.macro_metrics??e.firstFoldMacroMetrics(),b=S===null?{specs:wb(d,"spec"),prds:wb(_,"prd")}:Object.fromEntries(["specs","prds"].map(j=>{let Q=S[j];return[j,{status_counts:Q.status_counts,classification_counts:Q.classification_counts,entity_count:Q.entity_count,total_run_count:Q.total_run_count,total_duration_ms:Q.total_duration_ms,total_tokens:Q.total_tokens,total_cost_usd:Q.total_cost_usd,total_cost_brl:Q.total_cost_brl,average_duration_ms:Q.average_duration_ms,average_tokens:Q.average_tokens,average_cost_usd:Q.average_cost_usd,average_cost_brl:Q.average_cost_brl,latest_created_at:Q.latest_created_at,top_entities:Q.top_entities.map(C=>({entity_id:C.entity_id,title:C.title,duration_ms:C.total_duration_ms,total_tokens:C.total_tokens,total_cost_usd:C.total_cost_usd,cost_brl:C.total_cost_brl,run_count:C.total_run_count,duration_share:C.duration_share}))}]})),h=Object.fromEntries(Object.entries(a?.task_status_counts??{}).filter(([j])=>j!=="draft")),k=a?.task_risk_counts??{};if(a===null)for(let j of u){let Q=typeof j.status=="string"?j.status:"draft",C=typeof j.risk=="string"?j.risk:"standard";h[Q]=(h[Q]??0)+1,k[C]=(k[C]??0)+1}let P=a?.aggregate.latest_task_created_at??[...u,...d,..._].map(j=>typeof j.occurred_at=="string"?j.occurred_at:null).filter(j=>j!==null).sort().at(-1)??null,U={events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},$={...U,tokens:{...U.tokens,total:p.total_tokens},cost:{...U.cost,brl:p.cost_brl}},B={conversation:U,planning:U,execution:U,total:$,new_work:U,rework:U},z=i.includePeriods===!0?e.dailyPeriods(n):{},R=Object.values(z).some(j=>j.usage.total_tokens.unknown>0||j.usage.cost.unknown>0),L=e.canonicalSource(),J=j=>({schema_version:2,id:String(j.id),revision:1,change_id:typeof j.change_id=="string"?j.change_id:"",title:String(j.title??j.id),short_name:String(j.title??j.id),objective:"",status:E8(j.status),attempt_count:null,risk:A8(j.risk),priority:"medium",owner:null,requirement_ids:[],acceptance_ids:[],depends_on:[],write_scopes:[],created_at:String(j.occurred_at),updated_at:String(j.occurred_at),started_at:null,finished_at:null,result:null,artifact_path:L,progress:0,spec_id:typeof j.spec_id=="string"?j.spec_id:null,origin:typeof j.origin=="string"?j.origin:null,execution_started:!1,telemetry:{duration_ms:ii(j.total_duration),tokens:ii(j.total_tokens),cost_brl:ii(j.total_cost_brl)}}),le=(j,Q)=>{let C={...U,tokens:{...U.tokens,total:ii(j.total_tokens)},cost:{...U.cost,brl:ii(j.total_cost_brl)}};return{id:String(j.id),title:String(j.title??j.id),created_at:String(j.occurred_at),updated_at:String(j.occurred_at),kind:Q,parent_id:Q==="spec"&&typeof j.prd_id=="string"?j.prd_id:null,artifact_path:L,lifecycle_status:String(j.status??"draft"),work_status:T8(j.stage??j.status),execution_ids:[],task_ids:typeof j.task_ids_json=="string"?JSON.parse(j.task_ids_json):[],planned_tasks:[],canonical_run_ids:[],run_ids:[],root_execution_run_ids:[],execution_count:0,task_count:ii(j.task_count)??0,run_count:ii(j.invocation_count)??0,duration_ms:ii(j.total_duration),decisions:{human:0,agent:0},rework_run_count:ii(j.rework_run_count)??0,quality:{completed_tasks:ii(j.completed_task_count)??0,task_completion_rate:Number(j.task_count)>0?Number(j.completed_task_count??0)/Number(j.task_count):0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},usage:{conversation:U,planning:U,execution:U,total:C,new_work:U,rework:U}}};return{schema_version:2,layout_version:t.version,readonly:!0,source:L,filters:n,summary:{prd_count:a?.aggregate.prd_count??_.length,spec_count:a?.aggregate.spec_count??d.length,execution_count:0,task_count:m,run_count:p.total_run_count,overview_metrics:{duration_ms:p.duration_ms,execution_day_count:p.execution_day_count,tokens:p.total_tokens,cost_brl:p.cost_brl,prd_count:a?.aggregate.prd_count??_.length,spec_count:a?.aggregate.spec_count??d.length,selected_counts:{prds:a?.aggregate.prd_count??_.length,specs:a?.aggregate.spec_count??d.length},task_count:m,completed_prd_count:a?.aggregate.completed_prd_count??b.prds.status_counts.completed??0,completed_spec_count:a?.aggregate.completed_spec_count??b.specs.status_counts.completed??0,completed_task_count:a?.aggregate.completed_task_count??h.completed??0,task_status_counts:h,task_risk_counts:k,top_tasks:v,...b===void 0?{}:{macro_metrics:b},latest_task_created_at:P,coverage:{duration:1,tokens:R?0:1,cost:R?0:1},data_source:"run_records",partial:!0},decisions:{human:0,agent:0},source_latest_at:P,quality:{completed_tasks:h.completed??0,task_completion_rate:m===0?0:(a?.aggregate.completed_task_count??h.completed??0)/m,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},reconciliation:{phase_tokens_match_total:!0,phase_usd_match_total:!0,phase_brl_match_total:!0,origin_tokens_match_total:!0},usage:B,periods:{daily:i.includePeriods===!0?z:{}}},origins:{conversation:B,task:B,spec:B,prd:B},prds:_.map(j=>le(j,"prd")),specs:d.map(j=>le(j,"spec")),tasks:i.includeBoardTasks?u.map(J):[],changes:[],executions:[],runs:[],decisions:[],evidences:[],validations:[]}}function ii(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function E8(e){return["draft","planned","executing","verifying","completed","failed","blocked","cancelled"].includes(String(e))?String(e):"draft"}function A8(e){return["lite","standard","critical"].includes(String(e))?String(e):"standard"}function T8(e){let t=String(e);return["executing","verifying","completed","blocked","failed","cancelled"].includes(t)?t:"planning"}async function Bb(e,t={from:null,to:null}){if(e instanceof ct)return e.costMonitorSummaryAggregate(t);let n=await new Vt(e).readDailyReadModels("overview");if(n===null)throw new Error("Lifecycle daily overview is not initialized");return{periods:{daily:Object.fromEntries(Object.entries(n.days).map(([i,r])=>[i,r.overview]))}}}async function mL(e,t,n,i){let r=i??await vi(e),{from:o,to:a}=xt(n),s=Wn(n),l=e instanceof ct?await ao(e,r,{from:o,to:a}):await Qa(e,r,{from:o,to:a}),c=e instanceof ct?zp(await Bb(e,{from:o,to:a}),l,s,s==="BRL"?(await Kc(e))?.rate??null:null):await Ya(e,l,s);return{operations:l,costs:c,dashboard:await Zp(e,t),projection:{source_latest_at:l.summary.source_latest_at,updated_at:l.summary.projection_updated_at??null,latest_token_collected_at:l.summary.latest_token_collected_at??null,served_at:new Date().toISOString()}}}function fL(e,t){let{filesystem:n,canonicalFilesystem:i,isSqliteSnapshot:r,readLayout:o,readSnapshot:a,readAggregate:s,clearSnapshotCache:l}=t;e.on(["GET","HEAD"],`${Se}/cost-monitor`,async c=>{try{let u=c.req.query("scope")??"summary";if(u==="summary"){let m=await o(),{from:f,to:v}=xt(c),S=Wn(c),b=performance.now(),[h,k]=await Promise.all([Bb(n,{query:c.req.query("query")??"",from:f,to:v,providers:et(c,"provider"),models:et(c,"model"),agents:et(c,"agent"),phases:et(c,"phase"),statuses:et(c,"status"),tasks:et(c,"task"),specs:et(c,"spec"),prds:et(c,"prd"),executions:et(c,"execution"),changes:et(c,"change"),priorities:et(c,"priority"),risks:et(c,"risk"),origins:et(c,"origin"),workTypes:[...new Set([...et(c,"workType"),...et(c,"work_type")])]}),S==="BRL"?Kc(n):Promise.resolve(null)]),P=performance.now()-b,U={schema_version:1,layout_version:m.version,readonly:!0,source:".agents/records",filters:{from:f,to:v},summary:{task_count:h.task_count??0},prds:[],specs:[],runs:[]},$=performance.now(),B=zp(h,U,S,k?.rate??null);return c.header("Server-Timing",`cost_sql;dur=${P.toFixed(1)},cost_projection;dur=${(performance.now()-$).toFixed(1)}`),ye(c,B,200,!0)}if(u==="runs"){let m=await o(),{from:f,to:v}=xt(c),S=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),b=Math.min(500,Math.max(1,Number.parseInt(c.req.query("limit")??"100",10)||100));return ye(c,await PP(r?i:n,m,c,{from:f,to:v},S,b),200,!0)}if(bb(c))return ye(c,(await a(c)).costs);let d=await o(),{from:_,to:p}=xt(c),g=await Qa(n,d,{from:_,to:p});return ye(c,await IP(n,g,c))}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}}),e.on(["GET","HEAD"],`${Se}/developers`,async c=>{if(!(n instanceof ct))return ye(c,{error:"Developer attribution requires the SQLite read model"},409);let{from:u,to:d}=xt(c);return ye(c,n.developerCostAggregate({from:u,to:d,accountIds:et(c,"account_id")}),200,!0)}),e.on(["GET","HEAD"],`${Se}/operations/developers`,async c=>{if(!(n instanceof ct))return ye(c,{error:"Developer attribution requires the SQLite read model"},409);let{from:u,to:d}=xt(c);return ye(c,n.operationsDeveloperAggregate({from:u,to:d,accountIds:et(c,"account_id")}),200,!0)})}Zo();Qr();function gL(e){return{query:(e.req.query("query")??"").trim().toLocaleLowerCase(),status:e.req.query("status")??"",risk:e.req.query("risk")??"",origin:e.req.query("origin")??"",kind:e.req.query("kind")??""}}function hL(e){if(e===void 0||!["definition","planning","ready","executing","verifying","completed","blocked","cancelled","failed"].includes(e))throw new Error("A valid Kanban stage is required");return e}function yL(e,t,n,i,r,o){let a=new Map(e.changes.map(b=>[b.id,b.source.type])),s=b=>{let h=b.origin;return a.get(b.change_id)??(typeof h=="string"?h:b.spec_id===null?"task":"spec")},l=b=>o.query===""||b.some(h=>h?.toLocaleLowerCase().includes(o.query)),c=b=>(o.status===""||es(b)===o.status)&&(o.risk===""||b.risk===o.risk)&&(o.origin===""||s(b)===o.origin)&&l([b.id,b.title,b.short_name,b.objective,b.change_id,b.spec_id]),u=b=>o.risk===""&&o.origin===""&&(o.status===""||Jp(b,e.tasks)===o.status)&&l([b.id,b.title,b.parent_id]),d=e.tasks.filter(c),_=e.prds.filter(u),p=e.specs.filter(u),m=[..._.map(b=>({kind:"prd",row:b})),...p.map(b=>({kind:"spec",row:b})),...d.map(b=>({kind:"task",row:b}))].filter(b=>(b.kind==="task"?es(b.row):Jp(b.row,e.tasks))===t).toSorted((b,h)=>{let k=new Map(r.map((P,U)=>[P,U]));return(k.get(b.row.id)??Number.MAX_SAFE_INTEGER)-(k.get(h.row.id)??Number.MAX_SAFE_INTEGER)||String(h.row.updated_at??"").localeCompare(String(b.row.updated_at??""))||b.row.id.localeCompare(h.row.id)}).filter(b=>(b.kind==="task"?es(b.row):Jp(b.row,e.tasks))===t),f=o.kind===""?m:o.kind==="all-tasks"?m.filter(b=>b.kind==="task"):o.kind==="standalone-task"?m.filter(b=>b.kind==="task"&&b.row.spec_id===null):o.kind==="task"?m.filter(b=>b.kind==="task"&&b.row.spec_id!==null):m.filter(b=>b.kind===o.kind),v=f.slice(n,n+i),S=new Set(v.map(b=>b.row.id));return{stage:t,offset:n,total:f.length,totals_by_kind:{all:m.length,task:m.filter(b=>b.kind==="task"&&b.row.spec_id!==null).length,"standalone-task":m.filter(b=>b.kind==="task"&&b.row.spec_id===null).length,prd:m.filter(b=>b.kind==="prd").length,spec:m.filter(b=>b.kind==="spec").length},prds:v.filter(b=>b.kind==="prd").map(b=>b.row),specs:v.filter(b=>b.kind==="spec").map(b=>b.row),tasks:v.filter(b=>b.kind==="task").map(b=>b.row),changes:e.changes.filter(b=>b.task_ids.some(h=>S.has(h)))}}function vL(e,t,n,i,r){let o=c=>c.rework_run_count>0?"rework":c.task_count>0?"structured":"empty",s=(t==="task"?e.tasks.filter(c=>c.risk===n):(t==="spec"?e.specs:e.prds).filter(c=>o(c)===n)).toSorted((c,u)=>String(u.updated_at??u.created_at??"").localeCompare(String(c.updated_at??c.created_at??""))||c.id.localeCompare(u.id)),l=s.slice(i,i+r);return{offset:i,total:s.length,prds:t==="prd"?l:[],specs:t==="spec"?l:[],tasks:t==="task"?l:[],changes:t==="task"?e.changes.filter(c=>l.some(u=>c.task_ids.includes(u.id))):[]}}Qr();Qr();function dm(e,t,n,i,r,o,a=null){let s=Object.entries(e.days).sort(([S],[b])=>b.localeCompare(S)),l=n.from===null?null:bL(n.from),c=n.to===null?null:bL(n.to),u=s.filter(([S])=>(l===null||S>=l)&&(c===null||S<=c)),_=(t==="overview"?u.map(([S,b])=>({day:S,...b.overview})):x8(t,SL(u.flatMap(([,S])=>S[t])),SL(s.flatMap(([,S])=>S[t])),n)).filter(S=>C8(S,i)),p=O8(a),g=p===null?_:_.filter(S=>`${kL(S)}\0${wL(S)}`<p),m=p===null?r:0,f=g.slice(m,m+o),v=f.at(-1);return{data_source:"lifecycle_daily_read_models",snapshot_id:e.updated_at,source_latest_at:e.source_latest_at,kind:t,offset:m,limit:o,total:_.length,has_more:m+o<g.length,next_cursor:v===void 0||m+o>=g.length?null:R8(kL(v),wL(v)),rows:f}}function bL(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)?e:Yt(e,"day")}function x8(e,t,n,i){if(e!=="tasks"&&e!=="specs"&&e!=="prds")return[...t];let r=new Set(["completed","delivered","failed","cancelled","superseded","rolled_back"]),o=new Map(n.map(c=>[c.id,c])),a=t.filter(c=>{let u=o.get(c.id)??c;if(u.status===null||!r.has(u.status)||c.run_count>0)return!0;let d=u.window_at??u.occurred_at;return(i.from===null||d>=i.from)&&(i.to===null||d<=i.to)}),s=new Set(a.map(c=>c.id)),l=()=>({known_sum:0,unknown:0,complete:!0,coverage_ratio:1});return[...a,...n.filter(c=>!s.has(c.id)&&(c.status===null||!r.has(c.status))).map(c=>({...c,run_count:0,cost_currency:null,metrics:{duration:l(),total_tokens:l(),cost:l()}}))].sort((c,u)=>u.occurred_at.localeCompare(c.occurred_at)||c.id.localeCompare(u.id))}function SL(e){let t=new Map;for(let n of e){let i=t.get(n.id);if(i===void 0){t.set(n.id,structuredClone(n));continue}let r=i.run_count;if(n.run_count>0){let o=n.lifecycle_elapsed_ms??null;if(r===0)i.lifecycle_elapsed_ms=o;else{let a=i.lifecycle_elapsed_ms??null;i.lifecycle_elapsed_ms=a===null||o===null?null:a+o}}i.run_count+=n.run_count;for(let o of["duration","total_tokens","cost"]){let a=i.metrics[o],s=n.metrics[o];a.known_sum+=s.known_sum,a.unknown+=s.unknown,a.complete=a.unknown===0;let l=i.run_count;a.coverage_ratio=l===0?1:Math.max(0,Math.min(1,(l-a.unknown)/l))}}return[...t.values()].sort((n,i)=>i.occurred_at.localeCompare(n.occurred_at)||n.id.localeCompare(i.id))}function kL(e){let t=e;return typeof t.occurred_at=="string"?t.occurred_at:typeof t.day=="string"?t.day:""}function wL(e){let t=e;return typeof t.id=="string"?t.id:typeof t.day=="string"?t.day:""}function R8(e,t){return encodeURIComponent(JSON.stringify([e,t]))}function O8(e){if(e===null)return null;try{let t=JSON.parse(decodeURIComponent(e));return Array.isArray(t)&&typeof t[0]=="string"&&typeof t[1]=="string"?`${t[0]}\0${t[1]}`:null}catch{return null}}function C8(e,t){return t.status&&e.status!==t.status||t.risk&&e.risk!==t.risk?!1:t.query?Object.values(e).some(n=>typeof n=="string"&&n.toLocaleLowerCase().includes(t.query)):!0}import{posix as I8}from"node:path";function so(e){return{query:(e.req.query("query")??"").trim().toLocaleLowerCase(),status:(e.req.query("status")??"").trim(),risk:(e.req.query("risk")??"").trim()}}function Zb(e,t){return e.filter(n=>t.status&&n.status!==t.status?!1:t.query?[n.id,n.task_id,n.execution_id,n.conversation_id,n.parent_run_id,n.run_kind,n.phase,n.agent].some(i=>typeof i=="string"&&i.toLocaleLowerCase().includes(t.query)):!0)}function Hb(e,t){return e.filter(n=>t.status&&n.status!==t.status||t.risk&&n.risk!==t.risk?!1:t.query?[n.id,n.title,n.status,n.risk,n.source,n.origin,n.scope_type,n.scope_id].flatMap(i=>typeof i=="object"&&i!==null?Object.values(i):[i]).some(i=>typeof i=="string"&&i.toLocaleLowerCase().includes(t.query)):!0)}function EL(e,t){if(t!=="executions"&&t!=="conversations")return[...e];let n=new Map;for(let i of e){let r=t==="executions"?i.execution_id:i.conversation_id;if(r==null)continue;let o=n.get(r)??{...i,id:r,duration_ms:null,total_tokens:null,cost:null};i.phase==="execution"&&i.parent_run_id===null&&i.duration_ms!==null&&(o.duration_ms=(o.duration_ms??0)+i.duration_ms),i.total_tokens!==null&&(o.total_tokens=(o.total_tokens??0)+i.total_tokens),i.cost!==null&&(o.cost=(o.cost??0)+i.cost);let a=o.finished_at??o.started_at;(i.finished_at??i.started_at)>a&&(o.status=i.status),i.started_at<o.started_at&&(o.started_at=i.started_at),(o.finished_at===null||i.finished_at!==null&&i.finished_at>o.finished_at)&&(o.finished_at=i.finished_at),n.set(r,o)}return[...n.values()].sort((i,r)=>r.started_at.localeCompare(i.started_at))}function AL(e,t,n,i=[]){let r=new Map;if(n==="conversations")for(let a of i)r.set(a.id,a.status);let o=new Map;for(let a of t){let s=a.data?.origin!==null&&typeof a.data?.origin=="object"?a.data.origin.conversation_id:null,l=n==="executions"?a.id:typeof s=="string"?s:null;l===null||r.has(l)||(n==="executions"?r.set(l,a.status):o.has(l)?o.set(l,null):o.set(l,a.status))}for(let[a,s]of o)r.set(a,s);return e.map(a=>{let s=n==="executions"?a.execution_id:a.conversation_id;return s==null||!r.has(s)?a:{...a,status:r.get(s)??null}})}function TL(e,t,n,i){return e.flatMap(r=>{let o=r.data,a=typeof o?.created_at=="string"?o.created_at:null;if(a===null||n!==null&&a<n||i!==null&&a>i)return[];let s=o?.source;if(s===null||typeof s!="object"||!("type"in s))return[];let l=s;return l.type==="task"&&typeof l.task_id=="string"||l.type==="spec"&&typeof l.spec_id=="string"||l.type==="prd"&&typeof l.prd_id=="string"?[{id:r.id,title:r.title??(typeof o?.title=="string"?o.title:r.id),created_at:a,status:r.status??(typeof o?.status=="string"?o.status:"unclassified"),risk:r.risk??(typeof o?.risk=="string"?o.risk:"unclassified"),source:l,requirement_ids:Jb(o?.requirement_ids),acceptance_ids:Jb(o?.acceptance_ids),task_ids:Jb(o?.task_ids),result:typeof o?.result=="string"?o.result:null,artifact_path:t.activePath("change",r.id)}]:[]}).sort((r,o)=>o.created_at.localeCompare(r.created_at))}function xL(e,t,n,i){return e.flatMap(r=>{let o=r.data,a=typeof o?.created_at=="string"?o.created_at:null;return a===null||n!==null&&a<n||i!==null&&a>i||o?.origin!=="human"&&o?.origin!=="agent"||o?.scope_type!=="change"&&o?.scope_type!=="execution"||typeof o?.scope_id!="string"?[]:[{id:r.id,title:r.title??(typeof o?.title=="string"?o.title:r.id),origin:o.origin,scope_type:o.scope_type,scope_id:o.scope_id,artifact_path:`${I8.dirname(t.activePath(o.scope_type,o.scope_id))}/decisions/${r.id}.md`,created_at:a}]}).sort((r,o)=>o.created_at.localeCompare(r.created_at))}function Jb(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function RL(e,t,n,i){e.on(["GET","HEAD"],"/api/v2/operations/read-models",async r=>{let o=r.req.query("kind");if(!["overview","tasks","specs","prds","executions","conversations"].includes(o))return i(r,{error:"Unsupported daily read model"},400,!1);let a=Math.max(0,Number.parseInt(r.req.query("offset")??"0",10)||0),s=Math.min(200,Math.max(1,Number.parseInt(r.req.query("limit")??"20",10)||20)),{from:l,to:c}=xt(r),u=so(r),d=await n(`operations:read-model:${o}:${l??""}:${c??""}:${a}:${s}:${r.req.query("cursor")??""}:${u.query}:${u.status}:${u.risk}`,async()=>{let _=await new Vt(t).readDailyReadModels(o);return _===null?{data_source:"lifecycle_daily_read_models",snapshot_id:null,source_latest_at:null,kind:o,offset:a,limit:s,total:0,has_more:!1,next_cursor:null,rows:[]}:dm(_,o,{from:l,to:c},u,a,s,r.req.query("cursor")??null)});return i(r,d,200,!0)})}Qr();function OL(e,t,n,i){e.on(["GET","HEAD"],"/api/v2/operations/runs",async r=>{let o=Math.max(0,Number.parseInt(r.req.query("offset")??"0",10)||0),a=Math.min(200,Math.max(1,Number.parseInt(r.req.query("limit")??"100",10)||100)),{from:s,to:l}=xt(r),c=r.req.query("kind")??"runs";if(c!=="runs"&&c!=="executions"&&c!=="conversations")return i(r,{error:"Unsupported Operations Run page"},400,!1);let u=c,d=so(r),_=await n(`operations:runs:${u}:${s??""}:${l??""}:${o}:${a}:${d.query}:${d.status}:${d.risk}`,async()=>{if(u==="executions"||u==="conversations"){let h=await new Vt(t).readDailyReadModels(u);if(h!==null){let k=dm(h,u,{from:s,to:l},d,o,a);return N8(u,k,k.rows)}}let p=new Vt(t),[g,m]=await Promise.all([t.readText(".agents/records/lifecycle/summary.json"),p.readEntities("execution")]),v=(JSON.parse(g).run_metrics??[]).filter(h=>(s===null||h.started_at>=s)&&(l===null||h.started_at<=l)&&(u==="runs"||u==="conversations"&&h.phase==="conversation"&&h.conversation_id!==null||u==="executions"&&h.execution_id!==null)),S=EL(v,u),b=Zb(u==="runs"?S:AL(S,m,u),d);return{data_source:"lifecycle_manifest_summary",kind:u,offset:o,limit:a,total:b.length,rows:b.slice(o,o+a)}});return i(r,_,200,!0)})}function N8(e,t,n){let i=r=>r.complete||r.known_sum>0?r.known_sum:null;return{data_source:t.data_source,kind:e,offset:t.offset,limit:t.limit,total:t.total,rows:n.map(r=>({id:r.id,started_at:r.occurred_at,finished_at:null,task_id:r.kind==="execution"?r.parent_id:null,execution_id:r.kind==="execution"?r.id:r.parent_id,conversation_id:r.kind==="conversation"?r.id:null,parent_run_id:null,run_kind:"run",phase:r.kind,status:r.status,duration_ms:i(r.metrics.duration),lifecycle_elapsed_ms:r.lifecycle_elapsed_ms??null,total_tokens:i(r.metrics.total_tokens),cost:i(r.metrics.cost),currency:r.cost_currency}))}}function CL(e,t){let{filesystem:n,canonicalFilesystem:i,isSqliteSnapshot:r,readLayout:o,readSnapshot:a,readAggregate:s,clearSnapshotCache:l}=t;e.on(["GET","HEAD"],`${Se}/operations`,async c=>{try{let u=performance.now(),d=c.req.query("scope");if(d!=="overview"&&d!=="quick"&&d!=="detail"&&d!=="board"&&d!=="traceability"&&d!=="classification")return ye(c,(await a(c)).operations);let _=await o(),p=performance.now()-u,{from:g,to:m}=xt(c);if(d==="board"||d==="traceability"){let v=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),S=Math.min(50,Math.max(1,Number.parseInt(c.req.query("limit")??"10",10)||10)),b=await s(`operations:board:${g??""}:${m??""}`,async()=>{let $=await ao(n,_,{from:g,to:m},{includeBoardTasks:!0});return{projection:$,priority:await Wp(i,Bp($))}});if(d==="traceability"){let $=b.projection.tasks.toSorted((B,z)=>z.created_at.localeCompare(B.created_at)||z.id.localeCompare(B.id));return ye(c,{tasks:$.slice(v,v+S),total:$.length,offset:v,limit:S},200,!0)}let h=hL(c.req.query("stage")),k=gL(c),P=JSON.stringify({from:g,to:m,stage:h,offset:v,limit:S,...k}),U=await s(`operations:board-page:${P}`,async()=>yL(b.projection,h,v,S,b.priority.item_ids,k));return ye(c,U,200,!0)}if(d==="classification"){let v=c.req.query("kind"),S=c.req.query("classification");if(v!=="task"&&v!=="spec"&&v!=="prd")return ye(c,{error:"A valid work kind is required"},400);if(!["lite","standard","critical","empty","structured","rework"].includes(S??""))return ye(c,{error:"A valid classification is required"},400);let b=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),h=Math.min(50,Math.max(1,Number.parseInt(c.req.query("limit")??"50",10)||50)),k=await s(`operations:classification:${g??""}:${m??""}`,()=>ao(n,_,{from:g,to:m},{includeBoardTasks:!0}));return ye(c,vL(k,v,S,b,h),200,!0)}if(d==="quick"){let v=performance.now(),S=await s(`operations:quick:${g??""}:${m??""}`,()=>ao(n,_,{from:g,to:m},{includeTopTasks:g===null&&m===null,includeExtended:g===null&&m===null}),c.req.query("fresh")==="1");if(process.env.ZAIP_DASHBOARD_PROFILE_FIRST_FOLD==="1"&&n instanceof ct){let b=n.firstFoldViewportProfile();c.header("Server-Timing",[`layout;dur=${Math.round(p*10)/10}`,`projection;dur=${Math.round((performance.now()-v)*10)/10}`,...Object.entries(b).map(([h,k])=>`${h};dur=${k}`)].join(", "))}return ye(c,S,200,!0)}let f=n instanceof ct?await ao(n,_,{from:g,to:m},{includeBoardTasks:d==="detail",includeExtended:d==="detail"||d==="overview",includePeriods:d==="detail"||d==="overview"}):await Qa(n,_,{from:g,to:m},d==="overview");return ye(c,f,200,d==="overview")}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}}),OL(e,r?i:n,s,ye),e.on(["GET","HEAD"],`${Se}/sqlite-read-models`,async c=>{if(!(n instanceof ct))return ye(c,{error:"SQLite read model is not active"},409);let u=c.req.query("kind"),d=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),_=Math.min(200,Math.max(1,Number.parseInt(c.req.query("limit")??"20",10)||20));if(u==="overview"){let f=c.req.query("period");return f!=="day"&&f!=="month"&&f!=="year"?ye(c,{error:"Unsupported SQLite overview period"},400):ye(c,n.overviewPage(f,d,_),200,!0)}if(u!=="task"&&u!=="spec"&&u!=="prd")return ye(c,{error:"Unsupported SQLite read model"},400);let{from:p,to:g}=xt(c),m=so(c);return ye(c,n.summaryPage(u,{from:p,to:g,...m},d,_,c.req.query("cursor")??null),200,!0)}),e.on(["GET","HEAD"],`${Se}/sqlite-views`,async c=>{if(!(n instanceof ct))return ye(c,{error:"SQLite read model is not active"},409);let u=c.req.query("view");if(u===void 0||!Object.hasOwn(Jo,u))return ye(c,{error:"Unsupported SQLite view"},400);let d=Number.parseInt(c.req.query("limit")??"",10),_=u.includes("agent_invocations")?100:u==="first_fold_top_tasks"?5:50,p=Math.min(200,Math.max(1,Number.isFinite(d)?d:_)),{from:g,to:m}=xt(c),f=S=>{let b=c.req.query(S);return b===void 0?{}:{[S]:b}},v=c.req.query("kind");return u==="operations_work_list"&&v!==void 0&&!["all","task","standalone-task","prd","spec"].includes(v)?ye(c,{error:"Unsupported Operations work-list kind"},400):ye(c,n.viewPage(u,{from:g,to:m,...f("query"),...f("status"),...f("risk"),...f("provider"),...f("model"),...f("agent"),...f("phase"),...f("origin"),...f("workType"),...f("priority"),...v===void 0?{}:{kind:v},offset:Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),limit:p}),200,!0)}),e.on(["GET","HEAD"],`${Se}/work-priority`,async c=>{let u=await vi(i),d=await Gc(i,u,{from:null,to:null});return ye(c,await Wp(i,Bp(d)))}),e.on(["GET","HEAD"],`${Se}/operations/entities`,async c=>{let u=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),d=Math.min(500,Math.max(1,Number.parseInt(c.req.query("limit")??"100",10)||100)),_=c.req.query("kind");if(_!=="changes"&&_!=="decisions")return ye(c,{error:"Unsupported Operations entity page"},400);let{from:p,to:g}=xt(c),m=so(c),f=await s(`operations:entities:${_}:${p??""}:${g??""}:${u}:${d}:${m.query}:${m.status}:${m.risk}`,async()=>{let v=await o(),S=await new Vt(n).readEntities(_==="changes"?"change":"decision"),b=_==="changes"?TL(S,v,p,g):xL(S,v,p,g),h=Hb(b,m);return{data_source:"lifecycle_manifest_shards",kind:_,offset:u,limit:d,total:h.length,rows:h.slice(u,u+d)}});return ye(c,f,200,!0)}),RL(e,n,s,ye),e.put(`${Se}/work-priority`,async c=>{let u=Sb(await c.req.json());return await i.writeTextAtomic(UO,`${JSON.stringify(u,null,2)}
|
|
2321
|
-
`),l(),c.json(u)}),e.on(["GET","HEAD"],`${Se}/snapshot`,async c=>{try{return ye(c,await a(c))}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}})}import{randomUUID as PL}from"node:crypto";function
|
|
2322
|
-
`),n(),i.json(r)}),e.on(["GET","HEAD"],`${Se}/fx-rate`,async i=>{let r=await new bi(t).readLatestFxRate();return ye(i,r)}),e.put(`${Se}/fx-rate`,async i=>{let r=To.pick({rate:!0}).parse(await i.req.json()),o=await new bi(t).writeCurrentFxRate(r.rate);return n(),i.json(o)})}import{spawn as $
|
|
2320
|
+
);`),u.exec("CREATE INDEX IF NOT EXISTS zaip_activities_payload ON zaip_aios_activities(payload_type, activity_key)");let F=new cm(u),X=x=>b.get(x)?.contentHash??"",ne=(x,se)=>{if(!se.length)return;let D=Object.keys(se[0]),Ne=u.prepare(`INSERT INTO ${x}(${D.join(",")}) VALUES (${D.map(()=>"?").join(",")})`);for(let mt of se)Ne.run(...D.map(sn=>mt[sn]??null))};ne("canonical_run_index",P.filter(x=>!j.has(x.run_id)));let ve=new Set(k.filter(x=>j.has(x.run_id)).map(x=>x.agent_invocation_id));ne("invocation_usage_segments",U.filter(x=>!ve.has(x.agent_invocation_id))),ne("attributed_token_active_facts",$);for(let x of j)u.prepare("DELETE FROM zaip_aios_activities WHERE payload_type IS NULL AND run_id=?").run(x);for(let x of S)u.prepare("DELETE FROM zaip_aios_activities WHERE payload_type='parsed_source' AND source_path=?").run(x);let ge=u.prepare("INSERT INTO files(path, content, mtime_ms, size_bytes, content_sha256, artifact_kind, artifact_id, artifact_occurred_at, artifact_occurred_day_sp, artifact_task_id, artifact_change_id, artifact_run_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),q=u.prepare("INSERT INTO read_model_source_state(source_path, source_hash, mtime_ms, ctime_ms, size_bytes, file_identity, source_kind, last_processed_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"),A=0,I=0,he=32;for(let x=0;x<o.candidates.length;x+=he){let se=o.candidates.slice(x,x+he),D=await Promise.all(se.map(async mt=>{let sn=p.get(mt.source);if(sn?.content_sha256===mt.contentHash)return sn.content;let Bt=await SQ(mt.path,"utf8");if(vQ("sha256").update(Bt).digest("hex")!==mt.contentHash)throw new Error(`Canonical source changed during refresh: ${mt.source}`);return Bt}));for(let mt=0;mt<se.length;mt+=1){let sn=se[mt],Bt=D[mt];if(sn===void 0||Bt===void 0)continue;let{source:cn,mtimeMs:sl,ctimeMs:je,size:Sn,fileIdentity:tt}=sn,hm=sn.contentHash,rM=cn.includes("/runs/")?"run":cn.includes("/artifacts/evidence/")?"evidence":cn.includes("/artifacts/validations/")||cn.includes("/artifacts/tests/")?"validation":cn.startsWith(".agents/config/")?"config":"entity",co=F.read("artifact",cn,hm,()=>QP(cn,Bt));ge.run(cn,Bt,sl,Sn,hm,co?.kind??null,co?.id??null,co?.occurredAt??null,co?.occurredDaySp??null,co?.taskId??null,co?.changeId??null,co?.runId??null),q.run(cn,hm,String(sl),String(je),Sn,tt,rM,new Date().toISOString()),A+=1}let Ne=52+Math.round((x+se.length)/o.candidates.length*20);i("source_import",Ne,`Lidas ${Math.min(x+se.length,o.candidates.length)} de ${o.candidates.length} fontes.`)}i("projection_build",74,"Organizando fatos e proje\xE7\xF5es do banco local.");let me=u.prepare("SELECT path, content FROM files WHERE (path LIKE '.agents/data/%' OR path LIKE '.agents/records/%') AND path NOT LIKE '.agents/data/runs/%' AND path NOT LIKE '.agents/records/runs/%' ORDER BY CASE WHEN path LIKE '.agents/data/%' THEN 1 ELSE 0 END, path").all(),Le=new Map(me.flatMap(x=>F.read("entities",x.path,X(x.path),()=>[...Ob([x])])));for(let x of me)if(h.has(x.path)&&/^\.agents\/(?:data|records)\/specs\//.test(x.path))for(let[,se]of F.read("entities",x.path,X(x.path),()=>[...Ob([x])]))se.creationRunId&&le.add(se.creationRunId);i("projection_entities",75,"Entidades can\xF4nicas interpretadas.");let Ce=u.prepare("INSERT INTO canonical_work_items(entity_kind, id, title, status, stage, risk, priority, spec_id, prd_id, change_id, creation_run_id, completed_run_id, occurred_at, occurred_day_sp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Le.values())x.kind!=="task"&&x.kind!=="spec"&&x.kind!=="prd"||x.occurredAt===null||Number.isNaN(Date.parse(x.occurredAt))||Ce.run(x.kind,x.id,x.title,x.status,x.stage,x.risk,x.priority,x.specId,x.prdId,x.changeId,x.creationRunId,x.completedRunId,x.occurredAt,yt(x.occurredAt));let Pe={executions:[],changes:[],decisions:[]};for(let x of me){if(!Gp(x.path))continue;let se=F.read("lifecycle",x.path,X(x.path),()=>HP([x]));Pe.executions.push(...se.executions),Pe.changes.push(...se.changes),Pe.decisions.push(...se.decisions)}Pe.executions=[...new Map(Pe.executions.map(x=>[x.id,x])).values()],Pe.changes=[...new Map(Pe.changes.map(x=>[x.id,x])).values()],Pe.decisions=[...new Map(Pe.decisions.map(x=>[x.id,x])).values()],i("projection_lifecycle",76,"Registros de ciclo de vida interpretados.");let Qt=u.prepare("INSERT INTO canonical_executions(id, status, kind, origin_type, origin_id, created_at, occurred_day_sp, finished_at, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.executions)Qt.run(x.id,x.status,x.kind,x.originType,x.originId,x.createdAt,yt(x.createdAt),x.finishedAt,x.sourcePath);let Y=u.prepare("INSERT INTO canonical_changes(id, title, status, risk, source_type, source_id, source_spec_id, source_prd_id, requirement_ids_json, acceptance_ids_json, task_ids_json, result, created_at, occurred_day_sp, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.changes)Y.run(x.id,x.title,x.status,x.risk,x.sourceType,x.sourceId,x.sourceSpecId,x.sourcePrdId,JSON.stringify(x.requirementIds),JSON.stringify(x.acceptanceIds),JSON.stringify(x.taskIds),x.result,x.createdAt,yt(x.createdAt),x.sourcePath);let ce=u.prepare("INSERT INTO canonical_decisions(id, title, origin, scope_type, scope_id, created_at, occurred_day_sp, source_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");for(let x of Pe.decisions)ce.run(x.id,x.title,x.origin,x.scopeType,x.scopeId,x.createdAt,yt(x.createdAt),x.sourcePath);i("projection_runs_started",77,"Construindo fatos das invoca\xE7\xF5es."),_L(Le,Pe.changes);let $e=u.prepare("UPDATE canonical_work_items SET stage=? WHERE entity_kind=? AND id=?");for(let x of Le.values())$e.run(x.stage,x.kind,x.id);let Ke=dL({database:u,previousActivities:k,parsedSources:F,refresh:a,hasPersistentSchema:m,dirtyRunIds:j,changedSources:h,oldIntervals:R,canonicalEntities:Le,entityChanged:J});i("projection_dimensions_started",78,"Construindo dimens\xF5es e agregados."),lL({...Ke,database:u,canonicalEntities:Le,changedCreationRunIds:le,hasPersistentSchema:m,files:A,skipped:I,fingerprint:s}),i("projection_overview_started",79,"Construindo a vis\xE3o geral."),zb(e,u),u.exec("COMMIT;"),i("projection_finalize",80,"Finalizando \xEDndices do banco persistente do dashboard."),d=A}catch(p){throw u.exec("ROLLBACK;"),p}u.exec("PRAGMA busy_timeout=0; PRAGMA wal_checkpoint(TRUNCATE);")}finally{u.close()}let _=r+l;return i("snapshot_ready",86,"O banco SQLite persistente est\xE1 pronto."),rs(n),{files:d,path:n,cache:"rebuilt",fingerprint_ms:l,materialize_ms:Math.round(performance.now()-_),refresh:a}}async function ao(e,t,n,i={}){let r=e instanceof ct?wQ(e,t,n,i):await Hc(e,t,n,i);if(!(e instanceof ct))return r;let o=e.firstFoldMonthlyQuick(n),a=n.from===null&&n.to===null?e.firstFoldViewportAllTime().aggregate:o?.aggregate??e.firstFoldAggregate(n);return{...r,summary:{...r.summary,projection_updated_at:e.projectionUpdatedAt(),latest_token_collected_at:e.latestTokenCollectedAt(),run_count:a.total_run_count,overview_metrics:{...r.summary.overview_metrics,duration_ms:a.duration_ms,tokens:a.total_tokens,cost_brl:a.cost_brl,execution_day_count:a.execution_day_count,data_source:"run_records"}}}}function wQ(e,t,n,i){let r=e.firstFoldMonthlyQuick(n),o=n.from===null&&n.to===null&&i.includeExtended===!0?e.firstFoldAllTime():null,a=o??(n.from===null&&n.to===null?e.firstFoldViewportAllTime():null),s=n.from===null&&n.to===null&&i.includeBoardTasks===!0?e.firstFoldBoardAllTime():null,l=j=>r?.pages[j]??s?.pages[j]??e.canonicalWorkPage(j,n,0,1e4).rows,c=a===null||i.includeBoardTasks===!0,u=c?l("task"):[],d=c?l("spec"):[],_=c?l("prd"):[],p=a?.aggregate??r?.aggregate??e.firstFoldAggregate(n),g=a?.task_status_counts.draft??0,m=a===null?u.length:Math.max(0,a.aggregate.task_count-g),f=n.from===null&&n.to===null&&(o!==null||i.includeTopTasks===!0)?o?.top_tasks??e.firstFoldTopTasksAllTime():null,v=f===null?(r?.top_tasks??e.topTasks(n)).map(j=>({task_id:j.task_id,duration_ms:j.duration_ms,total_tokens:j.total_tokens,cost_brl:j.cost_brl,run_count:j.run_count})):kb(f),S=a===null?null:o?.macro_metrics??e.firstFoldMacroMetrics(),b=S===null?{specs:wb(d,"spec"),prds:wb(_,"prd")}:Object.fromEntries(["specs","prds"].map(j=>{let Q=S[j];return[j,{status_counts:Q.status_counts,classification_counts:Q.classification_counts,entity_count:Q.entity_count,total_run_count:Q.total_run_count,total_duration_ms:Q.total_duration_ms,total_tokens:Q.total_tokens,total_cost_usd:Q.total_cost_usd,total_cost_brl:Q.total_cost_brl,average_duration_ms:Q.average_duration_ms,average_tokens:Q.average_tokens,average_cost_usd:Q.average_cost_usd,average_cost_brl:Q.average_cost_brl,latest_created_at:Q.latest_created_at,top_entities:Q.top_entities.map(C=>({entity_id:C.entity_id,title:C.title,duration_ms:C.total_duration_ms,total_tokens:C.total_tokens,total_cost_usd:C.total_cost_usd,cost_brl:C.total_cost_brl,run_count:C.total_run_count,duration_share:C.duration_share}))}]})),h=Object.fromEntries(Object.entries(a?.task_status_counts??{}).filter(([j])=>j!=="draft")),k=a?.task_risk_counts??{};if(a===null)for(let j of u){let Q=typeof j.status=="string"?j.status:"draft",C=typeof j.risk=="string"?j.risk:"standard";h[Q]=(h[Q]??0)+1,k[C]=(k[C]??0)+1}let P=a?.aggregate.latest_task_created_at??[...u,...d,..._].map(j=>typeof j.occurred_at=="string"?j.occurred_at:null).filter(j=>j!==null).sort().at(-1)??null,U={events:0,tokens:{input:null,cached_input:null,output:null,reasoning:null,total:null},cost:{usd:null,brl:null},coverage:{events:0,tokens:0,usd:0,brl:0}},$={...U,tokens:{...U.tokens,total:p.total_tokens},cost:{...U.cost,brl:p.cost_brl}},B={conversation:U,planning:U,execution:U,total:$,new_work:U,rework:U},z=i.includePeriods===!0?e.dailyPeriods(n):{},R=Object.values(z).some(j=>j.usage.total_tokens.unknown>0||j.usage.cost.unknown>0),L=e.canonicalSource(),J=j=>({schema_version:2,id:String(j.id),revision:1,change_id:typeof j.change_id=="string"?j.change_id:"",title:String(j.title??j.id),short_name:String(j.title??j.id),objective:"",status:EQ(j.status),attempt_count:null,risk:AQ(j.risk),priority:"medium",owner:null,requirement_ids:[],acceptance_ids:[],depends_on:[],write_scopes:[],created_at:String(j.occurred_at),updated_at:String(j.occurred_at),started_at:null,finished_at:null,result:null,artifact_path:L,progress:0,spec_id:typeof j.spec_id=="string"?j.spec_id:null,origin:typeof j.origin=="string"?j.origin:null,execution_started:!1,telemetry:{duration_ms:ii(j.total_duration),tokens:ii(j.total_tokens),cost_brl:ii(j.total_cost_brl)}}),le=(j,Q)=>{let C={...U,tokens:{...U.tokens,total:ii(j.total_tokens)},cost:{...U.cost,brl:ii(j.total_cost_brl)}};return{id:String(j.id),title:String(j.title??j.id),created_at:String(j.occurred_at),updated_at:String(j.occurred_at),kind:Q,parent_id:Q==="spec"&&typeof j.prd_id=="string"?j.prd_id:null,artifact_path:L,lifecycle_status:String(j.status??"draft"),work_status:TQ(j.stage??j.status),execution_ids:[],task_ids:typeof j.task_ids_json=="string"?JSON.parse(j.task_ids_json):[],planned_tasks:[],canonical_run_ids:[],run_ids:[],root_execution_run_ids:[],execution_count:0,task_count:ii(j.task_count)??0,run_count:ii(j.invocation_count)??0,duration_ms:ii(j.total_duration),decisions:{human:0,agent:0},rework_run_count:ii(j.rework_run_count)??0,quality:{completed_tasks:ii(j.completed_task_count)??0,task_completion_rate:Number(j.task_count)>0?Number(j.completed_task_count??0)/Number(j.task_count):0,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},usage:{conversation:U,planning:U,execution:U,total:C,new_work:U,rework:U}}};return{schema_version:2,layout_version:t.version,readonly:!0,source:L,filters:n,summary:{prd_count:a?.aggregate.prd_count??_.length,spec_count:a?.aggregate.spec_count??d.length,execution_count:0,task_count:m,run_count:p.total_run_count,overview_metrics:{duration_ms:p.duration_ms,execution_day_count:p.execution_day_count,tokens:p.total_tokens,cost_brl:p.cost_brl,prd_count:a?.aggregate.prd_count??_.length,spec_count:a?.aggregate.spec_count??d.length,selected_counts:{prds:a?.aggregate.prd_count??_.length,specs:a?.aggregate.spec_count??d.length},task_count:m,completed_prd_count:a?.aggregate.completed_prd_count??b.prds.status_counts.completed??0,completed_spec_count:a?.aggregate.completed_spec_count??b.specs.status_counts.completed??0,completed_task_count:a?.aggregate.completed_task_count??h.completed??0,task_status_counts:h,task_risk_counts:k,top_tasks:v,...b===void 0?{}:{macro_metrics:b},latest_task_created_at:P,coverage:{duration:1,tokens:R?0:1,cost:R?0:1},data_source:"run_records",partial:!0},decisions:{human:0,agent:0},source_latest_at:P,quality:{completed_tasks:h.completed??0,task_completion_rate:m===0?0:(a?.aggregate.completed_task_count??h.completed??0)/m,terminal_runs:0,successful_runs:0,terminal_success_rate:0,rework_rate:0},reconciliation:{phase_tokens_match_total:!0,phase_usd_match_total:!0,phase_brl_match_total:!0,origin_tokens_match_total:!0},usage:B,periods:{daily:i.includePeriods===!0?z:{}}},origins:{conversation:B,task:B,spec:B,prd:B},prds:_.map(j=>le(j,"prd")),specs:d.map(j=>le(j,"spec")),tasks:i.includeBoardTasks?u.map(J):[],changes:[],executions:[],runs:[],decisions:[],evidences:[],validations:[]}}function ii(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function EQ(e){return["draft","planned","executing","verifying","completed","failed","blocked","cancelled"].includes(String(e))?String(e):"draft"}function AQ(e){return["lite","standard","critical"].includes(String(e))?String(e):"standard"}function TQ(e){let t=String(e);return["executing","verifying","completed","blocked","failed","cancelled"].includes(t)?t:"planning"}async function Bb(e,t={from:null,to:null}){if(e instanceof ct)return e.costMonitorSummaryAggregate(t);let n=await new Vt(e).readDailyReadModels("overview");if(n===null)throw new Error("Lifecycle daily overview is not initialized");return{periods:{daily:Object.fromEntries(Object.entries(n.days).map(([i,r])=>[i,r.overview]))}}}async function mL(e,t,n,i){let r=i??await vi(e),{from:o,to:a}=xt(n),s=Wn(n),l=e instanceof ct?await ao(e,r,{from:o,to:a}):await Qa(e,r,{from:o,to:a}),c=e instanceof ct?zp(await Bb(e,{from:o,to:a}),l,s,s==="BRL"?(await Kc(e))?.rate??null:null):await Ya(e,l,s);return{operations:l,costs:c,dashboard:await Zp(e,t),projection:{source_latest_at:l.summary.source_latest_at,updated_at:l.summary.projection_updated_at??null,latest_token_collected_at:l.summary.latest_token_collected_at??null,served_at:new Date().toISOString()}}}function fL(e,t){let{filesystem:n,canonicalFilesystem:i,isSqliteSnapshot:r,readLayout:o,readSnapshot:a,readAggregate:s,clearSnapshotCache:l}=t;e.on(["GET","HEAD"],`${Se}/cost-monitor`,async c=>{try{let u=c.req.query("scope")??"summary";if(u==="summary"){let m=await o(),{from:f,to:v}=xt(c),S=Wn(c),b=performance.now(),[h,k]=await Promise.all([Bb(n,{query:c.req.query("query")??"",from:f,to:v,providers:et(c,"provider"),models:et(c,"model"),agents:et(c,"agent"),phases:et(c,"phase"),statuses:et(c,"status"),tasks:et(c,"task"),specs:et(c,"spec"),prds:et(c,"prd"),executions:et(c,"execution"),changes:et(c,"change"),priorities:et(c,"priority"),risks:et(c,"risk"),origins:et(c,"origin"),workTypes:[...new Set([...et(c,"workType"),...et(c,"work_type")])]}),S==="BRL"?Kc(n):Promise.resolve(null)]),P=performance.now()-b,U={schema_version:1,layout_version:m.version,readonly:!0,source:".agents/records",filters:{from:f,to:v},summary:{task_count:h.task_count??0},prds:[],specs:[],runs:[]},$=performance.now(),B=zp(h,U,S,k?.rate??null);return c.header("Server-Timing",`cost_sql;dur=${P.toFixed(1)},cost_projection;dur=${(performance.now()-$).toFixed(1)}`),ye(c,B,200,!0)}if(u==="runs"){let m=await o(),{from:f,to:v}=xt(c),S=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),b=Math.min(500,Math.max(1,Number.parseInt(c.req.query("limit")??"100",10)||100));return ye(c,await PP(r?i:n,m,c,{from:f,to:v},S,b),200,!0)}if(bb(c))return ye(c,(await a(c)).costs);let d=await o(),{from:_,to:p}=xt(c),g=await Qa(n,d,{from:_,to:p});return ye(c,await IP(n,g,c))}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}}),e.on(["GET","HEAD"],`${Se}/developers`,async c=>{if(!(n instanceof ct))return ye(c,{error:"Developer attribution requires the SQLite read model"},409);let{from:u,to:d}=xt(c);return ye(c,n.developerCostAggregate({from:u,to:d,accountIds:et(c,"account_id")}),200,!0)}),e.on(["GET","HEAD"],`${Se}/operations/developers`,async c=>{if(!(n instanceof ct))return ye(c,{error:"Developer attribution requires the SQLite read model"},409);let{from:u,to:d}=xt(c);return ye(c,n.operationsDeveloperAggregate({from:u,to:d,accountIds:et(c,"account_id")}),200,!0)})}Zo();Qr();function gL(e){return{query:(e.req.query("query")??"").trim().toLocaleLowerCase(),status:e.req.query("status")??"",risk:e.req.query("risk")??"",origin:e.req.query("origin")??"",kind:e.req.query("kind")??""}}function hL(e){if(e===void 0||!["definition","planning","ready","executing","verifying","completed","blocked","cancelled","failed"].includes(e))throw new Error("A valid Kanban stage is required");return e}function yL(e,t,n,i,r,o){let a=new Map(e.changes.map(b=>[b.id,b.source.type])),s=b=>{let h=b.origin;return a.get(b.change_id)??(typeof h=="string"?h:b.spec_id===null?"task":"spec")},l=b=>o.query===""||b.some(h=>h?.toLocaleLowerCase().includes(o.query)),c=b=>(o.status===""||es(b)===o.status)&&(o.risk===""||b.risk===o.risk)&&(o.origin===""||s(b)===o.origin)&&l([b.id,b.title,b.short_name,b.objective,b.change_id,b.spec_id]),u=b=>o.risk===""&&o.origin===""&&(o.status===""||Jp(b,e.tasks)===o.status)&&l([b.id,b.title,b.parent_id]),d=e.tasks.filter(c),_=e.prds.filter(u),p=e.specs.filter(u),m=[..._.map(b=>({kind:"prd",row:b})),...p.map(b=>({kind:"spec",row:b})),...d.map(b=>({kind:"task",row:b}))].filter(b=>(b.kind==="task"?es(b.row):Jp(b.row,e.tasks))===t).toSorted((b,h)=>{let k=new Map(r.map((P,U)=>[P,U]));return(k.get(b.row.id)??Number.MAX_SAFE_INTEGER)-(k.get(h.row.id)??Number.MAX_SAFE_INTEGER)||String(h.row.updated_at??"").localeCompare(String(b.row.updated_at??""))||b.row.id.localeCompare(h.row.id)}).filter(b=>(b.kind==="task"?es(b.row):Jp(b.row,e.tasks))===t),f=o.kind===""?m:o.kind==="all-tasks"?m.filter(b=>b.kind==="task"):o.kind==="standalone-task"?m.filter(b=>b.kind==="task"&&b.row.spec_id===null):o.kind==="task"?m.filter(b=>b.kind==="task"&&b.row.spec_id!==null):m.filter(b=>b.kind===o.kind),v=f.slice(n,n+i),S=new Set(v.map(b=>b.row.id));return{stage:t,offset:n,total:f.length,totals_by_kind:{all:m.length,task:m.filter(b=>b.kind==="task"&&b.row.spec_id!==null).length,"standalone-task":m.filter(b=>b.kind==="task"&&b.row.spec_id===null).length,prd:m.filter(b=>b.kind==="prd").length,spec:m.filter(b=>b.kind==="spec").length},prds:v.filter(b=>b.kind==="prd").map(b=>b.row),specs:v.filter(b=>b.kind==="spec").map(b=>b.row),tasks:v.filter(b=>b.kind==="task").map(b=>b.row),changes:e.changes.filter(b=>b.task_ids.some(h=>S.has(h)))}}function vL(e,t,n,i,r){let o=c=>c.rework_run_count>0?"rework":c.task_count>0?"structured":"empty",s=(t==="task"?e.tasks.filter(c=>c.risk===n):(t==="spec"?e.specs:e.prds).filter(c=>o(c)===n)).toSorted((c,u)=>String(u.updated_at??u.created_at??"").localeCompare(String(c.updated_at??c.created_at??""))||c.id.localeCompare(u.id)),l=s.slice(i,i+r);return{offset:i,total:s.length,prds:t==="prd"?l:[],specs:t==="spec"?l:[],tasks:t==="task"?l:[],changes:t==="task"?e.changes.filter(c=>l.some(u=>c.task_ids.includes(u.id))):[]}}Qr();Qr();function dm(e,t,n,i,r,o,a=null){let s=Object.entries(e.days).sort(([S],[b])=>b.localeCompare(S)),l=n.from===null?null:bL(n.from),c=n.to===null?null:bL(n.to),u=s.filter(([S])=>(l===null||S>=l)&&(c===null||S<=c)),_=(t==="overview"?u.map(([S,b])=>({day:S,...b.overview})):xQ(t,SL(u.flatMap(([,S])=>S[t])),SL(s.flatMap(([,S])=>S[t])),n)).filter(S=>CQ(S,i)),p=OQ(a),g=p===null?_:_.filter(S=>`${kL(S)}\0${wL(S)}`<p),m=p===null?r:0,f=g.slice(m,m+o),v=f.at(-1);return{data_source:"lifecycle_daily_read_models",snapshot_id:e.updated_at,source_latest_at:e.source_latest_at,kind:t,offset:m,limit:o,total:_.length,has_more:m+o<g.length,next_cursor:v===void 0||m+o>=g.length?null:RQ(kL(v),wL(v)),rows:f}}function bL(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)?e:Yt(e,"day")}function xQ(e,t,n,i){if(e!=="tasks"&&e!=="specs"&&e!=="prds")return[...t];let r=new Set(["completed","delivered","failed","cancelled","superseded","rolled_back"]),o=new Map(n.map(c=>[c.id,c])),a=t.filter(c=>{let u=o.get(c.id)??c;if(u.status===null||!r.has(u.status)||c.run_count>0)return!0;let d=u.window_at??u.occurred_at;return(i.from===null||d>=i.from)&&(i.to===null||d<=i.to)}),s=new Set(a.map(c=>c.id)),l=()=>({known_sum:0,unknown:0,complete:!0,coverage_ratio:1});return[...a,...n.filter(c=>!s.has(c.id)&&(c.status===null||!r.has(c.status))).map(c=>({...c,run_count:0,cost_currency:null,metrics:{duration:l(),total_tokens:l(),cost:l()}}))].sort((c,u)=>u.occurred_at.localeCompare(c.occurred_at)||c.id.localeCompare(u.id))}function SL(e){let t=new Map;for(let n of e){let i=t.get(n.id);if(i===void 0){t.set(n.id,structuredClone(n));continue}let r=i.run_count;if(n.run_count>0){let o=n.lifecycle_elapsed_ms??null;if(r===0)i.lifecycle_elapsed_ms=o;else{let a=i.lifecycle_elapsed_ms??null;i.lifecycle_elapsed_ms=a===null||o===null?null:a+o}}i.run_count+=n.run_count;for(let o of["duration","total_tokens","cost"]){let a=i.metrics[o],s=n.metrics[o];a.known_sum+=s.known_sum,a.unknown+=s.unknown,a.complete=a.unknown===0;let l=i.run_count;a.coverage_ratio=l===0?1:Math.max(0,Math.min(1,(l-a.unknown)/l))}}return[...t.values()].sort((n,i)=>i.occurred_at.localeCompare(n.occurred_at)||n.id.localeCompare(i.id))}function kL(e){let t=e;return typeof t.occurred_at=="string"?t.occurred_at:typeof t.day=="string"?t.day:""}function wL(e){let t=e;return typeof t.id=="string"?t.id:typeof t.day=="string"?t.day:""}function RQ(e,t){return encodeURIComponent(JSON.stringify([e,t]))}function OQ(e){if(e===null)return null;try{let t=JSON.parse(decodeURIComponent(e));return Array.isArray(t)&&typeof t[0]=="string"&&typeof t[1]=="string"?`${t[0]}\0${t[1]}`:null}catch{return null}}function CQ(e,t){return t.status&&e.status!==t.status||t.risk&&e.risk!==t.risk?!1:t.query?Object.values(e).some(n=>typeof n=="string"&&n.toLocaleLowerCase().includes(t.query)):!0}import{posix as IQ}from"node:path";function so(e){return{query:(e.req.query("query")??"").trim().toLocaleLowerCase(),status:(e.req.query("status")??"").trim(),risk:(e.req.query("risk")??"").trim()}}function Zb(e,t){return e.filter(n=>t.status&&n.status!==t.status?!1:t.query?[n.id,n.task_id,n.execution_id,n.conversation_id,n.parent_run_id,n.run_kind,n.phase,n.agent].some(i=>typeof i=="string"&&i.toLocaleLowerCase().includes(t.query)):!0)}function Hb(e,t){return e.filter(n=>t.status&&n.status!==t.status||t.risk&&n.risk!==t.risk?!1:t.query?[n.id,n.title,n.status,n.risk,n.source,n.origin,n.scope_type,n.scope_id].flatMap(i=>typeof i=="object"&&i!==null?Object.values(i):[i]).some(i=>typeof i=="string"&&i.toLocaleLowerCase().includes(t.query)):!0)}function EL(e,t){if(t!=="executions"&&t!=="conversations")return[...e];let n=new Map;for(let i of e){let r=t==="executions"?i.execution_id:i.conversation_id;if(r==null)continue;let o=n.get(r)??{...i,id:r,duration_ms:null,total_tokens:null,cost:null};i.phase==="execution"&&i.parent_run_id===null&&i.duration_ms!==null&&(o.duration_ms=(o.duration_ms??0)+i.duration_ms),i.total_tokens!==null&&(o.total_tokens=(o.total_tokens??0)+i.total_tokens),i.cost!==null&&(o.cost=(o.cost??0)+i.cost);let a=o.finished_at??o.started_at;(i.finished_at??i.started_at)>a&&(o.status=i.status),i.started_at<o.started_at&&(o.started_at=i.started_at),(o.finished_at===null||i.finished_at!==null&&i.finished_at>o.finished_at)&&(o.finished_at=i.finished_at),n.set(r,o)}return[...n.values()].sort((i,r)=>r.started_at.localeCompare(i.started_at))}function AL(e,t,n,i=[]){let r=new Map;if(n==="conversations")for(let a of i)r.set(a.id,a.status);let o=new Map;for(let a of t){let s=a.data?.origin!==null&&typeof a.data?.origin=="object"?a.data.origin.conversation_id:null,l=n==="executions"?a.id:typeof s=="string"?s:null;l===null||r.has(l)||(n==="executions"?r.set(l,a.status):o.has(l)?o.set(l,null):o.set(l,a.status))}for(let[a,s]of o)r.set(a,s);return e.map(a=>{let s=n==="executions"?a.execution_id:a.conversation_id;return s==null||!r.has(s)?a:{...a,status:r.get(s)??null}})}function TL(e,t,n,i){return e.flatMap(r=>{let o=r.data,a=typeof o?.created_at=="string"?o.created_at:null;if(a===null||n!==null&&a<n||i!==null&&a>i)return[];let s=o?.source;if(s===null||typeof s!="object"||!("type"in s))return[];let l=s;return l.type==="task"&&typeof l.task_id=="string"||l.type==="spec"&&typeof l.spec_id=="string"||l.type==="prd"&&typeof l.prd_id=="string"?[{id:r.id,title:r.title??(typeof o?.title=="string"?o.title:r.id),created_at:a,status:r.status??(typeof o?.status=="string"?o.status:"unclassified"),risk:r.risk??(typeof o?.risk=="string"?o.risk:"unclassified"),source:l,requirement_ids:Jb(o?.requirement_ids),acceptance_ids:Jb(o?.acceptance_ids),task_ids:Jb(o?.task_ids),result:typeof o?.result=="string"?o.result:null,artifact_path:t.activePath("change",r.id)}]:[]}).sort((r,o)=>o.created_at.localeCompare(r.created_at))}function xL(e,t,n,i){return e.flatMap(r=>{let o=r.data,a=typeof o?.created_at=="string"?o.created_at:null;return a===null||n!==null&&a<n||i!==null&&a>i||o?.origin!=="human"&&o?.origin!=="agent"||o?.scope_type!=="change"&&o?.scope_type!=="execution"||typeof o?.scope_id!="string"?[]:[{id:r.id,title:r.title??(typeof o?.title=="string"?o.title:r.id),origin:o.origin,scope_type:o.scope_type,scope_id:o.scope_id,artifact_path:`${IQ.dirname(t.activePath(o.scope_type,o.scope_id))}/decisions/${r.id}.md`,created_at:a}]}).sort((r,o)=>o.created_at.localeCompare(r.created_at))}function Jb(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function RL(e,t,n,i){e.on(["GET","HEAD"],"/api/v2/operations/read-models",async r=>{let o=r.req.query("kind");if(!["overview","tasks","specs","prds","executions","conversations"].includes(o))return i(r,{error:"Unsupported daily read model"},400,!1);let a=Math.max(0,Number.parseInt(r.req.query("offset")??"0",10)||0),s=Math.min(200,Math.max(1,Number.parseInt(r.req.query("limit")??"20",10)||20)),{from:l,to:c}=xt(r),u=so(r),d=await n(`operations:read-model:${o}:${l??""}:${c??""}:${a}:${s}:${r.req.query("cursor")??""}:${u.query}:${u.status}:${u.risk}`,async()=>{let _=await new Vt(t).readDailyReadModels(o);return _===null?{data_source:"lifecycle_daily_read_models",snapshot_id:null,source_latest_at:null,kind:o,offset:a,limit:s,total:0,has_more:!1,next_cursor:null,rows:[]}:dm(_,o,{from:l,to:c},u,a,s,r.req.query("cursor")??null)});return i(r,d,200,!0)})}Qr();function OL(e,t,n,i){e.on(["GET","HEAD"],"/api/v2/operations/runs",async r=>{let o=Math.max(0,Number.parseInt(r.req.query("offset")??"0",10)||0),a=Math.min(200,Math.max(1,Number.parseInt(r.req.query("limit")??"100",10)||100)),{from:s,to:l}=xt(r),c=r.req.query("kind")??"runs";if(c!=="runs"&&c!=="executions"&&c!=="conversations")return i(r,{error:"Unsupported Operations Run page"},400,!1);let u=c,d=so(r),_=await n(`operations:runs:${u}:${s??""}:${l??""}:${o}:${a}:${d.query}:${d.status}:${d.risk}`,async()=>{if(u==="executions"||u==="conversations"){let h=await new Vt(t).readDailyReadModels(u);if(h!==null){let k=dm(h,u,{from:s,to:l},d,o,a);return NQ(u,k,k.rows)}}let p=new Vt(t),[g,m]=await Promise.all([t.readText(".agents/records/lifecycle/summary.json"),p.readEntities("execution")]),v=(JSON.parse(g).run_metrics??[]).filter(h=>(s===null||h.started_at>=s)&&(l===null||h.started_at<=l)&&(u==="runs"||u==="conversations"&&h.phase==="conversation"&&h.conversation_id!==null||u==="executions"&&h.execution_id!==null)),S=EL(v,u),b=Zb(u==="runs"?S:AL(S,m,u),d);return{data_source:"lifecycle_manifest_summary",kind:u,offset:o,limit:a,total:b.length,rows:b.slice(o,o+a)}});return i(r,_,200,!0)})}function NQ(e,t,n){let i=r=>r.complete||r.known_sum>0?r.known_sum:null;return{data_source:t.data_source,kind:e,offset:t.offset,limit:t.limit,total:t.total,rows:n.map(r=>({id:r.id,started_at:r.occurred_at,finished_at:null,task_id:r.kind==="execution"?r.parent_id:null,execution_id:r.kind==="execution"?r.id:r.parent_id,conversation_id:r.kind==="conversation"?r.id:null,parent_run_id:null,run_kind:"run",phase:r.kind,status:r.status,duration_ms:i(r.metrics.duration),lifecycle_elapsed_ms:r.lifecycle_elapsed_ms??null,total_tokens:i(r.metrics.total_tokens),cost:i(r.metrics.cost),currency:r.cost_currency}))}}function CL(e,t){let{filesystem:n,canonicalFilesystem:i,isSqliteSnapshot:r,readLayout:o,readSnapshot:a,readAggregate:s,clearSnapshotCache:l}=t;e.on(["GET","HEAD"],`${Se}/operations`,async c=>{try{let u=performance.now(),d=c.req.query("scope");if(d!=="overview"&&d!=="quick"&&d!=="detail"&&d!=="board"&&d!=="traceability"&&d!=="classification")return ye(c,(await a(c)).operations);let _=await o(),p=performance.now()-u,{from:g,to:m}=xt(c);if(d==="board"||d==="traceability"){let v=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),S=Math.min(50,Math.max(1,Number.parseInt(c.req.query("limit")??"10",10)||10)),b=await s(`operations:board:${g??""}:${m??""}`,async()=>{let $=await ao(n,_,{from:g,to:m},{includeBoardTasks:!0});return{projection:$,priority:await Wp(i,Bp($))}});if(d==="traceability"){let $=b.projection.tasks.toSorted((B,z)=>z.created_at.localeCompare(B.created_at)||z.id.localeCompare(B.id));return ye(c,{tasks:$.slice(v,v+S),total:$.length,offset:v,limit:S},200,!0)}let h=hL(c.req.query("stage")),k=gL(c),P=JSON.stringify({from:g,to:m,stage:h,offset:v,limit:S,...k}),U=await s(`operations:board-page:${P}`,async()=>yL(b.projection,h,v,S,b.priority.item_ids,k));return ye(c,U,200,!0)}if(d==="classification"){let v=c.req.query("kind"),S=c.req.query("classification");if(v!=="task"&&v!=="spec"&&v!=="prd")return ye(c,{error:"A valid work kind is required"},400);if(!["lite","standard","critical","empty","structured","rework"].includes(S??""))return ye(c,{error:"A valid classification is required"},400);let b=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),h=Math.min(50,Math.max(1,Number.parseInt(c.req.query("limit")??"50",10)||50)),k=await s(`operations:classification:${g??""}:${m??""}`,()=>ao(n,_,{from:g,to:m},{includeBoardTasks:!0}));return ye(c,vL(k,v,S,b,h),200,!0)}if(d==="quick"){let v=performance.now(),S=await s(`operations:quick:${g??""}:${m??""}`,()=>ao(n,_,{from:g,to:m},{includeTopTasks:g===null&&m===null,includeExtended:g===null&&m===null}),c.req.query("fresh")==="1");if(process.env.ZAIP_DASHBOARD_PROFILE_FIRST_FOLD==="1"&&n instanceof ct){let b=n.firstFoldViewportProfile();c.header("Server-Timing",[`layout;dur=${Math.round(p*10)/10}`,`projection;dur=${Math.round((performance.now()-v)*10)/10}`,...Object.entries(b).map(([h,k])=>`${h};dur=${k}`)].join(", "))}return ye(c,S,200,!0)}let f=n instanceof ct?await ao(n,_,{from:g,to:m},{includeBoardTasks:d==="detail",includeExtended:d==="detail"||d==="overview",includePeriods:d==="detail"||d==="overview"}):await Qa(n,_,{from:g,to:m},d==="overview");return ye(c,f,200,d==="overview")}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}}),OL(e,r?i:n,s,ye),e.on(["GET","HEAD"],`${Se}/sqlite-read-models`,async c=>{if(!(n instanceof ct))return ye(c,{error:"SQLite read model is not active"},409);let u=c.req.query("kind"),d=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),_=Math.min(200,Math.max(1,Number.parseInt(c.req.query("limit")??"20",10)||20));if(u==="overview"){let f=c.req.query("period");return f!=="day"&&f!=="month"&&f!=="year"?ye(c,{error:"Unsupported SQLite overview period"},400):ye(c,n.overviewPage(f,d,_),200,!0)}if(u!=="task"&&u!=="spec"&&u!=="prd")return ye(c,{error:"Unsupported SQLite read model"},400);let{from:p,to:g}=xt(c),m=so(c);return ye(c,n.summaryPage(u,{from:p,to:g,...m},d,_,c.req.query("cursor")??null),200,!0)}),e.on(["GET","HEAD"],`${Se}/sqlite-views`,async c=>{if(!(n instanceof ct))return ye(c,{error:"SQLite read model is not active"},409);let u=c.req.query("view");if(u===void 0||!Object.hasOwn(Jo,u))return ye(c,{error:"Unsupported SQLite view"},400);let d=Number.parseInt(c.req.query("limit")??"",10),_=u.includes("agent_invocations")?100:u==="first_fold_top_tasks"?5:50,p=Math.min(200,Math.max(1,Number.isFinite(d)?d:_)),{from:g,to:m}=xt(c),f=S=>{let b=c.req.query(S);return b===void 0?{}:{[S]:b}},v=c.req.query("kind");return u==="operations_work_list"&&v!==void 0&&!["all","task","standalone-task","prd","spec"].includes(v)?ye(c,{error:"Unsupported Operations work-list kind"},400):ye(c,n.viewPage(u,{from:g,to:m,...f("query"),...f("status"),...f("risk"),...f("provider"),...f("model"),...f("agent"),...f("phase"),...f("origin"),...f("workType"),...f("priority"),...v===void 0?{}:{kind:v},offset:Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),limit:p}),200,!0)}),e.on(["GET","HEAD"],`${Se}/work-priority`,async c=>{let u=await vi(i),d=await Gc(i,u,{from:null,to:null});return ye(c,await Wp(i,Bp(d)))}),e.on(["GET","HEAD"],`${Se}/operations/entities`,async c=>{let u=Math.max(0,Number.parseInt(c.req.query("offset")??"0",10)||0),d=Math.min(500,Math.max(1,Number.parseInt(c.req.query("limit")??"100",10)||100)),_=c.req.query("kind");if(_!=="changes"&&_!=="decisions")return ye(c,{error:"Unsupported Operations entity page"},400);let{from:p,to:g}=xt(c),m=so(c),f=await s(`operations:entities:${_}:${p??""}:${g??""}:${u}:${d}:${m.query}:${m.status}:${m.risk}`,async()=>{let v=await o(),S=await new Vt(n).readEntities(_==="changes"?"change":"decision"),b=_==="changes"?TL(S,v,p,g):xL(S,v,p,g),h=Hb(b,m);return{data_source:"lifecycle_manifest_shards",kind:_,offset:u,limit:d,total:h.length,rows:h.slice(u,u+d)}});return ye(c,f,200,!0)}),RL(e,n,s,ye),e.put(`${Se}/work-priority`,async c=>{let u=Sb(await c.req.json());return await i.writeTextAtomic(UO,`${JSON.stringify(u,null,2)}
|
|
2321
|
+
`),l(),c.json(u)}),e.on(["GET","HEAD"],`${Se}/snapshot`,async c=>{try{return ye(c,await a(c))}catch(u){if(u instanceof Lt)throw u;return ye(c,{error:u instanceof Error?u.message:String(u)},400)}})}import{randomUUID as PL}from"node:crypto";function PQ(e){return e.reconciled_ids.length>0||e.blocked.length>0}async function IL(e,t=()=>{}){let n;try{return await Promise.race([e,new Promise((i,r)=>{n=setTimeout(()=>{t(),r(new Ho)},Hp),n.unref()})])}finally{n!==void 0&&clearTimeout(n)}}function NL(e){let t=Promise.resolve(),n=new Map,i=new WeakMap,r=a=>{e.refresh(a).catch(()=>{})};return Object.assign((a,s)=>{let l=n.get(a);if(l!==void 0)return l;let c=t.then(()=>s===void 0?e.reconcile(a):e.reconcile(a,s)).then(u=>((u.reconciled_ids.length>0||u.blocked.length>0)&&r(s),u),u=>{throw r(s),u}).finally(()=>n.delete(a));return n.set(a,c),s!==void 0&&i.set(c,s),t=c.then(()=>{},()=>{}),c},{jobIdFor:a=>i.get(a)??null})}function $L(e){return NL({reconcile:async(t,n)=>{let i=n??PL(),r=new Date().toISOString();e.diagnostics.log("reconciliation_started",{job_id:i,mode:t});try{let a={...await e.reconcile(t,i),diagnostics:{job_id:i,started_at:r,completed_at:new Date().toISOString(),log_directory:".local/dashboard-logs",...e.snapshotTimes()}};return e.diagnostics.log("reconciliation_completed",{job_id:i,result:a}),a}catch(o){throw e.diagnostics.log("reconciliation_failed",{job_id:i,error:o}),o}},refresh:t=>e.refresh(t??null)})}function LL(e,t){e.post(`${Se}/reconcile-open-work`,async n=>{let i=PL(),r=null;n.header("X-ZAIP-Request-Id",i),t.diagnostics.log("reconciliation_button_received",{request_id:i});try{await t.readLayout();let o=t.reconcileWork("manual",i);r=t.reconcileWork.jobIdFor(o),t.diagnostics.log("reconciliation_queued",{request_id:i,job_id:r});let a=await IL(o,()=>{t.diagnostics.log("reconciliation_http_deadline",{request_id:i,job_id:r}),t.refresh(r).catch(()=>{})});return t.diagnostics.log("reconciliation_response",{request_id:i,job_id:a.diagnostics?.job_id,snapshot_state:t.snapshotState()}),n.json({reconciliation:a,snapshot_state:t.snapshotState(),projection_refresh_completed:t.refreshCompleted()})}catch(o){if(t.diagnostics.log("reconciliation_response_error",{request_id:i,job_id:r,error:o}),o instanceof Lt)throw o;let a={error:Aa(o instanceof Error?o.message:String(o)),request_id:i,job_id:r,log_directory:".local/dashboard-logs"};return o instanceof Ho?n.json({...a,reconciliation_may_be_partial:!0,projection_refresh_started:!0},408):n.json(a,400)}})}function ML(e,t){let n=/^(?:localhost|127\.0\.0\.1)(?::[0-9]{1,5})?$/i;try{let i=new URL(e);if(i.protocol!=="http:"||i.username||i.password||!n.test(i.host))return!1;if(t!==void 0){if(!n.test(t))return!1;new URL(`http://${t}`)}return!0}catch{return!1}}Dn();function DL(e,t,n){e.on(["GET","HEAD"],`${Se}/pricing`,async i=>ye(i,xo.parse(JSON.parse(await t.readText(".agents/config/pricing/models.json"))))),e.put(`${Se}/pricing`,async i=>{let r=xo.parse({...await i.req.json(),updated_at:new Date().toISOString()});return await t.writeTextAtomic(".agents/config/pricing/models.json",`${JSON.stringify(r,null,2)}
|
|
2322
|
+
`),n(),i.json(r)}),e.on(["GET","HEAD"],`${Se}/fx-rate`,async i=>{let r=await new bi(t).readLatestFxRate();return ye(i,r)}),e.put(`${Se}/fx-rate`,async i=>{let r=To.pick({rate:!0}).parse(await i.req.json()),o=await new bi(t).writeCurrentFxRate(r.rate);return n(),i.json(o)})}import{spawn as $Q}from"node:child_process";import{existsSync as LQ}from"node:fs";import{resolve as nl}from"node:path";function MQ(e,t){let n=JSON.parse(e),i=n?.schema;if(n?.storage_mode!=="sqlite_read_model"||typeof n.path!="string"||nl(n.path)!==nl(t)||i?.schemaVersion!==Bn||i.tableCount!==Qc.length||typeof i.viewCount!="number"||!Number.isSafeInteger(i.viewCount)||i.viewCount<el.length||typeof i.indexCount!="number"||!Number.isSafeInteger(i.indexCount)||i.indexCount<ns.length)throw new Error("SQLite refresh worker did not return a valid schema receipt for this destination")}async function DQ(e,t){let i=[nl(e,".agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs"),nl(process.cwd(),"scripts/rebuild-sqlite-read-model.mjs"),nl(process.cwd(),".agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs")].find(r=>LQ(r));if(i===void 0)throw new Error("SQLite refresh worker script is unavailable from this runtime checkout");await new Promise((r,o)=>{let a="",s="",l=!1,c=$Q(process.execPath,[i],{cwd:e,env:{...process.env,ZAIP_WORKSPACE:e,ZAIP_SQLITE_DB_PATH:t,ZAIP_SQLITE_PREFER_LAST_VALID_SEED:"0",ZAIP_DASHBOARD_LAUNCH_PROGRESS:"0"},stdio:["ignore","pipe","pipe"],windowsHide:!0}),u=jQ(c);c.stdout?.setEncoding("utf8"),c.stdout?.on("data",d=>{s.length+d.length>64e3&&(l=!0),l||(s+=d)}),c.stderr?.setEncoding("utf8"),c.stderr?.on("data",d=>{a=`${a}${d}`.slice(-8e3)}),c.once("error",d=>{u(),o(d)}),c.once("close",d=>{if(u(),d!==0){o(new Error(`SQLite refresh worker failed (${d}): ${a.trim()||"no stderr"}`));return}try{if(l)throw new Error("SQLite refresh worker receipt exceeds size limit");MQ(s,t),r()}catch(_){o(_)}})})}function jQ(e,t=process){let n=()=>{try{e.kill("SIGTERM")}catch{}};return t.once("exit",n),()=>t.removeListener("exit",n)}async function jL(e,t){let n=ri(e);await DQ(e,n),t.refresh()}import{createHash as UQ}from"node:crypto";import{DatabaseSync as FQ}from"node:sqlite";function UL(e){let t=new FQ(ri(e),{readOnly:!0});try{let n=t.prepare("SELECT key, value FROM zaip_vw_read_model_metadata WHERE key IN ('schema_version', 'source_fingerprint')").all(),i=new Map(n.map(r=>[r.key,r.value]));if(!i.has("schema_version")||!i.has("source_fingerprint"))throw new Error("Committed SQLite snapshot metadata is incomplete");return UQ("sha256").update(i.get("schema_version")).update(":").update(i.get("source_fingerprint")).digest("hex")}finally{t.close()}}import{watch as zQ}from"node:fs";import{join as qQ}from"node:path";function FL(e){let t=u=>{e.refresh().catch(d=>e.onRefreshFailure?.({trigger:u,error:d}))},n=e.watchSources&&process.env.ZAIP_DASHBOARD_WATCH_SOURCES!=="0",i=()=>{(e.synchronizeTelemetry?.()??e.refresh()).catch(u=>e.onRefreshFailure?.({trigger:e.staleSeed?"stale_seed":"source_change",error:u}))};if(n?i():e.staleSeed&&t("stale_seed"),!n)return;let r,o=()=>{r!==void 0&&clearTimeout(r),r=setTimeout(()=>{r=void 0,t("source_change")},300),r.unref()},a=new Map,s=u=>{let d=new Set(u.flatMap(_=>["data","records","config"].map(p=>qQ(_,".agents",p))));for(let[_,p]of a)d.has(_)||(p.close(),a.delete(_),o());for(let _ of d)if(!a.has(_))try{let p=zQ(_,{recursive:!0},o);p.unref(),a.set(_,p)}catch{}};s([e.workspaceRoot]);let l=async()=>{if(e.discoverSourceRoots!==void 0)try{s(await e.discoverSourceRoots())}catch(u){e.onRefreshFailure?.({trigger:"source_change",error:u})}};l(),setInterval(()=>{l(),i()},6e4).unref()}function rl(e,t){process.stderr.write(`${JSON.stringify({event:"dashboard_sqlite_startup_phase",phase:t,elapsed_ms:Math.round(performance.now()-e)})}
|
|
2323
2323
|
`)}function zL(e,t){process.stderr.write(`${JSON.stringify({event:"dashboard_sqlite_read_model",elapsed_ms:Math.round(performance.now()-e),cache:t.cache,fingerprint_ms:t.fingerprint_ms,materialize_ms:t.materialize_ms,source_files:t.files})}
|
|
2324
|
-
`)}function qL(e){let t=null,n=!1,i=!1;return{refresh:(o=!1)=>t!==null?(o&&i&&e.refresh().catch(()=>{}),t):(t=(async()=>{try{if(e.capture!==void 0){n=!0;let a=await e.capture();e.onCaptureSuccess?.(a)}}catch(a){e.onCaptureFailure?.(a)}finally{n=!1}i=!0,await e.refresh()})().finally(()=>{i=!1,t=null}),t),get pending(){return t!==null},get capturing(){return n}}}Zo();Qr();import{createHash as ol}from"node:crypto";var
|
|
2325
|
-
Evidence reference: ${o}`,recorded_at:r,updated_at:r}))}function
|
|
2324
|
+
`)}function qL(e){let t=null,n=!1,i=!1;return{refresh:(o=!1)=>t!==null?(o&&i&&e.refresh().catch(()=>{}),t):(t=(async()=>{try{if(e.capture!==void 0){n=!0;let a=await e.capture();e.onCaptureSuccess?.(a)}}catch(a){e.onCaptureFailure?.(a)}finally{n=!1}i=!0,await e.refresh()})().finally(()=>{i=!1,t=null}),t),get pending(){return t!==null},get capturing(){return n}}}Zo();Qr();import{createHash as ol}from"node:crypto";var VQ=25e4;async function WL(e,t,n){if(t.version===1)throw new Error("Task trace requires a modern WorkspaceLayout");let i=await new Vt(e).readEntities(),r=i.find(h=>h.kind==="task"&&h.id===n);if(r===void 0)throw new Error(`Task ${n} was not found in the lifecycle manifest`);let o=oi(r,"change_id")??il(r,"CHG-")??r.id,a=i.find(h=>h.kind==="change"&&h.id===o),s=VL(a,"spec_id")??il(r,"SPEC-")??il(a,"SPEC-"),l=VL(a,"prd_id")??il(r,"PRD-")??il(a,"PRD-"),c=new Set([r.id,o]);s!==null&&c.add(s),l!==null&&c.add(l);let u=new Set([...r.relations,...a?.relations??[]].filter(h=>/^(?:REQ|AC)-/.test(h))),d=i.filter(h=>JQ(h,c)),_=d.filter(h=>h.kind==="run"&&oi(h,"task_id")===r.id),p=new Set;for(let h of d)h.kind!=="decision"&&h.kind!=="evidence"&&h.kind!=="validation"&&p.add(t.activePath(h.kind,h.id));p.add(t.activePath("task",r.id)),o.startsWith("CHG-")&&p.add(t.activePath("change",o)),s!==null&&p.add(t.activePath("spec",s)),l!==null&&p.add(t.activePath("prd",l));let g=new Set(p),m=await Promise.all(WQ(p).map(h=>e.listFiles(h)));for(let h of m.flat())g.add(h);let f=[],v=oi(r,"finished_at");for(let h of g){if(!/\.(?:md|json|jsonl|txt|log)$/i.test(h)||!await e.exists(h))continue;let k=await e.readText(h);if(k.length>VQ||!(!h.includes("/requirements/")||[...u].some(le=>k.includes(le))))continue;let $=Xb(h),B=pm(k),z=($.kind==="evidence"||$.kind==="test"||$.kind==="eval"||$.kind==="check")&&k.includes(r.id);if(($.kind==="evidence"||$.kind==="test"||$.kind==="eval"||$.kind==="check")&&!z)continue;let R={id:ol("sha256").update(h).digest("hex").slice(0,16),path:h,title:t7(h,k),...$,content:k,recorded_at:B.recorded_at??(z?v:null),updated_at:B.updated_at??(z?v:null)};f.push(R);let L=KQ(R);L!==null&&f.push(L);let J=XQ(R,r.id);J!==null&&f.push(J)}for(let h of QQ(r,u,f))f.push(h);for(let h of YQ(r,f))f.push(h);f.sort((h,k)=>Gb[h.stage]-Gb[k.stage]||h.path.localeCompare(k.path));let S=new Set(f.map(h=>h.stage)),b=Kb(f);return{schema_version:2,layout_version:t.version,readonly:!0,source:".agents/records",task_id:r.id,task_title:r.title??r.id,task_risk:r.risk==="lite"||r.risk==="standard"||r.risk==="critical"?r.risk:null,task_created_at:oi(r,"created_at"),task_progress:GQ(r.status),spec_id:s,prd_id:l,change_id:o,usage:BQ(_),documents:f,stages:b,coverage:{stages_with_documents:S.size,stages_with_timestamps:b.filter(h=>h.status==="recorded").length,total_stages:6,evidence_count:f.filter(h=>h.kind==="evidence").length,test_count:f.filter(h=>h.kind==="test").length}}}function WQ(e){let t=new Set;for(let n of e){if(!n.endsWith("/change.md")&&!n.endsWith("/execution.md"))continue;let i=n.slice(0,n.lastIndexOf("/"));t.add(`${i}/decisions`);for(let r of["evidence","tests","evals","checks"])t.add(`${i}/artifacts/${r}`)}return[...t].sort()}function BQ(e,t=Date.now()){let n=e.map(s=>ZQ(s)?HQ(s,t):null),i=e.map(s=>s.usage?.total_tokens??null),r=e.map(s=>s.usage?.cost??null),o=new Set(e.map(s=>s.usage?.currency).filter(s=>s==="BRL"||s==="USD")),a=o.size===1?[...o][0]??null:null;return{run_count:e.length,duration_ms:_m(n),total_tokens:_m(i),cost:o.size<=1?{..._m(r),currency:a}:{..._m(e.map(()=>null)),currency:null}}}function ZQ(e){return oi(e,"phase")==="execution"&&oi(e,"parent_run_id")===null}function _m(e){let t=e.filter(n=>n!==null);return{value:t.length===0?null:t.reduce((n,i)=>n+i,0),known_runs:t.length,unknown_runs:e.length-t.length,coverage_ratio:e.length===0?1:t.length/e.length}}function HQ(e,t){let n=oi(e,"started_at"),i=oi(e,"finished_at");if(n===null)return null;let r=Date.parse(n),o=i===null?null:Date.parse(i),a=o===null&&e.status==="running"?t-r:(o??Number.NaN)-r;return Number.isFinite(a)?Math.max(0,a):null}function Kb(e){return Object.keys(Gb).map(t=>{let n=e.filter(r=>r.stage===t),i=n.flatMap(r=>[r.recorded_at,r.updated_at]).filter(r=>r!==null).sort(BL);return{stage:t,status:n.length===0?"pending":i.length===0?"missing_timestamp":"recorded",first_recorded_at:i.at(0)??null,last_recorded_at:i.at(-1)??null,document_count:n.length,test_count:n.filter(r=>r.kind==="test").length}})}function JQ(e,t){return t.has(e.id)||e.relations.some(n=>t.has(n))}function GQ(e){return e==="completed"?100:e==="verifying"?80:e==="executing"?50:e==="blocked"||e==="failed"||e==="cancelled"?0:10}function oi(e,t){let n=e.data?.[t];return typeof n=="string"&&n.length>0?n:null}function il(e,t){return e?.relations.find(n=>n.startsWith(t))??null}function VL(e,t){let n=e?.data?.source;if(typeof n!="object"||n===null)return null;let i=n[t];return typeof i=="string"&&i.length>0?i:null}var Gb={definition:0,planning:1,execution:2,decisions:3,verification:4,evidence:5};function Xb(e){return e.includes("/prds/")?{stage:"definition",kind:"prd"}:e.includes("/requirements/")?{stage:"definition",kind:"requirement"}:e.includes("/specs/")?{stage:"planning",kind:"spec"}:e.includes("/decisions/")?{stage:"decisions",kind:"decision"}:e.includes("/artifacts/evidence/")?{stage:"evidence",kind:"evidence"}:e.includes("/artifacts/tests/")?{stage:"verification",kind:"test"}:e.includes("/artifacts/evals/")?{stage:"verification",kind:"eval"}:e.includes("/artifacts/checks/")?{stage:"verification",kind:"check"}:e.includes("/tasks/")?{stage:"execution",kind:"task"}:e.includes("/executions/")?{stage:"execution",kind:"execution"}:e.includes("/runs/")?{stage:"execution",kind:"run"}:e.includes("/changes/")?{stage:"planning",kind:"change"}:{stage:"evidence",kind:"evidence"}}function pm(e){let t=[...e.matchAll(/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})\b/g)].map(n=>n[0]).filter(n=>Number.isFinite(Date.parse(n))).sort(BL);return{recorded_at:t.at(0)??null,updated_at:t.at(-1)??null}}function BL(e,t){return Date.parse(e)-Date.parse(t)}function KQ(e){if(e.kind!=="change")return null;let t=e.content.match(/^## Decis(?:ões|oes)\s*\r?\n([\s\S]*?)(?=^##\s|\s*$)/m)?.[1]?.trim();return t===void 0||t.length===0||/^Nenhuma decis(?:ão|ao) registrada\.?$/i.test(t)?null:{id:ol("sha256").update(`${e.path}#decisions`).digest("hex").slice(0,16),path:`${e.path}#decisions`,title:`Decis\xF5es \u2014 ${e.title}`,stage:"decisions",kind:"decision",content:t,...pm(t)}}function XQ(e,t){return e.kind!=="evidence"||!e.content.includes(t)||!/(?:test|vitest|typecheck|biome|build|lint|check|eval)/i.test(e.content)||!/(?:passed|passing|aprovad[oa]|exit\s*code\s*[:=]?\s*0|\bPASS\b)/i.test(e.content)?null:{...e,id:ol("sha256").update(`${e.path}#verification`).digest("hex").slice(0,16),path:`${e.path}#verification`,title:`Verifica\xE7\xE3o \u2014 ${e.title}`,stage:"verification",kind:"check"}}function YQ(e,t){let n=e.data?.result;if(typeof n!="object"||n===null)return[];let i=n.evidence_ids;if(!Array.isArray(i))return[];let r=oi(e,"finished_at");return i.filter(o=>typeof o=="string"&&o.length>0).filter(o=>!t.some(a=>a.kind==="evidence"&&a.content.includes(o))).map(o=>({id:ol("sha256").update(`${e.id}#evidence/${o}`).digest("hex").slice(0,16),path:`${e7(e.id)}#evidence/${o}`,title:o,stage:"evidence",kind:"evidence",content:`Task: ${e.id}
|
|
2325
|
+
Evidence reference: ${o}`,recorded_at:r,updated_at:r}))}function QQ(e,t,n){let i=oi(e,"finished_at");return[...t].filter(r=>!n.some(o=>o.content.includes(r))).sort().map(r=>({id:ol("sha256").update(`${e.id}#requirement/${r}`).digest("hex").slice(0,16),path:`.agents/requirements#${r}`,title:r,stage:"definition",kind:"requirement",content:`Task: ${e.id}
|
|
2326
2326
|
Requirement reference: ${r}`,recorded_at:i,updated_at:i}))}function e7(e){return`.agents/records/tasks/${e}.md`}function t7(e,t){return t.match(/^#\s+(.+)$/m)?.[1]?.trim()??e.split("/").at(-1)??e}ze();import{createHash as n7}from"node:crypto";async function ZL(e,t,n){let i=await So(e,t,"task",n);if(i===null)throw new Error(`Canonical Task ${n} was not found`);let r={path:i,content:await e.readText(i)},o=f=>{let v=/^---\r?\n([\s\S]*?)\r?\n---/.exec(r.content)?.[1]??"",S=new RegExp(`^${f}:\\s*(.+?)\\s*$`,"m").exec(v)?.[1]?.trim();return S===void 0||S==="null"?null:S.replace(/^['"]|['"]$/g,"")};if(o("id")!==n)throw new Error(`Canonical Task identity mismatch: ${n}`);let a=(f,v)=>o(f)??new RegExp(`\\b${v}[A-Z0-9-]+`).exec(r.content)?.[0]??null,s=a("change_id","CHG-")??n,l=a("spec_id","SPEC-"),c=a("prd_id","PRD-"),u=[n,s,l,c].filter(f=>f!==null),d=e.canonicalTraceFiles(u,25e4).filter(f=>/\.(?:md|json|jsonl|txt|log)$/i.test(f.path)&&f.content.length<=25e4).map(f=>{let v=Xb(f.path),S=pm(f.content);return{id:n7("sha256").update(f.path).digest("hex").slice(0,16),path:f.path,title:f.content.match(/^#\s+(.+)$/m)?.[1]?.trim()??f.path.split("/").at(-1)??f.path,...v,content:f.content,...S}}),_=Kb(d),p=new Set(d.map(f=>f.stage)),g=o("risk"),m=o("status");return{schema_version:2,layout_version:t.version,readonly:!0,source:e.canonicalSource(),task_id:n,task_title:o("title")??r.content.match(/^#\s+(.+)$/m)?.[1]?.trim()??n,task_risk:g==="lite"||g==="standard"||g==="critical"?g:null,task_created_at:o("created_at"),task_progress:m==="completed"?100:m==="verifying"?80:m==="executing"?50:m==="blocked"||m==="failed"||m==="cancelled"?0:10,spec_id:l,prd_id:c,change_id:s,usage:e.taskTraceUsage(n),documents:d,stages:_,coverage:{stages_with_documents:p.size,stages_with_timestamps:_.filter(f=>f.status==="recorded").length,total_stages:6,evidence_count:d.filter(f=>f.kind==="evidence").length,test_count:d.filter(f=>f.kind==="test").length}}}function HL(e,t){let{filesystem:n,readLayout:i}=t;e.on(["GET","HEAD"],`${Se}/tasks/:id`,async r=>{try{let o=await i();return ye(r,await lb(n,o,r.req.param("id")))}catch(o){if(o instanceof Lt)throw o;return ye(r,{error:"Task not found"},404)}}),e.on(["GET","HEAD"],`${Se}/prds/:id`,async r=>{try{let o=await i();return ye(r,await ub(n,o,r.req.param("id")))}catch(o){if(o instanceof Lt)throw o;return ye(r,{error:"PRD not found"},404)}}),e.on(["GET","HEAD"],`${Se}/specs/:id`,async r=>{try{let o=await i();return ye(r,await db(n,o,r.req.param("id")))}catch(o){if(o instanceof Lt)throw o;return ye(r,{error:"SPEC not found"},404)}}),e.on(["GET","HEAD"],`${Se}/tasks/:id/trace`,async r=>{try{let o=await i(),a=r.req.param("id");return ye(r,n instanceof ct?await ZL(n,o,a):await WL(n,o,a))}catch(o){if(o instanceof Lt)throw o;return ye(r,{error:"Task trace not found"},404)}})}import{randomBytes as r7}from"node:crypto";var mm="127.0.0.1";function Yb(e){try{let t=new URL(e);return t.protocol==="http:"&&(t.hostname===mm||t.hostname==="localhost")}catch{return!1}}function JL(e){try{let t=decodeURIComponent(e).replaceAll("\\","/");return!t.includes("\0")&&!t.split("/").some(n=>n==="..")}catch{return!1}}function Qb(){return process.env.ZAIP_UI_TOKEN??r7(24).toString("base64url")}function GL(e){if(e.req.method!=="GET"&&e.req.method!=="HEAD"||e.req.path!=="/"&&e.req.path!=="/index.html")return!1;let t=e.req.header("origin");return t!==void 0&&!Yb(t)?!1:e.req.header("sec-fetch-site")!=="cross-site"}var al="zaip-dashboard-sqlite-runtime",XL="zaip-dashboard-sqlite-session",YL=5e3;function tM(e=process.env.ZAIP_WORKSPACE??process.cwd(),t=Qb(),n=KL(process.env.ZAIP_UI_ROOT??"./dist"),i={}){let r=new Wh,o=v_(e,"runtime");o.log("runtime_app_started",{snapshot_read_only:i.snapshotReadOnly});let a=i.filesystem??new Kr(e),s=a instanceof ct,l=s?vi(a):null,c=async()=>i.layout??l??await vi(a),u=i.snapshotReadOnly??s,d=i.snapshotState??"current",_=i.canonicalFilesystem??new Kr(e),p=i.reconcileOpenWork??DP,g=i.refreshReadModel??(async()=>{s&&await jL(e,a)}),m=Ab(e),f=KL(e),v=o7(f),S=i.syncAgentAdapters??(()=>kO(e)),b=new Map,h=new Map,k=new Map,P=new Map,U=async(A,I,he=!1)=>{let me=k.get(A);if(!he&&me!==void 0&&(A.startsWith("operations:board:")||Date.now()-me.cachedAt<YL))return me.payload;let Le=P.get(A);if(Le!==void 0)return he?(await Le,U(A,I,!0)):Le;let Ce=I().then(Pe=>(k.set(A,{payload:Pe,cachedAt:Date.now()}),Pe)).finally(()=>P.delete(A));return P.set(A,Ce),Ce},$=A=>{let{from:I,to:he}=xt(A);return`${Wn(A)}:${I??""}:${he??""}`},B=()=>{h.clear(),k.clear(),P.clear()},z=null,R=IO(),L=null,J=null,le=!1,j=null,Q=!1,C=new Set,F=async(A=null)=>{if(A!==null&&C.add(A),ne.capturing)return ne.refresh();if(j!==null)return Q=!0,j;d="updating";let I=i7(),he=A;return o.log("projection_refresh_started",{refresh_id:I,job_id:he}),j=(async()=>{let me=0;do Q=!1,await g(),s&&(l=vi(a)),B(),me+=1;while(Q&&me<2);d="current",R.clear(),o.log("projection_refresh_completed",{refresh_id:I,job_id:[...C][0]??he,job_ids:[...C],projection_updated_at:s?a.projectionUpdatedAt():null,latest_token_collected_at:s?a.latestTokenCollectedAt():null}),Q||C.clear()})().catch(me=>{throw R.record({trigger:"source_change",error:me}),o.log("projection_refresh_failed",{refresh_id:I,job_id:[...C][0]??he,job_ids:[...C],error:me}),C.clear(),me}).finally(()=>{j=null,Q&&(Q=!1,setTimeout(()=>{F().catch(Le=>R.record({trigger:"source_change",error:Le}))},250).unref())}),j},X=i.captureTelemetry??(s&&i.watchSources===!0&&process.env.ZAIP_DASHBOARD_WATCH_SOURCES!=="0"?()=>bO(e):void 0),ne=qL({refresh:F,...X===void 0?{}:{capture:async()=>(j!==null&&await j.catch(()=>{}),X())},onCaptureSuccess:A=>{J=A,L=null,le=A.catch_up_complete===!1},onCaptureFailure:A=>{L=lO(A),o.log("active_telemetry_capture_failed",L)}}),ve=()=>ne.pending||L!==null||le?"updating":d;FL({workspaceRoot:e,discoverSourceRoots:()=>cc(e),staleSeed:s&&d==="updating",watchSources:s&&i.watchSources===!0,refresh:F,synchronizeTelemetry:ne.refresh,onRefreshFailure:R.record});let ge=$L({diagnostics:o,reconcile:(A,I)=>p(_,e,{hostTerminalOnly:A==="host-terminal",jobId:I}),snapshotTimes:()=>({projection_updated_at:s?a.projectionUpdatedAt():null,latest_token_collected_at:s?a.latestTokenCollectedAt():null}),refresh:A=>F(A)}),q=A=>{let I=$(A),he=h.get(I);if(he!==void 0&&Date.now()-he.cachedAt<YL)return A.header("X-ZAIP-Snapshot-Cache","hit"),Promise.resolve(he.snapshot);let me=b.get(I);if(me!==void 0)return A.header("X-ZAIP-Snapshot-Cache","inflight"),me;A.header("X-ZAIP-Snapshot-Cache","miss");let Le=c().then(Ce=>mL(a,e,A,Ce)).then(Ce=>(h.set(I,{snapshot:Ce,cachedAt:Date.now()}),Ce)).finally(()=>{b.delete(I)});return b.set(I,Le),Le};return r.use("*",async(A,I)=>ML(A.req.url,A.req.header("host"))?(A.header("Cache-Control","no-store"),A.header("X-Content-Type-Options","nosniff"),A.header("Referrer-Policy","no-referrer"),A.header("Content-Security-Policy","default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'self'; object-src 'none'; frame-ancestors 'none'"),GL(A)&&sO(A,XL,t,{httpOnly:!0,path:"/",sameSite:"Strict"}),I()):A.json({error:"Host rejected"},403)),r.use(`${Se}/*`,async(A,I)=>{let he=A.req.method==="PUT"&&(A.req.path===`${Se}/work-priority`||A.req.path===`${Se}/project-settings`||!u&&(A.req.path===`${Se}/pricing`||A.req.path===`${Se}/fx-rate`||A.req.path===`${Se}/agent-catalog`)),me=A.req.method==="POST"&&A.req.path===`${Se}/reconcile-open-work`,Le=A.req.method==="GET"&&A.req.path===`${Se}/browser-lease`,Ce=A.req.method==="POST"&&(A.req.path===`${Se}/refresh-projection`||A.req.path===`${Se}/capture-telemetry`);if(A.req.method!=="GET"&&A.req.method!=="HEAD"&&!he&&!me&&!Ce&&!Le)return A.header("Allow",A.req.path===`${Se}/pricing`||A.req.path===`${Se}/fx-rate`||A.req.path===`${Se}/agent-catalog`||A.req.path===`${Se}/project-settings`||A.req.path===`${Se}/work-priority`?"GET, HEAD, PUT":A.req.path===`${Se}/reconcile-open-work`||A.req.path===`${Se}/refresh-projection`||A.req.path===`${Se}/capture-telemetry`?"POST":"GET, HEAD"),A.json({error:"Dashboard API is read-only"},405);if(A.req.path===`${Se}/health`||A.req.path===`${Se}/ready`)return I();let Pe=A.req.header("origin");if(Pe!==void 0&&!Yb(Pe))return A.json({error:"Origin rejected"},403);let Qt=A.req.header("x-zaip-session"),Y=aO(A,XL),ce=A.req.method==="GET"&&A.req.path.startsWith(`${Se}/agent-catalog-assets/`)?A.req.query("token"):void 0,$e=Le?A.req.query("token"):void 0;return Le&&$e!==t?A.json({error:"Invalid local session"},401):Qt!==t&&Y!==t&&ce!==t&&$e!==t?A.json({error:"Invalid local session"},401):I()}),qO(r,Se,i.launcherOwned===!0),r.on(["GET","HEAD"],`${Se}/health`,async A=>{try{let[I,he]=await Promise.all([c(),sc(_)]);return ye(A,{kind:al,workspaceKey:m,workspace:f,workspace_name:v,server_pid:process.pid,service:"zaip-aios-dashboard",status:he==="initialized"&&L===null&&!le?R.healthStatus:"degraded",api_version:2,workspace_layout:I.version,lifecycle_manifest_state:he,read_only:!0,storage:s?a.metadata():{storage_mode:"filesystem"},snapshot_state:ve(),projection_refresh_failure:R.failure,active_capture_failure:L,active_capture:J})}catch(I){return ye(A,{kind:al,workspaceKey:m,workspace:f,workspace_name:v,server_pid:process.pid,service:"zaip-aios-dashboard",status:"unavailable",api_version:2,read_only:!0,error:I instanceof Error?I.message:String(I)},503)}}),r.on(["GET","HEAD"],`${Se}/ready`,async A=>{try{let[I,he]=await Promise.all([c(),sc(_)]),me=he==="initialized"&&L===null&&!le?"ready":"degraded";if(s){let Ce=UL(e);z!==null&&z!==Ce&&(a.refresh(),B(),l=vi(a)),z=Ce;let Pe=a.metadata();return ye(A,{kind:al,workspaceKey:m,workspace:f,workspace_name:v,server_pid:process.pid,status:me,workspace_layout:I.version,lifecycle_manifest_state:he,storage_mode:Pe.storage_mode,activity_count:Pe.activity_count,day_count:Pe.daily_aggregate_count,snapshot_state:ve(),projection_refresh_failure:R.failure,active_capture_failure:L,active_capture:J,snapshot_revision:Ce,projection_updated_at:a.projectionUpdatedAt(),latest_token_collected_at:a.latestTokenCollectedAt()})}let Le=await ao(a,I,{from:null,to:null});return ye(A,{kind:al,workspaceKey:m,workspace:f,workspace_name:v,server_pid:process.pid,status:me,lifecycle_manifest_state:he,source_latest_at:Le.summary.source_latest_at,active_capture:J})}catch(I){return ye(A,{kind:al,workspaceKey:m,status:"unavailable",error:I instanceof Error?I.message:String(I)},503)}}),r.on(["GET","HEAD"],`${Se}/dashboard-identity`,async A=>ye(A,await Zp(a,e))),CL(r,{filesystem:a,canonicalFilesystem:_,isSqliteSnapshot:s,readLayout:c,readSnapshot:q,readAggregate:U,clearSnapshotCache:B}),LL(r,{readLayout:c,diagnostics:o,reconcileWork:ge,refresh:A=>F(A),snapshotState:ve,refreshCompleted:()=>ve()==="current"&&j===null}),r.post(`${Se}/refresh-projection`,async A=>{try{return await c(),await ne.refresh(!0),L!==null?A.json({error:"Telemetry capture is unavailable",snapshot_state:ve(),active_capture_failure:L},503):A.json(await q(A))}catch(I){if(I instanceof Lt)throw I;return A.json({error:I instanceof Error?I.message:String(I)},400)}}),r.post(`${Se}/capture-telemetry`,async A=>(await c(),ne.refresh().catch(I=>R.record({trigger:"source_change",error:I})),A.json({snapshot_state:ve()},202))),fL(r,{filesystem:a,canonicalFilesystem:_,isSqliteSnapshot:s,readLayout:c,readSnapshot:q,readAggregate:U,clearSnapshotCache:B}),DL(r,a,B),FO(r,{filesystem:a,workspaceRoot:e,syncAgentAdapters:S,clearSnapshotCache:B}),r.on(["GET","HEAD"],`${Se}/project-settings`,async A=>{try{return ye(A,await dc(_))}catch(I){return ye(A,{error:I instanceof Error?I.message:String(I)},400)}}),r.on(["GET","HEAD"],`${Se}/project-settings/overview`,async A=>ye(A,await OO(_))),r.put(`${Se}/project-settings`,async A=>{try{let I=await CO(_,await A.req.json());return B(),A.json(I)}catch(I){return A.json({error:I instanceof Error?I.message:"Project settings update failed"},400)}}),HL(r,{filesystem:a,canonicalFilesystem:_,isSqliteSnapshot:s,readLayout:c,readSnapshot:q,readAggregate:U,clearSnapshotCache:B}),r.onError((A,I)=>{let he=A instanceof Lt?409:500;return ye(I,{error:he===409?A.message:"Dashboard projection failed"},he)}),r.all(`${Se}/*`,A=>ye(A,{error:"Not found"},404)),r.on(["GET","HEAD"],"/",ml({path:`${n}/index.html`})),r.use("/*",async(A,I)=>JL(A.req.path)?I():A.json({error:"Invalid dashboard asset path"},400)),r.use("/*",ml({root:n})),r.on(["GET","HEAD"],"/*",ml({path:`${n}/index.html`})),r}var fm=performance.now(),nM=Qb(),gm=process.env.ZAIP_WORKSPACE??process.cwd(),QL;function eM(){return QL??=tM(gm,nM),QL}var jAe=new Proxy({},{get(e,t){let n=Reflect.get(eM(),t);return typeof n=="function"?n.bind(eM()):n}});async function a7(){let e=Number.parseInt(process.env.ZAIP_SERVER_PORT??"4317",10);rl(fm,"main_entered");let t=performance.now(),i=await um(gm,{forceCanonical:!1,preferExisting:!0});zL(t,i),rl(fm,"read_model_ready");let r=tM(gm,nM,void 0,{filesystem:new ct(gm),snapshotState:i.cache==="stale_seed"?"updating":"current",watchSources:!0,launcherOwned:!0});rl(fm,"runtime_app_ready"),ES({fetch:r.fetch,hostname:mm,port:e},({port:o})=>{rl(fm,"listening"),process.stdout.write(`ZAIP-AIOS dashboard API: http://${mm}:${o}${Se}/health
|
|
2327
|
-
`)})}(process.argv[1]?.endsWith("server.cjs")||process.argv[1]?.endsWith("server.js")||process.argv[1]?.endsWith("server.mjs"))&&a7();export{ct as SqliteReadModelFileSystem,jAe as app,tM as createDashboardApp,Ab as dashboardWorkspaceKey,eM as defaultDashboardApp,Eb as githubRepositoryFromRemote,xP as manifestRun,qp as mergeManifestRuns,JY as openWorkIds,kb as projectAllTimeTopTasks,xt as projectionPeriodFilter,um as rebuildSqliteReadModel,
|
|
2327
|
+
`)})}(process.argv[1]?.endsWith("server.cjs")||process.argv[1]?.endsWith("server.js")||process.argv[1]?.endsWith("server.mjs"))&&a7();export{ct as SqliteReadModelFileSystem,jAe as app,tM as createDashboardApp,Ab as dashboardWorkspaceKey,eM as defaultDashboardApp,Eb as githubRepositoryFromRemote,xP as manifestRun,qp as mergeManifestRuns,JY as openWorkIds,kb as projectAllTimeTopTasks,xt as projectionPeriodFilter,um as rebuildSqliteReadModel,PQ as reconciliationNeedsRefresh,jP as reconciliationResult,rs as validateSqliteReadModelSchema};
|