whale-code 6.5.6 → 6.5.7
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 +1 -1
- package/bin/whale-code.js +23 -0
- package/dist/cli/__tests__/print-mode-streaming.test.js +270 -0
- package/dist/cli/__tests__/print-mode.basic-output.test.js +230 -0
- package/dist/cli/__tests__/print-mode.session-errors.test.js +252 -0
- package/dist/cli/__tests__/print-mode.test.js +273 -0
- package/dist/cli/__tests__/serve-mode-messages.test.js +338 -0
- package/dist/cli/__tests__/serve-mode.messages.part2.test.js +266 -0
- package/dist/cli/__tests__/serve-mode.messages.test.js +277 -0
- package/dist/cli/__tests__/serve-mode.startup-http.test.js +279 -0
- package/dist/cli/__tests__/serve-mode.test.js +345 -0
- package/dist/cli/app.d.ts +1 -0
- package/dist/cli/app.js +8 -2
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/chat/ChatApp.d.ts +8 -36
- package/dist/cli/chat/ChatApp.js +135 -450
- package/dist/cli/chat/ChatApp.js.map +1 -1
- package/dist/cli/chat/ChatInput.d.ts +3 -2
- package/dist/cli/chat/ChatInput.js +37 -14
- package/dist/cli/chat/ChatInput.js.map +1 -1
- package/dist/cli/chat/ImsgManager.d.ts +20 -0
- package/dist/cli/chat/ImsgManager.js +341 -0
- package/dist/cli/chat/ImsgManager.js.map +1 -0
- package/dist/cli/chat/MarkdownText.d.ts +2 -1
- package/dist/cli/chat/MarkdownText.js +12 -8
- package/dist/cli/chat/MarkdownText.js.map +1 -1
- package/dist/cli/chat/MemoryManager.js +3 -2
- package/dist/cli/chat/MemoryManager.js.map +1 -1
- package/dist/cli/chat/MessageList.d.ts +1 -1
- package/dist/cli/chat/MessageList.js +119 -114
- package/dist/cli/chat/MessageList.js.map +1 -1
- package/dist/cli/chat/NodeManager.js +57 -170
- package/dist/cli/chat/NodeManager.js.map +1 -1
- package/dist/cli/chat/OverlayContext.d.ts +27 -0
- package/dist/cli/chat/OverlayContext.js +2 -0
- package/dist/cli/chat/OverlayContext.js.map +1 -0
- package/dist/cli/chat/PlanApproval.js +3 -2
- package/dist/cli/chat/PlanApproval.js.map +1 -1
- package/dist/cli/chat/RewindConfirmation.d.ts +12 -0
- package/dist/cli/chat/RewindConfirmation.js +243 -0
- package/dist/cli/chat/RewindConfirmation.js.map +1 -0
- package/dist/cli/chat/RewindViewer.js +5 -4
- package/dist/cli/chat/RewindViewer.js.map +1 -1
- package/dist/cli/chat/SessionManager.js +3 -2
- package/dist/cli/chat/SessionManager.js.map +1 -1
- package/dist/cli/chat/SlashMenu.d.ts +7 -24
- package/dist/cli/chat/SlashMenu.js +14 -183
- package/dist/cli/chat/SlashMenu.js.map +1 -1
- package/dist/cli/chat/StatusBar.d.ts +5 -2
- package/dist/cli/chat/StatusBar.js +80 -65
- package/dist/cli/chat/StatusBar.js.map +1 -1
- package/dist/cli/chat/StreamingText.d.ts +2 -1
- package/dist/cli/chat/StreamingText.js +2 -2
- package/dist/cli/chat/StreamingText.js.map +1 -1
- package/dist/cli/chat/SubagentPanel.d.ts +6 -6
- package/dist/cli/chat/SubagentPanel.js +159 -537
- package/dist/cli/chat/SubagentPanel.js.map +1 -1
- package/dist/cli/chat/TeamPanel.js +2 -30
- package/dist/cli/chat/TeamPanel.js.map +1 -1
- package/dist/cli/chat/ToolIndicator.d.ts +7 -23
- package/dist/cli/chat/ToolIndicator.js +543 -1443
- package/dist/cli/chat/ToolIndicator.js.map +1 -1
- package/dist/cli/chat/chat-input-menu-handler.d.ts +32 -0
- package/dist/cli/chat/components/LiveArea.d.ts +12 -0
- package/dist/cli/chat/components/LiveArea.js +252 -0
- package/dist/cli/chat/components/LiveArea.js.map +1 -0
- package/dist/cli/chat/components/OverlayRouter.d.ts +13 -0
- package/dist/cli/chat/components/OverlayRouter.js +257 -0
- package/dist/cli/chat/components/OverlayRouter.js.map +1 -0
- package/dist/cli/chat/components/StaticMessages.d.ts +9 -0
- package/dist/cli/chat/components/StaticMessages.js +132 -0
- package/dist/cli/chat/components/StaticMessages.js.map +1 -0
- package/dist/cli/chat/hooks/agent-loop-events.d.ts +77 -0
- package/dist/cli/chat/hooks/agent-loop-events.js +171 -0
- package/dist/cli/chat/hooks/agent-loop-events.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-config-system.d.ts +11 -0
- package/dist/cli/chat/hooks/slash-command-config-system.js +177 -0
- package/dist/cli/chat/hooks/slash-command-config-system.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.d.ts +12 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.js +127 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-handlers.d.ts +21 -0
- package/dist/cli/chat/hooks/slash-command-handlers.js +222 -0
- package/dist/cli/chat/hooks/slash-command-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/slash-imsg-handlers.js +148 -0
- package/dist/cli/chat/hooks/slash-imsg-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/slash-node-handlers.d.ts +26 -0
- package/dist/cli/chat/hooks/slash-node-handlers.js +226 -0
- package/dist/cli/chat/hooks/slash-node-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/useAgentLoop.d.ts +2 -21
- package/dist/cli/chat/hooks/useAgentLoop.js +258 -401
- package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -1
- package/dist/cli/chat/hooks/useElapsedClock.d.ts +19 -0
- package/dist/cli/chat/hooks/useElapsedClock.js +80 -0
- package/dist/cli/chat/hooks/useElapsedClock.js.map +1 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.d.ts +23 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.js +125 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.js.map +1 -0
- package/dist/cli/chat/hooks/useSlashCommands.d.ts +14 -22
- package/dist/cli/chat/hooks/useSlashCommands.js +99 -720
- package/dist/cli/chat/hooks/useSlashCommands.js.map +1 -1
- package/dist/cli/chat/hooks/useStreamingReducer.d.ts +66 -0
- package/dist/cli/chat/imsg-manager-render.d.ts +29 -0
- package/dist/cli/chat/imsg-manager-render.js +294 -0
- package/dist/cli/chat/imsg-manager-render.js.map +1 -0
- package/dist/cli/chat/slash-commands.d.ts +37 -0
- package/dist/cli/chat/slash-commands.js +194 -0
- package/dist/cli/chat/slash-commands.js.map +1 -0
- package/dist/cli/chat/store.d.ts +115 -0
- package/dist/cli/chat/store.js +177 -0
- package/dist/cli/chat/store.js.map +1 -0
- package/dist/cli/chat/tool-indicator-helpers.d.ts +14 -0
- package/dist/cli/chat/tool-indicator-helpers.js +167 -0
- package/dist/cli/chat/tool-indicator-helpers.js.map +1 -0
- package/dist/cli/chat/tool-indicator-summary.d.ts +6 -0
- package/dist/cli/chat/tool-indicator-summary.js +103 -0
- package/dist/cli/chat/tool-indicator-summary.js.map +1 -0
- package/dist/cli/chat/tool-indicator-types.d.ts +66 -0
- package/dist/cli/chat/tool-indicator-types.js +177 -0
- package/dist/cli/chat/tool-indicator-types.js.map +1 -0
- package/dist/cli/commands/__tests__/config-cmd.test.js +270 -0
- package/dist/cli/commands/__tests__/doctor.test.js +257 -0
- package/dist/cli/commands/__tests__/imsg-node-bridge.test.js +99 -0
- package/dist/cli/commands/__tests__/imsg-utils.test.js +73 -0
- package/dist/cli/commands/__tests__/init.test.js +214 -0
- package/dist/cli/commands/__tests__/mcp.test.js +287 -0
- package/dist/cli/commands/imsg-config.d.ts +31 -0
- package/dist/cli/commands/imsg-config.js +104 -0
- package/dist/cli/commands/imsg-config.js.map +1 -0
- package/dist/cli/commands/imsg-node-bridge.d.ts +25 -0
- package/dist/cli/commands/imsg-node-bridge.js +229 -0
- package/dist/cli/commands/imsg-node-bridge.js.map +1 -0
- package/dist/cli/commands/imsg-utils.d.ts +14 -0
- package/dist/cli/commands/imsg-utils.js +42 -0
- package/dist/cli/commands/imsg-utils.js.map +1 -0
- package/dist/cli/commands/imsg-watcher-helpers.d.ts +40 -0
- package/dist/cli/commands/imsg-watcher-helpers.js +184 -0
- package/dist/cli/commands/imsg-watcher-helpers.js.map +1 -0
- package/dist/cli/commands/imsg-watcher.d.ts +11 -0
- package/dist/cli/commands/imsg-watcher.js +230 -0
- package/dist/cli/commands/imsg-watcher.js.map +1 -0
- package/dist/cli/commands/imsg.d.ts +14 -0
- package/dist/cli/commands/imsg.js +181 -0
- package/dist/cli/commands/imsg.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +9 -0
- package/dist/cli/commands/sessions.js +93 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/login/LoginApp.js +3 -0
- package/dist/cli/login/LoginApp.js.map +1 -1
- package/dist/cli/serve-mode-persistence.d.ts +18 -0
- package/dist/cli/serve-mode-persistence.js +157 -0
- package/dist/cli/serve-mode-persistence.js.map +1 -0
- package/dist/cli/serve-mode-query.d.ts +9 -0
- package/dist/cli/serve-mode-query.js +247 -0
- package/dist/cli/serve-mode-query.js.map +1 -0
- package/dist/cli/serve-mode-types.d.ts +29 -0
- package/dist/cli/serve-mode-types.js +56 -0
- package/dist/cli/serve-mode-types.js.map +1 -0
- package/dist/cli/services/__tests__/agent-definitions.test.js +153 -0
- package/dist/cli/services/__tests__/agent-events-global.test.js +39 -0
- package/dist/cli/services/__tests__/agent-events.part2.test.js +113 -0
- package/dist/cli/services/__tests__/agent-events.test.js +157 -0
- package/dist/cli/services/__tests__/agent-loop-auth.test.js +392 -0
- package/dist/cli/services/__tests__/agent-loop-budget.test.js +389 -0
- package/dist/cli/services/__tests__/agent-loop-tools-lifecycle.test.js +430 -0
- package/dist/cli/services/__tests__/agent-loop-tools-maxturns.test.js +486 -0
- package/dist/cli/services/__tests__/agent-loop-utils-execution.test.js +528 -0
- package/dist/cli/services/__tests__/agent-loop-utils-helpers.test.js +466 -0
- package/dist/cli/services/__tests__/agent-worker-base-execute.test.js +257 -0
- package/dist/cli/services/__tests__/agent-worker-base-helpers.test.js +198 -0
- package/dist/cli/services/__tests__/agent-worker-base.test.js +278 -0
- package/dist/cli/services/__tests__/auth-service-exports.test.js +41 -0
- package/dist/cli/services/__tests__/auth-service.part2.test.js +169 -0
- package/dist/cli/services/__tests__/auth-service.test.js +242 -0
- package/dist/cli/services/__tests__/background-processes.test.js +282 -0
- package/dist/cli/services/__tests__/claude-md-loader.test.js +134 -0
- package/dist/cli/services/__tests__/config-store.test.js +247 -0
- package/dist/cli/services/__tests__/debug-log.test.js +199 -0
- package/dist/cli/services/__tests__/edge-cases-caching.test.js +174 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-core.test.js +226 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-openai.test.js +152 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-shapes.test.js +53 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-thinking.test.js +226 -0
- package/dist/cli/services/__tests__/edge-cases-compaction.test.js +131 -0
- package/dist/cli/services/__tests__/edge-cases-paths.test.js +86 -0
- package/dist/cli/services/__tests__/error-logger-messages.test.js +81 -0
- package/dist/cli/services/__tests__/error-logger-transport.test.js +119 -0
- package/dist/cli/services/__tests__/error-logger.test.js +264 -0
- package/dist/cli/services/__tests__/file-history.test.js +136 -0
- package/dist/cli/services/__tests__/git-context-cache-reset.test.js +223 -0
- package/dist/cli/services/__tests__/git-context.test.js +241 -0
- package/dist/cli/services/__tests__/interactive-tools-execute.test.js +166 -0
- package/dist/cli/services/__tests__/interactive-tools-plan.test.js +197 -0
- package/dist/cli/services/__tests__/interactive-tools.part2.test.js +168 -0
- package/dist/cli/services/__tests__/interactive-tools.test.js +179 -0
- package/dist/cli/services/__tests__/keybinding-manager.test.js +205 -0
- package/dist/cli/services/__tests__/local-tools-dispatch.test.js +404 -0
- package/dist/cli/services/__tests__/local-tools.test.js +238 -0
- package/dist/cli/services/__tests__/lsp-manager.test.js +364 -0
- package/dist/cli/services/__tests__/mcp-client-connect-disconnect.test.js +310 -0
- package/dist/cli/services/__tests__/mcp-client.test.js +93 -0
- package/dist/cli/services/__tests__/memory-manager.test.js +154 -0
- package/dist/cli/services/__tests__/model-manager-utils.test.js +154 -0
- package/dist/cli/services/__tests__/model-manager.test.js +175 -0
- package/dist/cli/services/__tests__/permission-modes.test.js +222 -0
- package/dist/cli/services/__tests__/ripgrep.test.js +328 -0
- package/dist/cli/services/__tests__/server-tools-execute.test.js +317 -0
- package/dist/cli/services/__tests__/server-tools.test.js +272 -0
- package/dist/cli/services/__tests__/session-persistence.test.js +245 -0
- package/dist/cli/services/__tests__/subagent-basic.test.js +489 -0
- package/dist/cli/services/__tests__/subagent-edge.test.js +545 -0
- package/dist/cli/services/__tests__/subagent-prompts.test.js +558 -0
- package/dist/cli/services/__tests__/subagent-worker-errors.test.js +255 -0
- package/dist/cli/services/__tests__/subagent-worker.test.js +242 -0
- package/dist/cli/services/__tests__/system-prompt.test.js +210 -0
- package/dist/cli/services/__tests__/team-lead-comms-messaging.test.js +250 -0
- package/dist/cli/services/__tests__/team-lead-comms-result.test.js +232 -0
- package/dist/cli/services/__tests__/team-lead-comms-stop.test.js +344 -0
- package/dist/cli/services/__tests__/team-lead-comms.test.js +285 -0
- package/dist/cli/services/__tests__/team-lead-create.test.js +327 -0
- package/dist/cli/services/__tests__/team-lead-run.test.js +318 -0
- package/dist/cli/services/__tests__/team-lead-stop.test.js +199 -0
- package/dist/cli/services/__tests__/team-state-comms.test.js +240 -0
- package/dist/cli/services/__tests__/team-state-core.test.js +230 -0
- package/dist/cli/services/__tests__/team-state-tasks-complete-fail-available.test.js +224 -0
- package/dist/cli/services/__tests__/team-state-tasks.test.js +184 -0
- package/dist/cli/services/__tests__/telemetry-ai-metadata.test.js +116 -0
- package/dist/cli/services/__tests__/telemetry.part2.test.js +195 -0
- package/dist/cli/services/__tests__/telemetry.test.js +176 -0
- package/dist/cli/services/agent-event-types.d.ts +148 -0
- package/dist/cli/services/agent-event-types.js +2 -0
- package/dist/cli/services/agent-event-types.js.map +1 -0
- package/dist/cli/services/agent-loop-iteration.d.ts +13 -0
- package/dist/cli/services/agent-loop-setup.d.ts +32 -0
- package/dist/cli/services/agent-loop-shell-summarize.d.ts +11 -0
- package/dist/cli/services/agent-loop-shell-summarize.js +94 -0
- package/dist/cli/services/agent-loop-shell-summarize.js.map +1 -0
- package/dist/cli/services/agent-loop-tools.d.ts +37 -0
- package/dist/cli/services/agent-loop-tools.js +243 -0
- package/dist/cli/services/agent-loop-tools.js.map +1 -0
- package/dist/cli/services/agent-loop-types.d.ts +52 -0
- package/dist/cli/services/agent-loop-types.js +25 -0
- package/dist/cli/services/agent-loop-types.js.map +1 -0
- package/dist/cli/services/agent-loop.d.ts +2 -2
- package/dist/cli/services/agent-loop.js +162 -17
- package/dist/cli/services/agent-loop.js.map +1 -1
- package/dist/cli/services/agent-worker-base-api.d.ts +19 -0
- package/dist/cli/services/agent-worker-base-helpers.d.ts +27 -0
- package/dist/cli/services/agent-worker-base-tools.d.ts +16 -0
- package/dist/cli/services/agent-worker-base-types.d.ts +81 -0
- package/dist/cli/services/agent-worker-base.js +1 -1
- package/dist/cli/services/agent-worker-base.js.map +1 -1
- package/dist/cli/services/auth-service.js +19 -19
- package/dist/cli/services/auth-service.js.map +1 -1
- package/dist/cli/services/background-agents.d.ts +26 -0
- package/dist/cli/services/background-processes-ops.d.ts +24 -0
- package/dist/cli/services/background-processes.d.ts +2 -1
- package/dist/cli/services/background-processes.js +7 -3
- package/dist/cli/services/background-processes.js.map +1 -1
- package/dist/cli/services/background-tool-defs.d.ts +50 -0
- package/dist/cli/services/cli-agent-loop.d.ts +41 -0
- package/dist/cli/services/cli-agent-loop.js +104 -0
- package/dist/cli/services/cli-agent-loop.js.map +1 -0
- package/dist/cli/services/config-modules-model.test.js +133 -0
- package/dist/cli/services/config-modules-permission.test.js +85 -0
- package/dist/cli/services/config-modules-permissions.test.js +85 -0
- package/dist/cli/services/config-modules-session.test.js +297 -0
- package/dist/cli/services/config-store.d.ts +5 -0
- package/dist/cli/services/config-store.js +90 -5
- package/dist/cli/services/config-store.js.map +1 -1
- package/dist/cli/services/error-logger-internals.d.ts +25 -0
- package/dist/cli/services/error-logger-internals.js +111 -0
- package/dist/cli/services/error-logger-internals.js.map +1 -0
- package/dist/cli/services/format-server-response-columns.test.js +265 -0
- package/dist/cli/services/format-server-response-fallback.test.js +65 -0
- package/dist/cli/services/format-server-response-formatters.d.ts +18 -0
- package/dist/cli/services/format-server-response-formatters.js +195 -0
- package/dist/cli/services/format-server-response-formatters.js.map +1 -0
- package/dist/cli/services/format-server-response-primitives-basic.test.js +261 -0
- package/dist/cli/services/format-server-response-primitives-nested.test.js +188 -0
- package/dist/cli/services/format-server-response-primitives.test.js +300 -0
- package/dist/cli/services/format-server-response-realworld.test.js +248 -0
- package/dist/cli/services/format-server-response-values.test.js +247 -0
- package/dist/cli/services/format-server-response.js +5 -3
- package/dist/cli/services/format-server-response.js.map +1 -1
- package/dist/cli/services/hooks-execute.d.ts +47 -0
- package/dist/cli/services/hooks-execute.js +181 -0
- package/dist/cli/services/hooks-execute.js.map +1 -0
- package/dist/cli/services/hooks-runners.test.js +184 -0
- package/dist/cli/services/hooks.glob-load.test.js +233 -0
- package/dist/cli/services/hooks.run-hooks.test.js +184 -0
- package/dist/cli/services/hooks.test.js +233 -0
- package/dist/cli/services/interactive-tool-defs.d.ts +80 -0
- package/dist/cli/services/interactive-tools.d.ts +5 -2
- package/dist/cli/services/interactive-tools.js +47 -33
- package/dist/cli/services/interactive-tools.js.map +1 -1
- package/dist/cli/services/keybinding-manager.d.ts +2 -0
- package/dist/cli/services/keybinding-manager.js +5 -0
- package/dist/cli/services/keybinding-manager.js.map +1 -1
- package/dist/cli/services/local-tools-agent-defs-tasks.d.ts +6 -0
- package/dist/cli/services/local-tools-agent-defs-tasks.js +245 -0
- package/dist/cli/services/local-tools-agent-defs-tasks.js.map +1 -0
- package/dist/cli/services/local-tools-agent-defs-utils.d.ts +6 -0
- package/dist/cli/services/local-tools-agent-defs-utils.js +198 -0
- package/dist/cli/services/local-tools-agent-defs-utils.js.map +1 -0
- package/dist/cli/services/local-tools-agent-defs.d.ts +10 -0
- package/dist/cli/services/local-tools-agent-defs.js +13 -0
- package/dist/cli/services/local-tools-agent-defs.js.map +1 -0
- package/dist/cli/services/local-tools-definitions.d.ts +6 -0
- package/dist/cli/services/local-tools-files.test.js +256 -0
- package/dist/cli/services/local-tools-read-many.d.ts +6 -0
- package/dist/cli/services/local-tools.js +7 -9
- package/dist/cli/services/local-tools.js.map +1 -1
- package/dist/cli/services/lsp-config.d.ts +13 -0
- package/dist/cli/services/lsp-config.js +72 -0
- package/dist/cli/services/lsp-config.js.map +1 -0
- package/dist/cli/services/lsp-formatters.d.ts +11 -0
- package/dist/cli/services/lsp-formatters.js +209 -0
- package/dist/cli/services/lsp-formatters.js.map +1 -0
- package/dist/cli/services/lsp-protocol.d.ts +9 -0
- package/dist/cli/services/lsp-protocol.js +40 -0
- package/dist/cli/services/lsp-protocol.js.map +1 -0
- package/dist/cli/services/lsp-server-docs.d.ts +8 -0
- package/dist/cli/services/lsp-server-docs.js +132 -0
- package/dist/cli/services/lsp-server-docs.js.map +1 -0
- package/dist/cli/services/lsp-server-documents.d.ts +8 -0
- package/dist/cli/services/lsp-server-documents.js +132 -0
- package/dist/cli/services/lsp-server-documents.js.map +1 -0
- package/dist/cli/services/lsp-server.d.ts +40 -0
- package/dist/cli/services/lsp-server.js +270 -0
- package/dist/cli/services/lsp-server.js.map +1 -0
- package/dist/cli/services/model-router.test.js +245 -0
- package/dist/cli/services/permission-modes.js +16 -3
- package/dist/cli/services/permission-modes.js.map +1 -1
- package/dist/cli/services/project-index.d.ts +41 -0
- package/dist/cli/services/project-index.js +286 -0
- package/dist/cli/services/project-index.js.map +1 -0
- package/dist/cli/services/rewind-rewindTo.test.js +202 -0
- package/dist/cli/services/rewind.test.js +175 -0
- package/dist/cli/services/sandbox.test.js +198 -0
- package/dist/cli/services/server-tools-client.d.ts +46 -0
- package/dist/cli/services/server-tools-client.js +211 -0
- package/dist/cli/services/server-tools-client.js.map +1 -0
- package/dist/cli/services/server-tools-media.d.ts +21 -0
- package/dist/cli/services/server-tools-media.js +163 -0
- package/dist/cli/services/server-tools-media.js.map +1 -0
- package/dist/cli/services/server-tools-preprocess.d.ts +23 -0
- package/dist/cli/services/server-tools-preprocess.js +386 -0
- package/dist/cli/services/server-tools-preprocess.js.map +1 -0
- package/dist/cli/services/server-tools.d.ts +2 -0
- package/dist/cli/services/server-tools.js +40 -15
- package/dist/cli/services/server-tools.js.map +1 -1
- package/dist/cli/services/session-client.d.ts +78 -0
- package/dist/cli/services/session-client.js +197 -0
- package/dist/cli/services/session-client.js.map +1 -0
- package/dist/cli/services/session-persistence.d.ts +3 -0
- package/dist/cli/services/session-persistence.js +12 -0
- package/dist/cli/services/session-persistence.js.map +1 -1
- package/dist/cli/services/subagent-execution.d.ts +12 -0
- package/dist/cli/services/subagent-loop-v2.d.ts +36 -0
- package/dist/cli/services/subagent-loop-v2.js +238 -0
- package/dist/cli/services/subagent-loop-v2.js.map +1 -0
- package/dist/cli/services/subagent-tools.d.ts +10 -0
- package/dist/cli/services/subagent-tools.js +96 -0
- package/dist/cli/services/subagent-tools.js.map +1 -0
- package/dist/cli/services/subagent-types.d.ts +57 -0
- package/dist/cli/services/subagent-types.js +218 -0
- package/dist/cli/services/subagent-types.js.map +1 -0
- package/dist/cli/services/subagent.js +3 -2
- package/dist/cli/services/subagent.js.map +1 -1
- package/dist/cli/services/system-prompt.js +26 -3
- package/dist/cli/services/system-prompt.js.map +1 -1
- package/dist/cli/services/team-lead-auto.d.ts +11 -0
- package/dist/cli/services/team-lead-execution.d.ts +28 -0
- package/dist/cli/services/team-lead-types.d.ts +37 -0
- package/dist/cli/services/team-lead-types.js +2 -0
- package/dist/cli/services/team-lead-types.js.map +1 -0
- package/dist/cli/services/team-lead.d.ts +60 -0
- package/dist/cli/services/team-lead.js +148 -11
- package/dist/cli/services/team-lead.js.map +1 -1
- package/dist/cli/services/team-state-members.d.ts +11 -0
- package/dist/cli/services/team-state-members.js +185 -0
- package/dist/cli/services/team-state-members.js.map +1 -0
- package/dist/cli/services/team-state-messaging.d.ts +16 -0
- package/dist/cli/services/team-state-messaging.js +90 -0
- package/dist/cli/services/team-state-messaging.js.map +1 -0
- package/dist/cli/services/team-state-tasks.d.ts +12 -0
- package/dist/cli/services/team-state-tasks.js +23 -0
- package/dist/cli/services/team-state-tasks.js.map +1 -0
- package/dist/cli/services/team-state-types.d.ts +54 -0
- package/dist/cli/services/team-state-types.js +129 -0
- package/dist/cli/services/team-state-types.js.map +1 -0
- package/dist/cli/services/team-state.d.ts +5 -0
- package/dist/cli/services/team-state.js +29 -0
- package/dist/cli/services/team-state.js.map +1 -1
- package/dist/cli/services/teammate-loop.js +557 -0
- package/dist/cli/services/teammate-loop.js.map +1 -0
- package/dist/cli/services/teammate-prompt.d.ts +2 -0
- package/dist/cli/services/teammate-prompt.js +68 -0
- package/dist/cli/services/teammate-prompt.js.map +1 -0
- package/dist/cli/services/teammate-tools.d.ts +6 -0
- package/dist/cli/services/teammate-tools.js +158 -0
- package/dist/cli/services/teammate-tools.js.map +1 -0
- package/dist/cli/services/teammate-types.d.ts +36 -0
- package/dist/cli/services/teammate-types.js +43 -0
- package/dist/cli/services/teammate-types.js.map +1 -0
- package/dist/cli/services/teammate-worker-helpers.d.ts +71 -0
- package/dist/cli/services/teammate-worker-helpers.js +183 -0
- package/dist/cli/services/teammate-worker-helpers.js.map +1 -0
- package/dist/cli/services/teammate-worker-task-cleanup.d.ts +27 -0
- package/dist/cli/services/teammate-worker-task-cleanup.js +91 -0
- package/dist/cli/services/teammate-worker-task-cleanup.js.map +1 -0
- package/dist/cli/services/teammate-worker-task-loop.d.ts +35 -0
- package/dist/cli/services/teammate-worker-task-loop.js +273 -0
- package/dist/cli/services/teammate-worker-task-loop.js.map +1 -0
- package/dist/cli/services/teammate-worker.d.ts +13 -0
- package/dist/cli/services/teammate-worker.js +294 -0
- package/dist/cli/services/teammate-worker.js.map +1 -0
- package/dist/cli/services/telemetry-spans.d.ts +17 -0
- package/dist/cli/services/telemetry-spans.js +172 -0
- package/dist/cli/services/telemetry-spans.js.map +1 -0
- package/dist/cli/services/tools/__tests__/agent-tools-tasks-teams.test.js +250 -0
- package/dist/cli/services/tools/__tests__/agent-tools-teams.test.js +200 -0
- package/dist/cli/services/tools/__tests__/agent-tools.test.js +340 -0
- package/dist/cli/services/tools/__tests__/file-ops-cache.test.js +152 -0
- package/dist/cli/services/tools/__tests__/file-ops-notebook.test.js +249 -0
- package/dist/cli/services/tools/__tests__/file-ops-read.test.js +261 -0
- package/dist/cli/services/tools/__tests__/file-ops-write.test.js +292 -0
- package/dist/cli/services/tools/__tests__/search-tools-rg.test.js +92 -0
- package/dist/cli/services/tools/__tests__/search-tools.part2.test.js +174 -0
- package/dist/cli/services/tools/__tests__/search-tools.test.js +227 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed-core.test.js +163 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed-extended.test.js +220 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed.part2.test.js +215 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed.test.js +154 -0
- package/dist/cli/services/tools/__tests__/shell-exec-blocked.test.js +132 -0
- package/dist/cli/services/tools/__tests__/shell-exec-execution.test.js +245 -0
- package/dist/cli/services/tools/__tests__/task-manager-create.test.js +110 -0
- package/dist/cli/services/tools/__tests__/task-manager-crud.test.js +339 -0
- package/dist/cli/services/tools/__tests__/task-manager-list-get.test.js +343 -0
- package/dist/cli/services/tools/__tests__/task-manager-query.test.js +346 -0
- package/dist/cli/services/tools/__tests__/task-manager-routing.test.js +58 -0
- package/dist/cli/services/tools/__tests__/task-manager-update.test.js +224 -0
- package/dist/cli/services/tools/__tests__/task-manager.test.js +159 -0
- package/dist/cli/services/tools/__tests__/web-tools-html-search.test.js +227 -0
- package/dist/cli/services/tools/__tests__/web-tools.test.js +285 -0
- package/dist/cli/services/tools/agent-tools-tasks.d.ts +10 -0
- package/dist/cli/services/tools/agent-tools-tasks.js +216 -0
- package/dist/cli/services/tools/agent-tools-tasks.js.map +1 -0
- package/dist/cli/services/tools/agent-tools-team.d.ts +8 -0
- package/dist/cli/services/tools/agent-tools-team.js +101 -0
- package/dist/cli/services/tools/agent-tools-team.js.map +1 -0
- package/dist/cli/services/tools/agent-tools.js +115 -42
- package/dist/cli/services/tools/agent-tools.js.map +1 -1
- package/dist/cli/services/tools/file-ops-notebook.d.ts +9 -0
- package/dist/cli/services/tools/file-ops-notebook.js +186 -0
- package/dist/cli/services/tools/file-ops-notebook.js.map +1 -0
- package/dist/cli/services/tools/file-ops-read.d.ts +11 -0
- package/dist/cli/services/tools/file-ops-read.js +237 -0
- package/dist/cli/services/tools/file-ops-read.js.map +1 -0
- package/dist/cli/services/tools/file-ops-write.d.ts +8 -0
- package/dist/cli/services/tools/file-ops-write.js +260 -0
- package/dist/cli/services/tools/file-ops-write.js.map +1 -0
- package/dist/cli/services/tools/file-ops.d.ts +1 -0
- package/dist/cli/services/tools/file-ops.js +167 -0
- package/dist/cli/services/tools/file-ops.js.map +1 -1
- package/dist/cli/services/tools/html-to-text.d.ts +6 -0
- package/dist/cli/services/tools/html-to-text.js +118 -0
- package/dist/cli/services/tools/html-to-text.js.map +1 -0
- package/dist/cli/services/tools/shell-exec.test.js +148 -0
- package/dist/cli/services/tools/ssrf-guard.d.ts +6 -0
- package/dist/cli/services/tools/ssrf-guard.js +80 -0
- package/dist/cli/services/tools/ssrf-guard.js.map +1 -0
- package/dist/cli/setup/SetupComponents.d.ts +10 -0
- package/dist/cli/setup/SetupComponents.js +144 -0
- package/dist/cli/setup/SetupComponents.js.map +1 -0
- package/dist/cli/setup/setup-cli-targets.d.ts +9 -0
- package/dist/cli/setup/setup-cli-targets.js +49 -0
- package/dist/cli/setup/setup-cli-targets.js.map +1 -0
- package/dist/cli/shared/InlineErrorBoundary.d.ts +22 -0
- package/dist/cli/shared/InlineErrorBoundary.js +35 -0
- package/dist/cli/shared/InlineErrorBoundary.js.map +1 -0
- package/dist/cli/shared/MatrixIntro.js +2 -1
- package/dist/cli/shared/MatrixIntro.js.map +1 -1
- package/dist/cli/shared/SharedTick.d.ts +10 -0
- package/dist/cli/shared/SpinnerSlot.d.ts +16 -8
- package/dist/cli/shared/SpinnerSlot.js +122 -29
- package/dist/cli/shared/SpinnerSlot.js.map +1 -1
- package/dist/cli/shared/WhaleBanner.js +3 -2
- package/dist/cli/shared/WhaleBanner.js.map +1 -1
- package/dist/cli/shared/__tests__/markdown.test.js +188 -0
- package/dist/cli/shared/format-utils.d.ts +16 -0
- package/dist/cli/shared/format-utils.js +121 -0
- package/dist/cli/shared/format-utils.js.map +1 -0
- package/dist/cli/shared/markdown-chart.d.ts +8 -0
- package/dist/cli/shared/markdown-chart.js +92 -0
- package/dist/cli/shared/markdown-chart.js.map +1 -0
- package/dist/cli/shared/markdown-diff.d.ts +15 -0
- package/dist/cli/shared/markdown-diff.js +205 -0
- package/dist/cli/shared/markdown-diff.js.map +1 -0
- package/dist/cli/shared/markdown-helpers.d.ts +33 -0
- package/dist/cli/shared/markdown-helpers.js +129 -0
- package/dist/cli/shared/markdown-helpers.js.map +1 -0
- package/dist/cli/shared/markdown-table.d.ts +10 -0
- package/dist/cli/shared/markdown-table.js +227 -0
- package/dist/cli/shared/markdown-table.js.map +1 -0
- package/dist/cli/shared/markdown.d.ts +2 -6
- package/dist/cli/shared/markdown.js +8 -115
- package/dist/cli/shared/markdown.js.map +1 -1
- package/dist/cli/shared/useLatestRef.d.ts +11 -0
- package/dist/cli/shared/useLatestRef.js +34 -0
- package/dist/cli/shared/useLatestRef.js.map +1 -0
- package/dist/cli/shared/useSyncState.d.ts +11 -0
- package/dist/cli/shared/useSyncState.js +39 -0
- package/dist/cli/shared/useSyncState.js.map +1 -0
- package/dist/cli/stores/StoreApp.js +3 -1
- package/dist/cli/stores/StoreApp.js.map +1 -1
- package/dist/index-agent.d.ts +11 -0
- package/dist/index-agent.js +83 -0
- package/dist/index-agent.js.map +1 -0
- package/dist/index-auth.d.ts +22 -0
- package/dist/index-auth.js +114 -0
- package/dist/index-auth.js.map +1 -0
- package/dist/index-handlers.d.ts +25 -0
- package/dist/index-handlers.js +164 -0
- package/dist/index-handlers.js.map +1 -0
- package/dist/index-tools.d.ts +22 -0
- package/dist/index-tools.js +115 -0
- package/dist/index-tools.js.map +1 -0
- package/dist/local-agent/__tests__/connection-disconnect.test.js +201 -0
- package/dist/local-agent/__tests__/connection-lifecycle.test.js +289 -0
- package/dist/local-agent/__tests__/connection-msghandling.test.js +311 -0
- package/dist/local-agent/__tests__/connection-reconnect.test.js +230 -0
- package/dist/local-agent/__tests__/connection-toolexec.test.js +253 -0
- package/dist/local-agent/__tests__/discovery.test.js +328 -0
- package/dist/local-agent/__tests__/executor-background.test.js +219 -0
- package/dist/local-agent/__tests__/executor-exec.test.js +221 -0
- package/dist/local-agent/__tests__/executor-jobs-sessions.test.js +220 -0
- package/dist/local-agent/__tests__/executor-system-info.test.js +133 -0
- package/dist/local-agent/__tests__/executor-systeminfo.test.js +109 -0
- package/dist/local-agent/__tests__/executor.test.js +235 -0
- package/dist/local-agent/__tests__/index.test.js +139 -0
- package/dist/local-agent/connection-handlers.d.ts +8 -0
- package/dist/local-agent/connection-handlers.js +112 -0
- package/dist/local-agent/connection-handlers.js.map +1 -0
- package/dist/local-agent/connection-tools.d.ts +8 -0
- package/dist/local-agent/connection-tools.js +111 -0
- package/dist/local-agent/connection-tools.js.map +1 -0
- package/dist/local-agent/executor-jobs.d.ts +12 -0
- package/dist/local-agent/executor-jobs.js +143 -0
- package/dist/local-agent/executor-jobs.js.map +1 -0
- package/dist/local-agent/executor.d.ts +3 -0
- package/dist/local-agent/executor.js +2 -2
- package/dist/local-agent/executor.js.map +1 -1
- package/dist/node/__tests__/cli-channels.test.js +293 -0
- package/dist/node/__tests__/cli-config-edge.test.js +154 -0
- package/dist/node/__tests__/cli-config.test.js +215 -0
- package/dist/node/__tests__/config.test.js +292 -0
- package/dist/node/__tests__/runtime-heartbeat.test.js +153 -0
- package/dist/node/__tests__/runtime-lifecycle-init.test.js +263 -0
- package/dist/node/__tests__/runtime-lifecycle-stats.test.js +180 -0
- package/dist/node/__tests__/runtime-lifecycle.test.js +305 -0
- package/dist/node/__tests__/runtime-relay.test.js +341 -0
- package/dist/node/adapters/__tests__/base.test.js +286 -0
- package/dist/node/adapters/__tests__/discord.test.js +284 -0
- package/dist/node/adapters/__tests__/email-send.test.js +295 -0
- package/dist/node/adapters/__tests__/email.inbound-send.test.js +217 -0
- package/dist/node/adapters/__tests__/email.lifecycle.test.js +211 -0
- package/dist/node/adapters/__tests__/email.test.js +290 -0
- package/dist/node/adapters/__tests__/email.webhook-send.test.js +251 -0
- package/dist/node/adapters/__tests__/imessage-filter.test.js +183 -0
- package/dist/node/adapters/__tests__/imessage-lifecycle.test.js +215 -0
- package/dist/node/adapters/__tests__/imessage-send-restart.test.js +227 -0
- package/dist/node/adapters/__tests__/slack.part2.test.js +135 -0
- package/dist/node/adapters/__tests__/slack.test.js +241 -0
- package/dist/node/adapters/__tests__/sms-extras.test.js +108 -0
- package/dist/node/adapters/__tests__/sms-lifecycle.test.js +203 -0
- package/dist/node/adapters/__tests__/sms-messaging.test.js +266 -0
- package/dist/node/adapters/__tests__/sms.part2.test.js +174 -0
- package/dist/node/adapters/__tests__/sms.test.js +253 -0
- package/dist/node/adapters/__tests__/telegram-polling.test.js +256 -0
- package/dist/node/adapters/__tests__/telegram-send.test.js +166 -0
- package/dist/node/adapters/__tests__/webchat-inbound.test.js +188 -0
- package/dist/node/adapters/__tests__/webchat-outbound.test.js +178 -0
- package/dist/node/adapters/__tests__/whatsapp-inbound.test.js +200 -0
- package/dist/node/adapters/__tests__/whatsapp-send.test.js +212 -0
- package/dist/node/adapters/__tests__/whatsapp.test.js +280 -0
- package/dist/node/adapters/discord-gateway.d.ts +42 -0
- package/dist/node/adapters/discord-gateway.js +169 -0
- package/dist/node/adapters/discord-gateway.js.map +1 -0
- package/dist/node/adapters/imessage.d.ts +11 -0
- package/dist/node/adapters/imessage.js +23 -6
- package/dist/node/adapters/imessage.js.map +1 -1
- package/dist/node/cli-channels.d.ts +6 -0
- package/dist/node/cli-channels.js +229 -0
- package/dist/node/cli-channels.js.map +1 -0
- package/dist/node/cli-node.d.ts +9 -0
- package/dist/node/cli-node.js +186 -0
- package/dist/node/cli-node.js.map +1 -0
- package/dist/node/cli-portal.d.ts +11 -0
- package/dist/node/cli-portal.js +503 -0
- package/dist/node/cli-portal.js.map +1 -0
- package/dist/node/portal/portal-target.d.ts +16 -0
- package/dist/node/portal/portal-target.js +102 -0
- package/dist/node/portal/portal-target.js.map +1 -0
- package/dist/node/portal/protocol-frames.d.ts +33 -0
- package/dist/node/portal/protocol-frames.js +170 -0
- package/dist/node/portal/protocol-frames.js.map +1 -0
- package/dist/node/runtime-network.d.ts +25 -0
- package/dist/node/runtime-network.js +226 -0
- package/dist/node/runtime-network.js.map +1 -0
- package/dist/node/runtime-utils.d.ts +27 -0
- package/dist/node/runtime-utils.js +99 -0
- package/dist/node/runtime-utils.js.map +1 -0
- package/dist/node/runtime.d.ts +1 -0
- package/dist/node/runtime.js +71 -1
- package/dist/node/runtime.js.map +1 -1
- package/dist/node/task-runner.d.ts +33 -0
- package/dist/node/task-runner.js +276 -0
- package/dist/node/task-runner.js.map +1 -0
- package/dist/server/__tests__/gateway-fast-fail.test.js +160 -0
- package/dist/server/__tests__/local-agent-gateway.test.js +186 -0
- package/dist/server/__tests__/proxy-handlers-delegation.test.js +240 -0
- package/dist/server/__tests__/proxy-handlers-validation.test.js +211 -0
- package/dist/server/__tests__/proxy-handlers.part2.test.js +240 -0
- package/dist/server/__tests__/proxy-handlers.test.js +213 -0
- package/dist/server/__tests__/strip-base64-e2e.test.js +303 -0
- package/dist/server/__tests__/strip-base64.test.js +256 -0
- package/dist/server/__tests__/tool-router-agent-tools.test.js +324 -0
- package/dist/server/__tests__/tool-router-execute-core.test.js +357 -0
- package/dist/server/__tests__/tool-router-execute-permissions.test.js +332 -0
- package/dist/server/__tests__/tool-router-execute.test.js +348 -0
- package/dist/server/__tests__/tool-router-load.test.js +432 -0
- package/dist/server/__tests__/tool-router-permissions.test.js +359 -0
- package/dist/server/__tests__/tool-router-registry-cache.test.js +383 -0
- package/dist/server/__tests__/tool-router-registry-handlers.test.js +272 -0
- package/dist/server/__tests__/tool-router-registry.test.js +331 -0
- package/dist/server/__tests__/validation-inventory.test.js +250 -0
- package/dist/server/__tests__/validation-misc.test.js +243 -0
- package/dist/server/__tests__/validation-supply-chain.test.js +188 -0
- package/dist/server/__tests__/worker.test.js +265 -0
- package/dist/server/handlers/__test-utils__/test-db.d.ts +2 -0
- package/dist/server/handlers/__test-utils__/test-db.js +14 -1
- package/dist/server/handlers/__test-utils__/test-db.js.map +1 -1
- package/dist/server/handlers/__tests__/conversation-lock.test.js +117 -0
- package/dist/server/handlers/__tests__/e2e/auth-cross-platform-login.e2e.test.js +268 -0
- package/dist/server/handlers/__tests__/e2e/auth-cross-platform-tokens.e2e.test.js +264 -0
- package/dist/server/handlers/__tests__/e2e/email-pipeline-send.e2e.test.js +214 -0
- package/dist/server/handlers/__tests__/e2e/email-pipeline-threads.e2e.test.js +168 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-pipeline-dedup.e2e.test.js +229 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-pipeline.e2e.test.js +239 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-rate-limit.e2e.test.js +150 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync-guards.e2e.test.js +177 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync.e2e.test.js +228 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync.part2.e2e.test.js +188 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle-fulfillment.e2e.test.js +295 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.e2e.test.js +277 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.fulfillment.e2e.test.js +307 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.setup.e2e.test.js +177 -0
- package/dist/server/handlers/__tests__/e2e/storefront-checkout-cart.e2e.test.js +255 -0
- package/dist/server/handlers/__tests__/e2e/storefront-checkout-webhook.e2e.test.js +231 -0
- package/dist/server/handlers/__tests__/e2e/workflow-execution-failures.e2e.test.js +235 -0
- package/dist/server/handlers/__tests__/e2e/workflow-execution.e2e.test.js +294 -0
- package/dist/server/handlers/__tests__/e2e/workflow-security.e2e.test.js +311 -0
- package/dist/server/handlers/__tests__/e2e/workflow-security.part2.e2e.test.js +267 -0
- package/dist/server/handlers/__tests__/workflow-cache.test.js +237 -0
- package/dist/server/handlers/analytics-errors-edge.test.js +173 -0
- package/dist/server/handlers/analytics.js +88 -1
- package/dist/server/handlers/analytics.js.map +1 -1
- package/dist/server/handlers/analytics.test.js +280 -0
- package/dist/server/handlers/api-docs-examples-ext.d.ts +9 -0
- package/dist/server/handlers/api-docs-examples-ext.js +278 -0
- package/dist/server/handlers/api-docs-examples-ext.js.map +1 -0
- package/dist/server/handlers/api-docs-examples.d.ts +8 -0
- package/dist/server/handlers/api-docs-examples.js +221 -0
- package/dist/server/handlers/api-docs-examples.js.map +1 -0
- package/dist/server/handlers/api-docs-sections-ext.d.ts +2 -0
- package/dist/server/handlers/api-docs-sections-ext.js +497 -0
- package/dist/server/handlers/api-docs-sections-ext.js.map +1 -0
- package/dist/server/handlers/api-docs-sections.d.ts +21 -0
- package/dist/server/handlers/api-docs-sections.js +293 -0
- package/dist/server/handlers/api-docs-sections.js.map +1 -0
- package/dist/server/handlers/api-docs.d.ts +2 -0
- package/dist/server/handlers/api-docs.js +177 -0
- package/dist/server/handlers/api-docs.js.map +1 -1
- package/dist/server/handlers/api-keys.part2.test.js +157 -0
- package/dist/server/handlers/api-keys.test.js +161 -0
- package/dist/server/handlers/billing-core.d.ts +28 -0
- package/dist/server/handlers/billing-core.js +126 -0
- package/dist/server/handlers/billing-core.js.map +1 -0
- package/dist/server/handlers/billing-routes.d.ts +9 -0
- package/dist/server/handlers/billing-routes.js +243 -0
- package/dist/server/handlers/billing-routes.js.map +1 -0
- package/dist/server/handlers/billing-routes.test.js +123 -0
- package/dist/server/handlers/billing.test.js +215 -0
- package/dist/server/handlers/browser-actions-errors.test.js +94 -0
- package/dist/server/handlers/browser-actions.d.ts +35 -0
- package/dist/server/handlers/browser-actions.js +171 -0
- package/dist/server/handlers/browser-actions.js.map +1 -0
- package/dist/server/handlers/browser-actions.part2.test.js +190 -0
- package/dist/server/handlers/browser-actions.test.js +190 -0
- package/dist/server/handlers/browser-captcha.d.ts +6 -0
- package/dist/server/handlers/browser-captcha.js +172 -0
- package/dist/server/handlers/browser-captcha.js.map +1 -0
- package/dist/server/handlers/browser-lifecycle.d.ts +9 -0
- package/dist/server/handlers/browser-lifecycle.js +142 -0
- package/dist/server/handlers/browser-lifecycle.js.map +1 -0
- package/dist/server/handlers/browser-validation.test.js +257 -0
- package/dist/server/handlers/catalog-advanced.d.ts +9 -0
- package/dist/server/handlers/catalog-advanced.js +352 -0
- package/dist/server/handlers/catalog-advanced.js.map +1 -0
- package/dist/server/handlers/catalog-categories.d.ts +5 -0
- package/dist/server/handlers/catalog-categories.js +181 -0
- package/dist/server/handlers/catalog-categories.js.map +1 -0
- package/dist/server/handlers/catalog-products.d.ts +5 -0
- package/dist/server/handlers/catalog-products.js +404 -0
- package/dist/server/handlers/catalog-products.js.map +1 -0
- package/dist/server/handlers/catalog-schemas.d.ts +5 -0
- package/dist/server/handlers/catalog-schemas.js +426 -0
- package/dist/server/handlers/catalog-schemas.js.map +1 -0
- package/dist/server/handlers/catalog.test.js +297 -0
- package/dist/server/handlers/comms-documents-advanced.d.ts +8 -0
- package/dist/server/handlers/comms-documents-advanced.js +159 -0
- package/dist/server/handlers/comms-documents-advanced.js.map +1 -0
- package/dist/server/handlers/comms-documents.d.ts +10 -0
- package/dist/server/handlers/comms-documents.js +445 -0
- package/dist/server/handlers/comms-documents.js.map +1 -0
- package/dist/server/handlers/comms-email.d.ts +10 -0
- package/dist/server/handlers/comms-email.js +492 -0
- package/dist/server/handlers/comms-email.js.map +1 -0
- package/dist/server/handlers/comms-pdf-generation.d.ts +8 -0
- package/dist/server/handlers/comms-pdf-generation.js +327 -0
- package/dist/server/handlers/comms-pdf-generation.js.map +1 -0
- package/dist/server/handlers/comms-pdf-helpers.d.ts +9 -0
- package/dist/server/handlers/comms-pdf-helpers.js +126 -0
- package/dist/server/handlers/comms-pdf-helpers.js.map +1 -0
- package/dist/server/handlers/comms-shared.d.ts +3 -0
- package/dist/server/handlers/comms-shared.js +28 -0
- package/dist/server/handlers/comms-shared.js.map +1 -0
- package/dist/server/handlers/comms.test.js +289 -0
- package/dist/server/handlers/creations-actions.d.ts +21 -0
- package/dist/server/handlers/creations-actions.js +250 -0
- package/dist/server/handlers/creations-actions.js.map +1 -0
- package/dist/server/handlers/creations-advanced-collections.test.js +214 -0
- package/dist/server/handlers/creations-advanced-generate.test.js +142 -0
- package/dist/server/handlers/creations-advanced.test.js +171 -0
- package/dist/server/handlers/creations-collections-preview.test.js +214 -0
- package/dist/server/handlers/creations-crud.d.ts +35 -0
- package/dist/server/handlers/creations-crud.js +248 -0
- package/dist/server/handlers/creations-crud.js.map +1 -0
- package/dist/server/handlers/creations-crud.test.js +260 -0
- package/dist/server/handlers/creations-generate.d.ts +21 -0
- package/dist/server/handlers/creations-generate.js +256 -0
- package/dist/server/handlers/creations-generate.js.map +1 -0
- package/dist/server/handlers/creations-mutations.test.js +197 -0
- package/dist/server/handlers/crm-customers-read.d.ts +58 -0
- package/dist/server/handlers/crm-customers-read.js +208 -0
- package/dist/server/handlers/crm-customers-read.js.map +1 -0
- package/dist/server/handlers/crm-customers-write.d.ts +54 -0
- package/dist/server/handlers/crm-customers-write.js +414 -0
- package/dist/server/handlers/crm-customers-write.js.map +1 -0
- package/dist/server/handlers/crm-utils.d.ts +6 -0
- package/dist/server/handlers/crm-utils.js +19 -0
- package/dist/server/handlers/crm-utils.js.map +1 -0
- package/dist/server/handlers/crm.test.js +179 -0
- package/dist/server/handlers/discovery-advertise.d.ts +18 -0
- package/dist/server/handlers/discovery-advertise.js +101 -0
- package/dist/server/handlers/discovery-advertise.js.map +1 -0
- package/dist/server/handlers/discovery-advertise.test.js +185 -0
- package/dist/server/handlers/discovery-scan.d.ts +19 -0
- package/dist/server/handlers/discovery-scan.js +107 -0
- package/dist/server/handlers/discovery-scan.js.map +1 -0
- package/dist/server/handlers/discovery-scan.test.js +233 -0
- package/dist/server/handlers/embeddings-embed-search.test.js +196 -0
- package/dist/server/handlers/embeddings-index-delete-stats.test.js +140 -0
- package/dist/server/handlers/embeddings-search.test.js +221 -0
- package/dist/server/handlers/embeddings.test.js +137 -0
- package/dist/server/handlers/enrichment-breach.d.ts +8 -0
- package/dist/server/handlers/enrichment-breach.js +266 -0
- package/dist/server/handlers/enrichment-breach.js.map +1 -0
- package/dist/server/handlers/enrichment-data.d.ts +13 -0
- package/dist/server/handlers/enrichment-data.js +145 -0
- package/dist/server/handlers/enrichment-data.js.map +1 -0
- package/dist/server/handlers/enrichment-enrich.d.ts +6 -0
- package/dist/server/handlers/enrichment-enrich.js +235 -0
- package/dist/server/handlers/enrichment-enrich.js.map +1 -0
- package/dist/server/handlers/enrichment-helpers.d.ts +10 -0
- package/dist/server/handlers/enrichment-helpers.js +17 -0
- package/dist/server/handlers/enrichment-helpers.js.map +1 -0
- package/dist/server/handlers/enrichment-mutations.test.js +240 -0
- package/dist/server/handlers/enrichment-queries.test.js +181 -0
- package/dist/server/handlers/enrichment-validation.test.js +177 -0
- package/dist/server/handlers/enrichment-writes.d.ts +16 -0
- package/dist/server/handlers/enrichment-writes.js +226 -0
- package/dist/server/handlers/enrichment-writes.js.map +1 -0
- package/dist/server/handlers/image-gen-actions.d.ts +18 -0
- package/dist/server/handlers/image-gen-actions.js +183 -0
- package/dist/server/handlers/image-gen-actions.js.map +1 -0
- package/dist/server/handlers/image-gen-providers.d.ts +29 -0
- package/dist/server/handlers/image-gen-providers.js +161 -0
- package/dist/server/handlers/image-gen-providers.js.map +1 -0
- package/dist/server/handlers/image-gen.test.js +205 -0
- package/dist/server/handlers/inventory-audit.d.ts +10 -0
- package/dist/server/handlers/inventory-audit.js +90 -0
- package/dist/server/handlers/inventory-audit.js.map +1 -0
- package/dist/server/handlers/inventory-helpers.d.ts +8 -0
- package/dist/server/handlers/inventory-helpers.js +19 -0
- package/dist/server/handlers/inventory-helpers.js.map +1 -0
- package/dist/server/handlers/inventory-query.d.ts +67 -0
- package/dist/server/handlers/inventory-query.js +299 -0
- package/dist/server/handlers/inventory-query.js.map +1 -0
- package/dist/server/handlers/inventory.test.js +380 -0
- package/dist/server/handlers/kali-background.test.js +222 -0
- package/dist/server/handlers/kali-errors.test.js +92 -0
- package/dist/server/handlers/kali-validation.test.js +234 -0
- package/dist/server/handlers/llm-providers-actions.test.js +220 -0
- package/dist/server/handlers/llm-providers-anthropic.test.js +239 -0
- package/dist/server/handlers/llm-providers-clients.d.ts +6 -0
- package/dist/server/handlers/llm-providers-clients.js +296 -0
- package/dist/server/handlers/llm-providers-clients.js.map +1 -0
- package/dist/server/handlers/llm-providers-credentials.d.ts +3 -0
- package/dist/server/handlers/llm-providers-credentials.js +109 -0
- package/dist/server/handlers/llm-providers-credentials.js.map +1 -0
- package/dist/server/handlers/llm-providers-failover.test.js +232 -0
- package/dist/server/handlers/llm-providers-models.d.ts +67 -0
- package/dist/server/handlers/llm-providers-models.js +213 -0
- package/dist/server/handlers/llm-providers-models.js.map +1 -0
- package/dist/server/handlers/llm-providers-providers.test.js +300 -0
- package/dist/server/handlers/llm-providers-validation.test.js +239 -0
- package/dist/server/handlers/local-agent-tools.test.js +224 -0
- package/dist/server/handlers/local-agent.test.js +198 -0
- package/dist/server/handlers/local-agent.tools-status.test.js +204 -0
- package/dist/server/handlers/local-agent.validation-exec.test.js +182 -0
- package/dist/server/handlers/media-actions.d.ts +14 -0
- package/dist/server/handlers/media-actions.js +398 -0
- package/dist/server/handlers/media-actions.js.map +1 -0
- package/dist/server/handlers/media-crud.d.ts +9 -0
- package/dist/server/handlers/media-crud.js +365 -0
- package/dist/server/handlers/media-crud.js.map +1 -0
- package/dist/server/handlers/media-upload.d.ts +4 -0
- package/dist/server/handlers/media-upload.js +179 -0
- package/dist/server/handlers/media-upload.js.map +1 -0
- package/dist/server/handlers/media-utils.d.ts +14 -0
- package/dist/server/handlers/media-utils.js +33 -0
- package/dist/server/handlers/media-utils.js.map +1 -0
- package/dist/server/handlers/meta-ads-advanced.d.ts +46 -0
- package/dist/server/handlers/meta-ads-advanced.js +222 -0
- package/dist/server/handlers/meta-ads-advanced.js.map +1 -0
- package/dist/server/handlers/meta-ads-audience-rules.test.js +243 -0
- package/dist/server/handlers/meta-ads-audience-targeting.test.js +205 -0
- package/dist/server/handlers/meta-ads-audiences-targeting.test.js +383 -0
- package/dist/server/handlers/meta-ads-audiences.d.ts +48 -0
- package/dist/server/handlers/meta-ads-audiences.js +214 -0
- package/dist/server/handlers/meta-ads-audiences.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud-ads.test.js +136 -0
- package/dist/server/handlers/meta-ads-crud-campaigns.test.js +189 -0
- package/dist/server/handlers/meta-ads-crud-create.test.js +303 -0
- package/dist/server/handlers/meta-ads-crud-list-update.test.js +259 -0
- package/dist/server/handlers/meta-ads-crud-read.d.ts +78 -0
- package/dist/server/handlers/meta-ads-crud-read.js +204 -0
- package/dist/server/handlers/meta-ads-crud-read.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud-write.d.ts +105 -0
- package/dist/server/handlers/meta-ads-crud-write.js +390 -0
- package/dist/server/handlers/meta-ads-crud-write.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud.d.ts +9 -0
- package/dist/server/handlers/meta-ads-crud.js +12 -0
- package/dist/server/handlers/meta-ads-crud.js.map +1 -0
- package/dist/server/handlers/meta-ads-delete-publish-sync.test.js +282 -0
- package/dist/server/handlers/meta-ads-graph-api.d.ts +25 -0
- package/dist/server/handlers/meta-ads-graph-api.js +155 -0
- package/dist/server/handlers/meta-ads-graph-api.js.map +1 -0
- package/dist/server/handlers/meta-ads-insights.test.js +80 -0
- package/dist/server/handlers/meta-ads-list-get.test.js +237 -0
- package/dist/server/handlers/meta-ads-media.d.ts +16 -0
- package/dist/server/handlers/meta-ads-media.js +205 -0
- package/dist/server/handlers/meta-ads-media.js.map +1 -0
- package/dist/server/handlers/meta-ads-pixels-rules.d.ts +127 -0
- package/dist/server/handlers/meta-ads-pixels-rules.js +463 -0
- package/dist/server/handlers/meta-ads-pixels-rules.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-ad.d.ts +11 -0
- package/dist/server/handlers/meta-ads-publish-ad.js +229 -0
- package/dist/server/handlers/meta-ads-publish-ad.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-delete.test.js +254 -0
- package/dist/server/handlers/meta-ads-publish-helpers.js +117 -0
- package/dist/server/handlers/meta-ads-publish-helpers.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-sync.test.js +205 -0
- package/dist/server/handlers/meta-ads-publish.d.ts +14 -0
- package/dist/server/handlers/meta-ads-publish.js +194 -0
- package/dist/server/handlers/meta-ads-publish.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish.test.js +254 -0
- package/dist/server/handlers/meta-ads-sync-insights.test.js +184 -0
- package/dist/server/handlers/meta-ads-targeting.d.ts +27 -0
- package/dist/server/handlers/meta-ads-targeting.js +323 -0
- package/dist/server/handlers/meta-ads-targeting.js.map +1 -0
- package/dist/server/handlers/meta-ads-types.d.ts +49 -0
- package/dist/server/handlers/meta-ads-types.js +59 -0
- package/dist/server/handlers/meta-ads-types.js.map +1 -0
- package/dist/server/handlers/meta-ads-update.test.js +117 -0
- package/dist/server/handlers/meta-ads.d.ts +25 -0
- package/dist/server/handlers/meta-ads.js +392 -3
- package/dist/server/handlers/meta-ads.js.map +1 -1
- package/dist/server/handlers/nodes-channels.test.js +413 -0
- package/dist/server/handlers/nodes-events.test.js +131 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.d.ts +20 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.js +314 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.js.map +1 -0
- package/dist/server/handlers/nodes-handlers-channels.d.ts +19 -0
- package/dist/server/handlers/nodes-handlers-channels.js +225 -0
- package/dist/server/handlers/nodes-handlers-channels.js.map +1 -0
- package/dist/server/handlers/nodes-handlers-mgmt.d.ts +33 -0
- package/dist/server/handlers/nodes-handlers-mgmt.js +418 -0
- package/dist/server/handlers/nodes-handlers-mgmt.js.map +1 -0
- package/dist/server/handlers/nodes-list-delete.test.js +171 -0
- package/dist/server/handlers/nodes-messages-delivery.test.js +208 -0
- package/dist/server/handlers/nodes-messages.test.js +211 -0
- package/dist/server/handlers/nodes-register.test.js +277 -0
- package/dist/server/handlers/nodes-routes-channels.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-channels.js +217 -0
- package/dist/server/handlers/nodes-routes-channels.js.map +1 -0
- package/dist/server/handlers/nodes-routes-crud.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-crud.js +290 -0
- package/dist/server/handlers/nodes-routes-crud.js.map +1 -0
- package/dist/server/handlers/nodes-routes-delivery.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-delivery.js +226 -0
- package/dist/server/handlers/nodes-routes-delivery.js.map +1 -0
- package/dist/server/handlers/nodes-routes-messages.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-messages.js +218 -0
- package/dist/server/handlers/nodes-routes-messages.js.map +1 -0
- package/dist/server/handlers/nodes-routes-register.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-register.js +239 -0
- package/dist/server/handlers/nodes-routes-register.js.map +1 -0
- package/dist/server/handlers/nodes-types.d.ts +82 -0
- package/dist/server/handlers/nodes-types.js +220 -0
- package/dist/server/handlers/nodes-types.js.map +1 -0
- package/dist/server/handlers/nodes-utils.d.ts +70 -0
- package/dist/server/handlers/nodes-utils.js +214 -0
- package/dist/server/handlers/nodes-utils.js.map +1 -0
- package/dist/server/handlers/nodes.test.js +353 -0
- package/dist/server/handlers/operations.test.js +136 -0
- package/dist/server/handlers/platform-telemetry.d.ts +10 -0
- package/dist/server/handlers/platform-telemetry.js +372 -0
- package/dist/server/handlers/platform-telemetry.js.map +1 -0
- package/dist/server/handlers/platform-telemetry.test.js +200 -0
- package/dist/server/handlers/platform-websearch.test.js +160 -0
- package/dist/server/handlers/sessions-handlers.d.ts +23 -0
- package/dist/server/handlers/sessions-handlers.js +374 -0
- package/dist/server/handlers/sessions-handlers.js.map +1 -0
- package/dist/server/handlers/storefront-cart.d.ts +31 -0
- package/dist/server/handlers/storefront-cart.js +381 -0
- package/dist/server/handlers/storefront-cart.js.map +1 -0
- package/dist/server/handlers/storefront.test.js +329 -0
- package/dist/server/handlers/supply-chain-transfers.d.ts +10 -0
- package/dist/server/handlers/supply-chain-transfers.js +214 -0
- package/dist/server/handlers/supply-chain-transfers.js.map +1 -0
- package/dist/server/handlers/supply-chain-utils.d.ts +2 -0
- package/dist/server/handlers/supply-chain-utils.js +21 -0
- package/dist/server/handlers/supply-chain-utils.js.map +1 -0
- package/dist/server/handlers/supply-chain.test.js +347 -0
- package/dist/server/handlers/transcription.test.js +118 -0
- package/dist/server/handlers/video-gen-providers.d.ts +30 -0
- package/dist/server/handlers/video-gen-providers.js +205 -0
- package/dist/server/handlers/video-gen-providers.js.map +1 -0
- package/dist/server/handlers/video-gen-sora.d.ts +5 -0
- package/dist/server/handlers/video-gen-sora.js +87 -0
- package/dist/server/handlers/video-gen-sora.js.map +1 -0
- package/dist/server/handlers/video-gen-veo.js +114 -0
- package/dist/server/handlers/video-gen-veo.js.map +1 -0
- package/dist/server/handlers/video-gen.test.js +146 -0
- package/dist/server/handlers/voice-handlers-audio.d.ts +9 -0
- package/dist/server/handlers/voice-handlers-audio.js +229 -0
- package/dist/server/handlers/voice-handlers-audio.js.map +1 -0
- package/dist/server/handlers/voice-handlers-music.d.ts +5 -0
- package/dist/server/handlers/voice-handlers-music.js +124 -0
- package/dist/server/handlers/voice-handlers-music.js.map +1 -0
- package/dist/server/handlers/voice-handlers-pvc.d.ts +8 -0
- package/dist/server/handlers/voice-handlers-pvc.js +345 -0
- package/dist/server/handlers/voice-handlers-pvc.js.map +1 -0
- package/dist/server/handlers/voice-handlers-tts.d.ts +5 -0
- package/dist/server/handlers/voice-handlers-tts.js +142 -0
- package/dist/server/handlers/voice-handlers-tts.js.map +1 -0
- package/dist/server/handlers/voice-handlers-voices.d.ts +8 -0
- package/dist/server/handlers/voice-handlers-voices.js +321 -0
- package/dist/server/handlers/voice-handlers-voices.js.map +1 -0
- package/dist/server/handlers/voice-utils.d.ts +32 -0
- package/dist/server/handlers/voice-utils.js +281 -0
- package/dist/server/handlers/voice-utils.js.map +1 -0
- package/dist/server/handlers/voice.test.js +153 -0
- package/dist/server/handlers/workflow-crud-advanced.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-advanced.js +275 -0
- package/dist/server/handlers/workflow-crud-advanced.js.map +1 -0
- package/dist/server/handlers/workflow-crud-core.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-core.js +286 -0
- package/dist/server/handlers/workflow-crud-core.js.map +1 -0
- package/dist/server/handlers/workflow-crud-events.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-events.js +483 -0
- package/dist/server/handlers/workflow-crud-events.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.js +231 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.js +319 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs.js +18 -0
- package/dist/server/handlers/workflow-crud-runs.js.map +1 -0
- package/dist/server/handlers/workflow-steps-advancement.d.ts +13 -0
- package/dist/server/handlers/workflow-steps-advancement.js +197 -0
- package/dist/server/handlers/workflow-steps-advancement.js.map +1 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.js +131 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.js.map +1 -0
- package/dist/server/handlers/workflow-steps-completion.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-completion.js +254 -0
- package/dist/server/handlers/workflow-steps-completion.js.map +1 -0
- package/dist/server/handlers/workflow-steps-cron.d.ts +4 -0
- package/dist/server/handlers/workflow-steps-cron.js +259 -0
- package/dist/server/handlers/workflow-steps-cron.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-execute.d.ts +3 -0
- package/dist/server/handlers/workflow-steps-engine-execute.js +388 -0
- package/dist/server/handlers/workflow-steps-engine-execute.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-inline.d.ts +2 -0
- package/dist/server/handlers/workflow-steps-engine-inline.js +91 -0
- package/dist/server/handlers/workflow-steps-engine-inline.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-persist.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-engine-persist.js +192 -0
- package/dist/server/handlers/workflow-steps-engine-persist.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-process.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-engine-process.js +290 -0
- package/dist/server/handlers/workflow-steps-engine-process.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine.d.ts +3 -0
- package/dist/server/handlers/workflow-steps-engine.js +10 -0
- package/dist/server/handlers/workflow-steps-engine.js.map +1 -0
- package/dist/server/handlers/workflow-steps-executors-llm.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-executors-llm.js +265 -0
- package/dist/server/handlers/workflow-steps-executors-llm.js.map +1 -0
- package/dist/server/handlers/workflow-steps-executors.d.ts +9 -0
- package/dist/server/handlers/workflow-steps-executors.js +188 -0
- package/dist/server/handlers/workflow-steps-executors.js.map +1 -0
- package/dist/server/handlers/workflow-steps-maintenance.d.ts +4 -0
- package/dist/server/handlers/workflow-steps-maintenance.js +256 -0
- package/dist/server/handlers/workflow-steps-maintenance.js.map +1 -0
- package/dist/server/handlers/workflow-steps-types.d.ts +84 -0
- package/dist/server/handlers/workflow-steps-types.js +179 -0
- package/dist/server/handlers/workflow-steps-types.js.map +1 -0
- package/dist/server/handlers/workflow-steps-webhook.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-webhook.js +179 -0
- package/dist/server/handlers/workflow-steps-webhook.js.map +1 -0
- package/dist/server/handlers/workflow-steps.test.js +330 -0
- package/dist/server/handlers/workflows-extras.test.js +65 -0
- package/dist/server/handlers/workflows.part2.test.js +170 -0
- package/dist/server/handlers/workflows.test.js +281 -0
- package/dist/server/index.js +81 -1720
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/__tests__/batch-client-conversion-jsonl.test.js +171 -0
- package/dist/server/lib/__tests__/batch-client-polling.test.js +292 -0
- package/dist/server/lib/__tests__/batch-client-queue.test.js +270 -0
- package/dist/server/lib/__tests__/clickhouse-buffer.test.js +236 -0
- package/dist/server/lib/__tests__/code-worker-edge-cases.test.js +118 -0
- package/dist/server/lib/__tests__/code-worker-pool-execute.test.js +193 -0
- package/dist/server/lib/__tests__/code-worker-pool-execution.test.js +165 -0
- package/dist/server/lib/__tests__/code-worker-pool-init.test.js +131 -0
- package/dist/server/lib/__tests__/code-worker-pool.test.js +194 -0
- package/dist/server/lib/__tests__/code-worker-sandbox-ops.test.js +123 -0
- package/dist/server/lib/__tests__/code-worker-sandbox.test.js +217 -0
- package/dist/server/lib/__tests__/code-worker.test.js +179 -0
- package/dist/server/lib/__tests__/compaction-service-generate.test.js +229 -0
- package/dist/server/lib/__tests__/compaction-service.test.js +319 -0
- package/dist/server/lib/__tests__/otel.test.js +146 -0
- package/dist/server/lib/__tests__/prompt-sanitizer-validation.test.js +165 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.sanitize.test.js +343 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.test.js +328 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.validate-tool.test.js +145 -0
- package/dist/server/lib/__tests__/provider-capabilities.test.js +263 -0
- package/dist/server/lib/__tests__/provider-failover-routing.test.js +145 -0
- package/dist/server/lib/__tests__/provider-failover-state.test.js +131 -0
- package/dist/server/lib/__tests__/rate-limiter-budgets.test.js +216 -0
- package/dist/server/lib/__tests__/rate-limiter.budgets-tools.test.js +113 -0
- package/dist/server/lib/__tests__/rate-limiter.check-request.test.js +141 -0
- package/dist/server/lib/__tests__/rate-limiter.stats-lifecycle.test.js +135 -0
- package/dist/server/lib/__tests__/rate-limiter.test.js +207 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort-conditions.test.js +544 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort.part2.test.js +504 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort.test.js +396 -0
- package/dist/server/lib/__tests__/server-agent-loop-compaction.test.js +397 -0
- package/dist/server/lib/__tests__/server-agent-loop-failover.test.js +356 -0
- package/dist/server/lib/__tests__/server-agent-loop-features-caching.test.js +519 -0
- package/dist/server/lib/__tests__/server-agent-loop-features-edges.test.js +512 -0
- package/dist/server/lib/__tests__/server-subagent-bailout.test.js +194 -0
- package/dist/server/lib/__tests__/server-subagent-basics.test.js +348 -0
- package/dist/server/lib/__tests__/server-subagent-errors-abort.test.js +319 -0
- package/dist/server/lib/__tests__/server-subagent-errors-progress.test.js +253 -0
- package/dist/server/lib/__tests__/server-subagent-errors.part2.test.js +253 -0
- package/dist/server/lib/__tests__/server-subagent-errors.test.js +319 -0
- package/dist/server/lib/__tests__/session-checkpoint-load.test.js +275 -0
- package/dist/server/lib/__tests__/session-checkpoint-save.test.js +159 -0
- package/dist/server/lib/__tests__/ssrf-guard.test.js +93 -0
- package/dist/server/lib/__tests__/supabase-client.test.js +111 -0
- package/dist/server/lib/__tests__/template-resolver.test.js +317 -0
- package/dist/server/lib/__tests__/utils-timeout.test.js +49 -0
- package/dist/server/lib/__tests__/utils.test.js +322 -0
- package/dist/server/lib/agent-loop-executor.d.ts +7 -0
- package/dist/server/lib/agent-loop-executor.js +224 -0
- package/dist/server/lib/agent-loop-executor.js.map +1 -0
- package/dist/server/lib/agent-loop-turn.d.ts +53 -0
- package/dist/server/lib/agent-loop-turn.js +166 -0
- package/dist/server/lib/agent-loop-turn.js.map +1 -0
- package/dist/server/lib/agent-loop-types.d.ts +118 -0
- package/dist/server/lib/agent-loop-types.js +53 -0
- package/dist/server/lib/agent-loop-types.js.map +1 -0
- package/dist/server/lib/batch-client-anthropic.d.ts +10 -0
- package/dist/server/lib/batch-client-anthropic.js +144 -0
- package/dist/server/lib/batch-client-anthropic.js.map +1 -0
- package/dist/server/lib/batch-client-openai.d.ts +10 -0
- package/dist/server/lib/batch-client-openai.js +172 -0
- package/dist/server/lib/batch-client-openai.js.map +1 -0
- package/dist/server/lib/batch-client-types.d.ts +54 -0
- package/dist/server/lib/batch-client-types.js +27 -0
- package/dist/server/lib/batch-client-types.js.map +1 -0
- package/dist/server/lib/coa-renderer-components.d.ts +15 -0
- package/dist/server/lib/coa-renderer-components.js +361 -0
- package/dist/server/lib/coa-renderer-components.js.map +1 -0
- package/dist/server/lib/coa-renderer-pages.d.ts +15 -0
- package/dist/server/lib/coa-renderer-pages.js +467 -0
- package/dist/server/lib/coa-renderer-pages.js.map +1 -0
- package/dist/server/lib/coa-renderer-styles.d.ts +525 -0
- package/dist/server/lib/coa-renderer-styles.js +540 -0
- package/dist/server/lib/coa-renderer-styles.js.map +1 -0
- package/dist/server/lib/coa-renderer-tokens.d.ts +107 -0
- package/dist/server/lib/coa-renderer-tokens.js +46 -0
- package/dist/server/lib/coa-renderer-tokens.js.map +1 -0
- package/dist/server/lib/pdf-renderer-calc.d.ts +7 -0
- package/dist/server/lib/pdf-renderer-calc.js +272 -0
- package/dist/server/lib/pdf-renderer-calc.js.map +1 -0
- package/dist/server/lib/pdf-renderer-generation.d.ts +73 -0
- package/dist/server/lib/pdf-renderer-generation.js +298 -0
- package/dist/server/lib/pdf-renderer-generation.js.map +1 -0
- package/dist/server/lib/pdf-renderer-layout.d.ts +2 -0
- package/dist/server/lib/pdf-renderer-layout.js +144 -0
- package/dist/server/lib/pdf-renderer-layout.js.map +1 -0
- package/dist/server/lib/pdf-renderer-validation.d.ts +14 -0
- package/dist/server/lib/pdf-renderer-validation.js +220 -0
- package/dist/server/lib/pdf-renderer-validation.js.map +1 -0
- package/dist/server/lib/react-pdf-layout-elements.d.ts +8 -0
- package/dist/server/lib/react-pdf-layout-elements.js +366 -0
- package/dist/server/lib/react-pdf-layout-elements.js.map +1 -0
- package/dist/server/lib/react-pdf-layout-labels.d.ts +38 -0
- package/dist/server/lib/react-pdf-layout-labels.js +217 -0
- package/dist/server/lib/react-pdf-layout-labels.js.map +1 -0
- package/dist/server/lib/server-agent-loop-init.d.ts +28 -0
- package/dist/server/lib/server-agent-loop-init.js +138 -0
- package/dist/server/lib/server-agent-loop-init.js.map +1 -0
- package/dist/server/lib/server-agent-loop-v2.d.ts +110 -0
- package/dist/server/lib/server-agent-loop-v2.js +340 -0
- package/dist/server/lib/server-agent-loop-v2.js.map +1 -0
- package/dist/server/lib/server-agent-loop.js +2 -1
- package/dist/server/lib/server-agent-loop.js.map +1 -1
- package/dist/server/lib/server-subagent-loop.d.ts +3 -0
- package/dist/server/lib/server-subagent-loop.js +267 -0
- package/dist/server/lib/server-subagent-loop.js.map +1 -0
- package/dist/server/lib/session-types.d.ts +106 -0
- package/dist/server/lib/session-types.js +2 -0
- package/dist/server/lib/session-types.js.map +1 -0
- package/dist/server/local-agent-gateway-api.d.ts +34 -0
- package/dist/server/local-agent-gateway-api.js +156 -0
- package/dist/server/local-agent-gateway-api.js.map +1 -0
- package/dist/server/local-agent-gateway-handler.d.ts +3 -0
- package/dist/server/local-agent-gateway-handler.js +292 -0
- package/dist/server/local-agent-gateway-handler.js.map +1 -0
- package/dist/server/local-agent-gateway-init.d.ts +21 -0
- package/dist/server/local-agent-gateway-init.js +143 -0
- package/dist/server/local-agent-gateway-init.js.map +1 -0
- package/dist/server/local-agent-gateway-messages.d.ts +12 -0
- package/dist/server/local-agent-gateway-messages.js +108 -0
- package/dist/server/local-agent-gateway-messages.js.map +1 -0
- package/dist/server/local-agent-gateway-stats.d.ts +53 -0
- package/dist/server/local-agent-gateway-stats.js +129 -0
- package/dist/server/local-agent-gateway-stats.js.map +1 -0
- package/dist/server/local-agent-gateway-types.d.ts +94 -0
- package/dist/server/local-agent-gateway-types.js +78 -0
- package/dist/server/local-agent-gateway-types.js.map +1 -0
- package/dist/server/local-agent-gateway.d.ts +6 -0
- package/dist/server/local-agent-gateway.js +40 -0
- package/dist/server/local-agent-gateway.js.map +1 -1
- package/dist/server/providers/__tests__/anthropic-adapter.test.js +228 -0
- package/dist/server/providers/__tests__/anthropic-betas-toolchoice.test.js +257 -0
- package/dist/server/providers/__tests__/anthropic-errors.test.js +262 -0
- package/dist/server/providers/__tests__/anthropic-stream-core.test.js +275 -0
- package/dist/server/providers/__tests__/anthropic-streaming-betas.test.js +247 -0
- package/dist/server/providers/__tests__/anthropic-streaming-core.test.js +275 -0
- package/dist/server/providers/__tests__/bedrock-config.test.js +177 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior-streaming.test.js +272 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior-toolchoice.test.js +214 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior.part2.test.js +165 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior.test.js +309 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-credentials.test.js +170 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-extras.test.js +183 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-request.test.js +305 -0
- package/dist/server/providers/__tests__/bedrock-stream-body.part2.test.js +305 -0
- package/dist/server/providers/__tests__/bedrock-stream-body.test.js +175 -0
- package/dist/server/providers/__tests__/bedrock-stream-errors.test.js +165 -0
- package/dist/server/providers/__tests__/gemini-config-methods.test.js +182 -0
- package/dist/server/providers/__tests__/gemini-config-streaming.test.js +257 -0
- package/dist/server/providers/__tests__/gemini-conversion-messages.test.js +247 -0
- package/dist/server/providers/__tests__/gemini-conversion-schema.test.js +365 -0
- package/dist/server/providers/__tests__/gemini-tools-choice.test.js +221 -0
- package/dist/server/providers/__tests__/gemini-tools-fn.test.js +252 -0
- package/dist/server/providers/__tests__/openai-config.test.js +194 -0
- package/dist/server/providers/__tests__/openai-conversion.test.js +276 -0
- package/dist/server/providers/__tests__/openai-messages.test.js +261 -0
- package/dist/server/providers/__tests__/openai-streaming.test.js +394 -0
- package/dist/server/providers/__tests__/openai-tools-cache.test.js +227 -0
- package/dist/server/providers/__tests__/registry.test.js +183 -0
- package/dist/server/providers/__tests__/shared.test.js +297 -0
- package/dist/server/providers/gemini-conversion.d.ts +17 -0
- package/dist/server/providers/gemini-conversion.js +185 -0
- package/dist/server/providers/gemini-conversion.js.map +1 -0
- package/dist/server/providers/gemini-streaming.d.ts +18 -0
- package/dist/server/providers/gemini-streaming.js +187 -0
- package/dist/server/providers/gemini-streaming.js.map +1 -0
- package/dist/server/providers/openai-adapter.d.ts +15 -0
- package/dist/server/providers/openai-adapter.js +423 -0
- package/dist/server/providers/openai-adapter.js.map +1 -0
- package/dist/server/providers/openai-conversion.d.ts +21 -0
- package/dist/server/providers/openai-conversion.js +191 -0
- package/dist/server/providers/openai-conversion.js.map +1 -0
- package/dist/server/server-agent.d.ts +21 -0
- package/dist/server/server-agent.js +162 -0
- package/dist/server/server-agent.js.map +1 -0
- package/dist/server/server-chat.d.ts +6 -0
- package/dist/server/server-chat.js +210 -0
- package/dist/server/server-chat.js.map +1 -0
- package/dist/server/server-cost-guard.d.ts +16 -0
- package/dist/server/server-cost-guard.js +141 -0
- package/dist/server/server-cost-guard.js.map +1 -0
- package/dist/server/server-executors.d.ts +10 -0
- package/dist/server/server-executors.js +110 -0
- package/dist/server/server-executors.js.map +1 -0
- package/dist/server/server-helpers.d.ts +49 -0
- package/dist/server/server-helpers.js +210 -0
- package/dist/server/server-helpers.js.map +1 -0
- package/dist/server/server-persist.d.ts +43 -0
- package/dist/server/server-persist.js +249 -0
- package/dist/server/server-persist.js.map +1 -0
- package/dist/server/server-rate-limit.d.ts +9 -0
- package/dist/server/server-rate-limit.js +77 -0
- package/dist/server/server-rate-limit.js.map +1 -0
- package/dist/server/server-routes-approvals.d.ts +4 -0
- package/dist/server/server-routes-approvals.js +238 -0
- package/dist/server/server-routes-approvals.js.map +1 -0
- package/dist/server/server-routes-auth.d.ts +7 -0
- package/dist/server/server-routes-auth.js +532 -0
- package/dist/server/server-routes-auth.js.map +1 -0
- package/dist/server/server-routes-events.d.ts +4 -0
- package/dist/server/server-routes-events.js +167 -0
- package/dist/server/server-routes-events.js.map +1 -0
- package/dist/server/server-routes-public.d.ts +24 -0
- package/dist/server/server-routes-public.js +453 -0
- package/dist/server/server-routes-public.js.map +1 -0
- package/dist/server/server-routes-waitpoints.d.ts +4 -0
- package/dist/server/server-routes-waitpoints.js +190 -0
- package/dist/server/server-routes-waitpoints.js.map +1 -0
- package/dist/server/server-routes-webchat.d.ts +14 -0
- package/dist/server/server-routes-webchat.js +307 -0
- package/dist/server/server-routes-webchat.js.map +1 -0
- package/dist/server/server-routes-workflows.d.ts +5 -0
- package/dist/server/server-routes-workflows.js +289 -0
- package/dist/server/server-routes-workflows.js.map +1 -0
- package/dist/server/server-sse.d.ts +13 -0
- package/dist/server/server-sse.js +197 -0
- package/dist/server/server-sse.js.map +1 -0
- package/dist/server/server-store-circuit-breaker.d.ts +32 -0
- package/dist/server/server-store-circuit-breaker.js +211 -0
- package/dist/server/server-store-circuit-breaker.js.map +1 -0
- package/dist/server/server-store.d.ts +5 -0
- package/dist/server/server-store.js +71 -0
- package/dist/server/server-store.js.map +1 -0
- package/dist/server/server-trace.d.ts +41 -0
- package/dist/server/server-trace.js +133 -0
- package/dist/server/server-trace.js.map +1 -0
- package/dist/server/server-worker.d.ts +4 -0
- package/dist/server/server-worker.js +127 -0
- package/dist/server/server-worker.js.map +1 -0
- package/dist/server/session-events.d.ts +27 -0
- package/dist/server/session-events.js +69 -0
- package/dist/server/session-events.js.map +1 -0
- package/dist/server/session-manager.d.ts +52 -0
- package/dist/server/session-manager.js +502 -0
- package/dist/server/session-manager.js.map +1 -0
- package/dist/server/tool-router-discovery.d.ts +33 -0
- package/dist/server/tool-router-discovery.js +218 -0
- package/dist/server/tool-router-discovery.js.map +1 -0
- package/dist/server/tool-router-types.d.ts +91 -0
- package/dist/server/tool-router-types.js +336 -0
- package/dist/server/tool-router-types.js.map +1 -0
- package/dist/server/tool-router-user-tools.d.ts +16 -0
- package/dist/server/tool-router-user-tools.js +269 -0
- package/dist/server/tool-router-user-tools.js.map +1 -0
- package/dist/server/validation-schemas.d.ts +12 -0
- package/dist/server/validation-schemas.js +251 -0
- package/dist/server/validation-schemas.js.map +1 -0
- package/dist/shared/agent-core-config.d.ts +12 -0
- package/dist/shared/agent-core-config.js +77 -0
- package/dist/shared/agent-core-config.js.map +1 -0
- package/dist/shared/agent-core-config.test.js +132 -0
- package/dist/shared/agent-core-context-thinking.test.js +293 -0
- package/dist/shared/agent-core-loop-calls.test.js +174 -0
- package/dist/shared/agent-core-loop-detector-bail.test.js +201 -0
- package/dist/shared/agent-core-loop-detector.test.js +195 -0
- package/dist/shared/agent-core-loop-errors.test.js +258 -0
- package/dist/shared/agent-core-loop.d.ts +53 -0
- package/dist/shared/agent-core-loop.js +251 -0
- package/dist/shared/agent-core-loop.js.map +1 -0
- package/dist/shared/agent-core-pricing.test.js +191 -0
- package/dist/shared/agent-core-sanitize-retry.test.js +129 -0
- package/dist/shared/agent-core-tools.d.ts +32 -0
- package/dist/shared/agent-core-tools.js +323 -0
- package/dist/shared/agent-core-tools.js.map +1 -0
- package/dist/shared/agent-core-types.d.ts +182 -0
- package/dist/shared/agent-core-types.js +265 -0
- package/dist/shared/agent-core-types.js.map +1 -0
- package/dist/shared/agent-core.js +1 -1
- package/dist/shared/agent-core.js.map +1 -1
- package/dist/shared/agent-loop-base.d.ts +130 -0
- package/dist/shared/agent-loop-base.js +347 -0
- package/dist/shared/agent-loop-base.js.map +1 -0
- package/dist/shared/api-client-build-request.test.js +228 -0
- package/dist/shared/api-client-build-system-caching.test.js +107 -0
- package/dist/shared/api-client-build.test.js +223 -0
- package/dist/shared/api-client-config.d.ts +21 -0
- package/dist/shared/api-client-helpers.d.ts +57 -0
- package/dist/shared/api-client-helpers.test.js +261 -0
- package/dist/shared/api-client-proxy-happy.test.js +255 -0
- package/dist/shared/api-client-proxy-retry.test.js +307 -0
- package/dist/shared/api-client-proxy.d.ts +26 -0
- package/dist/shared/api-client-proxy.test.js +255 -0
- package/dist/shared/api-client-retry.test.js +307 -0
- package/dist/shared/api-client-system-trimming.test.js +261 -0
- package/dist/shared/api-client-trimming.d.ts +36 -0
- package/dist/shared/api-client.js.map +1 -1
- package/dist/shared/api-client.test.js +228 -0
- package/dist/shared/compaction-thinking.test.js +315 -0
- package/dist/shared/compaction-trimming.test.js +223 -0
- package/dist/shared/exec-validator.d.ts +29 -0
- package/dist/shared/exec-validator.js +106 -0
- package/dist/shared/exec-validator.js.map +1 -0
- package/dist/shared/imsg-constants.d.ts +8 -0
- package/dist/shared/imsg-constants.js +13 -0
- package/dist/shared/imsg-constants.js.map +1 -0
- package/dist/shared/sse-parser-callbacks.test.js +422 -0
- package/dist/shared/sse-parser-collect.test.js +252 -0
- package/dist/shared/sse-parser-e2e.test.js +558 -0
- package/dist/shared/sse-parser-parse.test.js +253 -0
- package/dist/shared/tool-dispatch-advanced-batch-build.test.js +405 -0
- package/dist/shared/tool-dispatch-advanced.test.js +320 -0
- package/dist/shared/tool-dispatch-basic.test.js +278 -0
- package/dist/shared/tool-dispatch-content.d.ts +14 -0
- package/dist/shared/tool-dispatch-parallel.test.js +378 -0
- package/dist/shared/tool-dispatch.js +1 -1
- package/dist/shared/tool-dispatch.js.map +1 -1
- package/dist/webchat/__tests__/widget-messaging.test.js +323 -0
- package/dist/webchat/__tests__/widget.test.js +273 -0
- package/dist/webchat/widget-styles.d.ts +7 -0
- package/dist/webchat/widget-styles.js +11 -0
- package/dist/webchat/widget-styles.js.map +1 -0
- package/package.json +5 -4
- package/src/cli/services/builtin-skills/verify.md +72 -0
- package/vendor/ink/build/ink.js +33 -10
- package/vendor/ink/build/log-update.js +11 -4
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// server/lib/pdf-renderer-validation.ts — Boolean expression evaluator + validation engine
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Interfaces
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Tokenizer for boolean expressions
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
function tokenizeBool(expr) {
|
|
12
|
+
const tokens = [];
|
|
13
|
+
let i = 0;
|
|
14
|
+
while (i < expr.length) {
|
|
15
|
+
const ch = expr[i];
|
|
16
|
+
if (/\s/.test(ch)) {
|
|
17
|
+
i++;
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (/[0-9]/.test(ch) || ch === "." && i + 1 < expr.length && /[0-9]/.test(expr[i + 1])) {
|
|
21
|
+
let num = "";
|
|
22
|
+
while (i < expr.length && /[0-9.]/.test(expr[i])) {
|
|
23
|
+
num += expr[i];
|
|
24
|
+
i++;
|
|
25
|
+
}
|
|
26
|
+
tokens.push({
|
|
27
|
+
type: "NUMBER",
|
|
28
|
+
value: num
|
|
29
|
+
});
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (/[a-zA-Z_]/.test(ch)) {
|
|
33
|
+
let id = "";
|
|
34
|
+
while (i < expr.length && /[a-zA-Z0-9_]/.test(expr[i])) {
|
|
35
|
+
id += expr[i];
|
|
36
|
+
i++;
|
|
37
|
+
}
|
|
38
|
+
if (id === "AND" || id === "OR") {
|
|
39
|
+
tokens.push({
|
|
40
|
+
type: "LOGIC",
|
|
41
|
+
value: id
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
tokens.push({
|
|
45
|
+
type: "IDENT",
|
|
46
|
+
value: id
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Comparison operators
|
|
52
|
+
if (ch === "<" || ch === ">" || ch === "=" || ch === "!") {
|
|
53
|
+
let op = ch;
|
|
54
|
+
i++;
|
|
55
|
+
if (i < expr.length && expr[i] === "=") {
|
|
56
|
+
op += "=";
|
|
57
|
+
i++;
|
|
58
|
+
} else if (ch === "=" && i < expr.length && expr[i] === "=") {
|
|
59
|
+
op += "=";
|
|
60
|
+
i++;
|
|
61
|
+
}
|
|
62
|
+
tokens.push({
|
|
63
|
+
type: "CMP",
|
|
64
|
+
value: op
|
|
65
|
+
});
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if ("+-*/".includes(ch)) {
|
|
69
|
+
tokens.push({
|
|
70
|
+
type: "OP",
|
|
71
|
+
value: ch
|
|
72
|
+
});
|
|
73
|
+
i++;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (ch === "(") {
|
|
77
|
+
tokens.push({
|
|
78
|
+
type: "LPAREN",
|
|
79
|
+
value: ch
|
|
80
|
+
});
|
|
81
|
+
i++;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (ch === ")") {
|
|
85
|
+
tokens.push({
|
|
86
|
+
type: "RPAREN",
|
|
87
|
+
value: ch
|
|
88
|
+
});
|
|
89
|
+
i++;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
i++;
|
|
93
|
+
}
|
|
94
|
+
tokens.push({
|
|
95
|
+
type: "EOF",
|
|
96
|
+
value: ""
|
|
97
|
+
});
|
|
98
|
+
return tokens;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Boolean expression evaluator
|
|
103
|
+
// ============================================================================
|
|
104
|
+
|
|
105
|
+
function evalBoolExpr(expr, ctx) {
|
|
106
|
+
const tokens = tokenizeBool(expr);
|
|
107
|
+
let pos = 0;
|
|
108
|
+
function peek() {
|
|
109
|
+
return tokens[pos] || {
|
|
110
|
+
type: "EOF",
|
|
111
|
+
value: ""
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function advance() {
|
|
115
|
+
return tokens[pos++];
|
|
116
|
+
}
|
|
117
|
+
function numericValue() {
|
|
118
|
+
const tok = peek();
|
|
119
|
+
if (tok.type === "NUMBER") {
|
|
120
|
+
advance();
|
|
121
|
+
return parseFloat(tok.value);
|
|
122
|
+
}
|
|
123
|
+
if (tok.type === "IDENT") {
|
|
124
|
+
advance();
|
|
125
|
+
const v = ctx[tok.value];
|
|
126
|
+
return typeof v === "number" ? v : typeof v === "string" ? parseFloat(v) || 0 : 0;
|
|
127
|
+
}
|
|
128
|
+
if (tok.type === "LPAREN") {
|
|
129
|
+
advance();
|
|
130
|
+
const val = numericExpr();
|
|
131
|
+
if (peek().type === "RPAREN") advance();
|
|
132
|
+
return val;
|
|
133
|
+
}
|
|
134
|
+
advance();
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
function numericExpr() {
|
|
138
|
+
let left = numericTerm();
|
|
139
|
+
while (peek().type === "OP" && (peek().value === "+" || peek().value === "-")) {
|
|
140
|
+
const op = advance().value;
|
|
141
|
+
const right = numericTerm();
|
|
142
|
+
left = op === "+" ? left + right : left - right;
|
|
143
|
+
}
|
|
144
|
+
return left;
|
|
145
|
+
}
|
|
146
|
+
function numericTerm() {
|
|
147
|
+
let left = numericValue();
|
|
148
|
+
while (peek().type === "OP" && (peek().value === "*" || peek().value === "/")) {
|
|
149
|
+
const op = advance().value;
|
|
150
|
+
const right = numericValue();
|
|
151
|
+
left = op === "*" ? left * right : right !== 0 ? left / right : 0;
|
|
152
|
+
}
|
|
153
|
+
return left;
|
|
154
|
+
}
|
|
155
|
+
function comparison() {
|
|
156
|
+
const left = numericExpr();
|
|
157
|
+
const tok = peek();
|
|
158
|
+
if (tok.type === "CMP") {
|
|
159
|
+
const op = advance().value;
|
|
160
|
+
const right = numericExpr();
|
|
161
|
+
switch (op) {
|
|
162
|
+
case "<":
|
|
163
|
+
return left < right;
|
|
164
|
+
case "<=":
|
|
165
|
+
return left <= right;
|
|
166
|
+
case ">":
|
|
167
|
+
return left > right;
|
|
168
|
+
case ">=":
|
|
169
|
+
return left >= right;
|
|
170
|
+
case "==":
|
|
171
|
+
return Math.abs(left - right) < 1e-9;
|
|
172
|
+
case "!=":
|
|
173
|
+
return Math.abs(left - right) >= 1e-9;
|
|
174
|
+
default:
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Truthy check if no comparison operator
|
|
179
|
+
return left !== 0;
|
|
180
|
+
}
|
|
181
|
+
function boolExpr() {
|
|
182
|
+
let left = comparison();
|
|
183
|
+
while (peek().type === "LOGIC") {
|
|
184
|
+
const op = advance().value;
|
|
185
|
+
const right = comparison();
|
|
186
|
+
if (op === "AND") left = left && right;else if (op === "OR") left = left || right;
|
|
187
|
+
}
|
|
188
|
+
return left;
|
|
189
|
+
}
|
|
190
|
+
return boolExpr();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// Validation Engine — public API
|
|
195
|
+
// ============================================================================
|
|
196
|
+
|
|
197
|
+
export function runValidation(rules, data) {
|
|
198
|
+
if (!rules || !Array.isArray(rules)) return [];
|
|
199
|
+
const results = [];
|
|
200
|
+
for (const rule of rules) {
|
|
201
|
+
try {
|
|
202
|
+
const passed = evalBoolExpr(rule.formula, data);
|
|
203
|
+
results.push({
|
|
204
|
+
name: rule.name,
|
|
205
|
+
severity: rule.severity,
|
|
206
|
+
message: rule.message,
|
|
207
|
+
passed
|
|
208
|
+
});
|
|
209
|
+
} catch {
|
|
210
|
+
results.push({
|
|
211
|
+
name: rule.name,
|
|
212
|
+
severity: rule.severity,
|
|
213
|
+
message: rule.message,
|
|
214
|
+
passed: false
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return results;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=pdf-renderer-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf-renderer-validation.js","names":["tokenizeBool","expr","tokens","i","length","ch","test","num","push","type","value","id","op","includes","evalBoolExpr","ctx","pos","peek","advance","numericValue","tok","parseFloat","v","val","numericExpr","left","numericTerm","right","comparison","Math","abs","boolExpr","runValidation","rules","data","Array","isArray","results","rule","passed","formula","name","severity","message"],"sources":["../../../src/server/lib/pdf-renderer-validation.ts"],"sourcesContent":["// server/lib/pdf-renderer-validation.ts — Boolean expression evaluator + validation engine\n\n// ============================================================================\n// Interfaces\n// ============================================================================\n\ninterface ValidationRule {\n name: string;\n formula: string;\n severity: \"error\" | \"warning\";\n message: string;\n}\n\nexport interface ValidationResult {\n name: string;\n severity: \"error\" | \"warning\";\n message: string;\n passed: boolean;\n}\n\n// ============================================================================\n// Tokenizer for boolean expressions\n// ============================================================================\n\ntype BoolTokenType = \"NUMBER\" | \"IDENT\" | \"OP\" | \"CMP\" | \"LOGIC\" | \"LPAREN\" | \"RPAREN\" | \"EOF\";\ninterface BoolToken { type: BoolTokenType; value: string }\n\nfunction tokenizeBool(expr: string): BoolToken[] {\n const tokens: BoolToken[] = [];\n let i = 0;\n while (i < expr.length) {\n const ch = expr[i];\n if (/\\s/.test(ch)) { i++; continue; }\n if (/[0-9]/.test(ch) || (ch === \".\" && i + 1 < expr.length && /[0-9]/.test(expr[i + 1]))) {\n let num = \"\";\n while (i < expr.length && /[0-9.]/.test(expr[i])) { num += expr[i]; i++; }\n tokens.push({ type: \"NUMBER\", value: num });\n continue;\n }\n if (/[a-zA-Z_]/.test(ch)) {\n let id = \"\";\n while (i < expr.length && /[a-zA-Z0-9_]/.test(expr[i])) { id += expr[i]; i++; }\n if (id === \"AND\" || id === \"OR\") {\n tokens.push({ type: \"LOGIC\", value: id });\n } else {\n tokens.push({ type: \"IDENT\", value: id });\n }\n continue;\n }\n // Comparison operators\n if (ch === \"<\" || ch === \">\" || ch === \"=\" || ch === \"!\") {\n let op = ch;\n i++;\n if (i < expr.length && expr[i] === \"=\") { op += \"=\"; i++; }\n else if (ch === \"=\" && i < expr.length && expr[i] === \"=\") { op += \"=\"; i++; }\n tokens.push({ type: \"CMP\", value: op });\n continue;\n }\n if (\"+-*/\".includes(ch)) { tokens.push({ type: \"OP\", value: ch }); i++; continue; }\n if (ch === \"(\") { tokens.push({ type: \"LPAREN\", value: ch }); i++; continue; }\n if (ch === \")\") { tokens.push({ type: \"RPAREN\", value: ch }); i++; continue; }\n i++;\n }\n tokens.push({ type: \"EOF\", value: \"\" });\n return tokens;\n}\n\n// ============================================================================\n// Boolean expression evaluator\n// ============================================================================\n\nfunction evalBoolExpr(expr: string, ctx: Record<string, unknown>): boolean {\n const tokens = tokenizeBool(expr);\n let pos = 0;\n\n function peek(): BoolToken { return tokens[pos] || { type: \"EOF\", value: \"\" }; }\n function advance(): BoolToken { return tokens[pos++]; }\n\n function numericValue(): number {\n const tok = peek();\n if (tok.type === \"NUMBER\") { advance(); return parseFloat(tok.value); }\n if (tok.type === \"IDENT\") {\n advance();\n const v = ctx[tok.value];\n return typeof v === \"number\" ? v : (typeof v === \"string\" ? parseFloat(v) || 0 : 0);\n }\n if (tok.type === \"LPAREN\") {\n advance();\n const val = numericExpr();\n if (peek().type === \"RPAREN\") advance();\n return val;\n }\n advance();\n return 0;\n }\n\n function numericExpr(): number {\n let left = numericTerm();\n while (peek().type === \"OP\" && (peek().value === \"+\" || peek().value === \"-\")) {\n const op = advance().value;\n const right = numericTerm();\n left = op === \"+\" ? left + right : left - right;\n }\n return left;\n }\n\n function numericTerm(): number {\n let left = numericValue();\n while (peek().type === \"OP\" && (peek().value === \"*\" || peek().value === \"/\")) {\n const op = advance().value;\n const right = numericValue();\n left = op === \"*\" ? left * right : (right !== 0 ? left / right : 0);\n }\n return left;\n }\n\n function comparison(): boolean {\n const left = numericExpr();\n const tok = peek();\n if (tok.type === \"CMP\") {\n const op = advance().value;\n const right = numericExpr();\n switch (op) {\n case \"<\": return left < right;\n case \"<=\": return left <= right;\n case \">\": return left > right;\n case \">=\": return left >= right;\n case \"==\": return Math.abs(left - right) < 1e-9;\n case \"!=\": return Math.abs(left - right) >= 1e-9;\n default: return false;\n }\n }\n // Truthy check if no comparison operator\n return left !== 0;\n }\n\n function boolExpr(): boolean {\n let left = comparison();\n while (peek().type === \"LOGIC\") {\n const op = advance().value;\n const right = comparison();\n if (op === \"AND\") left = left && right;\n else if (op === \"OR\") left = left || right;\n }\n return left;\n }\n\n return boolExpr();\n}\n\n// ============================================================================\n// Validation Engine — public API\n// ============================================================================\n\nexport function runValidation(\n rules: ValidationRule[] | undefined | null,\n data: Record<string, unknown>,\n): ValidationResult[] {\n if (!rules || !Array.isArray(rules)) return [];\n const results: ValidationResult[] = [];\n\n for (const rule of rules) {\n try {\n const passed = evalBoolExpr(rule.formula, data);\n results.push({ name: rule.name, severity: rule.severity, message: rule.message, passed });\n } catch {\n results.push({ name: rule.name, severity: rule.severity, message: rule.message, passed: false });\n }\n }\n return results;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type LayoutElement } from "./pdf-renderer.js";
|
|
3
|
+
/** Convert margin string (e.g. "15mm", "1cm", "72pt", number) to points */
|
|
4
|
+
export declare function toPoints(val: string | number | undefined, fallback?: number): number;
|
|
5
|
+
/** Map page size string to React-PDF page size */
|
|
6
|
+
export declare function mapPageSize(size: string | undefined): string;
|
|
7
|
+
export declare function renderElement(el: LayoutElement, data: Record<string, unknown>, key: string): React.ReactElement;
|
|
8
|
+
export declare function normalizeLayout(layout: LayoutElement[] | Record<string, unknown> | undefined | null): LayoutElement[];
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
// server/lib/react-pdf-layout-elements.ts — Element rendering for React-PDF layout
|
|
2
|
+
// Extracted from react-pdf-layout.ts for single-responsibility.
|
|
3
|
+
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { Text, View, Image } from "@react-pdf/renderer";
|
|
6
|
+
import { resolveBinding, resolveText, generateQRSvg } from "./pdf-renderer.js";
|
|
7
|
+
const e = React.createElement;
|
|
8
|
+
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Unit Helpers
|
|
11
|
+
// ============================================================================
|
|
12
|
+
|
|
13
|
+
/** Convert margin string (e.g. "15mm", "1cm", "72pt", number) to points */
|
|
14
|
+
export function toPoints(val, fallback = 42.5) {
|
|
15
|
+
if (val === undefined || val === null) return fallback;
|
|
16
|
+
if (typeof val === "number") return val;
|
|
17
|
+
const num = parseFloat(val);
|
|
18
|
+
if (isNaN(num)) return fallback;
|
|
19
|
+
if (val.endsWith("mm")) return num * 2.835;
|
|
20
|
+
if (val.endsWith("cm")) return num * 28.35;
|
|
21
|
+
if (val.endsWith("in")) return num * 72;
|
|
22
|
+
if (val.endsWith("pt")) return num;
|
|
23
|
+
if (val.endsWith("px")) return num * 0.75;
|
|
24
|
+
return num; // default to points
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Map page size string to React-PDF page size */
|
|
28
|
+
export function mapPageSize(size) {
|
|
29
|
+
if (!size) return "A4";
|
|
30
|
+
const s = size.toUpperCase();
|
|
31
|
+
if (s === "LETTER") return "LETTER";
|
|
32
|
+
if (s === "LEGAL") return "LEGAL";
|
|
33
|
+
if (s === "TABLOID") return "TABLOID";
|
|
34
|
+
return s; // A4, A3, etc. — React-PDF supports these directly
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Element Renderer — ports renderElement() from pdf-renderer.ts
|
|
39
|
+
// ============================================================================
|
|
40
|
+
|
|
41
|
+
export function renderElement(el, data, key) {
|
|
42
|
+
switch (el.type) {
|
|
43
|
+
case "text":
|
|
44
|
+
{
|
|
45
|
+
const text = resolveText(el.content || el.text || "", data);
|
|
46
|
+
return e(View, {
|
|
47
|
+
key,
|
|
48
|
+
style: {
|
|
49
|
+
marginBottom: 2
|
|
50
|
+
}
|
|
51
|
+
}, e(Text, {
|
|
52
|
+
style: {
|
|
53
|
+
fontSize: el.fontSize || undefined,
|
|
54
|
+
color: el.color || undefined,
|
|
55
|
+
fontFamily: el.bold ? "Helvetica-Bold" : undefined,
|
|
56
|
+
textAlign: el.align || undefined
|
|
57
|
+
}
|
|
58
|
+
}, text));
|
|
59
|
+
}
|
|
60
|
+
case "header":
|
|
61
|
+
{
|
|
62
|
+
const text = resolveText(el.content || el.text || "", data);
|
|
63
|
+
return e(View, {
|
|
64
|
+
key,
|
|
65
|
+
style: {
|
|
66
|
+
backgroundColor: el.backgroundColor || undefined,
|
|
67
|
+
padding: typeof el.padding === "number" ? el.padding : el.padding ? toPoints(el.padding, 0) : undefined,
|
|
68
|
+
marginBottom: 4
|
|
69
|
+
}
|
|
70
|
+
}, e(Text, {
|
|
71
|
+
style: {
|
|
72
|
+
fontFamily: "Helvetica-Bold",
|
|
73
|
+
fontSize: el.fontSize || undefined,
|
|
74
|
+
color: el.color || undefined,
|
|
75
|
+
textAlign: el.align || undefined
|
|
76
|
+
}
|
|
77
|
+
}, text));
|
|
78
|
+
}
|
|
79
|
+
case "image":
|
|
80
|
+
{
|
|
81
|
+
let src = el.src || el.url || "";
|
|
82
|
+
if (el.bind) {
|
|
83
|
+
const resolved = resolveBinding(el.bind, data);
|
|
84
|
+
if (typeof resolved === "string") src = resolved;
|
|
85
|
+
}
|
|
86
|
+
if (!src) return e(View, {
|
|
87
|
+
key
|
|
88
|
+
});
|
|
89
|
+
const style = {};
|
|
90
|
+
if (el.width) style.width = typeof el.width === "number" ? el.width : toPoints(el.width, 100);
|
|
91
|
+
if (el.height) style.height = typeof el.height === "number" ? el.height : toPoints(el.height, 100);
|
|
92
|
+
return e(Image, {
|
|
93
|
+
key,
|
|
94
|
+
src,
|
|
95
|
+
style
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
case "qrcode":
|
|
99
|
+
{
|
|
100
|
+
let qrData = el.data || el.content || "";
|
|
101
|
+
if (el.bind) {
|
|
102
|
+
const resolved = resolveBinding(el.bind, data);
|
|
103
|
+
if (typeof resolved === "string") qrData = resolved;
|
|
104
|
+
}
|
|
105
|
+
qrData = resolveText(qrData, data);
|
|
106
|
+
const qrSize = el.size || (typeof el.width === "number" ? el.width : 100);
|
|
107
|
+
const svg = generateQRSvg(qrData, qrSize);
|
|
108
|
+
const dataUri = `data:image/svg+xml;base64,${Buffer.from(svg).toString("base64")}`;
|
|
109
|
+
return e(Image, {
|
|
110
|
+
key,
|
|
111
|
+
src: dataUri,
|
|
112
|
+
style: {
|
|
113
|
+
width: qrSize,
|
|
114
|
+
height: qrSize
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
case "spacer":
|
|
119
|
+
{
|
|
120
|
+
const h = el.height || 10;
|
|
121
|
+
return e(View, {
|
|
122
|
+
key,
|
|
123
|
+
style: {
|
|
124
|
+
height: typeof h === "number" ? h : toPoints(h, 10)
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
case "line":
|
|
129
|
+
{
|
|
130
|
+
const color = el.color || "#000";
|
|
131
|
+
const thickness = el.thickness || 1;
|
|
132
|
+
return e(View, {
|
|
133
|
+
key,
|
|
134
|
+
style: {
|
|
135
|
+
borderTopWidth: thickness,
|
|
136
|
+
borderTopColor: color,
|
|
137
|
+
borderTopStyle: "solid",
|
|
138
|
+
marginVertical: 8
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
case "columns":
|
|
143
|
+
{
|
|
144
|
+
const cols = el.columns || el.children || [];
|
|
145
|
+
const children = cols.map((child, i) => {
|
|
146
|
+
if (Array.isArray(child)) {
|
|
147
|
+
return e(View, {
|
|
148
|
+
key: `col-${i}`,
|
|
149
|
+
style: {
|
|
150
|
+
flex: 1
|
|
151
|
+
}
|
|
152
|
+
}, ...child.map((c, j) => renderElement(c, data, `col-${i}-${j}`)));
|
|
153
|
+
}
|
|
154
|
+
return e(View, {
|
|
155
|
+
key: `col-${i}`,
|
|
156
|
+
style: {
|
|
157
|
+
flex: 1
|
|
158
|
+
}
|
|
159
|
+
}, renderElement(child, data, `col-${i}-inner`));
|
|
160
|
+
});
|
|
161
|
+
return e(View, {
|
|
162
|
+
key,
|
|
163
|
+
style: {
|
|
164
|
+
flexDirection: "row",
|
|
165
|
+
gap: 8
|
|
166
|
+
}
|
|
167
|
+
}, ...children);
|
|
168
|
+
}
|
|
169
|
+
case "page_break":
|
|
170
|
+
{
|
|
171
|
+
return e(View, {
|
|
172
|
+
key,
|
|
173
|
+
break: true
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
case "grid":
|
|
177
|
+
{
|
|
178
|
+
const items = Array.isArray(el.items) ? el.items : Array.isArray(el.content) ? el.content : [];
|
|
179
|
+
const rows = items.map((item, i) => {
|
|
180
|
+
const label = item.label || item.value || "";
|
|
181
|
+
let value = "";
|
|
182
|
+
if (item.bind) {
|
|
183
|
+
const resolved = resolveBinding(item.bind, data);
|
|
184
|
+
value = resolved !== undefined && resolved !== null ? String(resolved) : "";
|
|
185
|
+
}
|
|
186
|
+
value = resolveText(value || "", data);
|
|
187
|
+
return e(View, {
|
|
188
|
+
key: `row-${i}`,
|
|
189
|
+
style: {
|
|
190
|
+
flexDirection: "row",
|
|
191
|
+
borderBottomWidth: 0.5,
|
|
192
|
+
borderBottomColor: "#ddd"
|
|
193
|
+
}
|
|
194
|
+
}, e(View, {
|
|
195
|
+
style: {
|
|
196
|
+
width: "40%",
|
|
197
|
+
padding: 4
|
|
198
|
+
}
|
|
199
|
+
}, e(Text, {
|
|
200
|
+
style: {
|
|
201
|
+
fontFamily: "Helvetica-Bold",
|
|
202
|
+
fontSize: 9
|
|
203
|
+
}
|
|
204
|
+
}, label)), e(View, {
|
|
205
|
+
style: {
|
|
206
|
+
width: "60%",
|
|
207
|
+
padding: 4
|
|
208
|
+
}
|
|
209
|
+
}, e(Text, {
|
|
210
|
+
style: {
|
|
211
|
+
fontSize: 9
|
|
212
|
+
}
|
|
213
|
+
}, value)));
|
|
214
|
+
});
|
|
215
|
+
return e(View, {
|
|
216
|
+
key,
|
|
217
|
+
style: {
|
|
218
|
+
width: "100%"
|
|
219
|
+
}
|
|
220
|
+
}, ...rows);
|
|
221
|
+
}
|
|
222
|
+
case "table":
|
|
223
|
+
{
|
|
224
|
+
const headers = el.headers || [];
|
|
225
|
+
const rowFields = el.row_fields;
|
|
226
|
+
let bodyRows = el.rows || [];
|
|
227
|
+
if (el.bind) {
|
|
228
|
+
const resolved = resolveBinding(el.bind, data);
|
|
229
|
+
if (Array.isArray(resolved)) bodyRows = resolved;
|
|
230
|
+
}
|
|
231
|
+
const colCount = headers.length || rowFields?.length || 0;
|
|
232
|
+
const colWidth = colCount > 0 ? `${(100 / colCount).toFixed(1)}%` : "100%";
|
|
233
|
+
const cellStyle = {
|
|
234
|
+
padding: 5,
|
|
235
|
+
borderWidth: 0.5,
|
|
236
|
+
borderColor: "#ddd"
|
|
237
|
+
};
|
|
238
|
+
const headerCellStyle = {
|
|
239
|
+
...cellStyle,
|
|
240
|
+
backgroundColor: "#f5f5f5"
|
|
241
|
+
};
|
|
242
|
+
const headerRow = headers.length ? e(View, {
|
|
243
|
+
key: "thead",
|
|
244
|
+
style: {
|
|
245
|
+
flexDirection: "row"
|
|
246
|
+
}
|
|
247
|
+
}, ...headers.map((h, i) => e(View, {
|
|
248
|
+
key: `th-${i}`,
|
|
249
|
+
style: {
|
|
250
|
+
...headerCellStyle,
|
|
251
|
+
width: colWidth
|
|
252
|
+
}
|
|
253
|
+
}, e(Text, {
|
|
254
|
+
style: {
|
|
255
|
+
fontSize: 8,
|
|
256
|
+
fontFamily: "Helvetica-Bold"
|
|
257
|
+
}
|
|
258
|
+
}, h)))) : null;
|
|
259
|
+
const dataRows = bodyRows.map((row, ri) => {
|
|
260
|
+
let cells;
|
|
261
|
+
if (Array.isArray(row)) {
|
|
262
|
+
cells = row.map(c => String(c ?? ""));
|
|
263
|
+
} else if (rowFields && rowFields.length) {
|
|
264
|
+
cells = rowFields.map(field => String(row[field] ?? ""));
|
|
265
|
+
} else {
|
|
266
|
+
cells = headers.map(h => {
|
|
267
|
+
const key2 = h.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
268
|
+
return String(row[h] ?? row[key2] ?? row[h.replace(/\s+/g, "")] ?? "");
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
return e(View, {
|
|
272
|
+
key: `tr-${ri}`,
|
|
273
|
+
style: {
|
|
274
|
+
flexDirection: "row"
|
|
275
|
+
}
|
|
276
|
+
}, ...cells.map((cell, ci) => e(View, {
|
|
277
|
+
key: `td-${ri}-${ci}`,
|
|
278
|
+
style: {
|
|
279
|
+
...cellStyle,
|
|
280
|
+
width: colWidth
|
|
281
|
+
}
|
|
282
|
+
}, e(Text, {
|
|
283
|
+
style: {
|
|
284
|
+
fontSize: 8
|
|
285
|
+
}
|
|
286
|
+
}, cell))));
|
|
287
|
+
});
|
|
288
|
+
const tableChildren = [];
|
|
289
|
+
if (headerRow) tableChildren.push(headerRow);
|
|
290
|
+
tableChildren.push(...dataRows);
|
|
291
|
+
return e(View, {
|
|
292
|
+
key,
|
|
293
|
+
style: {
|
|
294
|
+
width: "100%"
|
|
295
|
+
}
|
|
296
|
+
}, ...tableChildren);
|
|
297
|
+
}
|
|
298
|
+
case "box":
|
|
299
|
+
{
|
|
300
|
+
const inner = (el.children || []).map((child, i) => renderElement(child, data, `box-${i}`));
|
|
301
|
+
const text = el.content || el.text ? resolveText(el.content || el.text || "", data) : "";
|
|
302
|
+
const boxChildren = [];
|
|
303
|
+
if (text) boxChildren.push(e(Text, {
|
|
304
|
+
key: "box-text",
|
|
305
|
+
style: {
|
|
306
|
+
textAlign: "center"
|
|
307
|
+
}
|
|
308
|
+
}, text));
|
|
309
|
+
boxChildren.push(...inner);
|
|
310
|
+
return e(View, {
|
|
311
|
+
key,
|
|
312
|
+
style: {
|
|
313
|
+
textAlign: "center",
|
|
314
|
+
border: el.border ? undefined : undefined,
|
|
315
|
+
borderWidth: el.border ? 1 : undefined,
|
|
316
|
+
borderColor: el.border ? el.border.includes("#") ? el.border.split(" ").find(s => s.startsWith("#")) : "#000" : undefined,
|
|
317
|
+
backgroundColor: el.background || el.backgroundColor || undefined,
|
|
318
|
+
padding: typeof el.padding === "number" ? el.padding : el.padding ? toPoints(el.padding, 0) : undefined
|
|
319
|
+
}
|
|
320
|
+
}, ...boxChildren);
|
|
321
|
+
}
|
|
322
|
+
default:
|
|
323
|
+
{
|
|
324
|
+
if (el.children && Array.isArray(el.children)) {
|
|
325
|
+
return e(View, {
|
|
326
|
+
key
|
|
327
|
+
}, ...el.children.map((child, i) => renderElement(child, data, `child-${i}`)));
|
|
328
|
+
}
|
|
329
|
+
return e(View, {
|
|
330
|
+
key
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// ============================================================================
|
|
337
|
+
// Layout Normalization — same logic as renderLayoutToHtml lines 896-924
|
|
338
|
+
// ============================================================================
|
|
339
|
+
|
|
340
|
+
export function normalizeLayout(layout) {
|
|
341
|
+
if (!layout) return [];
|
|
342
|
+
if (Array.isArray(layout)) return layout;
|
|
343
|
+
const obj = layout;
|
|
344
|
+
const elements = [];
|
|
345
|
+
if (Array.isArray(obj.pages)) {
|
|
346
|
+
for (const page of obj.pages) {
|
|
347
|
+
if (page.header) elements.push(page.header);
|
|
348
|
+
if (Array.isArray(page.body)) elements.push(...page.body);else if (page.body) elements.push(page.body);
|
|
349
|
+
if (Array.isArray(page.sections)) elements.push(...page.sections);
|
|
350
|
+
if (Array.isArray(page.elements)) elements.push(...page.elements);
|
|
351
|
+
if (page.footer) elements.push(page.footer);
|
|
352
|
+
}
|
|
353
|
+
} else if (Array.isArray(obj.sections)) {
|
|
354
|
+
elements.push(...obj.sections);
|
|
355
|
+
} else if (Array.isArray(obj.children)) {
|
|
356
|
+
elements.push(...obj.children);
|
|
357
|
+
} else {
|
|
358
|
+
if (obj.header) elements.push(obj.header);
|
|
359
|
+
if (obj.body) {
|
|
360
|
+
if (Array.isArray(obj.body)) elements.push(...obj.body);else elements.push(obj.body);
|
|
361
|
+
}
|
|
362
|
+
if (obj.footer) elements.push(obj.footer);
|
|
363
|
+
}
|
|
364
|
+
return elements;
|
|
365
|
+
}
|
|
366
|
+
//# sourceMappingURL=react-pdf-layout-elements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-pdf-layout-elements.js","names":["React","Text","View","Image","resolveBinding","resolveText","generateQRSvg","e","createElement","toPoints","val","fallback","undefined","num","parseFloat","isNaN","endsWith","mapPageSize","size","s","toUpperCase","renderElement","el","data","key","type","text","content","style","marginBottom","fontSize","color","fontFamily","bold","textAlign","align","backgroundColor","padding","src","url","bind","resolved","width","height","qrData","qrSize","svg","dataUri","Buffer","from","toString","h","thickness","borderTopWidth","borderTopColor","borderTopStyle","marginVertical","cols","columns","children","map","child","i","Array","isArray","flex","c","j","flexDirection","gap","break","items","rows","item","label","value","String","borderBottomWidth","borderBottomColor","headers","rowFields","row_fields","bodyRows","colCount","length","colWidth","toFixed","cellStyle","borderWidth","borderColor","headerCellStyle","headerRow","dataRows","row","ri","cells","field","key2","toLowerCase","replace","cell","ci","tableChildren","push","inner","boxChildren","border","includes","split","find","startsWith","background","normalizeLayout","layout","obj","elements","pages","page","header","body","sections","footer"],"sources":["../../../src/server/lib/react-pdf-layout-elements.ts"],"sourcesContent":["// server/lib/react-pdf-layout-elements.ts — Element rendering for React-PDF layout\n// Extracted from react-pdf-layout.ts for single-responsibility.\n\nimport React from \"react\";\nimport {\n Text,\n View,\n Image,\n} from \"@react-pdf/renderer\";\nimport {\n resolveBinding,\n resolveText,\n generateQRSvg,\n type LayoutElement,\n} from \"./pdf-renderer.js\";\n\nconst e = React.createElement;\n\n// ============================================================================\n// Unit Helpers\n// ============================================================================\n\n/** Convert margin string (e.g. \"15mm\", \"1cm\", \"72pt\", number) to points */\nexport function toPoints(val: string | number | undefined, fallback: number = 42.5): number {\n if (val === undefined || val === null) return fallback;\n if (typeof val === \"number\") return val;\n const num = parseFloat(val);\n if (isNaN(num)) return fallback;\n if (val.endsWith(\"mm\")) return num * 2.835;\n if (val.endsWith(\"cm\")) return num * 28.35;\n if (val.endsWith(\"in\")) return num * 72;\n if (val.endsWith(\"pt\")) return num;\n if (val.endsWith(\"px\")) return num * 0.75;\n return num; // default to points\n}\n\n/** Map page size string to React-PDF page size */\nexport function mapPageSize(size: string | undefined): string {\n if (!size) return \"A4\";\n const s = size.toUpperCase();\n if (s === \"LETTER\") return \"LETTER\";\n if (s === \"LEGAL\") return \"LEGAL\";\n if (s === \"TABLOID\") return \"TABLOID\";\n return s; // A4, A3, etc. — React-PDF supports these directly\n}\n\n// ============================================================================\n// Element Renderer — ports renderElement() from pdf-renderer.ts\n// ============================================================================\n\nexport function renderElement(el: LayoutElement, data: Record<string, unknown>, key: string): React.ReactElement {\n switch (el.type) {\n case \"text\": {\n const text = resolveText(el.content || el.text || \"\", data);\n return e(View, { key, style: { marginBottom: 2 } },\n e(Text, {\n style: {\n fontSize: el.fontSize || undefined,\n color: el.color || undefined,\n fontFamily: el.bold ? \"Helvetica-Bold\" : undefined,\n textAlign: (el.align as any) || undefined,\n },\n }, text),\n );\n }\n\n case \"header\": {\n const text = resolveText(el.content || el.text || \"\", data);\n return e(View, {\n key,\n style: {\n backgroundColor: el.backgroundColor || undefined,\n padding: typeof el.padding === \"number\" ? el.padding : el.padding ? toPoints(el.padding, 0) : undefined,\n marginBottom: 4,\n },\n },\n e(Text, {\n style: {\n fontFamily: \"Helvetica-Bold\",\n fontSize: el.fontSize || undefined,\n color: el.color || undefined,\n textAlign: (el.align as any) || undefined,\n },\n }, text),\n );\n }\n\n case \"image\": {\n let src = el.src || el.url || \"\";\n if (el.bind) {\n const resolved = resolveBinding(el.bind, data);\n if (typeof resolved === \"string\") src = resolved;\n }\n if (!src) return e(View, { key });\n const style: Record<string, unknown> = {};\n if (el.width) style.width = typeof el.width === \"number\" ? el.width : toPoints(el.width as string, 100);\n if (el.height) style.height = typeof el.height === \"number\" ? el.height : toPoints(el.height as string, 100);\n return e(Image, { key, src, style } as any);\n }\n\n case \"qrcode\": {\n let qrData = el.data || el.content || \"\";\n if (el.bind) {\n const resolved = resolveBinding(el.bind, data);\n if (typeof resolved === \"string\") qrData = resolved;\n }\n qrData = resolveText(qrData, data);\n const qrSize = el.size || (typeof el.width === \"number\" ? el.width : 100);\n const svg = generateQRSvg(qrData, qrSize);\n const dataUri = `data:image/svg+xml;base64,${Buffer.from(svg).toString(\"base64\")}`;\n return e(Image, { key, src: dataUri, style: { width: qrSize, height: qrSize } } as any);\n }\n\n case \"spacer\": {\n const h = el.height || 10;\n return e(View, { key, style: { height: typeof h === \"number\" ? h : toPoints(h as string, 10) } });\n }\n\n case \"line\": {\n const color = el.color || \"#000\";\n const thickness = el.thickness || 1;\n return e(View, {\n key,\n style: {\n borderTopWidth: thickness,\n borderTopColor: color,\n borderTopStyle: \"solid\",\n marginVertical: 8,\n },\n });\n }\n\n case \"columns\": {\n const cols = el.columns || el.children || [];\n const children = cols.map((child: any, i: number) => {\n if (Array.isArray(child)) {\n return e(View, { key: `col-${i}`, style: { flex: 1 } },\n ...child.map((c: any, j: number) => renderElement(c, data, `col-${i}-${j}`)),\n );\n }\n return e(View, { key: `col-${i}`, style: { flex: 1 } },\n renderElement(child, data, `col-${i}-inner`),\n );\n });\n return e(View, { key, style: { flexDirection: \"row\", gap: 8 } }, ...children);\n }\n\n case \"page_break\": {\n return e(View, { key, break: true } as any);\n }\n\n case \"grid\": {\n const items = (Array.isArray(el.items) ? el.items : Array.isArray(el.content) ? el.content : []) as any[];\n const rows = items.map((item: any, i: number) => {\n const label = item.label || item.value || \"\";\n let value = \"\";\n if (item.bind) {\n const resolved = resolveBinding(item.bind, data);\n value = resolved !== undefined && resolved !== null ? String(resolved) : \"\";\n }\n value = resolveText(value || \"\", data);\n return e(View, { key: `row-${i}`, style: { flexDirection: \"row\", borderBottomWidth: 0.5, borderBottomColor: \"#ddd\" } },\n e(View, { style: { width: \"40%\", padding: 4 } },\n e(Text, { style: { fontFamily: \"Helvetica-Bold\", fontSize: 9 } }, label),\n ),\n e(View, { style: { width: \"60%\", padding: 4 } },\n e(Text, { style: { fontSize: 9 } }, value),\n ),\n );\n });\n return e(View, { key, style: { width: \"100%\" } }, ...rows);\n }\n\n case \"table\": {\n const headers = el.headers || [];\n const rowFields = (el as any).row_fields as string[] | undefined;\n\n let bodyRows: unknown[] = el.rows || [];\n if (el.bind) {\n const resolved = resolveBinding(el.bind, data);\n if (Array.isArray(resolved)) bodyRows = resolved;\n }\n\n const colCount = headers.length || (rowFields?.length || 0);\n const colWidth = colCount > 0 ? `${(100 / colCount).toFixed(1)}%` : \"100%\";\n\n const cellStyle = { padding: 5, borderWidth: 0.5, borderColor: \"#ddd\" };\n const headerCellStyle = { ...cellStyle, backgroundColor: \"#f5f5f5\" };\n\n const headerRow = headers.length\n ? e(View, { key: \"thead\", style: { flexDirection: \"row\" } },\n ...headers.map((h: string, i: number) =>\n e(View, { key: `th-${i}`, style: { ...headerCellStyle, width: colWidth } },\n e(Text, { style: { fontSize: 8, fontFamily: \"Helvetica-Bold\" } }, h),\n ),\n ),\n )\n : null;\n\n const dataRows = bodyRows.map((row: any, ri: number) => {\n let cells: string[];\n if (Array.isArray(row)) {\n cells = row.map((c: unknown) => String(c ?? \"\"));\n } else if (rowFields && rowFields.length) {\n cells = rowFields.map(field => String(row[field] ?? \"\"));\n } else {\n cells = headers.map((h: string) => {\n const key2 = h.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n return String(row[h] ?? row[key2] ?? row[h.replace(/\\s+/g, \"\")] ?? \"\");\n });\n }\n return e(View, { key: `tr-${ri}`, style: { flexDirection: \"row\" } },\n ...cells.map((cell: string, ci: number) =>\n e(View, { key: `td-${ri}-${ci}`, style: { ...cellStyle, width: colWidth } },\n e(Text, { style: { fontSize: 8 } }, cell),\n ),\n ),\n );\n });\n\n const tableChildren: React.ReactElement[] = [];\n if (headerRow) tableChildren.push(headerRow);\n tableChildren.push(...dataRows);\n return e(View, { key, style: { width: \"100%\" } }, ...tableChildren);\n }\n\n case \"box\": {\n const inner = (el.children || []).map((child, i) => renderElement(child, data, `box-${i}`));\n const text = el.content || el.text ? resolveText(el.content || el.text || \"\", data) : \"\";\n const boxChildren: React.ReactElement[] = [];\n if (text) boxChildren.push(e(Text, { key: \"box-text\", style: { textAlign: \"center\" } }, text));\n boxChildren.push(...inner);\n return e(View, {\n key,\n style: {\n textAlign: \"center\",\n border: el.border ? undefined : undefined,\n borderWidth: el.border ? 1 : undefined,\n borderColor: el.border ? (el.border.includes(\"#\") ? el.border.split(\" \").find(s => s.startsWith(\"#\")) : \"#000\") : undefined,\n backgroundColor: el.background || el.backgroundColor || undefined,\n padding: typeof el.padding === \"number\" ? el.padding : el.padding ? toPoints(el.padding, 0) : undefined,\n },\n }, ...boxChildren);\n }\n\n default: {\n if (el.children && Array.isArray(el.children)) {\n return e(View, { key },\n ...el.children.map((child, i) => renderElement(child, data, `child-${i}`)),\n );\n }\n return e(View, { key });\n }\n }\n}\n\n// ============================================================================\n// Layout Normalization — same logic as renderLayoutToHtml lines 896-924\n// ============================================================================\n\nexport function normalizeLayout(layout: LayoutElement[] | Record<string, unknown> | undefined | null): LayoutElement[] {\n if (!layout) return [];\n if (Array.isArray(layout)) return layout;\n\n const obj = layout as any;\n const elements: LayoutElement[] = [];\n\n if (Array.isArray(obj.pages)) {\n for (const page of obj.pages) {\n if (page.header) elements.push(page.header);\n if (Array.isArray(page.body)) elements.push(...page.body);\n else if (page.body) elements.push(page.body);\n if (Array.isArray(page.sections)) elements.push(...page.sections);\n if (Array.isArray(page.elements)) elements.push(...page.elements);\n if (page.footer) elements.push(page.footer);\n }\n } else if (Array.isArray(obj.sections)) {\n elements.push(...obj.sections);\n } else if (Array.isArray(obj.children)) {\n elements.push(...obj.children);\n } else {\n if (obj.header) elements.push(obj.header);\n if (obj.body) {\n if (Array.isArray(obj.body)) elements.push(...obj.body);\n else elements.push(obj.body);\n }\n if (obj.footer) elements.push(obj.footer);\n }\n\n return elements;\n}\n"],"mappings":"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","ignoreList":[]}
|