madarx 2.9.10 → 2.9.12
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +337 -337
- package/.next/standalone/.next/app-path-routes-manifest.json +82 -82
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/page.js +3 -3
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/[id]/page.js +3 -3
- package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/page.js +1 -1
- package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/open-design/route.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/state/route.js +1 -1
- package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/approvals/page.js +1 -1
- package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture.html +2 -2
- package/.next/standalone/.next/server/app/architecture.rsc +1 -1
- package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand.html +1 -1
- package/.next/standalone/.next/server/app/brand.rsc +1 -1
- package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai.html +2 -2
- package/.next/standalone/.next/server/app/federated-ai.rsc +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +1 -1
- package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/join.html +1 -1
- package/.next/standalone/.next/server/app/join.rsc +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/marketplace/page.js +2 -2
- package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/missions/page.js +2 -2
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +1 -1
- package/.next/standalone/.next/server/app/org/page.js +1 -1
- package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new.html +1 -1
- package/.next/standalone/.next/server/app/projects/new.rsc +2 -2
- package/.next/standalone/.next/server/app/projects/page.js +13 -13
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/[file]/route.js +1 -1
- package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/schedules/page.js +2 -2
- package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand.html +2 -2
- package/.next/standalone/.next/server/app/settings/brand.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/settings/onboarding.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp.html +1 -1
- package/.next/standalone/.next/server/app/whatsapp.rsc +1 -1
- package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +82 -82
- package/.next/standalone/.next/server/chunks/1699.js +4 -4
- package/.next/standalone/.next/server/chunks/4740.js +1 -1
- package/.next/standalone/.next/server/chunks/511.js +1 -1
- package/.next/standalone/.next/server/chunks/8677.js +1 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +34 -34
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +1 -0
- package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
- package/.next/standalone/data/.default-project-seeded +1 -1
- package/.next/standalone/data/madarx.sqlite +0 -0
- package/.next/standalone/data/madarx.sqlite-shm +0 -0
- package/.next/standalone/data/madarx.sqlite-wal +0 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +1 -0
- package/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +1 -0
- package/lib/agent-engines.js +101 -12
- package/lib/cli/run.js +5 -0
- package/lib/hermes-jobs.js +8 -3
- package/lib/paths.js +21 -0
- package/lib/tools/adapters/browser-harness.js +6 -2
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/9529.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-3ceae5509d4021ea.js +0 -1
- package/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +0 -1
- package/.next/static/chunks/app/projects/page-3ceae5509d4021ea.js +0 -1
- /package/.next/standalone/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_ssgManifest.js +0 -0
- /package/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_buildManifest.js +0 -0
- /package/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_ssgManifest.js +0 -0
|
@@ -2,177 +2,177 @@
|
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
3
|
"/api/dashboard/spaces/[id]/move/route": "app/api/dashboard/spaces/[id]/move/route.js",
|
|
4
4
|
"/api/dashboard/spaces/[id]/route": "app/api/dashboard/spaces/[id]/route.js",
|
|
5
|
-
"/api/dashboard/spaces/route": "app/api/dashboard/spaces/route.js",
|
|
6
5
|
"/api/dashboard/spaces/import/route": "app/api/dashboard/spaces/import/route.js",
|
|
6
|
+
"/api/dashboard/spaces/route": "app/api/dashboard/spaces/route.js",
|
|
7
7
|
"/api/activity/route": "app/api/activity/route.js",
|
|
8
8
|
"/api/admin/share-links/route": "app/api/admin/share-links/route.js",
|
|
9
|
+
"/api/agent-memory/route": "app/api/agent-memory/route.js",
|
|
9
10
|
"/api/agent-runs/[id]/cancel/route": "app/api/agent-runs/[id]/cancel/route.js",
|
|
11
|
+
"/api/agent-runs/[id]/events/route": "app/api/agent-runs/[id]/events/route.js",
|
|
10
12
|
"/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
|
|
11
13
|
"/api/agent-runs/[id]/route": "app/api/agent-runs/[id]/route.js",
|
|
12
|
-
"/api/agent-runs/
|
|
14
|
+
"/api/agent-runs/route": "app/api/agent-runs/route.js",
|
|
13
15
|
"/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
|
|
14
16
|
"/api/agents/[id]/chain/route": "app/api/agents/[id]/chain/route.js",
|
|
15
|
-
"/api/agent-runs/route": "app/api/agent-runs/route.js",
|
|
16
|
-
"/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
|
|
17
17
|
"/api/agents/[id]/memory/route": "app/api/agents/[id]/memory/route.js",
|
|
18
|
+
"/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
|
|
18
19
|
"/api/agents/[id]/run/route": "app/api/agents/[id]/run/route.js",
|
|
20
|
+
"/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
|
|
19
21
|
"/api/agents/create/route": "app/api/agents/create/route.js",
|
|
20
22
|
"/api/agents/ops/route": "app/api/agents/ops/route.js",
|
|
21
|
-
"/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
|
|
22
|
-
"/api/approvals/route": "app/api/approvals/route.js",
|
|
23
23
|
"/api/approvals/[id]/route": "app/api/approvals/[id]/route.js",
|
|
24
|
-
"/api/
|
|
24
|
+
"/api/approvals/route": "app/api/approvals/route.js",
|
|
25
25
|
"/api/artifacts/[id]/protect/route": "app/api/artifacts/[id]/protect/route.js",
|
|
26
|
-
"/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
|
|
27
26
|
"/api/artifacts/[id]/raw/route": "app/api/artifacts/[id]/raw/route.js",
|
|
27
|
+
"/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
|
|
28
28
|
"/api/artifacts/[id]/share-link/[linkId]/route": "app/api/artifacts/[id]/share-link/[linkId]/route.js",
|
|
29
29
|
"/api/artifacts/[id]/share-link/route": "app/api/artifacts/[id]/share-link/route.js",
|
|
30
30
|
"/api/audit/list/route": "app/api/audit/list/route.js",
|
|
31
31
|
"/api/audit/search/route": "app/api/audit/search/route.js",
|
|
32
|
-
"/api/auth/callback/route": "app/api/auth/callback/route.js",
|
|
33
32
|
"/api/auth/config/route": "app/api/auth/config/route.js",
|
|
33
|
+
"/api/auth/callback/route": "app/api/auth/callback/route.js",
|
|
34
34
|
"/api/auth/join-bootstrap/route": "app/api/auth/join-bootstrap/route.js",
|
|
35
|
-
"/api/
|
|
35
|
+
"/api/brand/route": "app/api/brand/route.js",
|
|
36
36
|
"/api/chat/sessions/[id]/route": "app/api/chat/sessions/[id]/route.js",
|
|
37
37
|
"/api/chat/sessions/route": "app/api/chat/sessions/route.js",
|
|
38
38
|
"/api/config/env/route": "app/api/config/env/route.js",
|
|
39
|
-
"/api/
|
|
40
|
-
"/api/config/route": "app/api/config/route.js",
|
|
39
|
+
"/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
|
|
41
40
|
"/api/connections/[service]/route": "app/api/connections/[service]/route.js",
|
|
41
|
+
"/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
|
|
42
42
|
"/api/connections/route": "app/api/connections/route.js",
|
|
43
43
|
"/api/cron/tick/route": "app/api/cron/tick/route.js",
|
|
44
|
-
"/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
|
|
45
44
|
"/api/dashboard/spaces/[id]/share-link/[linkId]/route": "app/api/dashboard/spaces/[id]/share-link/[linkId]/route.js",
|
|
46
|
-
"/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
|
|
47
45
|
"/api/dashboard/spaces/[id]/share-link/route": "app/api/dashboard/spaces/[id]/share-link/route.js",
|
|
46
|
+
"/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
|
|
48
47
|
"/api/disk/files/[id]/route": "app/api/disk/files/[id]/route.js",
|
|
49
48
|
"/api/disk/files/[id]/transcribe/route": "app/api/disk/files/[id]/transcribe/route.js",
|
|
50
|
-
"/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
|
|
51
|
-
"/api/disk/folders/route": "app/api/disk/folders/route.js",
|
|
52
49
|
"/api/disk/files/route": "app/api/disk/files/route.js",
|
|
53
|
-
"/api/
|
|
50
|
+
"/api/disk/folders/route": "app/api/disk/folders/route.js",
|
|
51
|
+
"/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
|
|
52
|
+
"/api/auth/session/route": "app/api/auth/session/route.js",
|
|
54
53
|
"/api/fs/create-folder/route": "app/api/fs/create-folder/route.js",
|
|
55
|
-
"/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
|
|
56
54
|
"/api/fs/pick-folder/route": "app/api/fs/pick-folder/route.js",
|
|
57
|
-
"/api/hail/engagements/[id]/
|
|
55
|
+
"/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
|
|
58
56
|
"/api/hail/engagements/[id]/diagnostic/route": "app/api/hail/engagements/[id]/diagnostic/route.js",
|
|
59
|
-
"/api/
|
|
57
|
+
"/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
|
|
58
|
+
"/api/config/route": "app/api/config/route.js",
|
|
60
59
|
"/api/hail/engagements/[id]/pilot/route": "app/api/hail/engagements/[id]/pilot/route.js",
|
|
61
|
-
"/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
|
|
62
|
-
"/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
|
|
63
60
|
"/api/hail/engagements/[id]/quarterly/route": "app/api/hail/engagements/[id]/quarterly/route.js",
|
|
64
|
-
"/api/hail/engagements/route": "app/api/hail/engagements/route.js",
|
|
61
|
+
"/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
|
|
62
|
+
"/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
|
|
63
|
+
"/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
|
|
64
|
+
"/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
|
|
65
65
|
"/api/hail/interviews/[id]/responses/route": "app/api/hail/interviews/[id]/responses/route.js",
|
|
66
66
|
"/api/hail/setup-packages/[id]/apply/route": "app/api/hail/setup-packages/[id]/apply/route.js",
|
|
67
|
-
"/api/hail/setup-packages/validate/route": "app/api/hail/setup-packages/validate/route.js",
|
|
68
67
|
"/api/hail/interviews/[id]/route": "app/api/hail/interviews/[id]/route.js",
|
|
68
|
+
"/api/hail/setup-packages/validate/route": "app/api/hail/setup-packages/validate/route.js",
|
|
69
69
|
"/api/heartbeat/tick/route": "app/api/heartbeat/tick/route.js",
|
|
70
70
|
"/api/heartbeat/worker/route": "app/api/heartbeat/worker/route.js",
|
|
71
|
+
"/api/help/route": "app/api/help/route.js",
|
|
71
72
|
"/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
|
|
72
73
|
"/api/hermes/jobs/[id]/events/route": "app/api/hermes/jobs/[id]/events/route.js",
|
|
73
74
|
"/api/hermes/jobs/route": "app/api/hermes/jobs/route.js",
|
|
74
|
-
"/api/brand/route": "app/api/brand/route.js",
|
|
75
|
-
"/api/help/route": "app/api/help/route.js",
|
|
76
75
|
"/api/integrations/google/callback/route": "app/api/integrations/google/callback/route.js",
|
|
77
76
|
"/api/integrations/google/oauth/route": "app/api/integrations/google/oauth/route.js",
|
|
77
|
+
"/api/events/stream/route": "app/api/events/stream/route.js",
|
|
78
78
|
"/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
|
|
79
|
-
"/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
|
|
80
79
|
"/api/marketplace/route": "app/api/marketplace/route.js",
|
|
81
|
-
"/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
|
|
82
80
|
"/api/mines/import-roots/route": "app/api/mines/import-roots/route.js",
|
|
83
81
|
"/api/mines/portfolio/route": "app/api/mines/portfolio/route.js",
|
|
84
82
|
"/api/mines/projects/[id]/chunks/route": "app/api/mines/projects/[id]/chunks/route.js",
|
|
85
|
-
"/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
|
|
86
83
|
"/api/mines/projects/[id]/diligence/route": "app/api/mines/projects/[id]/diligence/route.js",
|
|
87
84
|
"/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
|
|
85
|
+
"/api/mines/projects/route": "app/api/mines/projects/route.js",
|
|
88
86
|
"/api/missions/route": "app/api/missions/route.js",
|
|
89
87
|
"/api/models/route": "app/api/models/route.js",
|
|
90
88
|
"/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
|
|
91
89
|
"/api/onboarding/launch/route": "app/api/onboarding/launch/route.js",
|
|
92
|
-
"/api/
|
|
90
|
+
"/api/hail/engagements/route": "app/api/hail/engagements/route.js",
|
|
91
|
+
"/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
|
|
93
92
|
"/api/org/route": "app/api/org/route.js",
|
|
94
|
-
"/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
|
|
95
93
|
"/api/orgs/[id]/invites/[inviteId]/route": "app/api/orgs/[id]/invites/[inviteId]/route.js",
|
|
94
|
+
"/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
|
|
96
95
|
"/api/orgs/[id]/members/[userId]/role/route": "app/api/orgs/[id]/members/[userId]/role/route.js",
|
|
97
|
-
"/api/mines/projects/route": "app/api/mines/projects/route.js",
|
|
98
96
|
"/api/orgs/[id]/members/[userId]/route": "app/api/orgs/[id]/members/[userId]/route.js",
|
|
99
97
|
"/api/orgs/[id]/members/route": "app/api/orgs/[id]/members/route.js",
|
|
98
|
+
"/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
|
|
100
99
|
"/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
|
|
100
|
+
"/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
|
|
101
101
|
"/api/orgs/join/route": "app/api/orgs/join/route.js",
|
|
102
102
|
"/api/orgs/route": "app/api/orgs/route.js",
|
|
103
103
|
"/api/printing-press/install/route": "app/api/printing-press/install/route.js",
|
|
104
104
|
"/api/printing-press/clis/route": "app/api/printing-press/clis/route.js",
|
|
105
105
|
"/api/printing-press/security-mode/route": "app/api/printing-press/security-mode/route.js",
|
|
106
|
-
"/api/
|
|
106
|
+
"/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
|
|
107
107
|
"/api/processes/[id]/route": "app/api/processes/[id]/route.js",
|
|
108
|
+
"/api/processes/[id]/share-link/route": "app/api/processes/[id]/share-link/route.js",
|
|
108
109
|
"/api/processes/[id]/stages/[stageId]/override/route": "app/api/processes/[id]/stages/[stageId]/override/route.js",
|
|
109
|
-
"/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
|
|
110
|
-
"/api/privacy/config/route": "app/api/privacy/config/route.js",
|
|
111
110
|
"/api/processes/[id]/stages/[stageId]/retry/route": "app/api/processes/[id]/stages/[stageId]/retry/route.js",
|
|
112
|
-
"/api/processes/
|
|
111
|
+
"/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
|
|
112
|
+
"/api/privacy/verify/route": "app/api/privacy/verify/route.js",
|
|
113
113
|
"/api/processes/definitions/[slug]/settings/route": "app/api/processes/definitions/[slug]/settings/route.js",
|
|
114
|
-
"/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
|
|
115
|
-
"/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
|
|
116
114
|
"/api/processes/definitions/route": "app/api/processes/definitions/route.js",
|
|
115
|
+
"/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
|
|
117
116
|
"/api/processes/route": "app/api/processes/route.js",
|
|
118
117
|
"/api/processes/start-and-route/route": "app/api/processes/start-and-route/route.js",
|
|
119
118
|
"/api/projects/[slug]/library/route": "app/api/projects/[slug]/library/route.js",
|
|
120
119
|
"/api/projects/[slug]/route": "app/api/projects/[slug]/route.js",
|
|
121
120
|
"/api/projects/route": "app/api/projects/route.js",
|
|
121
|
+
"/api/privacy/config/route": "app/api/privacy/config/route.js",
|
|
122
122
|
"/api/runs/claude-code-dry-run/route": "app/api/runs/claude-code-dry-run/route.js",
|
|
123
123
|
"/api/runs/competitor-report/route": "app/api/runs/competitor-report/route.js",
|
|
124
|
-
"/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
|
|
125
124
|
"/api/runs/engine-ping/route": "app/api/runs/engine-ping/route.js",
|
|
125
|
+
"/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
|
|
126
126
|
"/api/schedules/upsert/route": "app/api/schedules/upsert/route.js",
|
|
127
|
-
"/api/
|
|
128
|
-
"/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
|
|
129
|
-
"/api/secrets/route": "app/api/secrets/route.js",
|
|
127
|
+
"/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
|
|
130
128
|
"/api/secrets/[name]/route": "app/api/secrets/[name]/route.js",
|
|
131
|
-
"/api/
|
|
132
|
-
"/api/
|
|
133
|
-
"/api/share/[token]/route": "app/api/share/[token]/route.js",
|
|
129
|
+
"/api/secrets/route": "app/api/secrets/route.js",
|
|
130
|
+
"/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
|
|
131
|
+
"/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
|
|
132
|
+
"/api/processes/definitions/[slug]/route": "app/api/processes/definitions/[slug]/route.js",
|
|
134
133
|
"/api/share/space/[token]/otp/route": "app/api/share/space/[token]/otp/route.js",
|
|
134
|
+
"/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
|
|
135
135
|
"/api/share/space/[token]/verify/route": "app/api/share/space/[token]/verify/route.js",
|
|
136
|
-
"/api/
|
|
137
|
-
"/api/
|
|
136
|
+
"/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
|
|
137
|
+
"/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
|
|
138
138
|
"/api/shared/spaces/route": "app/api/shared/spaces/route.js",
|
|
139
|
+
"/api/shared/spaces/publish/route": "app/api/shared/spaces/publish/route.js",
|
|
139
140
|
"/api/shared/spaces/status/route": "app/api/shared/spaces/status/route.js",
|
|
140
141
|
"/api/state/route": "app/api/state/route.js",
|
|
141
142
|
"/api/shared/spaces/unpublish/route": "app/api/shared/spaces/unpublish/route.js",
|
|
142
|
-
"/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
|
|
143
143
|
"/api/tasks/[id]/active-run/route": "app/api/tasks/[id]/active-run/route.js",
|
|
144
144
|
"/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
|
|
145
|
+
"/api/system/update/route": "app/api/system/update/route.js",
|
|
145
146
|
"/api/tasks/[id]/checklist/[itemId]/route": "app/api/tasks/[id]/checklist/[itemId]/route.js",
|
|
146
147
|
"/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
|
|
147
|
-
"/api/
|
|
148
|
+
"/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
|
|
148
149
|
"/api/tasks/[id]/children/route": "app/api/tasks/[id]/children/route.js",
|
|
149
|
-
"/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
|
|
150
150
|
"/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
|
|
151
|
+
"/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
|
|
151
152
|
"/api/tasks/[id]/live-runs/route": "app/api/tasks/[id]/live-runs/route.js",
|
|
152
153
|
"/api/tasks/[id]/release/route": "app/api/tasks/[id]/release/route.js",
|
|
153
|
-
"/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
|
|
154
|
-
"/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
|
|
155
154
|
"/api/tasks/route": "app/api/tasks/route.js",
|
|
156
155
|
"/api/tool-allowlists/[id]/route": "app/api/tool-allowlists/[id]/route.js",
|
|
157
156
|
"/api/tool-allowlists/route": "app/api/tool-allowlists/route.js",
|
|
158
|
-
"/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
|
|
159
157
|
"/api/tool-egress/route": "app/api/tool-egress/route.js",
|
|
160
|
-
"/api/tools/route": "app/api/tools/route.js",
|
|
158
|
+
"/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
|
|
161
159
|
"/api/tools/[name]/route": "app/api/tools/[name]/route.js",
|
|
160
|
+
"/api/share/[token]/route": "app/api/share/[token]/route.js",
|
|
162
161
|
"/api/transcripts/route": "app/api/transcripts/route.js",
|
|
163
162
|
"/api/voice/providers/route": "app/api/voice/providers/route.js",
|
|
164
|
-
"/api/
|
|
163
|
+
"/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
|
|
165
164
|
"/api/voice/realtime/context/route": "app/api/voice/realtime/context/route.js",
|
|
165
|
+
"/api/voice/realtime/tool-result/route": "app/api/voice/realtime/tool-result/route.js",
|
|
166
166
|
"/api/voice/realtime/tools/route": "app/api/voice/realtime/tools/route.js",
|
|
167
167
|
"/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
|
|
168
168
|
"/api/voice/tts/route": "app/api/voice/tts/route.js",
|
|
169
169
|
"/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
|
|
170
|
-
"/api/whatsapp/
|
|
170
|
+
"/api/whatsapp/allowlist/route": "app/api/whatsapp/allowlist/route.js",
|
|
171
171
|
"/api/whatsapp/qr/route": "app/api/whatsapp/qr/route.js",
|
|
172
172
|
"/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
|
|
173
|
-
"/api/whatsapp/
|
|
174
|
-
"/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
|
|
173
|
+
"/api/whatsapp/send/route": "app/api/whatsapp/send/route.js",
|
|
175
174
|
"/api/shared/spaces/[id]/acl/route": "app/api/shared/spaces/[id]/acl/route.js",
|
|
175
|
+
"/api/tools/route": "app/api/tools/route.js",
|
|
176
176
|
"/reports/[file]/route": "app/reports/[file]/route.js",
|
|
177
177
|
"/brand/page": "app/brand/page.js",
|
|
178
178
|
"/join/page": "app/join/page.js",
|
|
@@ -182,57 +182,57 @@
|
|
|
182
182
|
"/whatsapp/page": "app/whatsapp/page.js",
|
|
183
183
|
"/activity/page": "app/activity/page.js",
|
|
184
184
|
"/agents/page": "app/agents/page.js",
|
|
185
|
-
"/agents/[id]/page": "app/agents/[id]/page.js",
|
|
186
185
|
"/admin/page": "app/admin/page.js",
|
|
186
|
+
"/agents/[id]/page": "app/agents/[id]/page.js",
|
|
187
|
+
"/audit/page": "app/audit/page.js",
|
|
187
188
|
"/audit/live/page": "app/audit/live/page.js",
|
|
188
189
|
"/disk/page": "app/disk/page.js",
|
|
189
|
-
"/
|
|
190
|
+
"/approvals/page": "app/approvals/page.js",
|
|
190
191
|
"/hail/[id]/governance/page": "app/hail/[id]/governance/page.js",
|
|
191
192
|
"/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
|
|
192
|
-
"/approvals/page": "app/approvals/page.js",
|
|
193
193
|
"/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
|
|
194
194
|
"/hail/page": "app/hail/page.js",
|
|
195
|
-
"/federated-ai/page": "app/federated-ai/page.js",
|
|
196
195
|
"/help/[slug]/page": "app/help/[slug]/page.js",
|
|
196
|
+
"/hail/[id]/page": "app/hail/[id]/page.js",
|
|
197
197
|
"/login/page": "app/login/page.js",
|
|
198
198
|
"/marketplace/page": "app/marketplace/page.js",
|
|
199
|
-
"/hail/[id]/page": "app/hail/[id]/page.js",
|
|
200
199
|
"/help/page": "app/help/page.js",
|
|
200
|
+
"/federated-ai/page": "app/federated-ai/page.js",
|
|
201
201
|
"/mines/page": "app/mines/page.js",
|
|
202
202
|
"/missions/page": "app/missions/page.js",
|
|
203
|
-
"/
|
|
203
|
+
"/architecture/page": "app/architecture/page.js",
|
|
204
204
|
"/mines/[projectId]/page": "app/mines/[projectId]/page.js",
|
|
205
|
-
"/projects/[slug]/page": "app/projects/[slug]/page.js",
|
|
206
205
|
"/org/page": "app/org/page.js",
|
|
207
|
-
"/projects/page": "app/projects/page.js",
|
|
208
|
-
"/
|
|
206
|
+
"/projects/[slug]/page": "app/projects/[slug]/page.js",
|
|
207
|
+
"/onboarding/org/page": "app/onboarding/org/page.js",
|
|
209
208
|
"/reports/page": "app/reports/page.js",
|
|
209
|
+
"/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
|
|
210
210
|
"/schedules/page": "app/schedules/page.js",
|
|
211
|
+
"/projects/page": "app/projects/page.js",
|
|
212
|
+
"/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
|
|
213
|
+
"/share/space/[token]/page": "app/share/space/[token]/page.js",
|
|
211
214
|
"/runtime/page": "app/runtime/page.js",
|
|
212
|
-
"/architecture/page": "app/architecture/page.js",
|
|
213
|
-
"/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
|
|
214
|
-
"/share/[token]/page": "app/share/[token]/page.js",
|
|
215
215
|
"/tasks/page": "app/tasks/page.js",
|
|
216
|
-
"/share/space/[token]/page": "app/share/space/[token]/page.js",
|
|
217
216
|
"/team/[agentId]/page": "app/team/[agentId]/page.js",
|
|
218
|
-
"/team/page": "app/team/page.js",
|
|
219
|
-
"/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
|
|
220
|
-
"/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
|
|
221
|
-
"/workflows/new/definition/page": "app/workflows/new/definition/page.js",
|
|
222
217
|
"/tools/page": "app/tools/page.js",
|
|
218
|
+
"/team/page": "app/team/page.js",
|
|
219
|
+
"/workflows/new/page": "app/workflows/new/page.js",
|
|
223
220
|
"/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
|
|
221
|
+
"/share/[token]/page": "app/share/[token]/page.js",
|
|
224
222
|
"/tasks/[id]/page": "app/tasks/[id]/page.js",
|
|
225
223
|
"/workflows/page": "app/workflows/page.js",
|
|
226
|
-
"/workflows/new/page": "app/workflows/new/page.js",
|
|
227
|
-
"/
|
|
224
|
+
"/workflows/new/definition/page": "app/workflows/new/definition/page.js",
|
|
225
|
+
"/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
|
|
226
|
+
"/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
|
|
228
227
|
"/settings/brand/page": "app/settings/brand/page.js",
|
|
228
|
+
"/settings/onboarding/page": "app/settings/onboarding/page.js",
|
|
229
|
+
"/settings/advanced/page": "app/settings/advanced/page.js",
|
|
229
230
|
"/settings/appearance/page": "app/settings/appearance/page.js",
|
|
231
|
+
"/settings/connectors/page": "app/settings/connectors/page.js",
|
|
230
232
|
"/settings/organization/page": "app/settings/organization/page.js",
|
|
231
|
-
"/settings/account/page": "app/settings/account/page.js",
|
|
232
|
-
"/settings/engines/page": "app/settings/engines/page.js",
|
|
233
233
|
"/settings/page": "app/settings/page.js",
|
|
234
234
|
"/settings/runtime/page": "app/settings/runtime/page.js",
|
|
235
|
-
"/settings/
|
|
236
|
-
"/settings/
|
|
237
|
-
"/settings/
|
|
235
|
+
"/settings/engines/page": "app/settings/engines/page.js",
|
|
236
|
+
"/settings/account/page": "app/settings/account/page.js",
|
|
237
|
+
"/settings/tools/page": "app/settings/tools/page.js"
|
|
238
238
|
}
|
|
@@ -383,7 +383,7 @@ ${u}`,t=d?`<div class="doc-meta" style="margin-top:14px;font-size:13px;color:var
|
|
|
383
383
|
INSERT INTO process_stages
|
|
384
384
|
(id, definition_id, position, slug, name, kind, config_json, on_pass_stage_slug, on_fail_stage_slug, required)
|
|
385
385
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
386
|
-
`).run(`procstage:${a.slug}:${b.slug}`,h,d,b.slug,b.name,b.kind,JSON.stringify(b.config||{}),b.on_pass_stage_slug||null,b.on_fail_stage_slug||null,+(!1!==b.required))}),c.exec("COMMIT")}catch(a){try{c.exec("ROLLBACK")}catch{}throw a}return l(a.slug)}function t(a){if(!a)throw Error("archiveDefinition: slug required");let b=(0,e.getDb)(),c=b.prepare("SELECT * FROM process_definitions WHERE slug = ?").get(a);if(!c)return{ok:!1,error:"not_found"};let d=b.prepare("SELECT COUNT(*) AS n FROM process_cases WHERE definition_id = ? AND status NOT IN ('complete','cancelled','rejected','failed')").get(c.id).n;return d>0?{ok:!1,error:"in_flight_cases",in_flight_cases:d}:(b.prepare("UPDATE process_definitions SET status = 'archived', updated_at = ? WHERE id = ?").run((0,e.nowIso)(),c.id),{ok:!0,archived:!0,in_flight_cases:0})}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},9381:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>
|
|
386
|
+
`).run(`procstage:${a.slug}:${b.slug}`,h,d,b.slug,b.name,b.kind,JSON.stringify(b.config||{}),b.on_pass_stage_slug||null,b.on_fail_stage_slug||null,+(!1!==b.required))}),c.exec("COMMIT")}catch(a){try{c.exec("ROLLBACK")}catch{}throw a}return l(a.slug)}function t(a){if(!a)throw Error("archiveDefinition: slug required");let b=(0,e.getDb)(),c=b.prepare("SELECT * FROM process_definitions WHERE slug = ?").get(a);if(!c)return{ok:!1,error:"not_found"};let d=b.prepare("SELECT COUNT(*) AS n FROM process_cases WHERE definition_id = ? AND status NOT IN ('complete','cancelled','rejected','failed')").get(c.id).n;return d>0?{ok:!1,error:"in_flight_cases",in_flight_cases:d}:(b.prepare("UPDATE process_definitions SET status = 'archived', updated_at = ? WHERE id = ?").run((0,e.nowIso)(),c.id),{ok:!0,archived:!0,in_flight_cases:0})}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},9381:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>v,QG:()=>j,bo:()=>p,c_:()=>t,kM:()=>s,m4:()=>q,nJ:()=>n,un:()=>o,wn:()=>k,yQ:()=>r,z9:()=>w});var d=c(76760),e=c(73024),f=c(48161),g=c(73136);let h=d.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/paths.js")),i=d.resolve(h,".."),j=process.env.MADARX_PKG_ROOT?d.resolve(process.env.MADARX_PKG_ROOT):i;function k(...a){for(let b of a)try{if(b&&e.statSync(b).isDirectory())return b}catch{}return process.cwd()}let l=!1;function m(a,b,c){if(process.env[a])return d.resolve(process.env[a]);if(process.env[b]){let a=d.resolve(process.env[b]);return!function(a,b){if(l||b.startsWith(f.tmpdir()))return;l=!0;let c=a.replace("VILLA515_","MADARX_");console.warn(`[paths] ${a} is deprecated — rename it to ${c}. The old name still works for now but will be removed in a future release.`)}(b,a),a}let e=process.env.MADARX_HOME?d.resolve(process.env.MADARX_HOME):null;return e?d.join(e,c):d.join(i,c)}let n=m("MADARX_DATA_DIR","VILLA515_DATA_DIR","data"),o=m("MADARX_WORKSPACE","VILLA515_WORKSPACE","workspace"),p=d.join(o,"agents"),q=d.join(o,"reports"),r=d.join(o,"artifacts"),s=d.join(o,"brand"),t=d.join(n,"madarx.sqlite"),u=d.join(n,"whatsapp");function v(){for(let a of[n,o,p,q,r,s])e.mkdirSync(a,{recursive:!0})}function w(a){return d.relative(i,a)}d.join(u,"session"),d.join(i,"scripts","whatsapp-bridge")},13099:(a,b,c)=>{"use strict";c.d(b,{K:()=>l,r:()=>k});var d=c(31421),e=c(9381),f=c(26531);function g(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4);return!Number.isFinite(a)||a<=0?5e4:Math.min(5e4,Math.floor(a))}function h(a){return(0,f.nc)(String(a||"").slice(0,g()))}function i(a,b){let c=g();return a.length>=c?a:a+String(b).slice(0,c-a.length)}function j(a,b){try{if(a.pid&&"win32"!==process.platform)return void process.kill(-a.pid,b)}catch(a){if(a?.code!=="ESRCH")throw a;return}a.kill(b)}function k(a={}){let b=String(a.script||"").trim();if(!b)throw Error("script is required");if(b.length>2e4)throw Error(`script is too large: ${b.length} chars; max 20000`);let c=Math.max(1e3,Math.min(6e5,Number(a.timeout_ms||12e4)||12e4));return{command:String(process.env.MADARX_BROWSER_HARNESS_BIN||"browser-harness-hermes"),script:b,timeoutMs:c}}async function l(a={}){let{command:b,script:c,timeoutMs:f}=k(a),g=Date.now();return await new Promise(a=>{let k="",l="",m=!1,n=!1,o=null,p=(0,d.spawn)(b,[],{cwd:(0,e.wn)(e.QG,e.un),shell:!1,detached:"win32"!==process.platform,stdio:["pipe","pipe","pipe"],env:Object.fromEntries(["PATH","HOME","USER","LOGNAME","TMPDIR","LANG","LC_ALL","BU_CDP_URL","BU_CDP_PORT","BU_CHROME_PROFILE"].filter(a=>process.env[a]).map(a=>[a,process.env[a]]))}),q=setTimeout(()=>{m=!0,j(p,"SIGTERM"),o=setTimeout(()=>{n||j(p,"SIGKILL")},2e3)},f);p.stdout.on("data",a=>{k=i(k,a)}),p.stderr.on("data",a=>{l=i(l,a)}),p.on("error",c=>{n||(n=!0,clearTimeout(q),o&&clearTimeout(o),a({ok:!1,tool:"browser_harness_run",status:"failed",command:b,error:c.message,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g}))}),p.on("close",(c,d)=>{if(n)return;n=!0,clearTimeout(q),o&&clearTimeout(o);let e=m?"timeout":d?"failed":0===c?"complete":"failed";a({ok:0===c&&!d&&!m,tool:"browser_harness_run",status:e,command:b,exit_code:c,signal:d,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g})}),p.stdin.end(`${c}
|
|
387
387
|
`)})}},13331:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Q:()=>t});var e=c(34255),f=c(60105),g=c(32688),h=c(58708),i=c(4160),j=c(16838),k=c(81833),l=a([e,f,g,h,i,k]);[e,f,g,h,i,k]=l.then?(await l)():l;let u=new Set(["data_quality_report","interpretation_memo","due_diligence_memo","investor_presentation","project_package","pfs_readiness_report"]),v=process.env.MADARX_APP_ORIGIN||"http://127.0.0.1:8787";function m(a,b=3){if(null==a||Number.isNaN(Number(a)))return null;let c=10**b;return Math.round(Number(a)*c)/c}function n(a){if(null==a||!Number.isFinite(Number(a)))return"n/a";let b=Number(a);return Math.abs(b)>=1e9?`$${(b/1e9).toFixed(2)}B`:Math.abs(b)>=1e6?`$${(b/1e6).toFixed(1)}M`:Math.abs(b)>=1e3?`$${(b/1e3).toFixed(0)}k`:`$${b.toFixed(0)}`}function o(a,b=0){return null!=a&&Number.isFinite(Number(a))?new Intl.NumberFormat("en-US",{maximumFractionDigits:b}).format(Number(a)):"n/a"}let w=RegExp("\\$\\s?\\d[\\d,]*(?:\\.\\d+)?(?:\\s?(?:B|M|bn|k))?|\\d[\\d,]*(?:\\.\\d+)?\\s?(?:%|‰)|\\b\\d[\\d,]*(?:\\.\\d+)?\\s?(?:ppm|ppb|g\\/t|gpt|oz|lbs?|kg|kt|mt|moz|mlb|tonnes?|tons?|km|cm|mm|m|ha|usd|t)(?![a-z])|\\b\\d{1,3}(?:,\\d{3})+\\b|\\b\\d+\\.\\d+\\b","gi");function p(a){return null==a?"":String(a).replace(w,"[see figures]")}function q(a,b){let c=a&&"object"==typeof a?a[b]:null;return Array.isArray(c)?c.map(a=>p(a).trim()).filter(Boolean).join("\n\n"):c?p(c).trim():""}async function r(a,b,c={}){let d=b.id,e=a.prepare(`
|
|
388
388
|
SELECT COUNT(*) AS n,
|
|
389
389
|
AVG(au_ppm) AS avg_au, MAX(au_ppm) AS max_au,
|
|
@@ -2947,11 +2947,11 @@ Next action: choose a specialized agent, create a local run folder, keep human-i
|
|
|
2947
2947
|
SELECT COUNT(*) AS n,
|
|
2948
2948
|
SUM(CASE WHEN au_ppm IS NOT NULL OR ag_ppm IS NOT NULL OR cu_pct IS NOT NULL THEN 1 ELSE 0 END) AS grade_n
|
|
2949
2949
|
FROM mines_assay_samples WHERE project_id = ?
|
|
2950
|
-
`).get(a)||{n:0,grade_n:0}).grade_n||0)>0,i=d.has("resource_estimate");d.has("reserve_estimate"),d.has("opex"),d.has("production_schedule");let j=h.filter(a=>!d.has(a)),k=0===j.length,l=i||f,m=String(c.asset_stage||"").toLowerCase(),n=m.includes("exploration")||m.includes("prospect")||m.includes("early");if("t1_in_situ"===b.force_tier)return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:k,t2_blocked:!0,blocking_inputs_missing:j,t2_blocking_reason:j.length?`T2 DCF blocked: missing ${j.join(", ")}.`:"T1 was explicitly requested.",confidence:i?"moderate":"indicative",reason:"T1 in-situ valuation explicitly requested."};if(k&&!n)return{status:"ok",project_id:a,tier:"t2_dcf",t1_ready:l,t2_ready:!0,t2_blocked:!1,blocking_inputs_missing:[],t2_blocking_reason:null,confidence:"modelled",reason:"Reserve estimate, production schedule, and operating-cost facts are present; DCF is allowed."};let o="t2_dcf"===b.force_tier,p=[...new Set([...j,...k&&n?["asset_stage_not_dcf_ready"]:[]])];return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:!1,t2_blocked:!0,blocking_inputs_missing:p,t2_blocking_reason:p.length?`T2 DCF blocked: missing or unsuitable inputs (${p.join(", ")}).`:"T2 DCF blocked by exploration-stage policy.",confidence:i?"moderate":"indicative",reason:o?"Forced T2 request was rejected because DCF prerequisites are incomplete or the asset stage is not DCF-ready; using T1 in-situ instead.":"Exploration/resource-stage projects use T1 in-situ until reserve, production schedule, and cost inputs are present."}}d()}catch(a){d(a)}})},72189:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(60105),h=c(8437),i=c(26531),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},72326:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>k,GK:()=>m,Iu:()=>t,M2:()=>s,No:()=>p,Qp:()=>l,bD:()=>r,d:()=>v});var e=c(76760),f=c(31421),g=c(73136),h=c(19151),i=c(9001),j=a([h,i]);[h,i]=j.then?(await j)():j;let w=e.resolve(e.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),".."),x=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",y=[{id:"anthropic",label:"Anthropic API",description:"Server-native Claude Messages API brain with madarX governed tool_use.",default_model:"claude-sonnet-4-6",mode:"api"},{id:"claude-code",label:"Claude Code CLI",description:"Local Claude Code runner for developer/repo agents using the authenticated CLI.",default_model:"sonnet",mode:"local-cli"},{id:"ollama",label:"Ollama Local LLM",description:"Local or Ollama-hosted models through the Ollama chat API.",default_model:process.env.OLLAMA_MODEL||"",mode:"local-llm"},{id:"hermes",label:"Hermes",description:"Hermes as a meta-agent/router. Available through governed Hermes job tools.",default_model:"",mode:"orchestrator"},{id:"codex",label:"Codex CLI",description:"Local Codex CLI coding runner. Available through approval-gated terminal/tool workflows.",default_model:"",mode:"local-cli"}];function k(a){let b=String(a||"").trim().toLowerCase();return b?["anthropic","anthropic-api","claude-api","api"].includes(b)?"anthropic":["claude-code","claude code","claude_cli","claude-cli"].includes(b)?"claude-code":b.includes("hermes")&&b.includes("claude code")?"anthropic":["ollama","local","local-llm","local llm"].includes(b)?"ollama":["hermes","hermes-agent"].includes(b)?"hermes":["codex","codex-cli","openai-codex"].includes(b)?"codex":b:"claude-code"}function l(a){let b=k(a);return y.find(a=>a.id===b)?.default_model||""}async function m(a){let b=k(a);if("anthropic"===b){let{resolveAnthropicApiKey:a}=await Promise.resolve().then(c.bind(c,65451));if(!a()){let a=Error("The Anthropic API engine is selected but no API key is configured. Add ANTHROPIC_API_KEY to the secrets vault or .env.local, or switch to the Claude Code CLI engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("claude-code"===b){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return!0;if(!await n("claude")){let a=Error("The Claude Code CLI engine is selected but the `claude` binary is not installed or not on PATH. Install Claude Code and sign in, or switch to the Anthropic API engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("codex"===b){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return!0;if(!await n("codex")){let a=Error("The Codex CLI engine is selected but the `codex` binary is not installed or not on PATH.");throw a.code="engine_unavailable",a.engine=b,a}}return!0}async function n(a){return new Promise(b=>{let c=(0,f.spawn)("sh",["-lc",`command -v ${a}`],{shell:!1});c.on("error",()=>b(!1)),c.on("close",a=>b(0===a))})}async function o(){try{let a=await fetch(`${x}/api/tags`,{signal:AbortSignal.timeout(1500)});if(!a.ok)return[];return((await a.json()).models||[]).map(a=>({name:a.name||a.model,model:a.model||a.name,size:a.size||0,details:a.details||{},local:!a.remote_host,remote_host:a.remote_host||null})).filter(a=>a.name)}catch{return[]}}async function p(){let[a,b,c]=await Promise.all([o(),n("claude"),n("codex")]),d=process.env.OLLAMA_MODEL||(process.env.MADARX_MOCK_OLLAMA_RESPONSE?"qwen3.5:latest":""),e=a[0]?.name||d;return y.map(f=>({...f,default_model:"ollama"===f.id?e:f.default_model,available:"claude-code"===f.id?b:"codex"===f.id?c:"ollama"!==f.id||!!(a.length||process.env.MADARX_MOCK_OLLAMA_RESPONSE),models:"ollama"===f.id?a.length?a:d?[{name:d,model:d,local:!0,fallback:!0}]:[]:f.default_model?[{name:f.default_model,model:f.default_model}]:[]}))}function q(a,b,{cwd:c=process.cwd(),timeoutMs:d=12e4,closeStdin:e=!1,onChunk:g,env:h}={}){return new Promise((i,j)=>{let k=(0,f.spawn)(a,b,{shell:!1,cwd:c,env:h??{...process.env}});e&&k.stdin.end();let l="",m="",n=setTimeout(()=>{k.kill("SIGTERM"),j(Error(`${a} timed out after ${d}ms`))},d);k.stdout.on("data",a=>{let b=a.toString();l+=b,g?.(b)}),k.stderr.on("data",a=>{m+=a.toString()}),k.on("error",a=>{clearTimeout(n),j(a)}),k.on("close",b=>{if(clearTimeout(n),0===b||1===b&&l.trim())return void i(l.trim());j(Error(`${a} exited ${b}: ${m.trim()||l.trim()}`))})})}async function r({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let e=await fetch(`${x}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a||process.env.OLLAMA_MODEL,stream:!1,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]})});if(!e.ok)throw Error(`Ollama chat failed: HTTP ${e.status}`);let f=await e.json(),g=f.message?.content||f.response||"";if(!g.trim())throw Error("Ollama returned no text");return g.trim()}async function s({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onToolStart:j,onToolResult:k,cwd:l,addDirs:m=[],agentId:n,agentName:o}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let p=`${b}
|
|
2950
|
+
`).get(a)||{n:0,grade_n:0}).grade_n||0)>0,i=d.has("resource_estimate");d.has("reserve_estimate"),d.has("opex"),d.has("production_schedule");let j=h.filter(a=>!d.has(a)),k=0===j.length,l=i||f,m=String(c.asset_stage||"").toLowerCase(),n=m.includes("exploration")||m.includes("prospect")||m.includes("early");if("t1_in_situ"===b.force_tier)return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:k,t2_blocked:!0,blocking_inputs_missing:j,t2_blocking_reason:j.length?`T2 DCF blocked: missing ${j.join(", ")}.`:"T1 was explicitly requested.",confidence:i?"moderate":"indicative",reason:"T1 in-situ valuation explicitly requested."};if(k&&!n)return{status:"ok",project_id:a,tier:"t2_dcf",t1_ready:l,t2_ready:!0,t2_blocked:!1,blocking_inputs_missing:[],t2_blocking_reason:null,confidence:"modelled",reason:"Reserve estimate, production schedule, and operating-cost facts are present; DCF is allowed."};let o="t2_dcf"===b.force_tier,p=[...new Set([...j,...k&&n?["asset_stage_not_dcf_ready"]:[]])];return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:!1,t2_blocked:!0,blocking_inputs_missing:p,t2_blocking_reason:p.length?`T2 DCF blocked: missing or unsuitable inputs (${p.join(", ")}).`:"T2 DCF blocked by exploration-stage policy.",confidence:i?"moderate":"indicative",reason:o?"Forced T2 request was rejected because DCF prerequisites are incomplete or the asset stage is not DCF-ready; using T1 in-situ instead.":"Exploration/resource-stage projects use T1 in-situ until reserve, production schedule, and cost inputs are present."}}d()}catch(a){d(a)}})},72189:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(60105),h=c(8437),i=c(26531),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},72326:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>n,GK:()=>p,Iu:()=>y,M2:()=>x,No:()=>u,Qp:()=>o,bD:()=>w,d:()=>B});var e=c(76760),f=c(73024),g=c(48161),h=c(31421),i=c(73136),j=c(19151),k=c(9001),l=c(9381),m=a([j,k]);[j,k]=m.then?(await m)():m;let C=e.resolve(e.dirname((0,i.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),".."),D=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",E=[{id:"anthropic",label:"Anthropic API",description:"Server-native Claude Messages API brain with madarX governed tool_use.",default_model:"claude-sonnet-4-6",mode:"api"},{id:"claude-code",label:"Claude Code CLI",description:"Local Claude Code runner for developer/repo agents using the authenticated CLI.",default_model:"sonnet",mode:"local-cli"},{id:"ollama",label:"Ollama Local LLM",description:"Local or Ollama-hosted models through the Ollama chat API.",default_model:process.env.OLLAMA_MODEL||"",mode:"local-llm"},{id:"hermes",label:"Hermes",description:"Hermes as a meta-agent/router. Available through governed Hermes job tools.",default_model:"",mode:"orchestrator"},{id:"codex",label:"Codex CLI",description:"Local Codex CLI coding runner. Available through approval-gated terminal/tool workflows.",default_model:"",mode:"local-cli"}];function n(a){let b=String(a||"").trim().toLowerCase();return b?["anthropic","anthropic-api","claude-api","api"].includes(b)?"anthropic":["claude-code","claude code","claude_cli","claude-cli"].includes(b)?"claude-code":b.includes("hermes")&&b.includes("claude code")?"anthropic":["ollama","local","local-llm","local llm"].includes(b)?"ollama":["hermes","hermes-agent"].includes(b)?"hermes":["codex","codex-cli","openai-codex"].includes(b)?"codex":b:"claude-code"}function o(a){let b=n(a);return E.find(a=>a.id===b)?.default_model||""}async function p(a){let b=n(a);if("anthropic"===b){let{resolveAnthropicApiKey:a}=await Promise.resolve().then(c.bind(c,65451));if(!a()){let a=Error("The Anthropic API engine is selected but no API key is configured. Add ANTHROPIC_API_KEY to the secrets vault or .env.local, or switch to the Claude Code CLI engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("claude-code"===b){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return!0;if(!await s("claude")){let a=Error("The Claude Code CLI engine is selected but the `claude` binary is not installed or not on PATH. Install Claude Code and sign in, or switch to the Anthropic API engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("codex"===b){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return!0;if(!await s("codex")){let a=Error("The Codex CLI engine is selected but the `codex` binary is not installed or not on PATH.");throw a.code="engine_unavailable",a.engine=b,a}}return!0}let F=new Map;function q(a){if(F.has(a))return F.get(a);for(let b of[process.env[`MADARX_${a.toUpperCase()}_BIN`],e.join(g.homedir(),".local","bin",a),`/opt/homebrew/bin/${a}`,`/usr/local/bin/${a}`,e.join(g.homedir(),".npm-global","bin",a)].filter(Boolean))try{return f.accessSync(b,f.constants.X_OK),F.set(a,b),b}catch{}return null}function r(a){return F.get(a)||q(a)||a}async function s(a){return!!q(a)||new Promise(b=>{let c=(0,h.spawn)("sh",["-lc",`command -v ${a}`],{shell:!1}),d="";c.stdout.on("data",a=>{d+=a.toString()}),c.on("error",()=>b(!1)),c.on("close",c=>{let f=0===c?d.trim().split("\n").pop()?.trim():"";f&&e.isAbsolute(f)&&F.set(a,f),b(0===c)})})}async function t(){try{let a=await fetch(`${D}/api/tags`,{signal:AbortSignal.timeout(1500)});if(!a.ok)return[];return((await a.json()).models||[]).map(a=>({name:a.name||a.model,model:a.model||a.name,size:a.size||0,details:a.details||{},local:!a.remote_host,remote_host:a.remote_host||null})).filter(a=>a.name)}catch{return[]}}async function u(){let[a,b,c]=await Promise.all([t(),s("claude"),s("codex")]),d=process.env.OLLAMA_MODEL||(process.env.MADARX_MOCK_OLLAMA_RESPONSE?"qwen3.5:latest":""),e=a[0]?.name||d;return E.map(f=>({...f,default_model:"ollama"===f.id?e:f.default_model,available:"claude-code"===f.id?b:"codex"===f.id?c:"ollama"!==f.id||!!(a.length||process.env.MADARX_MOCK_OLLAMA_RESPONSE),models:"ollama"===f.id?a.length?a:d?[{name:d,model:d,local:!0,fallback:!0}]:[]:f.default_model?[{name:f.default_model,model:f.default_model}]:[]}))}function v(a,b,{cwd:c=process.cwd(),timeoutMs:d=12e4,closeStdin:e=!1,onChunk:f,env:g}={}){return new Promise((i,j)=>{let k=(0,h.spawn)(a,b,{shell:!1,cwd:c,env:g??{...process.env}});e&&k.stdin.end();let l="",m="",n=setTimeout(()=>{k.kill("SIGTERM"),j(Error(`${a} timed out after ${d}ms`))},d);k.stdout.on("data",a=>{let b=a.toString();l+=b,f?.(b)}),k.stderr.on("data",a=>{m+=a.toString()}),k.on("error",a=>{clearTimeout(n),j(a)}),k.on("close",b=>{if(clearTimeout(n),0===b||1===b&&l.trim())return void i(l.trim());j(Error(`${a} exited ${b}: ${m.trim()||l.trim()}`))})})}async function w({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let e=await fetch(`${D}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a||process.env.OLLAMA_MODEL,stream:!1,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]})});if(!e.ok)throw Error(`Ollama chat failed: HTTP ${e.status}`);let f=await e.json(),g=f.message?.content||f.response||"";if(!g.trim())throw Error("Ollama returned no text");return g.trim()}async function x({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onToolStart:i,onToolResult:j,cwd:l,addDirs:m=[],agentId:n,agentName:o}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let p=`${b}
|
|
2951
2951
|
|
|
2952
|
-
${c}`,
|
|
2952
|
+
${c}`,q=Number(d||process.env.CLAUDE_CODE_MAX_TURNS||30),s=["-p",p,"--max-turns",String(q),"--output-format","stream-json","--verbose","--permission-mode","bypassPermissions","--setting-sources","project,local,user"];for(let a of m)a&&s.push("--add-dir",a);e.length&&s.push("--allowedTools",e.join(",")),a&&"claude-code"!==a&&s.splice(2,0,"--model",a);let t=[],u=[],w="",y="",z=function({agentId:a,agentName:b,onText:c,onToolStart:d,onToolResult:e,onResult:f}){let g="",h=new Map;return function(i){let j;for(g+=i;(j=g.indexOf("\n"))>=0;){let i,l=g.slice(0,j).trim();if(g=g.slice(j+1),!l||"{"!==l[0])continue;try{i=JSON.parse(l)}catch{continue}if(!i||"object"!=typeof i)continue;if("result"===i.type){"string"==typeof i.result&&i.result.trim()&&f?.(i.result.trim());continue}let m=i.message?.content;if(Array.isArray(m)){if("assistant"===i.type){let e=m.some(a=>a?.type==="tool_use"),f=m.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");for(let g of(f&&c?.(f,{isFinal:!e}),m))g?.type==="tool_use"&&(g.id&&h.set(g.id,g.name||"tool"),d?.({id:g.id,name:g.name||"tool",input:g.input}),a&&(0,k.AC)({type:"agent_tool_start",agent_id:a,agent_name:b||a,tool:g.name||"tool",input_summary:function(a,b){if(!b||"object"!=typeof b)return"";if("Bash"===a)return String(b.command||"").slice(0,120);if("WebSearch"===a)return String(b.query||"").slice(0,120);if("WebFetch"===a)return String(b.url||"").slice(0,120);if("Read"===a||"Glob"===a||"Grep"===a||"LS"===a)return String(b.file_path||b.pattern||b.path||"").slice(0,120);if("Write"===a||"Edit"===a||"MultiEdit"===a)return String(b.file_path||"").slice(0,120);if("TodoWrite"===a)return Array.isArray(b.todos)?`${b.todos.length} todos`:"";try{return JSON.stringify(b).slice(0,120)}catch{return""}}(g.name,g.input)}))}else if("user"===i.type){for(let c of m)if(c?.type==="tool_result"){let d=h.get(c.tool_use_id)||"tool";e?.({tool_use_id:c.tool_use_id,name:d,isError:!!c.is_error}),a&&(0,k.AC)({type:"agent_tool_result",agent_id:a,agent_name:b||a,tool:d,status:c.is_error?"error":"done",isError:!!c.is_error}),h.delete(c.tool_use_id)}}}}}}({agentId:n,agentName:o,onText:(a,b={})=>{t.push(a),b.isFinal?u.push(a):w=a,h?.(t.join("").trim())},onResult:a=>{y=a},onToolStart:i,onToolResult:j});await v(r("claude"),s,{cwd:l,timeoutMs:f??Number(process.env.CLAUDE_CODE_TICK_TIMEOUT_MS||6e5),closeStdin:!0,env:function(){let a={...process.env};return"1"===process.env.MADARX_CLI_USE_API_KEY||(delete a.ANTHROPIC_API_KEY,delete a.ANTHROPIC_AUTH_TOKEN),a}(),onChunk:a=>{z(a),g?.(a)}});let A=u.join("").trim()||w.trim()||t.join("").trim()||y.trim();if(!A)throw Error("Claude Code returned no assistant text");return A}async function y({systemPrompt:a,userMessage:b,onChunk:c}){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return process.env.MADARX_MOCK_CODEX_RESPONSE;let d=a?`${a}
|
|
2953
2953
|
|
|
2954
|
-
${b}`:b;return
|
|
2954
|
+
${b}`:b;return v(r("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_TIMEOUT_MS||18e4),closeStdin:!0,onChunk:c})}async function z({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){var e;let f=(e=await (0,j.bd)([{role:"user",content:c}],b,[],{max_tokens:d,model:a}),(e?.content||[]).filter(a=>a?.type==="text"||"string"==typeof a?.text).map(a=>a.text||"").join("\n").trim());if(!f)throw Error("Anthropic returned no text");return f}function A(a){try{return!!a&&f.statSync(a).isDirectory()}catch{return!1}}async function B({agent:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){let e=n(a.engine),f=a.model||o(e);if("ollama"===e)return w({model:f,systemPrompt:b,userMessage:c,maxTokens:d});if("claude-code"===e){try{(0,l.Jh)()}catch{}let d=[l.un,l.nJ].filter(A);return x({model:f,systemPrompt:b,userMessage:c,cwd:function(){for(let a of[l.un,l.nJ,C,process.cwd()])if(A(a))return a;return process.cwd()}(),addDirs:d,agentId:a.id,agentName:a.name})}if("anthropic"===e)return z({model:f,systemPrompt:b,userMessage:c,maxTokens:d});if("codex"===e)return y({systemPrompt:b,userMessage:c});if("hermes"===e)throw Error("Hermes engine is registered but scheduled autonomous ticks are not enabled yet; use its governed tool runner from the console.");throw Error(`Unknown agent engine: ${a.engine}`)}d()}catch(a){d(a)}})},73066:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Kg:()=>k,kA:()=>l,v2:()=>j});var e=c(73024),f=c(76760),g=c(9381),h=c(61423),i=a([h]);h=(i.then?(await i)():i)[0];let m="artifacts";function j(a){var b;let c=null;return(c=a&&"object"==typeof a?a:(0,h.U1)(a||h.Sk)||null)?f.join((b=c,b?.folder_path?b.folder_path:b?.slug?(0,h.ct)(b.slug):(0,h.ct)(h.Sk)),m):f.join((0,h.ct)(h.Sk),m)}function k(a){let b=j(a);return e.mkdirSync(b,{recursive:!0}),b}function l(a){if(!a)return!1;let b=f.resolve(a);return[f.resolve(g.yQ),...function(){try{return(0,h.hF)({status:"all"}).map(a=>f.resolve(j(a)))}catch{return[]}}()].some(a=>b===a||b.startsWith(`${a}${f.sep}`))}d()}catch(a){d(a)}})},73899:(a,b,c)=>{"use strict";function d(a,b=null){if(!a)return b;try{return JSON.parse(a)}catch{return b}}c.d(b,{lp:()=>g,oi:()=>d,qY:()=>h});let e=/mars|accent|primary|brand|red|orange|coral/i,f=/^#?(ffffff|000000|fff|0f0f11|111318|1a1817|f7f4ee|e8e8e5|dcdcd8)$/i;function g(a){let b=Array.isArray(a?.colors)?a.colors:[];if(0===b.length)return"#c2452a";let c=b.find(a=>e.test(a?.name||""));if(c?.value)return c.value;let d=b.find(a=>a?.value&&!f.test(a.value));return d?.value||b[0].value||"#c2452a"}function h(a){try{let b=a.prepare("SELECT slug FROM marketplace_items WHERE kind = 'agent'").all();return new Set(b.map(a=>a.slug))}catch{return new Set}}},73912:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AB:()=>y,CS:()=>s,Io:()=>w,QM:()=>v,R1:()=>z,Ww:()=>x,dh:()=>q,mM:()=>u,uT:()=>p,vV:()=>r,xP:()=>t});var e=c(73024),f=c(76760),g=c(77598),h=c(34255),i=c(9381),j=c(61423),k=c(9001),l=a([h,j,k]);[h,j,k]=l.then?(await l)():l;let A=f.join(i.nJ,"disk");function m(a){return a?{...a}:null}function n(a){return a?{...a,local_only:1===a.local_only}:null}function o(a={}){try{(0,k.jO)("disk",a)}catch{}}function p(a){let b=(0,h.getDb)();return a?b.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a).map(m):b.prepare("SELECT * FROM disk_folders ORDER BY path ASC").all().map(m)}function q(a){let b=(0,j.U1)(a);if(!b)throw Error("project not found");return(0,j.yK)(b.id,b.slug),m((0,h.getDb)().prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id IS NULL LIMIT 1").get(b.id))}function r(a,b,c){if("object"==typeof a&&a){let d=a;a=d.project_id||d.projectId,b=d.parent_id||d.parentId||null,c=d.name}let d=(0,j.U1)(a);if(!d)throw Error("project not found");let g=String(c||"").trim();if(!g)throw Error("name is required");let i=(0,h.getDb)(),k=b?i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(b):q(d.id);if(!k)throw Error("parent folder not found");if(i.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(d.id,k.id,g)){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}let l=`${k.path.replace(/\/$/,"")}/${g}/`,n=(0,h.nowIso)(),p=(0,h.newId)("df");try{i.prepare("INSERT INTO disk_folders (id, project_id, parent_id, name, path, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(p,d.id,k.id,g,l,n,n)}catch(a){if(String(a?.message||"").includes("UNIQUE constraint failed")){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}throw a}let r=f.join(A,l.replace(/^\/+|\/+$/g,""));e.mkdirSync(r,{recursive:!0});let s=m(i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(p));return o({project_id:d.id,folder_id:s?.id||p,action:"folder.create"}),s}function s(a={}){let b=(0,h.getDb)(),c=[],d=[];a.project_id&&(c.push("project_id = ?"),d.push(a.project_id)),a.folder_id&&(c.push("folder_id = ?"),d.push(a.folder_id));let e=`SELECT * FROM disk_files ${c.length?"WHERE "+c.join(" AND "):""} ORDER BY updated_at DESC`;return b.prepare(e).all(...d).map(n)}function t(){let a=(0,h.getDb)().prepare(`SELECT project_id, COUNT(*) AS count
|
|
2955
2955
|
FROM disk_files
|
|
2956
2956
|
WHERE project_id IS NOT NULL
|
|
2957
2957
|
GROUP BY project_id`).all(),b=Object.create(null);for(let c of a)b[c.project_id]=c.count;return b}function u(a){return n((0,h.getDb)().prepare("SELECT * FROM disk_files WHERE id = ?").get(a))}function v(a,b,c,d={}){if("object"==typeof a&&a){let e=a;a=e.project_id||e.projectId,b=e.folder_id||e.folderId||null,c={name:e.name,content:e.content||e.buffer||"",type:e.mime_type||e.type||""},d={...e,local_only:e.local_only}}let i=(0,j.U1)(a);if(!i)throw Error("project not found");let k=b?(0,h.getDb)().prepare("SELECT * FROM disk_folders WHERE id = ?").get(b):q(i.id);if(!k)throw Error("folder not found");let l=Buffer.isBuffer(c?.buffer)?c.buffer:Buffer.from(c?.content||""),m=String(c?.name||d.name||"upload.bin").replace(/[\\/]+/g,"-"),n=g.createHash("sha256").update(l).digest("hex"),p=f.join(A,k.path.replace(/^\/+|\/+$/g,""));e.mkdirSync(p,{recursive:!0});let r=f.join(p,`${n.slice(0,12)}-${m}`);e.existsSync(r)||e.writeFileSync(r,l);let s=(0,h.nowIso)(),t=(0,h.newId)("file");(0,h.getDb)().prepare("INSERT INTO disk_files (id, project_id, folder_id, name, kind, mime_type, size_bytes, sha256, storage_path, local_only, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(t,i.id,k.id,m,function(a,b=""){let c=f.extname(a||"").toLowerCase();return[".md",".markdown"].includes(c)?"md":".pdf"===c?"pdf":[".mp3",".wav",".m4a",".ogg",".webm"].includes(c)||b.startsWith("audio/")?"audio":[".png",".jpg",".jpeg",".webp",".gif"].includes(c)||b.startsWith("image/")?"image":[".txt",".csv",".json",".yaml",".yml"].includes(c)||b.startsWith("text/")?"text":"other"}(m,c?.type||d.mime_type||""),c?.type||d.mime_type||null,l.length,n,r,+!!d.local_only,s,s);let w=u(t);try{(0,j.Ip)(i.id,{action:"project.file.uploaded",title:`Uploaded ${m}`,summary:`Attached ${m} to the project folder`,status:"complete",source:"disk",details:{file_id:t,folder_id:k.id,kind:w.kind,size_bytes:w.size_bytes,local_only:w.local_only}})}catch{}return o({project_id:i.id,folder_id:k.id,file_id:t,action:"file.upload"}),w}function w(a,b={}){let c=["name","folder_id","local_only"],d=Object.entries(b).filter(([a,b])=>c.includes(a)&&void 0!==b);if(!d.length)return u(a);let e=d.map(([a])=>`${a} = ?`).concat("updated_at = ?").join(", "),f=d.map(([a,b])=>"local_only"===a?+!!b:b).concat((0,h.nowIso)(),a);(0,h.getDb)().prepare(`UPDATE disk_files SET ${e} WHERE id = ?`).run(...f);let g=u(a);return o({project_id:g?.project_id||null,folder_id:g?.folder_id||null,file_id:a,action:"file.update"}),g}function x(a){let b=u(a);if(!b)return!1;(0,h.getDb)().prepare("DELETE FROM disk_files WHERE id = ?").run(a);try{e.unlinkSync(b.storage_path)}catch{}return o({project_id:b.project_id,folder_id:b.folder_id||null,file_id:a,action:"file.delete"}),!0}function y(a,b){if(!b)throw Error("engine parameter required");let c=u(a);if(!c)throw Error("file not found");return c.local_only&&!["ollama","local_whisper"].includes(String(b))?{...c,content:"<redacted: local_only>",redacted:!0}:{...c,content:e.readFileSync(c.storage_path,"utf8"),redacted:!1}}function z(a,b){let c=y(a,b);if(c.redacted){let a=Error("local_only: engine not permitted");throw a.code="LOCAL_ONLY_DENIED",a}return c.storage_path}d()}catch(a){d(a)}})},78335:()=>{},78708:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$A:()=>n,Ac:()=>j,FT:()=>k,N3:()=>q,Us:()=>m,f3:()=>o,uS:()=>p});var e=c(76760),f=c(73024),g=c(34255),h=c(9381),i=a([g]);g=(i.then?(await i)():i)[0];let p=e.join(h.un,"generated-clis"),q=e.join(h.un,"skills","printing-press");e.join(h.nJ,"printing-press-clis.json");let r=/^[a-z0-9][a-z0-9-]{0,63}$/;function j(a){return"string"==typeof a&&r.test(a)}function k(a){let b=e.resolve(a),c=e.resolve(p);if(!b.startsWith(c+e.sep)&&b!==c)throw Error(`Path is not under workspace/generated-clis/: ${a}`);return b}function l(a){if(!a)return null;let b=null,c=[],d=[];try{b=a.manifest_json?JSON.parse(a.manifest_json):null}catch{b=null}try{c=a.declared_scopes?JSON.parse(a.declared_scopes):[]}catch{c=[]}try{d=a.required_secrets?JSON.parse(a.required_secrets):[]}catch{d=[]}return{slug:a.slug,source_kind:a.source_kind,source_url:a.source_url||null,installed_at:a.installed_at,updated_at:a.updated_at,path:a.path,declared_scopes:c,required_secrets:d,quota_bytes:a.quota_bytes||0x6400000,manifest:b,status:a.status}}function m({includeRemoved:a=!1}={}){let b=(0,g.getDb)();return(a?b.prepare("SELECT * FROM printing_press_clis ORDER BY installed_at DESC").all():b.prepare("SELECT * FROM printing_press_clis WHERE status != 'removed' ORDER BY installed_at DESC").all()).map(l)}function n(a){if(!j(a))return null;let b=(0,g.getDb)().prepare("SELECT * FROM printing_press_clis WHERE slug = ?").get(a);return l(b)}function o(a){let b=n(a);if(!b)return null;try{return{slug:a,bytes:function a(b){if(!f.existsSync(b))return 0;let c=0;for(let d of f.readdirSync(b,{withFileTypes:!0})){let g=e.join(b,d.name);if(d.isDirectory())c+=a(g);else if(d.isFile())try{c+=f.statSync(g).size}catch{}}return c}(b.path),quota_bytes:b.quota_bytes}}catch{return{slug:a,bytes:0,quota_bytes:b.quota_bytes,error:"measure_failed"}}}d()}catch(a){d(a)}})},79133:(a,b,c)=>{"use strict";c.d(b,{A5:()=>j,Pf:()=>h,decryptFromDiskBuffer:()=>k});var d=c(77598),e=c(87181);let f=Buffer.from("madarx-artifact-dek-v1"),g="1"===process.env.MADARX_ARTIFACT_ENCRYPTION;function h(){return g}function i(a){if(!a)throw Error("deriveOrgDek requires orgId");let b=(0,d.createHash)("sha256").update(a).digest(),c=(0,e.K2)({allowGenerate:!0});return Buffer.from((0,d.hkdfSync)("sha256",c,b,f,32))}function j(a,b){let{ciphertext:c,iv:e,authTag:f}=function(a,b){let c=i(a),e=(0,d.randomBytes)(12),f=(0,d.createCipheriv)("aes-256-gcm",c,e),g=Buffer.isBuffer(b)?b:Buffer.from(b,"utf8");return{ciphertext:Buffer.concat([f.update(g),f.final()]),iv:e,authTag:f.getAuthTag()}}(a,b);return Buffer.concat([e,f,c])}function k(a,b){if(!Buffer.isBuffer(b)||b.length<28)throw Error("Invalid encrypted artifact: too short");let c=b.subarray(0,12),e=b.subarray(12,28),f=b.subarray(28),g=i(a),h=(0,d.createDecipheriv)("aes-256-gcm",g,c);return h.setAuthTag(e),Buffer.concat([h.update(f),h.final()])}},80987:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Cw:()=>s,ID:()=>r,VC:()=>t,gE:()=>q});var e=c(31421),f=c(76760),g=c(73024),h=c(80099),i=c(9381),j=c(78708),k=c(41249),l=c(24516),m=a([j,l]);[j,l]=m.then?(await m)():m;let u=f.join(i.Dl,"scripts","printing-press"),v=f.join(u,"install.mjs"),w=f.join(u,"install-cli.mjs");function n(){return(0,k.Qw)((0,k.U5)())}function o(a,b,{cwd:c,timeoutMs:d,env:f}={}){return new Promise((g,h)=>{let i=(0,e.spawn)(a,b,{cwd:c,shell:!1,env:f||{PATH:process.env.PATH,HOME:process.env.HOME,NODE_ENV:"production"}}),j=Buffer.alloc(0),k=Buffer.alloc(0),l=!1,m=!1,n=!1,o=setTimeout(()=>{n=!0;try{i.kill("SIGKILL")}catch{}},d||6e4);i.stdout.on("data",a=>{j.length+a.length>262144?(j=Buffer.concat([j,a.slice(0,262144-j.length)]),l=!0):j=Buffer.concat([j,a])}),i.stderr.on("data",a=>{k.length+a.length>262144?(k=Buffer.concat([k,a.slice(0,262144-k.length)]),m=!0):k=Buffer.concat([k,a])}),i.on("error",a=>{clearTimeout(o),h(a)}),i.on("close",(a,b)=>{clearTimeout(o),g({exit_code:a,signal:b,timed_out:n,stdout:j.toString("utf8"),stderr:k.toString("utf8"),stdout_truncated:l,stderr_truncated:m})})})}function p(a){return(a?.declared_scopes||[]).some(a=>"string"==typeof a&&/write|mutate|delete|push/i.test(a))}async function q(a={},b={}){let c=n();if(!g.existsSync(u))return{ok:!1,status:"misconfigured",reason:`sub-package missing at ${u}`};let d=await o("node",[v],{cwd:u,timeoutMs:3e5});return d.timed_out?{ok:!1,status:"timeout",stderr:d.stderr}:0!==d.exit_code?{ok:!1,status:"failed",exit_code:d.exit_code,stderr:d.stderr,security_mode:c.mode}:{ok:!0,status:"installed",skills_dir:j.N3,security_mode:c.mode,stdout_tail:d.stdout.slice(-1024)}}async function r(a={},b={}){let c=n(),d=String(a.slug||"").trim();if(!(0,j.Ac)(d))return{ok:!1,status:"invalid_input",reason:"slug must match /^[a-z0-9][a-z0-9-]{0,63}$/"};let e=String(a.source||"starter-pack"),g=new Set(["starter-pack","github","local","spec"]);if(!g.has(e))return{ok:!1,status:"invalid_input",reason:`source must be one of ${[...g].join(", ")}`};let h=a.source_url?String(a.source_url):null;if("starter-pack"!==e&&!h)return{ok:!1,status:"invalid_input",reason:`source_url required when source=${e}`};let i=f.join(j.uS,d);try{(0,j.FT)(i)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let k=[w,d,"--source",e];h&&k.push("--source-url",h);let l=await o("node",k,{cwd:u,timeoutMs:3e5});if(l.timed_out)return{ok:!1,status:"timeout",stderr:l.stderr};if(0!==l.exit_code)return{ok:!1,status:"failed",exit_code:l.exit_code,stderr:l.stderr};let m=(0,j.$A)(d);return m&&p(m)&&!c.allow_network_write_clis?{ok:!1,status:"refused",reason:`Security mode "${c.mode}" forbids CLIs declaring write scopes. Declared: ${JSON.stringify(m.declared_scopes)}`,cli:m}:{ok:!0,status:"generated",cli:m,security_mode:c.mode}}async function s(a={},b={}){let c,d,e=n(),h=String(a.slug||"").trim();if(!(0,j.Ac)(h))return{ok:!1,status:"invalid_input",reason:"invalid slug"};let i=(0,j.$A)(h);if(!i||"removed"===i.status)return{ok:!1,status:"not_installed",slug:h};if("disabled"===i.status)return{ok:!1,status:"disabled",slug:h};if(p(i)&&!e.allow_network_write_clis)return{ok:!1,status:"refused",reason:`Security mode "${e.mode}" forbids running CLIs with write scopes.`};let k=Array.isArray(a.args)?a.args.map(String):[];for(let a of k)if(/[;&|`$<>]/.test(a))return{ok:!1,status:"unsafe_args",reason:`argv contains shell metacharacter: ${a}`};try{(0,j.FT)(i.path)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let m=process.env.GOBIN||(process.env.GOPATH?`${process.env.GOPATH}/bin`:null)||(process.env.HOME?`${process.env.HOME}/go/bin`:null),q=m?f.join(m,`${h}-pp-cli`):null,r=f.join(i.path,"bin"),t=f.join(i.path,"index.js");if(q&&g.existsSync(q))c=q,d=k;else if(g.existsSync(r))c=r,d=k;else{if(!g.existsSync(t))return{ok:!1,status:"no_entry_point",reason:`No entry point found. Tried: ${q||"(no go bin dir)"} , ${r}, ${t}`};c=process.execPath,d=[t,...k]}let u=function(a,b={}){let c={PATH:process.env.PATH,HOME:process.env.HOME,NODE_ENV:"production",PRINTING_PRESS_CLI_SLUG:a.slug,PRINTING_PRESS_DATA_DIR:a.path};for(let d of a.required_secrets||[])if("string"==typeof d&&/^[A-Z][A-Z0-9_]*$/.test(d))try{let a=(0,l.getSecret)(d,{agent_id:b.agent_id,project_id:b.project_id});a&&(c[d]=a)}catch{}return c}(i,b),v=Math.min(Number(a.timeout_ms)||6e4,3e5),w=await o(c,d,{cwd:i.path,timeoutMs:v,env:u});return{ok:0===w.exit_code,status:w.timed_out?"timeout":0===w.exit_code?"complete":"failed",slug:h,exit_code:w.exit_code,timed_out:w.timed_out,stdout:w.stdout,stderr:w.stderr,stdout_truncated:w.stdout_truncated,stderr_truncated:w.stderr_truncated,security_mode:e.mode}}let x=/\b(INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|REPLACE|ATTACH|DETACH|PRAGMA|VACUUM|REINDEX|TRUNCATE)\b/i;async function t(a={},b={}){let c,d=String(a.slug||"").trim();if(!(0,j.Ac)(d))return{ok:!1,status:"invalid_input",reason:"invalid slug"};let e=(0,j.$A)(d);if(!e||"removed"===e.status)return{ok:!1,status:"not_installed",slug:d};let i=String(a.sql||"").trim();if(!i)return{ok:!1,status:"invalid_input",reason:"sql is required"};if(i.includes(";"))return{ok:!1,status:"unsafe_sql",reason:"multi-statement queries are not allowed"};if(x.test(i))return{ok:!1,status:"unsafe_sql",reason:"only SELECT-style read queries are permitted"};if(!/^\s*(SELECT|WITH)\b/i.test(i))return{ok:!1,status:"unsafe_sql",reason:"query must begin with SELECT or WITH"};let k=process.env.XDG_DATA_HOME||(process.env.HOME?f.join(process.env.HOME,".local","share"):null),l=[f.join(e.path,"data.sqlite"),f.join(e.path,`${d}.sqlite`),k?f.join(k,`${d}-pp-cli`,"data.db"):null,k?f.join(k,`${d}-pp-cli`,"data.sqlite"):null].filter(Boolean),m=l.find(a=>g.existsSync(a));if(!m)return{ok:!1,status:"no_mirror",reason:"CLI has no local SQLite mirror",tried:l};if(m.startsWith(f.resolve(e.path)+f.sep))try{(0,j.FT)(m)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let n=Array.isArray(a.params)?a.params:[];try{c=new h.DatabaseSync(m,{readOnly:!0})}catch(a){return{ok:!1,status:"open_failed",reason:a.message}}try{let a=c.prepare(i).all(...n).slice(0,1e3);return{ok:!0,status:"complete",slug:d,row_count:a.length,truncated:1e3===a.length,rows:a}}catch(a){return{ok:!1,status:"query_failed",reason:a.message}}finally{try{c.close()}catch{}}}d()}catch(a){d(a)}})},81553:(a,b,c)=>{"use strict";c.d(b,{YO:()=>j,ct:()=>m,mU:()=>k,rd:()=>g,runUpdateCheck:()=>n,shouldAutoApply:()=>o});var d=c(73024),e=c(76760),f=c(73136);let g="madarx",h=`https://registry.npmjs.org/${g}/latest`,i=e.dirname((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/update-check.js"));function j(){if(process.env.MADARX_VERSION)return process.env.MADARX_VERSION;for(let a of[e.join(i,"..","package.json"),e.join(process.cwd(),"package.json"),e.join(process.cwd(),".next","standalone","package.json")]){let b=function(a){try{let b=JSON.parse(d.readFileSync(a,"utf8"));if(b&&b.name===g&&b.version)return b.version}catch{}return null}(a);if(b)return b}return"0.0.0"}function k(a,b){let c=a=>String(a).split("-")[0].split(".").slice(0,3).map(a=>parseInt(a,10)||0),d=c(a),e=c(b);for(let a=0;a<Math.max(d.length,e.length);a++){let b=(d[a]||0)-(e[a]||0);if(0!==b)return b>0?1:-1}return 0}async function l({fetchImpl:a=fetch,timeoutMs:b=4e3}={}){try{let c=await a(h,{signal:AbortSignal.timeout(b)});if(!c.ok)return null;let d=await c.json();return d?.version||null}catch{return null}}function m(a){try{return JSON.parse(d.readFileSync(a,"utf8"))}catch{return null}}async function n({file:a,current:b=j(),fetchImpl:c=fetch,nowIso:f}={}){let g=await l({fetchImpl:c}),h=f||new Date().toISOString();if(!g){let c=a?m(a):null;return{ts:h,current:b,latest:c?.latest||null,behind:!1,reachable:!1}}let i=k(g,b)>0,o={ts:h,current:b,latest:g,behind:i,reachable:!0};return a&&(d.mkdirSync(e.dirname(a),{recursive:!0}),d.writeFileSync(a,JSON.stringify(o,null,2))),o}function o({behind:a,mode:b,apply:c}){return!!a&&"weekly"===b&&"auto"===c}},81833:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{BQ:()=>o,HO:()=>s,Jh:()=>n,OT:()=>r,Om:()=>k,bz:()=>m,cN:()=>p,h5:()=>q,iF:()=>i,k2:()=>l,pp:()=>j});var e=c(34255),f=a([e]);function g(a){return a?{id:String(a.id),name:String(a.name||""),position:Number(a.position)||0,is_active:1===a.is_active,created_at:a.created_at,updated_at:a.updated_at}:null}function h(a,b){return String(a||"").trim().slice(0,32)||b}function i(){let a=(0,e.getDb)();l();let b=a.prepare("SELECT * FROM dashboard_spaces ORDER BY position ASC, created_at ASC").all().map(g),c=b.find(a=>a.is_active)||b[0]||null;return{spaces:b,active_space_id:c?c.id:null}}function j(a){if(!a)return null;let b=(0,e.getDb)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(a));return g(b)}function k(a=[],{fallback:b="default"}={}){for(let b of Array.isArray(a)?a:[a])if(b&&j(b))return b;return b}function l(){let a=(0,e.getDb)(),b=a.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(0===b){let b=(0,e.nowIso)();a.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)").run("default","main",0,1,b,b)}a.prepare("UPDATE artifacts SET space_id = 'default' WHERE space_id IS NULL").run()}function m({name:a}={}){let b=(0,e.getDb)();l();let c=b.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(c>=32){let a=Error("Maximum of 32 spaces reached.");throw a.code="SPACE_LIMIT",a}let d=b.prepare("SELECT MAX(position) AS m FROM dashboard_spaces").get().m,f=(Number(d)||0)+1,g=(0,e.newId)("space"),i=(0,e.nowIso)(),k=h(a,`Space ${c+1}`);return b.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, 0, ?, ?)").run(g,k,f,i,i),j(g)}function n(a,b){let c=j(a);if(!c){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let d=h(b,c.name);return d===c.name?c:((0,e.getDb)().prepare("UPDATE dashboard_spaces SET name = ?, updated_at = ? WHERE id = ?").run(d,(0,e.nowIso)(),a),j(a))}function o(a){if(!j(a)){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let b=(0,e.getDb)(),c=(0,e.nowIso)(),d=b.prepare("BEGIN IMMEDIATE");try{d.run(),b.prepare("UPDATE dashboard_spaces SET is_active = 0, updated_at = ? WHERE is_active = 1").run(c),b.prepare("UPDATE dashboard_spaces SET is_active = 1, updated_at = ? WHERE id = ?").run(c,a),b.prepare("COMMIT").run()}catch(a){try{b.prepare("ROLLBACK").run()}catch{}throw a}return j(a)}function p(a){let b=(0,e.getDb)(),c=j(a);if(!c)return null;if(b.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n<=1){let a=Error("Cannot delete the last remaining space.");throw a.code="SPACE_LAST",a}let d=b.prepare("SELECT * FROM dashboard_spaces WHERE id != ? ORDER BY position ASC, created_at ASC LIMIT 1").get(a);if(!d){let a=Error("No fallback space available.");throw a.code="SPACE_NO_FALLBACK",a}let f=(0,e.nowIso)(),g=b.prepare("BEGIN IMMEDIATE");try{g.run(),b.prepare("UPDATE artifacts SET space_id = ? WHERE space_id = ?").run(d.id,a),b.prepare("UPDATE space_share_links SET revoked = 1 WHERE space_id = ? AND revoked = 0").run(a),b.prepare("DELETE FROM dashboard_spaces WHERE id = ?").run(a),c.is_active&&b.prepare("UPDATE dashboard_spaces SET is_active = 1, updated_at = ? WHERE id = ?").run(f,d.id),b.prepare("COMMIT").run()}catch(a){try{b.prepare("ROLLBACK").run()}catch{}throw a}return{deleted_id:a,moved_to:d.id}}function q(a,b){if(!a){let a=Error("artifact_id is required.");throw a.code="ARTIFACT_REQUIRED",a}let c=j(b);if(!c){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let d=(0,e.getDb)(),f=d.prepare("SELECT id FROM artifacts WHERE id = ?").get(String(a));if(!f){let a=Error("Artifact not found.");throw a.code="ARTIFACT_NOT_FOUND",a}return d.prepare("UPDATE artifacts SET space_id = ?, pinned_to_space_at = datetime('now') WHERE id = ?").run(c.id,f.id),{artifact_id:f.id,space_id:c.id}}function r(){let a=(0,e.getDb)();l();let b=a.prepare("SELECT * FROM dashboard_spaces ORDER BY position ASC, created_at ASC").all().map(g),c=a.prepare("SELECT id, space_id FROM artifacts WHERE space_id IS NOT NULL").all(),d=new Map(b.map(a=>[a.id,[]]));for(let a of c)d.has(a.space_id)&&d.get(a.space_id).push(String(a.id));let f=b.map(a=>({...a,artifact_ids:d.get(a.id)||[]})),h=f.find(a=>a.is_active)||f[0]||null;return{spaces:f,active_space_id:h?h.id:null}}function s({spaces:a=[],active_space_id:b=null}={}){if(!Array.isArray(a)||0===a.length)return null;let c=(0,e.getDb)();l();let d=c.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(!(1===d&&c.prepare("SELECT id FROM dashboard_spaces WHERE id = 'default'").get()))return null;let f=a.filter(a=>a&&"string"==typeof a.id&&a.id.length>0).slice(0,32);if(0===f.length)return null;let g=(0,e.nowIso)(),i=c.prepare("BEGIN IMMEDIATE");try{i.run(),c.prepare("DELETE FROM dashboard_spaces").run(),f.forEach((a,d)=>{let e=String(a.id),f=h(a.name,`Space ${d+1}`),i=b?e===String(b):0===d;c.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)").run(e,f,d,+!!i,g,g);let j=Array.isArray(a.artifactIds)?a.artifactIds:[],k=c.prepare("UPDATE artifacts SET space_id = ? WHERE id = ? AND (space_id IS NULL OR space_id = ?)");for(let a of j)"string"==typeof a&&k.run(e,a,e)});let a=c.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces WHERE is_active = 1").get().n;if(0===a){let a=c.prepare("SELECT id FROM dashboard_spaces ORDER BY position ASC, created_at ASC LIMIT 1").get();a&&c.prepare("UPDATE dashboard_spaces SET is_active = 1 WHERE id = ?").run(a.id)}c.prepare("COMMIT").run()}catch(a){try{c.prepare("ROLLBACK").run()}catch{}throw a}return r()}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},81992:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cS:()=>j,r_:()=>i,vg:()=>k});var e=c(25938),f=a([e]);function g(a,{includeBody:b=!1}={}){let c=Object.fromEntries((a.payload?.headers||[]).map(a=>[String(a.name).toLowerCase(),a.value])),d={id:a.id,thread_id:a.threadId,from:c.from||null,subject:c.subject||null,date:c.date||null,snippet:a.snippet||""};return b&&(d.to=c.to||null,d.body_text=function a(b={}){if(b.body?.data)return function(a=""){if(!a)return"";try{return Buffer.from(String(a),"base64url").toString("utf8")}catch{return""}}(b.body.data);let c=Array.isArray(b.parts)?b.parts:[],d=c.find(a=>"text/plain"===a.mimeType&&a.body?.data)||c.find(a=>a.body?.data);return d?a(d):""}(a.payload||{})),d}async function h(a,b,c,d){let f=(0,e.s)(d,c),g=await f(a,{headers:{Authorization:`Bearer ${b}`}});if(!g.ok)throw Error(`google api failed: ${g.status}`);return g.json()}async function i(a={},b={}){let c="gmail_messages_list",d=await (0,e.r)(b,c),f=new URL("https://gmail.googleapis.com/gmail/v1/users/me/messages");for(let b of(a.max_results&&f.searchParams.set("maxResults",String(a.max_results)),a.q&&f.searchParams.set("q",a.q),a.label_ids||a.labelIds||[]))f.searchParams.append("labelIds",String(b));let j=(await h(f,d,b,c)).messages||[];return Promise.all(j.map(async a=>{let e=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.id)}?format=metadata`,d,b,c);return g(e)}))}async function j(a={},b={}){if(!a.message_id)throw Error("message_id is required");let c="gmail_message_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.message_id)}?format=full`,d,b,c);return g(f,{includeBody:!0})}async function k(a={},b={}){if(!a.thread_id)throw Error("thread_id is required");let c="gmail_thread_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/threads/${encodeURIComponent(a.thread_id)}?format=full`,d,b,c);return{id:f.id,messages:(f.messages||[]).map(a=>g(a,{includeBody:!0}))}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},83963:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dn:()=>ae,Fp:()=>aa,Fy:()=>F,G:()=>ai,HB:()=>R,Mu:()=>Y,Q4:()=>J,Qf:()=>_,Rz:()=>W,UT:()=>S,V0:()=>ag,VI:()=>P,Vk:()=>N,WH:()=>$,WX:()=>Z,X1:()=>X,eE:()=>ac,fI:()=>B,gf:()=>I,gg:()=>O,hC:()=>ap,hW:()=>ak,iR:()=>ad,ij:()=>an,jN:()=>G,kP:()=>D,lC:()=>T,n5:()=>ao,nV:()=>aj,qF:()=>am,qt:()=>ah,rN:()=>ab,s_:()=>Q,vQ:()=>V,w4:()=>al,yS:()=>U,yX:()=>E,zP:()=>H});var e=c(34255),f=c(40563),g=c(61423),h=c(18313),i=a([e,f,g]);function j(a,b=null){if(!a)return b;try{return JSON.parse(a)}catch{return b}}function k(a){return null==a?null:JSON.stringify(a)}function l(a){let b=globalThis.__madarxLiveEventBus;if(!b?.subscribers)return{id:a.id||(0,e.newId)("evt"),ts:a.ts||Date.now(),...a};let c={id:a.id||`evt-${b.nextId++}-${Math.random().toString(36).slice(2,8)}`,ts:a.ts||Date.now(),...a};for(let a of b.subscribers)try{a(c)}catch{}return c}function m(a){return a?{...a,tools:j(a.tools,[]),files:j(a.files,[]),memory:j(a.memory,[]),permissions_json:j(a.permissions_json,{}),metadata_json:j(a.metadata_json,{})}:null}function n(a){return a?{...a,parent_task_id:a.parent_task_id||null,tags:j(a.tags_json,[]),watchers:j(a.watchers_json,[]),due_at:a.due_at||null,estimate_minutes:null==a.estimate_minutes?null:Number(a.estimate_minutes),recurrence:a.recurrence||null,acceptance_criteria:a.acceptance_criteria||null}:null}function o(a){return a?{id:a.id,task_id:a.task_id,label:a.label,done:!!a.done,position:Number(a.position)||0,created_at:a.created_at,done_at:a.done_at||null}:null}function p(a){if(null==a)return null;if(Array.isArray(a)){let b=a.map(a=>String(a).trim()).filter(Boolean).slice(0,24);return b.length?b:[]}return"string"==typeof a?a.split(",").map(a=>a.trim()).filter(Boolean).slice(0,24):null}function q(a){if(null==a)return null;let b=(Array.isArray(a)?a:String(a).split(",")).map(a=>String(a).trim()).filter(Boolean).slice(0,24);return Array.from(new Set(b))}function r(a){if(!a)return null;let b=String(a).trim();if(!b)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(b))return`${b}T23:59:59.000Z`;let c=new Date(b);return Number.isNaN(c.getTime())?null:c.toISOString()}function s(a){if(null==a||""===a)return null;let b=Number(a);return!Number.isFinite(b)||b<0?null:Math.round(b)}function t(a){if(!a)return null;let b=String(a).trim();return b?b.length>64?b.slice(0,64):b:null}function u(a){return a?{...a}:null}function v(a){return a?{...a,payload:j(a.payload_json,null)}:null}function w(a){return a?{...a,usage:j(a.usage_json,null),result:j(a.result_json,null)}:null}function x(a){return a?{...a,payload:j(a.payload_json,null)}:null}function y(a){return a?{...a,details:j(a.details_json,null),cursor:a.seq}:null}function z(a){return m((0,e.getDb)().prepare("SELECT * FROM agents WHERE id = ?").get(a))}function A(a){if(!a)return null;let b=z(a);if(!b)throw Error(`Agent not found: ${a}`);if("terminated"===b.status)throw Error(`Terminated agents cannot receive assignments: ${a}`);return b}function B(a){if(!a?.type||!1===a.persist)return null;let b=function(a){let b={agent_run_start:"agent.run.status",agent_run_complete:"agent.run.status",agent_tool_start:"agent.run.event",agent_tool_result:"agent.run.event",log:"agent.run.log"},c=(0,h._d)(b[a.type]||a.type,null);return c&&h.eh.includes(c)?{actor_type:a.actor_type||(a.agent_id?"agent":"system"),actor_id:a.actor_id||a.agent_id||null,agent_id:a.agent_id||null,run_id:a.run_id||null,entity_type:a.entity_type||(a.task_id?"task":a.run_id?"agent_run":a.agent_id?"agent":"event"),entity_id:a.entity_id||a.task_id||a.run_id||a.id||null,action:c,details:{...a,legacy_type:b[a.type]?a.type:void 0},created_at:a.created_at||(0,e.nowIso)()}:null}(a);return b?C(b):null}function C({actor_type:a="system",actor_id:b=null,agent_id:c=null,run_id:d=null,entity_type:f=null,entity_id:g=null,action:h,details:i=null,created_at:j=(0,e.nowIso)()}={}){if(!h)throw Error("activity action is required");let l=(0,e.getDb)(),m=(0,e.newId)("activity");l.prepare(`
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
timeout_ms, created_at, updated_at
|
|
11
11
|
)
|
|
12
12
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
13
|
-
`).run(r,F,C.id,"queued",u,a,p,d||null,g||null,n?Number(n):null,t,t),w(r,{type:"queued",message:"Hermes job queued."}),(0,l.appendAudit)({type:"hermes.job.create",summary:`Queued Hermes job: ${u}`,status:"queued",meta:{job_id:r,run_id:C.id,artifact_id:F}}),{...s(r),file_path:B}}function y(a){let b=
|
|
13
|
+
`).run(r,F,C.id,"queued",u,a,p,d||null,g||null,n?Number(n):null,t,t),w(r,{type:"queued",message:"Hermes job queued."}),(0,l.appendAudit)({type:"hermes.job.create",summary:`Queued Hermes job: ${u}`,status:"queued",meta:{job_id:r,run_id:C.id,artifact_id:F}}),{...s(r),file_path:B}}function y(a){let b=f.join(i.QG,"scripts","hermes-job-runner.mjs"),c=(0,g.spawn)(process.execPath,[b,"--job-id",a],{cwd:(0,i.wn)(i.QG,i.un),env:process.env,stdio:"ignore",detached:!0});return c.unref(),w(a,{type:"status",message:`Background runner spawned with pid ${c.pid}.`}),{pid:c.pid}}function z({olderThanMs:a=18e5}={}){let b=(0,h.getDb)(),c=new Date(Date.now()-a).toISOString(),d=b.prepare(`
|
|
14
14
|
SELECT id FROM hermes_jobs
|
|
15
15
|
WHERE status IN ('queued', 'running') AND updated_at < ?
|
|
16
16
|
`).all(c);for(let a of d)!function(a,{error:b,exit_code:c=null,status:d="failed"}={}){let e=A.has(d)?d:"failed",f=(0,h.getDb)(),g=(0,h.nowIso)();f.prepare(`
|