agent-nuvira 3.3.1 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -13
- package/dist/agent-sdk/src/agent.d.ts +2 -0
- package/dist/agent-sdk/src/agent.d.ts.map +1 -1
- package/dist/agent-sdk/src/define.d.ts +64 -0
- package/dist/agent-sdk/src/define.d.ts.map +1 -0
- package/dist/agent-sdk/src/define.js +76 -0
- package/dist/agent-sdk/src/define.js.map +1 -0
- package/dist/agent-sdk/src/index.d.ts +9 -0
- package/dist/agent-sdk/src/index.d.ts.map +1 -1
- package/dist/agent-sdk/src/index.js +9 -0
- package/dist/agent-sdk/src/index.js.map +1 -1
- package/dist/agent-sdk/src/scaffold.d.ts +11 -0
- package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
- package/dist/agent-sdk/src/scaffold.js +16 -6
- package/dist/agent-sdk/src/scaffold.js.map +1 -1
- package/dist/agents/agents/runner.d.ts +9 -0
- package/dist/agents/agents/runner.d.ts.map +1 -1
- package/dist/agents/agents/runner.js +34 -12
- package/dist/agents/agents/runner.js.map +1 -1
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +7 -2
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +7 -1
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/artifact-verification.d.ts +102 -0
- package/dist/agents/artifact-verification.d.ts.map +1 -0
- package/dist/agents/artifact-verification.js +216 -0
- package/dist/agents/artifact-verification.js.map +1 -0
- package/dist/agents/checkpoint-store.d.ts +73 -0
- package/dist/agents/checkpoint-store.d.ts.map +1 -1
- package/dist/agents/checkpoint-store.js +161 -0
- package/dist/agents/checkpoint-store.js.map +1 -1
- package/dist/agents/credential-store.d.ts +120 -0
- package/dist/agents/credential-store.d.ts.map +1 -1
- package/dist/agents/credential-store.js +358 -19
- package/dist/agents/credential-store.js.map +1 -1
- package/dist/agents/long-form-plan.d.ts.map +1 -1
- package/dist/agents/long-form-plan.js +2 -1
- package/dist/agents/long-form-plan.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +10 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +239 -79
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/phase-engine.d.ts +61 -0
- package/dist/agents/phase-engine.d.ts.map +1 -1
- package/dist/agents/phase-engine.js +68 -2
- package/dist/agents/phase-engine.js.map +1 -1
- package/dist/agents/prompt-assembly.d.ts +11 -0
- package/dist/agents/prompt-assembly.d.ts.map +1 -1
- package/dist/agents/prompt-assembly.js +17 -0
- package/dist/agents/prompt-assembly.js.map +1 -1
- package/dist/agents/release-preflight.d.ts +121 -0
- package/dist/agents/release-preflight.d.ts.map +1 -0
- package/dist/agents/release-preflight.js +259 -0
- package/dist/agents/release-preflight.js.map +1 -0
- package/dist/agents/release-runner.d.ts +157 -0
- package/dist/agents/release-runner.d.ts.map +1 -0
- package/dist/agents/release-runner.js +719 -0
- package/dist/agents/release-runner.js.map +1 -0
- package/dist/agents/step-handoff.d.ts +190 -0
- package/dist/agents/step-handoff.d.ts.map +1 -0
- package/dist/agents/step-handoff.js +443 -0
- package/dist/agents/step-handoff.js.map +1 -0
- package/dist/cli/agent.d.ts +2 -2
- package/dist/cli/agent.js +10 -10
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +11 -4
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/chat.d.ts +94 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +379 -24
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +8 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +9 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/credentials.d.ts +28 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +213 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +3 -2
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/edit.js +2 -2
- package/dist/cli/eval.d.ts +17 -0
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +105 -2
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/execute.d.ts +16 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +192 -22
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +9 -3
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +55 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +285 -19
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +9 -8
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/models.d.ts +1 -1
- package/dist/cli/models.js +4 -4
- package/dist/cli/nlu.d.ts.map +1 -1
- package/dist/cli/nlu.js +8 -2
- package/dist/cli/nlu.js.map +1 -1
- package/dist/cli/parity.d.ts +85 -0
- package/dist/cli/parity.d.ts.map +1 -0
- package/dist/cli/parity.js +506 -0
- package/dist/cli/parity.js.map +1 -0
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +2 -1
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/publish.d.ts +22 -0
- package/dist/cli/publish.d.ts.map +1 -1
- package/dist/cli/publish.js +109 -13
- package/dist/cli/publish.js.map +1 -1
- package/dist/cli/retrieval.d.ts.map +1 -1
- package/dist/cli/retrieval.js +5 -4
- package/dist/cli/retrieval.js.map +1 -1
- package/dist/cli/sdk.js +4 -4
- package/dist/cli/sdk.js.map +1 -1
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +2 -1
- package/dist/cli/trace.js.map +1 -1
- package/dist/cli/workflow.js +2 -2
- package/dist/cli/workflow.js.map +1 -1
- package/dist/config/live-credentials.d.ts +57 -0
- package/dist/config/live-credentials.d.ts.map +1 -0
- package/dist/config/live-credentials.js +126 -0
- package/dist/config/live-credentials.js.map +1 -0
- package/dist/config/paths.d.ts +18 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +25 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/types.d.ts +44 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/federation/a2a-types.js +1 -1
- package/dist/federation/a2a-types.js.map +1 -1
- package/dist/findings/verdicts.d.ts +241 -0
- package/dist/findings/verdicts.d.ts.map +1 -0
- package/dist/findings/verdicts.js +284 -0
- package/dist/findings/verdicts.js.map +1 -0
- package/dist/gateway/adapters.d.ts +65 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +216 -10
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/channel-directory.d.ts +31 -0
- package/dist/gateway/channel-directory.d.ts.map +1 -1
- package/dist/gateway/channel-directory.js +40 -0
- package/dist/gateway/channel-directory.js.map +1 -1
- package/dist/gateway/gateway-log.d.ts +1 -1
- package/dist/gateway/gateway-log.d.ts.map +1 -1
- package/dist/gateway/gateway-log.js.map +1 -1
- package/dist/gateway/hooks.d.ts +87 -19
- package/dist/gateway/hooks.d.ts.map +1 -1
- package/dist/gateway/hooks.js +62 -23
- package/dist/gateway/hooks.js.map +1 -1
- package/dist/gateway/inbound-media.d.ts +147 -0
- package/dist/gateway/inbound-media.d.ts.map +1 -0
- package/dist/gateway/inbound-media.js +317 -0
- package/dist/gateway/inbound-media.js.map +1 -0
- package/dist/gateway/inbox.d.ts +8 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +14 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +26 -8
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/realtime.d.ts +114 -0
- package/dist/gateway/realtime.d.ts.map +1 -0
- package/dist/gateway/realtime.js +402 -0
- package/dist/gateway/realtime.js.map +1 -0
- package/dist/gateway/registry.d.ts +31 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +224 -4
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +6 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +14 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +17 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/groq-adapter.d.ts +2 -0
- package/dist/inference/groq-adapter.d.ts.map +1 -1
- package/dist/inference/groq-adapter.js +16 -6
- package/dist/inference/groq-adapter.js.map +1 -1
- package/dist/inference/model-validator.d.ts +6 -1
- package/dist/inference/model-validator.d.ts.map +1 -1
- package/dist/inference/model-validator.js +7 -2
- package/dist/inference/model-validator.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +116 -0
- package/dist/inference/route-resolver.d.ts.map +1 -0
- package/dist/inference/route-resolver.js +159 -0
- package/dist/inference/route-resolver.js.map +1 -0
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +29 -0
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +18 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +35 -0
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/benchmark.d.ts.map +1 -1
- package/dist/learning/benchmark.js +3 -2
- package/dist/learning/benchmark.js.map +1 -1
- package/dist/learning/continuation.d.ts.map +1 -1
- package/dist/learning/continuation.js +2 -1
- package/dist/learning/continuation.js.map +1 -1
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +2 -1
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/deferred-task.d.ts.map +1 -1
- package/dist/learning/deferred-task.js +13 -4
- package/dist/learning/deferred-task.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +2 -1
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/long-form.d.ts.map +1 -1
- package/dist/learning/long-form.js +2 -1
- package/dist/learning/long-form.js.map +1 -1
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +2 -1
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/reasoning-cache.d.ts.map +1 -1
- package/dist/learning/reasoning-cache.js +2 -1
- package/dist/learning/reasoning-cache.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +38 -2
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +91 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +31 -18
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/retrieval.d.ts.map +1 -1
- package/dist/learning/retrieval.js +2 -1
- package/dist/learning/retrieval.js.map +1 -1
- package/dist/learning/seeded-benchmark.d.ts +160 -0
- package/dist/learning/seeded-benchmark.d.ts.map +1 -0
- package/dist/learning/seeded-benchmark.js +321 -0
- package/dist/learning/seeded-benchmark.js.map +1 -0
- package/dist/learning/seeded-bugs.d.ts +142 -0
- package/dist/learning/seeded-bugs.d.ts.map +1 -0
- package/dist/learning/seeded-bugs.js +535 -0
- package/dist/learning/seeded-bugs.js.map +1 -0
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +30 -9
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/step-checkpoint.d.ts +127 -0
- package/dist/learning/step-checkpoint.d.ts.map +1 -0
- package/dist/learning/step-checkpoint.js +244 -0
- package/dist/learning/step-checkpoint.js.map +1 -0
- package/dist/mcp/catalog.js +2 -3
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -3
- package/dist/mcp/manager.js.map +1 -1
- package/dist/nlu/intent-confirm.d.ts +23 -1
- package/dist/nlu/intent-confirm.d.ts.map +1 -1
- package/dist/nlu/intent-confirm.js +85 -2
- package/dist/nlu/intent-confirm.js.map +1 -1
- package/dist/nlu/learnings.d.ts +7 -0
- package/dist/nlu/learnings.d.ts.map +1 -1
- package/dist/nlu/learnings.js +7 -0
- package/dist/nlu/learnings.js.map +1 -1
- package/dist/observability/debug-log.d.ts +250 -0
- package/dist/observability/debug-log.d.ts.map +1 -0
- package/dist/observability/debug-log.js +500 -0
- package/dist/observability/debug-log.js.map +1 -0
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +4 -1
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/observability/otel.d.ts +278 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +590 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/parity/drivers.d.ts +99 -0
- package/dist/parity/drivers.d.ts.map +1 -0
- package/dist/parity/drivers.js +1362 -0
- package/dist/parity/drivers.js.map +1 -0
- package/dist/parity/graph.d.ts +73 -0
- package/dist/parity/graph.d.ts.map +1 -0
- package/dist/parity/graph.js +162 -0
- package/dist/parity/graph.js.map +1 -0
- package/dist/parity/matrix.d.ts +105 -0
- package/dist/parity/matrix.d.ts.map +1 -0
- package/dist/parity/matrix.js +352 -0
- package/dist/parity/matrix.js.map +1 -0
- package/dist/parity/observation.d.ts +444 -0
- package/dist/parity/observation.d.ts.map +1 -0
- package/dist/parity/observation.js +333 -0
- package/dist/parity/observation.js.map +1 -0
- package/dist/parity/scenarios.d.ts +229 -0
- package/dist/parity/scenarios.d.ts.map +1 -0
- package/dist/parity/scenarios.js +175 -0
- package/dist/parity/scenarios.js.map +1 -0
- package/dist/parity/surfaces.d.ts +122 -0
- package/dist/parity/surfaces.d.ts.map +1 -0
- package/dist/parity/surfaces.js +190 -0
- package/dist/parity/surfaces.js.map +1 -0
- package/dist/runtime/fault-injection.d.ts +173 -0
- package/dist/runtime/fault-injection.d.ts.map +1 -0
- package/dist/runtime/fault-injection.js +281 -0
- package/dist/runtime/fault-injection.js.map +1 -0
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +9 -4
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/tools/child-agent-entry.d.ts +23 -0
- package/dist/tools/child-agent-entry.d.ts.map +1 -0
- package/dist/tools/child-agent-entry.js +129 -0
- package/dist/tools/child-agent-entry.js.map +1 -0
- package/dist/tools/child-agent-runtime.d.ts +124 -0
- package/dist/tools/child-agent-runtime.d.ts.map +1 -0
- package/dist/tools/child-agent-runtime.js +704 -0
- package/dist/tools/child-agent-runtime.js.map +1 -0
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +82 -10
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/credentials-tool.d.ts +24 -0
- package/dist/tools/credentials-tool.d.ts.map +1 -0
- package/dist/tools/credentials-tool.js +125 -0
- package/dist/tools/credentials-tool.js.map +1 -0
- package/dist/tools/delegation-system.d.ts +31 -0
- package/dist/tools/delegation-system.d.ts.map +1 -1
- package/dist/tools/delegation-system.js +70 -9
- package/dist/tools/delegation-system.js.map +1 -1
- package/dist/tools/extract/docx.d.ts +27 -0
- package/dist/tools/extract/docx.d.ts.map +1 -0
- package/dist/tools/extract/docx.js +48 -0
- package/dist/tools/extract/docx.js.map +1 -0
- package/dist/tools/extract/html-text.d.ts +27 -0
- package/dist/tools/extract/html-text.d.ts.map +1 -0
- package/dist/tools/extract/html-text.js +86 -0
- package/dist/tools/extract/html-text.js.map +1 -0
- package/dist/tools/extract/pdf-ocr.d.ts +58 -0
- package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
- package/dist/tools/extract/pdf-ocr.js +116 -0
- package/dist/tools/extract/pdf-ocr.js.map +1 -0
- package/dist/tools/extract/pdf.d.ts +65 -0
- package/dist/tools/extract/pdf.d.ts.map +1 -0
- package/dist/tools/extract/pdf.js +197 -0
- package/dist/tools/extract/pdf.js.map +1 -0
- package/dist/tools/extract/pptx.d.ts +32 -0
- package/dist/tools/extract/pptx.d.ts.map +1 -0
- package/dist/tools/extract/pptx.js +77 -0
- package/dist/tools/extract/pptx.js.map +1 -0
- package/dist/tools/extract/xlsx.d.ts +47 -0
- package/dist/tools/extract/xlsx.d.ts.map +1 -0
- package/dist/tools/extract/xlsx.js +111 -0
- package/dist/tools/extract/xlsx.js.map +1 -0
- package/dist/tools/finding-tool.d.ts +76 -0
- package/dist/tools/finding-tool.d.ts.map +1 -0
- package/dist/tools/finding-tool.js +125 -0
- package/dist/tools/finding-tool.js.map +1 -0
- package/dist/tools/git-tool.d.ts +25 -7
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +155 -15
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/loop-project-context.d.ts.map +1 -1
- package/dist/tools/loop-project-context.js +16 -0
- package/dist/tools/loop-project-context.js.map +1 -1
- package/dist/tools/loop-route-feed.d.ts +57 -0
- package/dist/tools/loop-route-feed.d.ts.map +1 -0
- package/dist/tools/loop-route-feed.js +101 -0
- package/dist/tools/loop-route-feed.js.map +1 -0
- package/dist/tools/messaging-tools.d.ts +41 -11
- package/dist/tools/messaging-tools.d.ts.map +1 -1
- package/dist/tools/messaging-tools.js +104 -55
- package/dist/tools/messaging-tools.js.map +1 -1
- package/dist/tools/neutts-synth.d.ts +27 -3
- package/dist/tools/neutts-synth.d.ts.map +1 -1
- package/dist/tools/neutts-synth.js +57 -13
- package/dist/tools/neutts-synth.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts +43 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +21 -4
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/publish-tool.d.ts.map +1 -1
- package/dist/tools/publish-tool.js +76 -10
- package/dist/tools/publish-tool.js.map +1 -1
- package/dist/tools/read-extract.d.ts +116 -45
- package/dist/tools/read-extract.d.ts.map +1 -1
- package/dist/tools/read-extract.js +494 -158
- package/dist/tools/read-extract.js.map +1 -1
- package/dist/tools/registry.d.ts +23 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +196 -29
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +9 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +80 -2
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/subagent-refusal.d.ts +15 -0
- package/dist/tools/subagent-refusal.d.ts.map +1 -0
- package/dist/tools/subagent-refusal.js +18 -0
- package/dist/tools/subagent-refusal.js.map +1 -0
- package/dist/tools/subagent-spawner.d.ts +122 -0
- package/dist/tools/subagent-spawner.d.ts.map +1 -1
- package/dist/tools/subagent-spawner.js +249 -28
- package/dist/tools/subagent-spawner.js.map +1 -1
- package/dist/tools/tool-hooks.d.ts +177 -0
- package/dist/tools/tool-hooks.d.ts.map +1 -0
- package/dist/tools/tool-hooks.js +427 -0
- package/dist/tools/tool-hooks.js.map +1 -0
- package/dist/tools/tool-loop.d.ts +94 -5
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +315 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/tool-refusal.d.ts +68 -0
- package/dist/tools/tool-refusal.d.ts.map +1 -0
- package/dist/tools/tool-refusal.js +78 -0
- package/dist/tools/tool-refusal.js.map +1 -0
- package/dist/tools/toolsets.d.ts +8 -0
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +14 -4
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/tools/vision-tools.d.ts +88 -83
- package/dist/tools/vision-tools.d.ts.map +1 -1
- package/dist/tools/vision-tools.js +134 -103
- package/dist/tools/vision-tools.js.map +1 -1
- package/dist/tools/worktree.d.ts +210 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +374 -0
- package/dist/tools/worktree.js.map +1 -0
- package/dist/utils/format.d.ts +3 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +32 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/web-dashboard/attachment-extract.d.ts +64 -0
- package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
- package/dist/web-dashboard/attachment-extract.js +154 -0
- package/dist/web-dashboard/attachment-extract.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +108 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +36 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +37 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +61 -1
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +14 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +247 -13
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +196 -48
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/workflow/registry.js +1 -1
- package/dist/workflow/registry.js.map +1 -1
- package/package.json +22 -6
- package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/tools/child-agent-worker.js +0 -212
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js +0 -207
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +0 -1
|
@@ -20,6 +20,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync, rea
|
|
|
20
20
|
import { join } from 'node:path';
|
|
21
21
|
import { EventEmitter } from 'node:events';
|
|
22
22
|
import { logger } from '../utils/logger.js';
|
|
23
|
+
import { refusalFields } from './tool-refusal.js';
|
|
23
24
|
// ─── Delegation Manager ───────────────────────────────────────────────────
|
|
24
25
|
const DELEGATION_DIR = join(resolveNuviraHome(), 'cache', 'delegation');
|
|
25
26
|
const LIVE_LOG_DIR = join(DELEGATION_DIR, 'live');
|
|
@@ -40,6 +41,20 @@ export class DelegationManager extends EventEmitter {
|
|
|
40
41
|
config = { ...DEFAULT_CONFIG };
|
|
41
42
|
activeChildren = new Set();
|
|
42
43
|
stallTimers = new Map();
|
|
44
|
+
/**
|
|
45
|
+
* The real child-task executor — an LLM-backed child agent that takes a task and
|
|
46
|
+
* returns its result text.
|
|
47
|
+
*
|
|
48
|
+
* Deliberately has NO built-in fallback. `executeTask` used to settle every task
|
|
49
|
+
* as `completed` with `result = 'Task completed: <goal>'` and never call a model,
|
|
50
|
+
* so a parent agent summarised a child's "result" that was only its own
|
|
51
|
+
* instructions echoed back — success reported for work that never ran. Without an
|
|
52
|
+
* executor wired in, delegation now refuses with `not_configured` and names the
|
|
53
|
+
* working path (`delegate`, which requires a resolved LLM in the loop).
|
|
54
|
+
*
|
|
55
|
+
* See TOOL_TRUTHFULNESS_TRACKER.md finding #4.
|
|
56
|
+
*/
|
|
57
|
+
executor = null;
|
|
43
58
|
constructor() {
|
|
44
59
|
super();
|
|
45
60
|
this.ensureDirectories();
|
|
@@ -47,6 +62,22 @@ export class DelegationManager extends EventEmitter {
|
|
|
47
62
|
this.startStallMonitor();
|
|
48
63
|
this.recoverCompletionQueue();
|
|
49
64
|
}
|
|
65
|
+
// ─── Executor wiring ────────────────────────────────────────────
|
|
66
|
+
/**
|
|
67
|
+
* Wire a real child executor. Until one is set, every task fails fast with a
|
|
68
|
+
* typed `not_configured` result instead of a fabricated completion.
|
|
69
|
+
*/
|
|
70
|
+
setExecutor(fn) {
|
|
71
|
+
this.executor = fn;
|
|
72
|
+
}
|
|
73
|
+
/** Whether a real child executor is wired (surfaced in the tool description). */
|
|
74
|
+
hasExecutor() {
|
|
75
|
+
return this.executor !== null;
|
|
76
|
+
}
|
|
77
|
+
/** Clear the executor — delegation goes back to refusing rather than simulating. */
|
|
78
|
+
clearExecutor() {
|
|
79
|
+
this.executor = null;
|
|
80
|
+
}
|
|
50
81
|
// ─── Configuration ──────────────────────────────────────────────
|
|
51
82
|
/** Update delegation configuration. */
|
|
52
83
|
configure(config) {
|
|
@@ -199,12 +230,15 @@ export class DelegationManager extends EventEmitter {
|
|
|
199
230
|
}
|
|
200
231
|
this.delegations.get(delegationId).push(task);
|
|
201
232
|
this.logEntry(taskId, 'lifecycle', `Task created: ${goal}`);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
233
|
+
// Start execution for EVERY mode. `async` returns immediately (the caller polls
|
|
234
|
+
// or drains); sync/batch callers await the result through waitForCompletion().
|
|
235
|
+
//
|
|
236
|
+
// Only `async` used to start the task, so `delegate_system` action:"delegate"
|
|
237
|
+
// returned a task stuck at `pending` that never ran — an agent reading that JSON
|
|
238
|
+
// saw a delegation that had been accepted, while nothing was ever executed.
|
|
239
|
+
this.executeTask(taskId).catch((err) => {
|
|
240
|
+
logger.error(`Delegation: Task ${taskId} failed: ${err}`);
|
|
241
|
+
});
|
|
208
242
|
return task;
|
|
209
243
|
}
|
|
210
244
|
/**
|
|
@@ -423,9 +457,33 @@ export class DelegationManager extends EventEmitter {
|
|
|
423
457
|
task.startedAt = Date.now();
|
|
424
458
|
this.activeChildren.add(taskId);
|
|
425
459
|
this.logEntry(taskId, 'lifecycle', 'Task started');
|
|
460
|
+
// No executor → refuse before spending the retry budget. A retry cannot fix a
|
|
461
|
+
// missing executor, and reporting `completed` for it is the defect being fixed.
|
|
462
|
+
if (!this.executor) {
|
|
463
|
+
task.status = 'failed';
|
|
464
|
+
task.error =
|
|
465
|
+
'No child executor is wired into DelegationManager, so this task did NOT run. ' +
|
|
466
|
+
'Use the `delegate` tool — it spawns a real sub-agent through the resolved LLM in the loop.';
|
|
467
|
+
// Both alternatives RUN; that is the only reason either is named. `subagent`
|
|
468
|
+
// was removed here when P4.1 showed its spawn path could not execute at all
|
|
469
|
+
// (a refusal pointing at a path that performs no work is the defect this
|
|
470
|
+
// whole method exists to report) and is back now that it forks a real
|
|
471
|
+
// process, resolves a real provider and refuses instead of faking output.
|
|
472
|
+
Object.assign(task, refusalFields('not_configured', [
|
|
473
|
+
'delegate — spawns a real sub-agent (requires a resolved LLM in the tool loop)',
|
|
474
|
+
'subagent — spawns a real child process that resolves its own provider (requires a configured provider)',
|
|
475
|
+
]));
|
|
476
|
+
task.completedAt = Date.now();
|
|
477
|
+
task.durationMs = task.completedAt - (task.startedAt || task.createdAt);
|
|
478
|
+
this.activeChildren.delete(taskId);
|
|
479
|
+
this.logEntry(taskId, 'error', `Task refused: ${task.error}`);
|
|
480
|
+
this.emit(`completed:${taskId}`, this.buildResult(task));
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
426
483
|
try {
|
|
427
484
|
// Build system prompt
|
|
428
485
|
const systemPrompt = this.buildSystemPrompt(task);
|
|
486
|
+
void systemPrompt;
|
|
429
487
|
// Execute with retry
|
|
430
488
|
let lastError;
|
|
431
489
|
for (let attempt = 0; attempt <= task.maxRetries; attempt++) {
|
|
@@ -440,11 +498,12 @@ export class DelegationManager extends EventEmitter {
|
|
|
440
498
|
return;
|
|
441
499
|
}
|
|
442
500
|
try {
|
|
443
|
-
// Simulate task execution (in real implementation, this would call the LLM)
|
|
444
501
|
this.logEntry(taskId, 'thinking', `Executing goal: ${task.goal}`);
|
|
445
|
-
//
|
|
502
|
+
// Real execution: the injected executor owns the LLM call. Its own output
|
|
503
|
+
// is the result — never a string we synthesise from the goal.
|
|
504
|
+
const output = await this.executor(task);
|
|
446
505
|
task.status = 'completed';
|
|
447
|
-
task.result =
|
|
506
|
+
task.result = output;
|
|
448
507
|
task.completedAt = Date.now();
|
|
449
508
|
task.durationMs = task.completedAt - (task.startedAt || task.createdAt);
|
|
450
509
|
this.activeChildren.delete(taskId);
|
|
@@ -502,6 +561,8 @@ export class DelegationManager extends EventEmitter {
|
|
|
502
561
|
durationMs: task.durationMs || 0,
|
|
503
562
|
toolCalls: 0,
|
|
504
563
|
summary: task.result || task.error || 'No result',
|
|
564
|
+
...(task.code ? { code: task.code } : {}),
|
|
565
|
+
...(task.alternatives ? { alternatives: task.alternatives } : {}),
|
|
505
566
|
};
|
|
506
567
|
}
|
|
507
568
|
logEntry(taskId, type, content, metadata) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-system.js","sourceRoot":"","sources":["../../src/tools/delegation-system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA8D5C,6EAA6E;AAE7E,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACxE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAkBjE,MAAM,cAAc,GAAqB;IACvC,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,OAAO;IACvB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACzC,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC/C,WAAW,GAAkC,IAAI,GAAG,EAAE,CAAC;IACvD,eAAe,GAAuB,EAAE,CAAC;IACzC,UAAU,GAAoC,IAAI,GAAG,EAAE,CAAC;IACxD,MAAM,GAAqB,EAAE,GAAG,cAAc,EAAE,CAAC;IACjD,cAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;IACxC,WAAW,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE7D;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,mEAAmE;IAEnE,uCAAuC;IACvC,SAAS,CAAC,MAAiC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,qBAAqB,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7I,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,iCAAiC;IACjC,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,qCAAqC;IACrC,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,2BAA2B;YAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,QAAQ,CAAC,YAAqB;QAC5B,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC9D,CAAC;QACD,oBAAoB;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,IAAI,CAAC,MAAM,CAAC,qBAAqB,WAAW,EAAE,CAAC;QAC9G,CAAC;QACD,cAAc;QACd,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,IAAI,CAAC,MAAM,CAAC,aAAa,sBAAsB,KAAK,EAAE,EAAE,CAAC;YAChH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,wCAAwC;IAChC,aAAa,CAAC,MAAc;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY;gBAAE,MAAM;YACvC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACpC,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAC,MAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,0DAA0D;QAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,yDAAyD,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,aAAa,CAAC,MAAc;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,oEAAoE;IAE5D,iBAAiB;QACvB,uCAAuC;QACvC,WAAW,CAAC,GAAG,EAAE;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,SAAS;gBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;gBAC1E,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,iBAAiB,CAAC;oBACzE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED,yCAAyC;IACzC,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,4DAA4D;IAC5D,YAAY,CAAC,MAAc;QACzB,MAAM,IAAI,GAAuD,EAAE,CAAC;QACpE,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,MAAM;YACjB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;YAC1C,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IAErE;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,UAUI,EAAE;QAEN,4DAA4D;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAmB;YAC3B,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;YACzC,OAAO,EAAE;gBACP,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC;gBACnC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;gBACxC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;aACjC;YACD,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;SACpC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAe,EACf,UAII,EAAE;QAEN,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,oDAAoD;QACpD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE1E,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,YAAoB,OAAO;QACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,cAAc,CAAC,aAAa,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAE;gBAC9C,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAe,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAc,EAAE,QAAmC;QAChE,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;YAClC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,SAAS,CAAC,CAAC,SAAS;YACvB,OAAO,IAAI,EAAE,CAAC;gBACZ,OAAO,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAClD,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;4BACrC,IAAI,CAAC;gCACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClD,CAAC;4BAAC,MAAM,CAAC;gCACP,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,sEAAsE;IAEtE;;OAEG;IACH,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,sEAAsE;IAE9D,YAAY,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEjE;;OAEG;IACH,mBAAmB,CAAC,MAAyB;QAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,QAAQ,aAAa,EAAE,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;aACtD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACxF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,sEAAsE;IAE9D,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAElD,qBAAqB;YACrB,IAAI,SAA6B,CAAC;YAClC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC5D,0CAA0C;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,KAAK,GAAG,uBAAuB,CAAC;oBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,4BAA4B,CAAC,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,4EAA4E;oBAC5E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAElE,6BAA6B;oBAC7B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAEnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEzD,0BAA0B;oBAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,OAAO,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;oBAE9E,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,CAAC,UAAU,aAAa,SAAS,EAAE,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAoB;QAC5C,MAAM,KAAK,GAAG;YACZ,mCAAmC,IAAI,CAAC,IAAI,EAAE;YAC9C,EAAE;YACF,eAAe,IAAI,CAAC,SAAS,EAAE;YAC/B,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;SACvF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,IAAoB;QACtC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,KAAK,WAAW;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;YAChC,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW;SAClD,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,MAAc,EAAE,IAAkB,EAAE,OAAe,EAAE,QAAkC;QACtG,MAAM,KAAK,GAAa;YACtB,MAAM;YACN,IAAI;YACJ,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ;SACT,CAAC;QAEF,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;gBAAE,OAAO;YAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACnF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;oBACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;oBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC;YACH,oBAAoB;YACpB,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;oBAClE,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;gBACzE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAEO,sBAAsB;QAC5B,6DAA6D;QAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,6EAA6E;AAE7E,IAAI,SAAS,GAA6B,IAAI,CAAC;AAE/C,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"delegation-system.js","sourceRoot":"","sources":["../../src/tools/delegation-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX text extraction via `mammoth`.
|
|
3
|
+
*
|
|
4
|
+
* A `.docx` is a ZIP of XML parts — reading it as UTF-8 and stripping tags
|
|
5
|
+
* (the old implementation) recovers the container, not the words. Mammoth parses
|
|
6
|
+
* the OOXML properly, so it resolves styles, numbering and tables, and reports the
|
|
7
|
+
* parts it could not represent.
|
|
8
|
+
*
|
|
9
|
+
* Mammoth's HTML output is then run through `htmlToText`, which keeps table cells
|
|
10
|
+
* on one line separated by ` | ` — the shape a reader needs to pair a value with
|
|
11
|
+
* its reference range. Mammoth's own markdown output was not used because it does
|
|
12
|
+
* not represent tables.
|
|
13
|
+
*/
|
|
14
|
+
export interface DocxExtractResult {
|
|
15
|
+
text: string;
|
|
16
|
+
/** Non-fatal problems mammoth reported (unsupported styles, etc.). */
|
|
17
|
+
warnings: string[];
|
|
18
|
+
truncated: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** Thrown when the bytes are not a readable DOCX. */
|
|
21
|
+
export declare class DocxExtractError extends Error {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
24
|
+
export declare function extractDocxText(bytes: Buffer, opts: {
|
|
25
|
+
maxChars: number;
|
|
26
|
+
}): Promise<DocxExtractResult>;
|
|
27
|
+
//# sourceMappingURL=docx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/docx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qDAAqD;AACrD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX text extraction via `mammoth`.
|
|
3
|
+
*
|
|
4
|
+
* A `.docx` is a ZIP of XML parts — reading it as UTF-8 and stripping tags
|
|
5
|
+
* (the old implementation) recovers the container, not the words. Mammoth parses
|
|
6
|
+
* the OOXML properly, so it resolves styles, numbering and tables, and reports the
|
|
7
|
+
* parts it could not represent.
|
|
8
|
+
*
|
|
9
|
+
* Mammoth's HTML output is then run through `htmlToText`, which keeps table cells
|
|
10
|
+
* on one line separated by ` | ` — the shape a reader needs to pair a value with
|
|
11
|
+
* its reference range. Mammoth's own markdown output was not used because it does
|
|
12
|
+
* not represent tables.
|
|
13
|
+
*/
|
|
14
|
+
import { htmlToText } from './html-text.js';
|
|
15
|
+
/** Thrown when the bytes are not a readable DOCX. */
|
|
16
|
+
export class DocxExtractError extends Error {
|
|
17
|
+
constructor(message) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = 'DocxExtractError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function extractDocxText(bytes, opts) {
|
|
23
|
+
const mod = await import('mammoth');
|
|
24
|
+
const convertToHtml = mod.default?.convertToHtml
|
|
25
|
+
?? mod.convertToHtml;
|
|
26
|
+
if (typeof convertToHtml !== 'function') {
|
|
27
|
+
throw new DocxExtractError('The DOCX reader (mammoth) did not load correctly.');
|
|
28
|
+
}
|
|
29
|
+
let value;
|
|
30
|
+
let messages;
|
|
31
|
+
try {
|
|
32
|
+
const result = await convertToHtml({ buffer: bytes });
|
|
33
|
+
value = result.value;
|
|
34
|
+
messages = result.messages ?? [];
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
38
|
+
throw new DocxExtractError(`The DOCX could not be read: ${msg}`);
|
|
39
|
+
}
|
|
40
|
+
const full = htmlToText(value);
|
|
41
|
+
const truncated = full.length > opts.maxChars;
|
|
42
|
+
return {
|
|
43
|
+
text: truncated ? `${full.slice(0, opts.maxChars)}\n…[truncated]` : full,
|
|
44
|
+
warnings: messages.map((m) => (typeof m === 'string' ? m : JSON.stringify(m))).slice(0, 10),
|
|
45
|
+
truncated,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=docx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.js","sourceRoot":"","sources":["../../../src/tools/extract/docx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAS5C,qDAAqD;AACrD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,IAA0B;IAM1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,aAAa,GAChB,GAAkE,CAAC,OAAO,EAAE,aAAa;WACtF,GAAG,CAAC,aAAsD,CAAC;IAEjE,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,gBAAgB,CAAC,mDAAmD,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,KAAa,CAAC;IAClB,IAAI,QAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,gBAAgB,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QACxE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3F,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structure-preserving HTML → text, plus the entity decoding the XML formats share.
|
|
3
|
+
*
|
|
4
|
+
* This is deliberately NOT `replace(/<[^>]+>/g, ' ')`. Flattening tags to spaces
|
|
5
|
+
* (what `extractHTML` used to do) throws away the row/column structure — the one
|
|
6
|
+
* thing a table-shaped document is made of. A lab report read that way gives the
|
|
7
|
+
* model every value with no idea which reference range it belongs to, and an
|
|
8
|
+
* agent asked to assess it is left guessing at the pairing.
|
|
9
|
+
*
|
|
10
|
+
* So cells stay on one line separated by ` | `, rows become lines, paragraphs
|
|
11
|
+
* become lines, and entities are decoded. Lossy in layout terms, faithful in
|
|
12
|
+
* value-to-value terms — which is the pairing that matters.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Decode XML/HTML entities: named, decimal (`A`) and hex (`A`).
|
|
16
|
+
* Exported because the PPTX reader needs the same decoding for `<a:t>` runs.
|
|
17
|
+
*/
|
|
18
|
+
export declare function decodeEntities(input: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Convert an HTML fragment to text, keeping tabular structure.
|
|
21
|
+
*
|
|
22
|
+
* Block-level closes emit a newline; cell closes emit a column separator; `<li>`
|
|
23
|
+
* becomes a bullet. Runs of spaces are collapsed (tags leave gaps behind) and
|
|
24
|
+
* blank lines are collapsed to at most one.
|
|
25
|
+
*/
|
|
26
|
+
export declare function htmlToText(html: string): string;
|
|
27
|
+
//# sourceMappingURL=html-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-text.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/html-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC/C"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structure-preserving HTML → text, plus the entity decoding the XML formats share.
|
|
3
|
+
*
|
|
4
|
+
* This is deliberately NOT `replace(/<[^>]+>/g, ' ')`. Flattening tags to spaces
|
|
5
|
+
* (what `extractHTML` used to do) throws away the row/column structure — the one
|
|
6
|
+
* thing a table-shaped document is made of. A lab report read that way gives the
|
|
7
|
+
* model every value with no idea which reference range it belongs to, and an
|
|
8
|
+
* agent asked to assess it is left guessing at the pairing.
|
|
9
|
+
*
|
|
10
|
+
* So cells stay on one line separated by ` | `, rows become lines, paragraphs
|
|
11
|
+
* become lines, and entities are decoded. Lossy in layout terms, faithful in
|
|
12
|
+
* value-to-value terms — which is the pairing that matters.
|
|
13
|
+
*/
|
|
14
|
+
/** Named entities that actually appear in document XML/HTML. */
|
|
15
|
+
const NAMED_ENTITIES = {
|
|
16
|
+
amp: '&',
|
|
17
|
+
lt: '<',
|
|
18
|
+
gt: '>',
|
|
19
|
+
quot: '"',
|
|
20
|
+
apos: "'",
|
|
21
|
+
nbsp: ' ',
|
|
22
|
+
'#39': "'",
|
|
23
|
+
mdash: '—',
|
|
24
|
+
ndash: '–',
|
|
25
|
+
hellip: '…',
|
|
26
|
+
rsquo: '\u2019',
|
|
27
|
+
lsquo: '\u2018',
|
|
28
|
+
rdquo: '\u201d',
|
|
29
|
+
ldquo: '\u201c',
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Decode XML/HTML entities: named, decimal (`A`) and hex (`A`).
|
|
33
|
+
* Exported because the PPTX reader needs the same decoding for `<a:t>` runs.
|
|
34
|
+
*/
|
|
35
|
+
export function decodeEntities(input) {
|
|
36
|
+
return input.replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g, (whole, body) => {
|
|
37
|
+
if (body.startsWith('#x') || body.startsWith('#X')) {
|
|
38
|
+
const cp = Number.parseInt(body.slice(2), 16);
|
|
39
|
+
return Number.isFinite(cp) && cp > 0 ? String.fromCodePoint(cp) : whole;
|
|
40
|
+
}
|
|
41
|
+
if (body.startsWith('#')) {
|
|
42
|
+
const cp = Number.parseInt(body.slice(1), 10);
|
|
43
|
+
return Number.isFinite(cp) && cp > 0 ? String.fromCodePoint(cp) : whole;
|
|
44
|
+
}
|
|
45
|
+
const named = NAMED_ENTITIES[body.toLowerCase()];
|
|
46
|
+
return named ?? whole;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Convert an HTML fragment to text, keeping tabular structure.
|
|
51
|
+
*
|
|
52
|
+
* Block-level closes emit a newline; cell closes emit a column separator; `<li>`
|
|
53
|
+
* becomes a bullet. Runs of spaces are collapsed (tags leave gaps behind) and
|
|
54
|
+
* blank lines are collapsed to at most one.
|
|
55
|
+
*/
|
|
56
|
+
export function htmlToText(html) {
|
|
57
|
+
let s = html
|
|
58
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
59
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
60
|
+
.replace(/<!--[\s\S]*?-->/g, '');
|
|
61
|
+
// Structural replacements, most specific first.
|
|
62
|
+
s = s
|
|
63
|
+
.replace(/<br\s*\/?>/gi, '\n')
|
|
64
|
+
.replace(/<\/(td|th)\s*>/gi, ' | ')
|
|
65
|
+
.replace(/<li[^>]*>/gi, '\n- ')
|
|
66
|
+
.replace(/<\/(p|div|tr|li|h[1-6]|blockquote|pre|section|article|header|footer|figcaption)\s*>/gi, '\n');
|
|
67
|
+
// Everything else is markup; drop it.
|
|
68
|
+
s = s.replace(/<[^>]+>/g, '');
|
|
69
|
+
// Decode AFTER tag removal so an encoded `<b>` in the document is not
|
|
70
|
+
// mistaken for markup.
|
|
71
|
+
s = decodeEntities(s);
|
|
72
|
+
// A block INSIDE a cell (mammoth emits `<td><p>Glucose</p></td>`) leaves the cell
|
|
73
|
+
// separator on the following line. Pull it back up, so the cell's text and its
|
|
74
|
+
// separator stay on one line — otherwise every table row reads as its cells on
|
|
75
|
+
// separate lines and the value/column pairing is lost.
|
|
76
|
+
s = s
|
|
77
|
+
.replace(/\n[ \t]*\|/g, ' | ') // newline before a separator
|
|
78
|
+
.replace(/\|[ \t]*\n/g, ' |\n'); // separator before a newline (row end)
|
|
79
|
+
return s
|
|
80
|
+
.split('\n')
|
|
81
|
+
.map((line) => line.replace(/[ \t\u00a0]+/g, ' ').replace(/\s*\|\s*$/, '').trim())
|
|
82
|
+
.join('\n')
|
|
83
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
84
|
+
.trim();
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=html-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-text.js","sourceRoot":"","sources":["../../../src/tools/extract/html-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanned-PDF OCR route (P1.4) — text recovery for a PDF with no text layer.
|
|
3
|
+
*
|
|
4
|
+
* Rendering a PDF page to a raster needs a canvas. pdf.js in Node renders to a canvas
|
|
5
|
+
* it does not ship, so the options were a native canvas package (a platform binary on
|
|
6
|
+
* every install, for a path most documents never need) or an external rasteriser.
|
|
7
|
+
* This uses Poppler's `pdftoppm` / `pdftocairo` **when it exists on PATH** — the same
|
|
8
|
+
* `binaryOnPath` probe idiom `modality/browser.ts` uses for Playwright — and refuses
|
|
9
|
+
* with `not_configured` when it does not, naming what to install.
|
|
10
|
+
*
|
|
11
|
+
* It is deliberately OPT-IN (the `ocr` flag on read_extract) rather than automatic:
|
|
12
|
+
* this path costs a vision-model call per page and produces transcribed, not parsed,
|
|
13
|
+
* text. A caller that did not ask for that should not silently pay for it — and the
|
|
14
|
+
* refusal for a scanned PDF says exactly how to ask.
|
|
15
|
+
*
|
|
16
|
+
* The text recovered here is labelled (`metadata.ocr: true` plus a warning), because
|
|
17
|
+
* a transcription is a different kind of evidence from an extraction: it can drop or
|
|
18
|
+
* misread a digit, and the model reading a lab value needs to know that.
|
|
19
|
+
*/
|
|
20
|
+
import { type VisionOptions } from '../modality/vision.js';
|
|
21
|
+
/** Bounded so a 40-page scan cannot turn into 40 vision calls on one tool step. */
|
|
22
|
+
export declare const MAX_OCR_PAGES = 8;
|
|
23
|
+
export interface PdfOcrOptions {
|
|
24
|
+
/** Injectable renderer probe (tests pass one; production uses PATH). */
|
|
25
|
+
renderProbe?: (bin: string) => boolean;
|
|
26
|
+
/** Vision backend options (probe is injectable for tests). */
|
|
27
|
+
vision?: VisionOptions;
|
|
28
|
+
/** Max pages to transcribe (default MAX_OCR_PAGES). */
|
|
29
|
+
maxPages?: number;
|
|
30
|
+
/** Raster resolution (default 150 dpi — enough for body text without huge images). */
|
|
31
|
+
dpi?: number;
|
|
32
|
+
}
|
|
33
|
+
/** The rasteriser this machine can use, or null. */
|
|
34
|
+
export declare function findRenderer(probe?: (bin: string) => boolean): string | null;
|
|
35
|
+
/** Whether the OCR route could run here: a rasteriser AND a vision backend. */
|
|
36
|
+
export declare function isPdfOcrAvailable(opts?: PdfOcrOptions): Promise<boolean>;
|
|
37
|
+
export interface PdfOcrResult {
|
|
38
|
+
text: string;
|
|
39
|
+
/** Pages actually transcribed. */
|
|
40
|
+
pagesTranscribed: number;
|
|
41
|
+
/** Pages the document had, when the caller knows it. */
|
|
42
|
+
truncated: boolean;
|
|
43
|
+
/** The renderer used, for provenance. */
|
|
44
|
+
renderer: string;
|
|
45
|
+
}
|
|
46
|
+
export declare class PdfOcrError extends Error {
|
|
47
|
+
readonly code: 'not_configured' | 'unavailable';
|
|
48
|
+
constructor(message: string, code: 'not_configured' | 'unavailable');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Render up to `maxPages` pages of `pdfPath` and transcribe them with the vision
|
|
52
|
+
* backend, returning the concatenated text.
|
|
53
|
+
*
|
|
54
|
+
* Throws `PdfOcrError` with a typed code when a prerequisite is missing, so the
|
|
55
|
+
* caller can turn it into a refusal with alternatives rather than a bare message.
|
|
56
|
+
*/
|
|
57
|
+
export declare function ocrScannedPdf(pdfPath: string, totalPages: number, opts?: PdfOcrOptions): Promise<PdfOcrResult>;
|
|
58
|
+
//# sourceMappingURL=pdf-ocr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf-ocr.d.ts","sourceRoot":"","sources":["../../../src/tools/extract/pdf-ocr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAe7F,mFAAmF;AACnF,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAsB,GAAG,MAAM,GAAG,IAAI,CAK1F;AAED,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAIlF;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,KAAK;IACP,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa;gBAAhE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,gBAAgB,GAAG,aAAa;CAI7E;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAmEvB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanned-PDF OCR route (P1.4) — text recovery for a PDF with no text layer.
|
|
3
|
+
*
|
|
4
|
+
* Rendering a PDF page to a raster needs a canvas. pdf.js in Node renders to a canvas
|
|
5
|
+
* it does not ship, so the options were a native canvas package (a platform binary on
|
|
6
|
+
* every install, for a path most documents never need) or an external rasteriser.
|
|
7
|
+
* This uses Poppler's `pdftoppm` / `pdftocairo` **when it exists on PATH** — the same
|
|
8
|
+
* `binaryOnPath` probe idiom `modality/browser.ts` uses for Playwright — and refuses
|
|
9
|
+
* with `not_configured` when it does not, naming what to install.
|
|
10
|
+
*
|
|
11
|
+
* It is deliberately OPT-IN (the `ocr` flag on read_extract) rather than automatic:
|
|
12
|
+
* this path costs a vision-model call per page and produces transcribed, not parsed,
|
|
13
|
+
* text. A caller that did not ask for that should not silently pay for it — and the
|
|
14
|
+
* refusal for a scanned PDF says exactly how to ask.
|
|
15
|
+
*
|
|
16
|
+
* The text recovered here is labelled (`metadata.ocr: true` plus a warning), because
|
|
17
|
+
* a transcription is a different kind of evidence from an extraction: it can drop or
|
|
18
|
+
* misread a digit, and the model reading a lab value needs to know that.
|
|
19
|
+
*/
|
|
20
|
+
import { execFile } from 'node:child_process';
|
|
21
|
+
import { promisify } from 'node:util';
|
|
22
|
+
import { readdirSync, rmSync } from 'node:fs';
|
|
23
|
+
import { join } from 'node:path';
|
|
24
|
+
import { artifactsDir, binaryOnPath } from '../modality/shared.js';
|
|
25
|
+
import { describeImage, isVisionAvailable } from '../modality/vision.js';
|
|
26
|
+
const execFileAsync = promisify(execFile);
|
|
27
|
+
/** Rasterisers, in preference order. `pdftocairo` gives PNG directly on more builds. */
|
|
28
|
+
const RENDERERS = [
|
|
29
|
+
{ bin: 'pdftoppm', args: (r) => ['-r', String(r), '-png'] },
|
|
30
|
+
{ bin: 'pdftocairo', args: (r) => ['-png', '-r', String(r)] },
|
|
31
|
+
];
|
|
32
|
+
/** Prompt for OCR-via-vision-model: the text ONLY, nothing else. */
|
|
33
|
+
const OCR_PAGE_PROMPT = 'Transcribe ALL visible text in this image exactly as it appears, preserving line breaks and table '
|
|
34
|
+
+ 'rows/columns. Output only the transcription, with no preamble and no commentary.';
|
|
35
|
+
/** Bounded so a 40-page scan cannot turn into 40 vision calls on one tool step. */
|
|
36
|
+
export const MAX_OCR_PAGES = 8;
|
|
37
|
+
/** The rasteriser this machine can use, or null. */
|
|
38
|
+
export function findRenderer(probe = binaryOnPath) {
|
|
39
|
+
for (const r of RENDERERS) {
|
|
40
|
+
if (probe(r.bin))
|
|
41
|
+
return r.bin;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
/** Whether the OCR route could run here: a rasteriser AND a vision backend. */
|
|
46
|
+
export async function isPdfOcrAvailable(opts = {}) {
|
|
47
|
+
const probe = opts.renderProbe ?? binaryOnPath;
|
|
48
|
+
if (findRenderer(probe) === null)
|
|
49
|
+
return false;
|
|
50
|
+
return isVisionAvailable(opts.vision ?? {});
|
|
51
|
+
}
|
|
52
|
+
export class PdfOcrError extends Error {
|
|
53
|
+
code;
|
|
54
|
+
constructor(message, code) {
|
|
55
|
+
super(message);
|
|
56
|
+
this.code = code;
|
|
57
|
+
this.name = 'PdfOcrError';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Render up to `maxPages` pages of `pdfPath` and transcribe them with the vision
|
|
62
|
+
* backend, returning the concatenated text.
|
|
63
|
+
*
|
|
64
|
+
* Throws `PdfOcrError` with a typed code when a prerequisite is missing, so the
|
|
65
|
+
* caller can turn it into a refusal with alternatives rather than a bare message.
|
|
66
|
+
*/
|
|
67
|
+
export async function ocrScannedPdf(pdfPath, totalPages, opts = {}) {
|
|
68
|
+
const probe = opts.renderProbe ?? binaryOnPath;
|
|
69
|
+
const renderer = findRenderer(probe);
|
|
70
|
+
if (renderer === null) {
|
|
71
|
+
throw new PdfOcrError('No PDF rasteriser is available, so the pages cannot be turned into images for OCR '
|
|
72
|
+
+ '(install Poppler: `pdftoppm` / `pdftocairo`).', 'not_configured');
|
|
73
|
+
}
|
|
74
|
+
if (!(await isVisionAvailable(opts.vision ?? {}))) {
|
|
75
|
+
throw new PdfOcrError('No vision backend is configured (a local Ollama vision model such as llava/llama3.2-vision, '
|
|
76
|
+
+ 'or a Gemini API key), so there is nothing to transcribe the rendered pages with.', 'not_configured');
|
|
77
|
+
}
|
|
78
|
+
const dpi = opts.dpi ?? 150;
|
|
79
|
+
const maxPages = opts.maxPages ?? MAX_OCR_PAGES;
|
|
80
|
+
const pages = Math.max(1, Math.min(totalPages || 1, maxPages));
|
|
81
|
+
const dir = artifactsDir('ocr');
|
|
82
|
+
const prefix = join(dir, `scan-${Date.now().toString(36)}`);
|
|
83
|
+
try {
|
|
84
|
+
const spec = RENDERERS.find((r) => r.bin === renderer);
|
|
85
|
+
await execFileAsync(renderer, [...spec.args(dpi), '-f', '1', '-l', String(pages), pdfPath, prefix], { timeout: 120_000, maxBuffer: 8 * 1024 * 1024 });
|
|
86
|
+
const images = readdirSync(dir)
|
|
87
|
+
.filter((f) => f.startsWith(`${prefix.split('/').pop()}`) && /\.(png|jpe?g)$/i.test(f))
|
|
88
|
+
.sort()
|
|
89
|
+
.map((f) => join(dir, f));
|
|
90
|
+
if (images.length === 0) {
|
|
91
|
+
throw new PdfOcrError('The rasteriser produced no images for this PDF.', 'unavailable');
|
|
92
|
+
}
|
|
93
|
+
const parts = [];
|
|
94
|
+
for (let i = 0; i < images.length; i++) {
|
|
95
|
+
const described = await describeImage(images[i], OCR_PAGE_PROMPT, opts.vision ?? {});
|
|
96
|
+
if (!described.ok || !described.description) {
|
|
97
|
+
throw new PdfOcrError(`The vision backend could not read page ${i + 1}: ${described.error ?? 'no output'}`, 'unavailable');
|
|
98
|
+
}
|
|
99
|
+
parts.push(`[Page ${i + 1} — transcribed by OCR]\n${described.description.trim()}`);
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
text: parts.join('\n\n'),
|
|
103
|
+
pagesTranscribed: images.length,
|
|
104
|
+
truncated: (totalPages || images.length) > images.length,
|
|
105
|
+
renderer,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
// The rendered pages are intermediates — a scan's images should not accumulate
|
|
110
|
+
// in the artifacts dir after the text has been recovered.
|
|
111
|
+
for (const f of readdirSync(dir).filter((n) => n.startsWith(prefix.split('/').pop()))) {
|
|
112
|
+
rmSync(join(dir, f), { force: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=pdf-ocr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf-ocr.js","sourceRoot":"","sources":["../../../src/tools/extract/pdf-ocr.ts"],"names":[],"mappings":"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"}
|