@rudderhq/server 0.1.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +14 -0
- package/dist/agent-auth-jwt.d.ts +14 -0
- package/dist/agent-auth-jwt.d.ts.map +1 -0
- package/dist/agent-auth-jwt.js +119 -0
- package/dist/agent-auth-jwt.js.map +1 -0
- package/dist/agent-runtimes/codex-models.d.ts +4 -0
- package/dist/agent-runtimes/codex-models.d.ts.map +1 -0
- package/dist/agent-runtimes/codex-models.js +98 -0
- package/dist/agent-runtimes/codex-models.js.map +1 -0
- package/dist/agent-runtimes/cursor-models.d.ts +13 -0
- package/dist/agent-runtimes/cursor-models.d.ts.map +1 -0
- package/dist/agent-runtimes/cursor-models.js +148 -0
- package/dist/agent-runtimes/cursor-models.js.map +1 -0
- package/dist/agent-runtimes/http/execute.d.ts +3 -0
- package/dist/agent-runtimes/http/execute.d.ts.map +1 -0
- package/dist/agent-runtimes/http/execute.js +39 -0
- package/dist/agent-runtimes/http/execute.js.map +1 -0
- package/dist/agent-runtimes/http/index.d.ts +3 -0
- package/dist/agent-runtimes/http/index.d.ts.map +1 -0
- package/dist/agent-runtimes/http/index.js +20 -0
- package/dist/agent-runtimes/http/index.js.map +1 -0
- package/dist/agent-runtimes/http/test.d.ts +3 -0
- package/dist/agent-runtimes/http/test.d.ts.map +1 -0
- package/dist/agent-runtimes/http/test.js +106 -0
- package/dist/agent-runtimes/http/test.js.map +1 -0
- package/dist/agent-runtimes/index.d.ts +4 -0
- package/dist/agent-runtimes/index.d.ts.map +1 -0
- package/dist/agent-runtimes/index.js +3 -0
- package/dist/agent-runtimes/index.js.map +1 -0
- package/dist/agent-runtimes/process/execute.d.ts +3 -0
- package/dist/agent-runtimes/process/execute.d.ts.map +1 -0
- package/dist/agent-runtimes/process/execute.js +63 -0
- package/dist/agent-runtimes/process/execute.js.map +1 -0
- package/dist/agent-runtimes/process/index.d.ts +3 -0
- package/dist/agent-runtimes/process/index.d.ts.map +1 -0
- package/dist/agent-runtimes/process/index.js +23 -0
- package/dist/agent-runtimes/process/index.js.map +1 -0
- package/dist/agent-runtimes/process/test.d.ts +3 -0
- package/dist/agent-runtimes/process/test.d.ts.map +1 -0
- package/dist/agent-runtimes/process/test.js +77 -0
- package/dist/agent-runtimes/process/test.js.map +1 -0
- package/dist/agent-runtimes/registry.d.ts +9 -0
- package/dist/agent-runtimes/registry.d.ts.map +1 -0
- package/dist/agent-runtimes/registry.js +189 -0
- package/dist/agent-runtimes/registry.js.map +1 -0
- package/dist/agent-runtimes/types.d.ts +2 -0
- package/dist/agent-runtimes/types.d.ts.map +1 -0
- package/dist/agent-runtimes/types.js +2 -0
- package/dist/agent-runtimes/types.js.map +1 -0
- package/dist/agent-runtimes/utils.d.ts +10 -0
- package/dist/agent-runtimes/utils.d.ts.map +1 -0
- package/dist/agent-runtimes/utils.js +14 -0
- package/dist/agent-runtimes/utils.js.map +1 -0
- package/dist/agent-workspace-key.d.ts +17 -0
- package/dist/agent-workspace-key.d.ts.map +1 -0
- package/dist/agent-workspace-key.js +49 -0
- package/dist/agent-workspace-key.js.map +1 -0
- package/dist/app.d.ts +14 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +19 -0
- package/dist/app.js.map +1 -0
- package/dist/attachment-types.d.ts +33 -0
- package/dist/attachment-types.d.ts.map +1 -0
- package/dist/attachment-types.js +67 -0
- package/dist/attachment-types.js.map +1 -0
- package/dist/auth/better-auth.d.ts +24 -0
- package/dist/auth/better-auth.d.ts.map +1 -0
- package/dist/auth/better-auth.js +108 -0
- package/dist/auth/better-auth.js.map +1 -0
- package/dist/board-claim.d.ts +23 -0
- package/dist/board-claim.d.ts.map +1 -0
- package/dist/board-claim.js +115 -0
- package/dist/board-claim.js.map +1 -0
- package/dist/bootstrap/create-http-app.d.ts +6 -0
- package/dist/bootstrap/create-http-app.d.ts.map +1 -0
- package/dist/bootstrap/create-http-app.js +122 -0
- package/dist/bootstrap/create-http-app.js.map +1 -0
- package/dist/bootstrap/plugin-host-runtime.d.ts +116 -0
- package/dist/bootstrap/plugin-host-runtime.d.ts.map +1 -0
- package/dist/bootstrap/plugin-host-runtime.js +121 -0
- package/dist/bootstrap/plugin-host-runtime.js.map +1 -0
- package/dist/bootstrap/register-api-routes.d.ts +5 -0
- package/dist/bootstrap/register-api-routes.d.ts.map +1 -0
- package/dist/bootstrap/register-api-routes.js +65 -0
- package/dist/bootstrap/register-api-routes.js.map +1 -0
- package/dist/bootstrap/types.d.ts +24 -0
- package/dist/bootstrap/types.d.ts.map +1 -0
- package/dist/bootstrap/types.js +2 -0
- package/dist/bootstrap/types.js.map +1 -0
- package/dist/config-file.d.ts +5 -0
- package/dist/config-file.d.ts.map +1 -0
- package/dist/config-file.js +48 -0
- package/dist/config-file.js.map +1 -0
- package/dist/config.d.ts +45 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +233 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-server-status.d.ts +29 -0
- package/dist/dev-server-status.d.ts.map +1 -0
- package/dist/dev-server-status.js +75 -0
- package/dist/dev-server-status.js.map +1 -0
- package/dist/errors.d.ts +12 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -0
- package/dist/home-paths.d.ts +50 -0
- package/dist/home-paths.d.ts.map +1 -0
- package/dist/home-paths.js +183 -0
- package/dist/home-paths.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +827 -0
- package/dist/index.js.map +1 -0
- package/dist/langfuse-transcript.d.ts +32 -0
- package/dist/langfuse-transcript.d.ts.map +1 -0
- package/dist/langfuse-transcript.js +341 -0
- package/dist/langfuse-transcript.js.map +1 -0
- package/dist/langfuse.d.ts +93 -0
- package/dist/langfuse.d.ts.map +1 -0
- package/dist/langfuse.js +412 -0
- package/dist/langfuse.js.map +1 -0
- package/dist/local-runtime.d.ts +67 -0
- package/dist/local-runtime.d.ts.map +1 -0
- package/dist/local-runtime.js +302 -0
- package/dist/local-runtime.js.map +1 -0
- package/dist/log-redaction.d.ts +11 -0
- package/dist/log-redaction.d.ts.map +1 -0
- package/dist/log-redaction.js +118 -0
- package/dist/log-redaction.js.map +1 -0
- package/dist/middleware/auth.d.ts +12 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +144 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/board-mutation-guard.d.ts +3 -0
- package/dist/middleware/board-mutation-guard.d.ts.map +1 -0
- package/dist/middleware/board-mutation-guard.js +59 -0
- package/dist/middleware/board-mutation-guard.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +17 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +37 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +4 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logger.d.ts +4 -0
- package/dist/middleware/logger.d.ts.map +1 -0
- package/dist/middleware/logger.js +133 -0
- package/dist/middleware/logger.js.map +1 -0
- package/dist/middleware/private-hostname-guard.d.ts +11 -0
- package/dist/middleware/private-hostname-guard.d.ts.map +1 -0
- package/dist/middleware/private-hostname-guard.js +78 -0
- package/dist/middleware/private-hostname-guard.js.map +1 -0
- package/dist/middleware/validate.d.ts +4 -0
- package/dist/middleware/validate.d.ts.map +1 -0
- package/dist/middleware/validate.js +7 -0
- package/dist/middleware/validate.js.map +1 -0
- package/dist/onboarding-assets/ceo/AGENTS.md +33 -0
- package/dist/onboarding-assets/ceo/HEARTBEAT.md +77 -0
- package/dist/onboarding-assets/ceo/SOUL.md +33 -0
- package/dist/onboarding-assets/ceo/TOOLS.md +3 -0
- package/dist/onboarding-assets/default/AGENTS.md +9 -0
- package/dist/onboarding-assets/default/HEARTBEAT.md +36 -0
- package/dist/onboarding-assets/default/SOUL.md +23 -0
- package/dist/onboarding-assets/default/TOOLS.md +3 -0
- package/dist/paths.d.ts +3 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +31 -0
- package/dist/paths.js.map +1 -0
- package/dist/realtime/live-events-ws.d.ts +28 -0
- package/dist/realtime/live-events-ws.d.ts.map +1 -0
- package/dist/realtime/live-events-ws.js +187 -0
- package/dist/realtime/live-events-ws.js.map +1 -0
- package/dist/redaction.d.ts +4 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +63 -0
- package/dist/redaction.js.map +1 -0
- package/dist/routes/access.d.ts +57 -0
- package/dist/routes/access.d.ts.map +1 -0
- package/dist/routes/access.js +2266 -0
- package/dist/routes/access.js.map +1 -0
- package/dist/routes/activity.d.ts +3 -0
- package/dist/routes/activity.d.ts.map +1 -0
- package/dist/routes/activity.js +78 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/agents.d.ts +3 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +1913 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/approvals.d.ts +3 -0
- package/dist/routes/approvals.d.ts.map +1 -0
- package/dist/routes/approvals.js +365 -0
- package/dist/routes/approvals.js.map +1 -0
- package/dist/routes/assets.d.ts +4 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +309 -0
- package/dist/routes/assets.js.map +1 -0
- package/dist/routes/authz.d.ts +16 -0
- package/dist/routes/authz.d.ts.map +1 -0
- package/dist/routes/authz.js +47 -0
- package/dist/routes/authz.js.map +1 -0
- package/dist/routes/automations.d.ts +3 -0
- package/dist/routes/automations.d.ts.map +1 -0
- package/dist/routes/automations.js +277 -0
- package/dist/routes/automations.js.map +1 -0
- package/dist/routes/chats.d.ts +4 -0
- package/dist/routes/chats.d.ts.map +1 -0
- package/dist/routes/chats.js +1162 -0
- package/dist/routes/chats.js.map +1 -0
- package/dist/routes/costs.d.ts +3 -0
- package/dist/routes/costs.d.ts.map +1 -0
- package/dist/routes/costs.js +268 -0
- package/dist/routes/costs.js.map +1 -0
- package/dist/routes/dashboard.d.ts +3 -0
- package/dist/routes/dashboard.d.ts.map +1 -0
- package/dist/routes/dashboard.js +15 -0
- package/dist/routes/dashboard.js.map +1 -0
- package/dist/routes/execution-workspaces.d.ts +3 -0
- package/dist/routes/execution-workspaces.d.ts.map +1 -0
- package/dist/routes/execution-workspaces.js +165 -0
- package/dist/routes/execution-workspaces.js.map +1 -0
- package/dist/routes/goals.d.ts +3 -0
- package/dist/routes/goals.d.ts.map +1 -0
- package/dist/routes/goals.js +95 -0
- package/dist/routes/goals.js.map +1 -0
- package/dist/routes/health.d.ts +12 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +85 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/index.d.ts +19 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +19 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/instance-settings.d.ts +6 -0
- package/dist/routes/instance-settings.d.ts.map +1 -0
- package/dist/routes/instance-settings.js +250 -0
- package/dist/routes/instance-settings.js.map +1 -0
- package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
- package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
- package/dist/routes/issues-checkout-wakeup.js +12 -0
- package/dist/routes/issues-checkout-wakeup.js.map +1 -0
- package/dist/routes/issues.d.ts +4 -0
- package/dist/routes/issues.d.ts.map +1 -0
- package/dist/routes/issues.js +1615 -0
- package/dist/routes/issues.js.map +1 -0
- package/dist/routes/llms.d.ts +3 -0
- package/dist/routes/llms.d.ts.map +1 -0
- package/dist/routes/llms.js +78 -0
- package/dist/routes/llms.js.map +1 -0
- package/dist/routes/messenger.d.ts +3 -0
- package/dist/routes/messenger.d.ts.map +1 -0
- package/dist/routes/messenger.js +108 -0
- package/dist/routes/messenger.js.map +1 -0
- package/dist/routes/org-chart-logo.d.ts +2 -0
- package/dist/routes/org-chart-logo.d.ts.map +1 -0
- package/dist/routes/org-chart-logo.js +2 -0
- package/dist/routes/org-chart-logo.js.map +1 -0
- package/dist/routes/org-chart-svg.d.ts +25 -0
- package/dist/routes/org-chart-svg.d.ts.map +1 -0
- package/dist/routes/org-chart-svg.js +652 -0
- package/dist/routes/org-chart-svg.js.map +1 -0
- package/dist/routes/organization-skills.d.ts +3 -0
- package/dist/routes/organization-skills.d.ts.map +1 -0
- package/dist/routes/organization-skills.js +253 -0
- package/dist/routes/organization-skills.js.map +1 -0
- package/dist/routes/orgs.d.ts +4 -0
- package/dist/routes/orgs.d.ts.map +1 -0
- package/dist/routes/orgs.js +575 -0
- package/dist/routes/orgs.js.map +1 -0
- package/dist/routes/plugin-ui-static.d.ts +69 -0
- package/dist/routes/plugin-ui-static.d.ts.map +1 -0
- package/dist/routes/plugin-ui-static.js +411 -0
- package/dist/routes/plugin-ui-static.js.map +1 -0
- package/dist/routes/plugins.d.ts +120 -0
- package/dist/routes/plugins.d.ts.map +1 -0
- package/dist/routes/plugins.js +1776 -0
- package/dist/routes/plugins.js.map +1 -0
- package/dist/routes/projects.d.ts +3 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +235 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/run-intelligence.d.ts +3 -0
- package/dist/routes/run-intelligence.d.ts.map +1 -0
- package/dist/routes/run-intelligence.js +58 -0
- package/dist/routes/run-intelligence.js.map +1 -0
- package/dist/routes/secrets.d.ts +3 -0
- package/dist/routes/secrets.d.ts.map +1 -0
- package/dist/routes/secrets.js +128 -0
- package/dist/routes/secrets.js.map +1 -0
- package/dist/routes/sidebar-badges.d.ts +3 -0
- package/dist/routes/sidebar-badges.d.ts.map +1 -0
- package/dist/routes/sidebar-badges.js +70 -0
- package/dist/routes/sidebar-badges.js.map +1 -0
- package/dist/secrets/external-stub-providers.d.ts +5 -0
- package/dist/secrets/external-stub-providers.d.ts.map +1 -0
- package/dist/secrets/external-stub-providers.js +21 -0
- package/dist/secrets/external-stub-providers.js.map +1 -0
- package/dist/secrets/local-encrypted-provider.d.ts +3 -0
- package/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
- package/dist/secrets/local-encrypted-provider.js +116 -0
- package/dist/secrets/local-encrypted-provider.js.map +1 -0
- package/dist/secrets/provider-registry.d.ts +5 -0
- package/dist/secrets/provider-registry.d.ts.map +1 -0
- package/dist/secrets/provider-registry.js +20 -0
- package/dist/secrets/provider-registry.js.map +1 -0
- package/dist/secrets/types.d.ts +21 -0
- package/dist/secrets/types.d.ts.map +1 -0
- package/dist/secrets/types.js +2 -0
- package/dist/secrets/types.js.map +1 -0
- package/dist/services/access.d.ts +113 -0
- package/dist/services/access.d.ts.map +1 -0
- package/dist/services/access.js +247 -0
- package/dist/services/access.js.map +1 -0
- package/dist/services/activity-log.d.ts +17 -0
- package/dist/services/activity-log.d.ts.map +1 -0
- package/dist/services/activity-log.js +109 -0
- package/dist/services/activity-log.js.map +1 -0
- package/dist/services/activity.d.ts +472 -0
- package/dist/services/activity.d.ts.map +1 -0
- package/dist/services/activity.js +134 -0
- package/dist/services/activity.js.map +1 -0
- package/dist/services/agent-enabled-skills.d.ts +9 -0
- package/dist/services/agent-enabled-skills.d.ts.map +1 -0
- package/dist/services/agent-enabled-skills.js +89 -0
- package/dist/services/agent-enabled-skills.js.map +1 -0
- package/dist/services/agent-instructions.d.ts +98 -0
- package/dist/services/agent-instructions.d.ts.map +1 -0
- package/dist/services/agent-instructions.js +596 -0
- package/dist/services/agent-instructions.js.map +1 -0
- package/dist/services/agent-name-pool.d.ts +10 -0
- package/dist/services/agent-name-pool.d.ts.map +1 -0
- package/dist/services/agent-name-pool.js +230 -0
- package/dist/services/agent-name-pool.js.map +1 -0
- package/dist/services/agent-permissions.d.ts +6 -0
- package/dist/services/agent-permissions.d.ts.map +1 -0
- package/dist/services/agent-permissions.js +18 -0
- package/dist/services/agent-permissions.js.map +1 -0
- package/dist/services/agent-run-context.d.ts +142 -0
- package/dist/services/agent-run-context.d.ts.map +1 -0
- package/dist/services/agent-run-context.js +451 -0
- package/dist/services/agent-run-context.js.map +1 -0
- package/dist/services/agents.d.ts +1713 -0
- package/dist/services/agents.d.ts.map +1 -0
- package/dist/services/agents.js +750 -0
- package/dist/services/agents.js.map +1 -0
- package/dist/services/approvals.d.ts +546 -0
- package/dist/services/approvals.d.ts.map +1 -0
- package/dist/services/approvals.js +212 -0
- package/dist/services/approvals.js.map +1 -0
- package/dist/services/assets.d.ts +33 -0
- package/dist/services/assets.d.ts.map +1 -0
- package/dist/services/assets.js +17 -0
- package/dist/services/assets.js.map +1 -0
- package/dist/services/automations.d.ts +135 -0
- package/dist/services/automations.d.ts.map +1 -0
- package/dist/services/automations.js +1105 -0
- package/dist/services/automations.js.map +1 -0
- package/dist/services/board-auth.d.ts +234 -0
- package/dist/services/board-auth.d.ts.map +1 -0
- package/dist/services/board-auth.js +295 -0
- package/dist/services/board-auth.js.map +1 -0
- package/dist/services/budgets.d.ts +38 -0
- package/dist/services/budgets.d.ts.map +1 -0
- package/dist/services/budgets.js +784 -0
- package/dist/services/budgets.js.map +1 -0
- package/dist/services/chat-assistant.d.ts +62 -0
- package/dist/services/chat-assistant.d.ts.map +1 -0
- package/dist/services/chat-assistant.js +943 -0
- package/dist/services/chat-assistant.js.map +1 -0
- package/dist/services/chat-generation-locks.d.ts +3 -0
- package/dist/services/chat-generation-locks.d.ts.map +1 -0
- package/dist/services/chat-generation-locks.js +16 -0
- package/dist/services/chat-generation-locks.js.map +1 -0
- package/dist/services/chats.d.ts +723 -0
- package/dist/services/chats.d.ts.map +1 -0
- package/dist/services/chats.js +1188 -0
- package/dist/services/chats.js.map +1 -0
- package/dist/services/costs.d.ts +114 -0
- package/dist/services/costs.d.ts.map +1 -0
- package/dist/services/costs.js +326 -0
- package/dist/services/costs.js.map +1 -0
- package/dist/services/cron.d.ts +80 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +300 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/dashboard.d.ts +26 -0
- package/dist/services/dashboard.d.ts.map +1 -0
- package/dist/services/dashboard.js +98 -0
- package/dist/services/dashboard.js.map +1 -0
- package/dist/services/default-agent-instructions.d.ts +9 -0
- package/dist/services/default-agent-instructions.d.ts.map +1 -0
- package/dist/services/default-agent-instructions.js +20 -0
- package/dist/services/default-agent-instructions.js.map +1 -0
- package/dist/services/documents.d.ts +164 -0
- package/dist/services/documents.d.ts.map +1 -0
- package/dist/services/documents.js +382 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/execution-workspace-policy.d.ts +20 -0
- package/dist/services/execution-workspace-policy.d.ts.map +1 -0
- package/dist/services/execution-workspace-policy.js +172 -0
- package/dist/services/execution-workspace-policy.js.map +1 -0
- package/dist/services/execution-workspaces.d.ts +19 -0
- package/dist/services/execution-workspaces.d.ts.map +1 -0
- package/dist/services/execution-workspaces.js +87 -0
- package/dist/services/execution-workspaces.js.map +1 -0
- package/dist/services/finance.d.ts +93 -0
- package/dist/services/finance.d.ts.map +1 -0
- package/dist/services/finance.js +120 -0
- package/dist/services/finance.js.map +1 -0
- package/dist/services/goals.d.ts +433 -0
- package/dist/services/goals.d.ts.map +1 -0
- package/dist/services/goals.js +54 -0
- package/dist/services/goals.js.map +1 -0
- package/dist/services/heartbeat-run-summary.d.ts +2 -0
- package/dist/services/heartbeat-run-summary.d.ts.map +1 -0
- package/dist/services/heartbeat-run-summary.js +131 -0
- package/dist/services/heartbeat-run-summary.js.map +1 -0
- package/dist/services/heartbeat.d.ts +2 -0
- package/dist/services/heartbeat.d.ts.map +1 -0
- package/dist/services/heartbeat.js +2 -0
- package/dist/services/heartbeat.js.map +1 -0
- package/dist/services/hire-hook.d.ts +14 -0
- package/dist/services/hire-hook.d.ts.map +1 -0
- package/dist/services/hire-hook.js +85 -0
- package/dist/services/hire-hook.js.map +1 -0
- package/dist/services/index.d.ts +38 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +38 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/instance-settings.d.ts +14 -0
- package/dist/services/instance-settings.d.ts.map +1 -0
- package/dist/services/instance-settings.js +158 -0
- package/dist/services/instance-settings.js.map +1 -0
- package/dist/services/issue-approvals.d.ts +56 -0
- package/dist/services/issue-approvals.d.ts.map +1 -0
- package/dist/services/issue-approvals.js +153 -0
- package/dist/services/issue-approvals.js.map +1 -0
- package/dist/services/issue-assignment-wakeup.d.ts +32 -0
- package/dist/services/issue-assignment-wakeup.d.ts.map +1 -0
- package/dist/services/issue-assignment-wakeup.js +43 -0
- package/dist/services/issue-assignment-wakeup.js.map +1 -0
- package/dist/services/issue-goal-fallback.d.ts +15 -0
- package/dist/services/issue-goal-fallback.d.ts.map +1 -0
- package/dist/services/issue-goal-fallback.js +15 -0
- package/dist/services/issue-goal-fallback.js.map +1 -0
- package/dist/services/issues.d.ts +580 -0
- package/dist/services/issues.d.ts.map +1 -0
- package/dist/services/issues.js +1464 -0
- package/dist/services/issues.js.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.d.ts +23 -0
- package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-portability.js +3795 -0
- package/dist/services/knowledge-portability/organization-portability.js.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.d.ts +105 -0
- package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -0
- package/dist/services/knowledge-portability/organization-skills.js +3172 -0
- package/dist/services/knowledge-portability/organization-skills.js.map +1 -0
- package/dist/services/live-events.d.ts +17 -0
- package/dist/services/live-events.d.ts.map +1 -0
- package/dist/services/live-events.js +33 -0
- package/dist/services/live-events.js.map +1 -0
- package/dist/services/messenger.d.ts +111 -0
- package/dist/services/messenger.d.ts.map +1 -0
- package/dist/services/messenger.js +774 -0
- package/dist/services/messenger.js.map +1 -0
- package/dist/services/native-path-picker.d.ts +18 -0
- package/dist/services/native-path-picker.d.ts.map +1 -0
- package/dist/services/native-path-picker.js +119 -0
- package/dist/services/native-path-picker.js.map +1 -0
- package/dist/services/operator-profile.d.ts +7 -0
- package/dist/services/operator-profile.d.ts.map +1 -0
- package/dist/services/operator-profile.js +66 -0
- package/dist/services/operator-profile.js.map +1 -0
- package/dist/services/organization-export-readme.d.ts +17 -0
- package/dist/services/organization-export-readme.d.ts.map +1 -0
- package/dist/services/organization-export-readme.js +148 -0
- package/dist/services/organization-export-readme.js.map +1 -0
- package/dist/services/organization-portability.d.ts +2 -0
- package/dist/services/organization-portability.d.ts.map +1 -0
- package/dist/services/organization-portability.js +2 -0
- package/dist/services/organization-portability.js.map +1 -0
- package/dist/services/organization-skills.d.ts +2 -0
- package/dist/services/organization-skills.d.ts.map +1 -0
- package/dist/services/organization-skills.js +2 -0
- package/dist/services/organization-skills.js.map +1 -0
- package/dist/services/organization-workspace-browser.d.ts +8 -0
- package/dist/services/organization-workspace-browser.d.ts.map +1 -0
- package/dist/services/organization-workspace-browser.js +229 -0
- package/dist/services/organization-workspace-browser.js.map +1 -0
- package/dist/services/organization-workspace.d.ts +5 -0
- package/dist/services/organization-workspace.d.ts.map +1 -0
- package/dist/services/organization-workspace.js +71 -0
- package/dist/services/organization-workspace.js.map +1 -0
- package/dist/services/orgs.d.ts +163 -0
- package/dist/services/orgs.d.ts.map +1 -0
- package/dist/services/orgs.js +327 -0
- package/dist/services/orgs.js.map +1 -0
- package/dist/services/plugin-capability-validator.d.ts +108 -0
- package/dist/services/plugin-capability-validator.d.ts.map +1 -0
- package/dist/services/plugin-capability-validator.js +268 -0
- package/dist/services/plugin-capability-validator.js.map +1 -0
- package/dist/services/plugin-config-validator.d.ts +26 -0
- package/dist/services/plugin-config-validator.d.ts.map +1 -0
- package/dist/services/plugin-config-validator.js +41 -0
- package/dist/services/plugin-config-validator.js.map +1 -0
- package/dist/services/plugin-dev-watcher.d.ts +30 -0
- package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
- package/dist/services/plugin-dev-watcher.js +241 -0
- package/dist/services/plugin-dev-watcher.js.map +1 -0
- package/dist/services/plugin-event-bus.d.ts +149 -0
- package/dist/services/plugin-event-bus.d.ts.map +1 -0
- package/dist/services/plugin-event-bus.js +258 -0
- package/dist/services/plugin-event-bus.js.map +1 -0
- package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
- package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
- package/dist/services/plugin-host-service-cleanup.js +37 -0
- package/dist/services/plugin-host-service-cleanup.js.map +1 -0
- package/dist/services/plugin-host-services.d.ts +13 -0
- package/dist/services/plugin-host-services.d.ts.map +1 -0
- package/dist/services/plugin-host-services.js +973 -0
- package/dist/services/plugin-host-services.js.map +1 -0
- package/dist/services/plugin-job-coordinator.d.ts +81 -0
- package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
- package/dist/services/plugin-job-coordinator.js +172 -0
- package/dist/services/plugin-job-coordinator.js.map +1 -0
- package/dist/services/plugin-job-scheduler.d.ts +163 -0
- package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
- package/dist/services/plugin-job-scheduler.js +564 -0
- package/dist/services/plugin-job-scheduler.js.map +1 -0
- package/dist/services/plugin-job-store.d.ts +208 -0
- package/dist/services/plugin-job-store.d.ts.map +1 -0
- package/dist/services/plugin-job-store.js +350 -0
- package/dist/services/plugin-job-store.js.map +1 -0
- package/dist/services/plugin-lifecycle.d.ts +203 -0
- package/dist/services/plugin-lifecycle.d.ts.map +1 -0
- package/dist/services/plugin-lifecycle.js +476 -0
- package/dist/services/plugin-lifecycle.js.map +1 -0
- package/dist/services/plugin-loader.d.ts +441 -0
- package/dist/services/plugin-loader.d.ts.map +1 -0
- package/dist/services/plugin-loader.js +1192 -0
- package/dist/services/plugin-loader.js.map +1 -0
- package/dist/services/plugin-log-retention.d.ts +20 -0
- package/dist/services/plugin-log-retention.d.ts.map +1 -0
- package/dist/services/plugin-log-retention.js +63 -0
- package/dist/services/plugin-log-retention.js.map +1 -0
- package/dist/services/plugin-manifest-validator.d.ts +79 -0
- package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
- package/dist/services/plugin-manifest-validator.js +84 -0
- package/dist/services/plugin-manifest-validator.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +2542 -0
- package/dist/services/plugin-registry.d.ts.map +1 -0
- package/dist/services/plugin-registry.js +539 -0
- package/dist/services/plugin-registry.js.map +1 -0
- package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
- package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
- package/dist/services/plugin-runtime-sandbox.js +154 -0
- package/dist/services/plugin-runtime-sandbox.js.map +1 -0
- package/dist/services/plugin-secrets-handler.d.ts +81 -0
- package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
- package/dist/services/plugin-secrets-handler.js +275 -0
- package/dist/services/plugin-secrets-handler.js.map +1 -0
- package/dist/services/plugin-state-store.d.ts +92 -0
- package/dist/services/plugin-state-store.d.ts.map +1 -0
- package/dist/services/plugin-state-store.js +190 -0
- package/dist/services/plugin-state-store.js.map +1 -0
- package/dist/services/plugin-stream-bus.d.ts +29 -0
- package/dist/services/plugin-stream-bus.d.ts.map +1 -0
- package/dist/services/plugin-stream-bus.js +48 -0
- package/dist/services/plugin-stream-bus.js.map +1 -0
- package/dist/services/plugin-tool-dispatcher.d.ts +180 -0
- package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
- package/dist/services/plugin-tool-dispatcher.js +224 -0
- package/dist/services/plugin-tool-dispatcher.js.map +1 -0
- package/dist/services/plugin-tool-registry.d.ts +192 -0
- package/dist/services/plugin-tool-registry.d.ts.map +1 -0
- package/dist/services/plugin-tool-registry.js +224 -0
- package/dist/services/plugin-tool-registry.js.map +1 -0
- package/dist/services/plugin-worker-manager.d.ts +260 -0
- package/dist/services/plugin-worker-manager.d.ts.map +1 -0
- package/dist/services/plugin-worker-manager.js +835 -0
- package/dist/services/plugin-worker-manager.js.map +1 -0
- package/dist/services/projects.d.ts +92 -0
- package/dist/services/projects.d.ts.map +1 -0
- package/dist/services/projects.js +705 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/quota-windows.d.ts +9 -0
- package/dist/services/quota-windows.d.ts.map +1 -0
- package/dist/services/quota-windows.js +56 -0
- package/dist/services/quota-windows.js.map +1 -0
- package/dist/services/resource-catalog.d.ts +29 -0
- package/dist/services/resource-catalog.d.ts.map +1 -0
- package/dist/services/resource-catalog.js +298 -0
- package/dist/services/resource-catalog.js.map +1 -0
- package/dist/services/run-intelligence.d.ts +31 -0
- package/dist/services/run-intelligence.d.ts.map +1 -0
- package/dist/services/run-intelligence.js +315 -0
- package/dist/services/run-intelligence.js.map +1 -0
- package/dist/services/run-log-store.d.ts +36 -0
- package/dist/services/run-log-store.d.ts.map +1 -0
- package/dist/services/run-log-store.js +114 -0
- package/dist/services/run-log-store.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts +882 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.js +4345 -0
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -0
- package/dist/services/runtime-trace-metadata.d.ts +12 -0
- package/dist/services/runtime-trace-metadata.d.ts.map +1 -0
- package/dist/services/runtime-trace-metadata.js +13 -0
- package/dist/services/runtime-trace-metadata.js.map +1 -0
- package/dist/services/secrets.d.ts +511 -0
- package/dist/services/secrets.d.ts.map +1 -0
- package/dist/services/secrets.js +289 -0
- package/dist/services/secrets.js.map +1 -0
- package/dist/services/sidebar-badges.d.ts +11 -0
- package/dist/services/sidebar-badges.d.ts.map +1 -0
- package/dist/services/sidebar-badges.js +43 -0
- package/dist/services/sidebar-badges.js.map +1 -0
- package/dist/services/work-products.d.ts +14 -0
- package/dist/services/work-products.d.ts.map +1 -0
- package/dist/services/work-products.js +100 -0
- package/dist/services/work-products.js.map +1 -0
- package/dist/services/workspace-operation-log-store.d.ts +35 -0
- package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
- package/dist/services/workspace-operation-log-store.js +115 -0
- package/dist/services/workspace-operation-log-store.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +46 -0
- package/dist/services/workspace-operations.d.ts.map +1 -0
- package/dist/services/workspace-operations.js +237 -0
- package/dist/services/workspace-operations.js.map +1 -0
- package/dist/services/workspace-runtime.d.ts +164 -0
- package/dist/services/workspace-runtime.d.ts.map +1 -0
- package/dist/services/workspace-runtime.js +1235 -0
- package/dist/services/workspace-runtime.js.map +1 -0
- package/dist/startup-banner.d.ts +31 -0
- package/dist/startup-banner.d.ts.map +1 -0
- package/dist/startup-banner.js +121 -0
- package/dist/startup-banner.js.map +1 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +29 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/local-disk-provider.d.ts +3 -0
- package/dist/storage/local-disk-provider.d.ts.map +1 -0
- package/dist/storage/local-disk-provider.js +79 -0
- package/dist/storage/local-disk-provider.js.map +1 -0
- package/dist/storage/provider-registry.d.ts +4 -0
- package/dist/storage/provider-registry.d.ts.map +1 -0
- package/dist/storage/provider-registry.js +15 -0
- package/dist/storage/provider-registry.js.map +1 -0
- package/dist/storage/s3-provider.d.ts +11 -0
- package/dist/storage/s3-provider.d.ts.map +1 -0
- package/dist/storage/s3-provider.js +123 -0
- package/dist/storage/s3-provider.js.map +1 -0
- package/dist/storage/service.d.ts +3 -0
- package/dist/storage/service.d.ts.map +1 -0
- package/dist/storage/service.js +120 -0
- package/dist/storage/service.js.map +1 -0
- package/dist/storage/types.d.ts +55 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/ui-branding.d.ts +14 -0
- package/dist/ui-branding.d.ts.map +1 -0
- package/dist/ui-branding.js +201 -0
- package/dist/ui-branding.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +101 -0
- package/resources/bundled-skills/para-memory-files/SKILL.md +114 -0
- package/resources/bundled-skills/para-memory-files/references/schemas.md +35 -0
- package/resources/bundled-skills/rudder/SKILL.md +265 -0
- package/resources/bundled-skills/rudder/references/api-reference.md +253 -0
- package/resources/bundled-skills/rudder/references/cli-reference.md +67 -0
- package/resources/bundled-skills/rudder/references/organization-skills.md +155 -0
- package/resources/bundled-skills/rudder-create-agent/SKILL.md +166 -0
- package/resources/bundled-skills/rudder-create-agent/references/api-reference.md +172 -0
- package/resources/bundled-skills/rudder-create-agent/references/cli-reference.md +126 -0
- package/resources/bundled-skills/rudder-create-plugin/SKILL.md +103 -0
- package/resources/community-skills/deep-research/README.md +124 -0
- package/resources/community-skills/deep-research/SKILL.md +107 -0
- package/resources/community-skills/deep-research/reference/continuation.md +169 -0
- package/resources/community-skills/deep-research/reference/html-generation.md +103 -0
- package/resources/community-skills/deep-research/reference/methodology.md +421 -0
- package/resources/community-skills/deep-research/reference/quality-gates.md +197 -0
- package/resources/community-skills/deep-research/reference/report-assembly.md +119 -0
- package/resources/community-skills/deep-research/reference/weasyprint_guidelines.md +324 -0
- package/resources/community-skills/deep-research/requirements.txt +14 -0
- package/resources/community-skills/deep-research/scripts/citation_manager.py +177 -0
- package/resources/community-skills/deep-research/scripts/md_to_html.py +330 -0
- package/resources/community-skills/deep-research/scripts/research_engine.py +582 -0
- package/resources/community-skills/deep-research/scripts/source_evaluator.py +292 -0
- package/resources/community-skills/deep-research/scripts/validate_report.py +403 -0
- package/resources/community-skills/deep-research/scripts/verify_citations.py +426 -0
- package/resources/community-skills/deep-research/scripts/verify_html.py +220 -0
- package/resources/community-skills/deep-research/templates/mckinsey_report_template.html +443 -0
- package/resources/community-skills/deep-research/templates/report_template.md +433 -0
- package/resources/community-skills/skill-creator/SKILL.md +9 -0
- package/resources/community-skills/software-product-advisor/SKILL.md +290 -0
- package/skills/para-memory-files/SKILL.md +114 -0
- package/skills/para-memory-files/references/schemas.md +35 -0
- package/skills/rudder/SKILL.md +265 -0
- package/skills/rudder/references/api-reference.md +253 -0
- package/skills/rudder/references/cli-reference.md +67 -0
- package/skills/rudder/references/organization-skills.md +155 -0
- package/skills/rudder-create-agent/SKILL.md +166 -0
- package/skills/rudder-create-agent/references/api-reference.md +172 -0
- package/skills/rudder-create-agent/references/cli-reference.md +126 -0
- package/skills/rudder-create-plugin/SKILL.md +103 -0
- package/ui-dist/android-chrome-192x192.png +0 -0
- package/ui-dist/android-chrome-512x512.png +0 -0
- package/ui-dist/android-chrome-maskable-512x512.png +0 -0
- package/ui-dist/apple-touch-icon.png +0 -0
- package/ui-dist/assets/_basePickBy-CjUu04_e.js +1 -0
- package/ui-dist/assets/_baseUniq-C9YNlrVG.js +1 -0
- package/ui-dist/assets/apl-B4CMkyY2.js +1 -0
- package/ui-dist/assets/arc-CSSZfktq.js +1 -0
- package/ui-dist/assets/architectureDiagram-2XIMDMQ5-Co78JKUi.js +36 -0
- package/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
- package/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
- package/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
- package/ui-dist/assets/blockDiagram-WCTKOSBZ-2KUUIzzz.js +132 -0
- package/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/ui-dist/assets/c4Diagram-IC4MRINW-C6pq8tPP.js +10 -0
- package/ui-dist/assets/channel-BEODbRMk.js +1 -0
- package/ui-dist/assets/chunk-4BX2VUAB-ojCLkixe.js +1 -0
- package/ui-dist/assets/chunk-55IACEB6-MGONqzmz.js +1 -0
- package/ui-dist/assets/chunk-FMBD7UC4-CmGuLv2P.js +15 -0
- package/ui-dist/assets/chunk-JSJVCQXG-BNBefVr6.js +1 -0
- package/ui-dist/assets/chunk-KX2RTZJC-DIGBQLn5.js +1 -0
- package/ui-dist/assets/chunk-NQ4KR5QH-_KEutsaQ.js +220 -0
- package/ui-dist/assets/chunk-QZHKN3VN-B6pzyuwm.js +1 -0
- package/ui-dist/assets/chunk-WL4C6EOR-B8NDzcfm.js +189 -0
- package/ui-dist/assets/classDiagram-VBA2DB6C-CsSqaaRj.js +1 -0
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-CsSqaaRj.js +1 -0
- package/ui-dist/assets/clike-B9uivgTg.js +1 -0
- package/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
- package/ui-dist/assets/clone-5oWMCI0u.js +1 -0
- package/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
- package/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
- package/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
- package/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
- package/ui-dist/assets/cose-bilkent-S5V4N54A-B1t6ulcV.js +1 -0
- package/ui-dist/assets/crystal-SjHAIU92.js +1 -0
- package/ui-dist/assets/css-BnMrqG3P.js +1 -0
- package/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
- package/ui-dist/assets/cytoscape.esm-BQaXIfA_.js +331 -0
- package/ui-dist/assets/d-pRatUO7H.js +1 -0
- package/ui-dist/assets/dagre-KLK3FWXG-DWVC5_HJ.js +4 -0
- package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/ui-dist/assets/diagram-E7M64L7V-C4ztYLox.js +24 -0
- package/ui-dist/assets/diagram-IFDJBPK2-DtWBGLnA.js +43 -0
- package/ui-dist/assets/diagram-P4PSJMXO-BiqiI4Df.js +24 -0
- package/ui-dist/assets/diff-DbItnlRl.js +1 -0
- package/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
- package/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
- package/ui-dist/assets/dylan-DwRh75JA.js +1 -0
- package/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
- package/ui-dist/assets/ecl-Cabwm37j.js +1 -0
- package/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
- package/ui-dist/assets/elm-vLlmbW-K.js +1 -0
- package/ui-dist/assets/erDiagram-INFDFZHY-CUhr9rIh.js +70 -0
- package/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
- package/ui-dist/assets/factor-kuTfRLto.js +1 -0
- package/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
- package/ui-dist/assets/flowDiagram-PKNHOUZH-BEqBmNL-.js +162 -0
- package/ui-dist/assets/forth-Ffai-XNe.js +1 -0
- package/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
- package/ui-dist/assets/ganttDiagram-A5KZAMGK-CdeWhdno.js +292 -0
- package/ui-dist/assets/gas-Bneqetm1.js +1 -0
- package/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
- package/ui-dist/assets/gitGraphDiagram-K3NZZRJ6-CgG66QFg.js +65 -0
- package/ui-dist/assets/graph-rmownl79.js +1 -0
- package/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
- package/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
- package/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
- package/ui-dist/assets/http-DBlCnlav.js +1 -0
- package/ui-dist/assets/idl-BEugSyMb.js +1 -0
- package/ui-dist/assets/index-B1YyDqaG.js +1 -0
- package/ui-dist/assets/index-B7exNxYd.js +1 -0
- package/ui-dist/assets/index-BIuriVDl.js +1 -0
- package/ui-dist/assets/index-BT9rfwYt.js +1 -0
- package/ui-dist/assets/index-BZhmacJG.js +1 -0
- package/ui-dist/assets/index-B_ebS3U_.js +3 -0
- package/ui-dist/assets/index-BnQqZOsc.js +1 -0
- package/ui-dist/assets/index-BwPbAax6.js +1 -0
- package/ui-dist/assets/index-C5i670o5.js +1 -0
- package/ui-dist/assets/index-C9KwE7Yr.js +1 -0
- package/ui-dist/assets/index-CDId_UjP.js +1 -0
- package/ui-dist/assets/index-CI9ydSGM.js +1 -0
- package/ui-dist/assets/index-CKpm3WGI.css +1 -0
- package/ui-dist/assets/index-CMP_bzP3.js +2 -0
- package/ui-dist/assets/index-CRcHIoCW.js +1 -0
- package/ui-dist/assets/index-DZqNY-Lg.js +1 -0
- package/ui-dist/assets/index-DbDKJhW-.js +7 -0
- package/ui-dist/assets/index-Dkg6MwQ_.js +1 -0
- package/ui-dist/assets/index-Dn0iitKg.js +1 -0
- package/ui-dist/assets/index-GvHywIOA.js +1323 -0
- package/ui-dist/assets/index-WtX4Y4Fx.js +13 -0
- package/ui-dist/assets/index-iyC5PHC3.js +6 -0
- package/ui-dist/assets/index-jMlzlqoV.js +1 -0
- package/ui-dist/assets/index-pTIOLGTe.js +1 -0
- package/ui-dist/assets/infoDiagram-LFFYTUFH-CEhdbTYQ.js +2 -0
- package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
- package/ui-dist/assets/ishikawaDiagram-PHBUUO56-g9GiiXI2.js +70 -0
- package/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
- package/ui-dist/assets/journeyDiagram-4ABVD52K-CheeZzlg.js +139 -0
- package/ui-dist/assets/julia-DuME0IfC.js +1 -0
- package/ui-dist/assets/kanban-definition-K7BYSVSG-BTpuAgUJ.js +89 -0
- package/ui-dist/assets/katex-B1X10hvy.js +261 -0
- package/ui-dist/assets/layout-CuBgufef.js +1 -0
- package/ui-dist/assets/linear-CnXO6wXw.js +1 -0
- package/ui-dist/assets/livescript-BwQOo05w.js +1 -0
- package/ui-dist/assets/lua-BgMRiT3U.js +1 -0
- package/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
- package/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
- package/ui-dist/assets/mermaid.core-DVaYxfh9.js +255 -0
- package/ui-dist/assets/mindmap-definition-YRQLILUH-00nAuexq.js +68 -0
- package/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
- package/ui-dist/assets/mllike-CXdrOF99.js +1 -0
- package/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
- package/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
- package/ui-dist/assets/mumps-BT43cFF4.js +1 -0
- package/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
- package/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
- package/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
- package/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
- package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/ui-dist/assets/oz-BzwKVEFT.js +1 -0
- package/ui-dist/assets/pascal--L3eBynH.js +1 -0
- package/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
- package/ui-dist/assets/pieDiagram-SKSYHLDU-NaOgRqIj.js +30 -0
- package/ui-dist/assets/pig-CevX1Tat.js +1 -0
- package/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
- package/ui-dist/assets/properties-C78fOPTZ.js +1 -0
- package/ui-dist/assets/protobuf-ChK-085T.js +1 -0
- package/ui-dist/assets/pug-DeIclll2.js +1 -0
- package/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
- package/ui-dist/assets/python-BuPzkPfP.js +1 -0
- package/ui-dist/assets/q-pXgVlZs6.js +1 -0
- package/ui-dist/assets/quadrantDiagram-337W2JSQ-Bnf9OCW0.js +7 -0
- package/ui-dist/assets/r-B6wPVr8A.js +1 -0
- package/ui-dist/assets/requirementDiagram-Z7DCOOCP-BiacZTTh.js +73 -0
- package/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
- package/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
- package/ui-dist/assets/sankeyDiagram-WA2Y5GQK-DOuD4D2Q.js +10 -0
- package/ui-dist/assets/sas-B4kiWyti.js +1 -0
- package/ui-dist/assets/scheme-C41bIUwD.js +1 -0
- package/ui-dist/assets/sequenceDiagram-2WXFIKYE-oV3M_w-H.js +145 -0
- package/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
- package/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
- package/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
- package/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
- package/ui-dist/assets/solr-DehyRSwq.js +1 -0
- package/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
- package/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/ui-dist/assets/sql-D0XecflT.js +1 -0
- package/ui-dist/assets/stateDiagram-RAJIS63D-CdRc2Pqb.js +1 -0
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-CIMHFJYg.js +1 -0
- package/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
- package/ui-dist/assets/stylus-B533Al4x.js +1 -0
- package/ui-dist/assets/swift-BzpIVaGY.js +1 -0
- package/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
- package/ui-dist/assets/textile-CnDTJFAw.js +1 -0
- package/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/ui-dist/assets/tiki-DGYXhP31.js +1 -0
- package/ui-dist/assets/timeline-definition-YZTLITO2-BCWQDIwt.js +61 -0
- package/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
- package/ui-dist/assets/treemap-KZPCXAKY-BvsIxXAi.js +162 -0
- package/ui-dist/assets/troff-wAsdV37c.js +1 -0
- package/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
- package/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
- package/ui-dist/assets/vb-CmGdzxic.js +1 -0
- package/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
- package/ui-dist/assets/velocity-D8B20fx6.js +1 -0
- package/ui-dist/assets/vennDiagram-LZ73GAT5-BzibHs4r.js +34 -0
- package/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
- package/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
- package/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
- package/ui-dist/assets/xquery-DzFWVndE.js +1 -0
- package/ui-dist/assets/xychartDiagram-JWTSCODW-CX_Xt_y-.js +7 -0
- package/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
- package/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
- package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
- package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
- package/ui-dist/favicon-16x16.png +0 -0
- package/ui-dist/favicon-32x32.png +0 -0
- package/ui-dist/favicon-dev-16x16.png +0 -0
- package/ui-dist/favicon-dev-32x32.png +0 -0
- package/ui-dist/favicon-dev.ico +0 -0
- package/ui-dist/favicon.ico +0 -0
- package/ui-dist/favicon.svg +1 -0
- package/ui-dist/index.html +61 -0
- package/ui-dist/rudder-logo.png +0 -0
- package/ui-dist/site.webmanifest +30 -0
- package/ui-dist/sw.js +42 -0
- package/ui-dist/worktree-favicon-16x16.png +0 -0
- package/ui-dist/worktree-favicon-32x32.png +0 -0
- package/ui-dist/worktree-favicon.ico +0 -0
- package/ui-dist/worktree-favicon.svg +1 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Source Credibility Evaluator
|
|
4
|
+
Assesses source quality, credibility, and potential biases
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from dataclasses import dataclass
|
|
8
|
+
from typing import List, Dict, Optional
|
|
9
|
+
from urllib.parse import urlparse
|
|
10
|
+
from datetime import datetime, timedelta
|
|
11
|
+
import re
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class CredibilityScore:
|
|
16
|
+
"""Represents source credibility assessment"""
|
|
17
|
+
overall_score: float # 0-100
|
|
18
|
+
domain_authority: float # 0-100
|
|
19
|
+
recency: float # 0-100
|
|
20
|
+
expertise: float # 0-100
|
|
21
|
+
bias_score: float # 0-100 (higher = more neutral)
|
|
22
|
+
factors: Dict[str, str]
|
|
23
|
+
recommendation: str # "high_trust", "moderate_trust", "low_trust", "verify"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class SourceEvaluator:
|
|
27
|
+
"""Evaluates source credibility and quality"""
|
|
28
|
+
|
|
29
|
+
# Domain reputation tiers
|
|
30
|
+
HIGH_AUTHORITY_DOMAINS = {
|
|
31
|
+
# Academic & Research
|
|
32
|
+
'arxiv.org', 'nature.com', 'science.org', 'cell.com', 'nejm.org',
|
|
33
|
+
'thelancet.com', 'springer.com', 'sciencedirect.com', 'plos.org',
|
|
34
|
+
'ieee.org', 'acm.org', 'pubmed.ncbi.nlm.nih.gov',
|
|
35
|
+
|
|
36
|
+
# Government & International Organizations
|
|
37
|
+
'nih.gov', 'cdc.gov', 'who.int', 'fda.gov', 'nasa.gov',
|
|
38
|
+
'gov.uk', 'europa.eu', 'un.org',
|
|
39
|
+
|
|
40
|
+
# Established Tech Documentation
|
|
41
|
+
'docs.python.org', 'developer.mozilla.org', 'docs.microsoft.com',
|
|
42
|
+
'cloud.google.com', 'aws.amazon.com', 'kubernetes.io',
|
|
43
|
+
|
|
44
|
+
# Reputable News (Fact-check verified)
|
|
45
|
+
'reuters.com', 'apnews.com', 'bbc.com', 'economist.com',
|
|
46
|
+
'nature.com/news', 'scientificamerican.com'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
MODERATE_AUTHORITY_DOMAINS = {
|
|
50
|
+
# Tech News & Analysis
|
|
51
|
+
'techcrunch.com', 'theverge.com', 'arstechnica.com', 'wired.com',
|
|
52
|
+
'zdnet.com', 'cnet.com',
|
|
53
|
+
|
|
54
|
+
# Industry Publications
|
|
55
|
+
'forbes.com', 'bloomberg.com', 'wsj.com', 'ft.com',
|
|
56
|
+
|
|
57
|
+
# Educational
|
|
58
|
+
'wikipedia.org', 'britannica.com', 'khanacademy.org',
|
|
59
|
+
|
|
60
|
+
# Tech Blogs (established)
|
|
61
|
+
'medium.com', 'dev.to', 'stackoverflow.com', 'github.com'
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
LOW_AUTHORITY_INDICATORS = [
|
|
65
|
+
'blogspot.com', 'wordpress.com', 'wix.com', 'substack.com'
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
def __init__(self):
|
|
69
|
+
pass
|
|
70
|
+
|
|
71
|
+
def evaluate_source(
|
|
72
|
+
self,
|
|
73
|
+
url: str,
|
|
74
|
+
title: str,
|
|
75
|
+
content: Optional[str] = None,
|
|
76
|
+
publication_date: Optional[str] = None,
|
|
77
|
+
author: Optional[str] = None
|
|
78
|
+
) -> CredibilityScore:
|
|
79
|
+
"""Evaluate source credibility"""
|
|
80
|
+
|
|
81
|
+
domain = self._extract_domain(url)
|
|
82
|
+
|
|
83
|
+
# Calculate component scores
|
|
84
|
+
domain_score = self._evaluate_domain_authority(domain)
|
|
85
|
+
recency_score = self._evaluate_recency(publication_date)
|
|
86
|
+
expertise_score = self._evaluate_expertise(domain, title, author)
|
|
87
|
+
bias_score = self._evaluate_bias(domain, title, content)
|
|
88
|
+
|
|
89
|
+
# Calculate overall score (weighted average)
|
|
90
|
+
overall = (
|
|
91
|
+
domain_score * 0.35 +
|
|
92
|
+
recency_score * 0.20 +
|
|
93
|
+
expertise_score * 0.25 +
|
|
94
|
+
bias_score * 0.20
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
# Determine factors
|
|
98
|
+
factors = self._identify_factors(
|
|
99
|
+
domain, domain_score, recency_score, expertise_score, bias_score
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
# Generate recommendation
|
|
103
|
+
recommendation = self._generate_recommendation(overall)
|
|
104
|
+
|
|
105
|
+
return CredibilityScore(
|
|
106
|
+
overall_score=round(overall, 2),
|
|
107
|
+
domain_authority=round(domain_score, 2),
|
|
108
|
+
recency=round(recency_score, 2),
|
|
109
|
+
expertise=round(expertise_score, 2),
|
|
110
|
+
bias_score=round(bias_score, 2),
|
|
111
|
+
factors=factors,
|
|
112
|
+
recommendation=recommendation
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
def _extract_domain(self, url: str) -> str:
|
|
116
|
+
"""Extract domain from URL"""
|
|
117
|
+
parsed = urlparse(url)
|
|
118
|
+
domain = parsed.netloc.lower()
|
|
119
|
+
# Remove www prefix
|
|
120
|
+
domain = domain.replace('www.', '')
|
|
121
|
+
return domain
|
|
122
|
+
|
|
123
|
+
def _evaluate_domain_authority(self, domain: str) -> float:
|
|
124
|
+
"""Evaluate domain authority (0-100)"""
|
|
125
|
+
if domain in self.HIGH_AUTHORITY_DOMAINS:
|
|
126
|
+
return 90.0
|
|
127
|
+
elif domain in self.MODERATE_AUTHORITY_DOMAINS:
|
|
128
|
+
return 70.0
|
|
129
|
+
elif any(indicator in domain for indicator in self.LOW_AUTHORITY_INDICATORS):
|
|
130
|
+
return 40.0
|
|
131
|
+
else:
|
|
132
|
+
# Unknown domain - moderate skepticism
|
|
133
|
+
return 55.0
|
|
134
|
+
|
|
135
|
+
def _evaluate_recency(self, publication_date: Optional[str]) -> float:
|
|
136
|
+
"""Evaluate information recency (0-100)"""
|
|
137
|
+
if not publication_date:
|
|
138
|
+
return 50.0 # Unknown date
|
|
139
|
+
|
|
140
|
+
try:
|
|
141
|
+
pub_date = datetime.fromisoformat(publication_date.replace('Z', '+00:00'))
|
|
142
|
+
age = datetime.now() - pub_date
|
|
143
|
+
|
|
144
|
+
# Recency scoring
|
|
145
|
+
if age < timedelta(days=90): # < 3 months
|
|
146
|
+
return 100.0
|
|
147
|
+
elif age < timedelta(days=365): # < 1 year
|
|
148
|
+
return 85.0
|
|
149
|
+
elif age < timedelta(days=730): # < 2 years
|
|
150
|
+
return 70.0
|
|
151
|
+
elif age < timedelta(days=1825): # < 5 years
|
|
152
|
+
return 50.0
|
|
153
|
+
else:
|
|
154
|
+
return 30.0
|
|
155
|
+
|
|
156
|
+
except Exception:
|
|
157
|
+
return 50.0
|
|
158
|
+
|
|
159
|
+
def _evaluate_expertise(
|
|
160
|
+
self,
|
|
161
|
+
domain: str,
|
|
162
|
+
title: str,
|
|
163
|
+
author: Optional[str]
|
|
164
|
+
) -> float:
|
|
165
|
+
"""Evaluate source expertise (0-100)"""
|
|
166
|
+
score = 50.0
|
|
167
|
+
|
|
168
|
+
# Academic/research domains get high expertise
|
|
169
|
+
if any(d in domain for d in ['arxiv', 'nature', 'science', 'ieee', 'acm']):
|
|
170
|
+
score += 30
|
|
171
|
+
|
|
172
|
+
# Government/official sources
|
|
173
|
+
if '.gov' in domain or 'who.int' in domain:
|
|
174
|
+
score += 25
|
|
175
|
+
|
|
176
|
+
# Technical documentation
|
|
177
|
+
if 'docs.' in domain or 'documentation' in title.lower():
|
|
178
|
+
score += 20
|
|
179
|
+
|
|
180
|
+
# Author credentials (if available)
|
|
181
|
+
if author:
|
|
182
|
+
if any(title in author.lower() for title in ['dr.', 'phd', 'professor']):
|
|
183
|
+
score += 15
|
|
184
|
+
|
|
185
|
+
return min(score, 100.0)
|
|
186
|
+
|
|
187
|
+
def _evaluate_bias(
|
|
188
|
+
self,
|
|
189
|
+
domain: str,
|
|
190
|
+
title: str,
|
|
191
|
+
content: Optional[str]
|
|
192
|
+
) -> float:
|
|
193
|
+
"""Evaluate potential bias (0-100, higher = more neutral)"""
|
|
194
|
+
score = 70.0 # Start neutral
|
|
195
|
+
|
|
196
|
+
# Check for sensationalism in title
|
|
197
|
+
sensational_indicators = [
|
|
198
|
+
'!', 'shocking', 'unbelievable', 'you won\'t believe',
|
|
199
|
+
'secret', 'they don\'t want you to know'
|
|
200
|
+
]
|
|
201
|
+
title_lower = title.lower()
|
|
202
|
+
if any(indicator in title_lower for indicator in sensational_indicators):
|
|
203
|
+
score -= 20
|
|
204
|
+
|
|
205
|
+
# Academic sources are typically less biased
|
|
206
|
+
if any(d in domain for d in ['arxiv', 'nature', 'science', 'ieee']):
|
|
207
|
+
score += 20
|
|
208
|
+
|
|
209
|
+
# Check for balance in content (if available)
|
|
210
|
+
if content:
|
|
211
|
+
# Look for balanced language
|
|
212
|
+
balanced_indicators = ['however', 'although', 'on the other hand', 'critics argue']
|
|
213
|
+
if any(indicator in content.lower() for indicator in balanced_indicators):
|
|
214
|
+
score += 10
|
|
215
|
+
|
|
216
|
+
return min(max(score, 0), 100.0)
|
|
217
|
+
|
|
218
|
+
def _identify_factors(
|
|
219
|
+
self,
|
|
220
|
+
domain: str,
|
|
221
|
+
domain_score: float,
|
|
222
|
+
recency_score: float,
|
|
223
|
+
expertise_score: float,
|
|
224
|
+
bias_score: float
|
|
225
|
+
) -> Dict[str, str]:
|
|
226
|
+
"""Identify key credibility factors"""
|
|
227
|
+
factors = {}
|
|
228
|
+
|
|
229
|
+
if domain_score >= 85:
|
|
230
|
+
factors['domain'] = "High authority domain"
|
|
231
|
+
elif domain_score <= 45:
|
|
232
|
+
factors['domain'] = "Low authority domain - verify claims"
|
|
233
|
+
|
|
234
|
+
if recency_score >= 85:
|
|
235
|
+
factors['recency'] = "Recent information"
|
|
236
|
+
elif recency_score <= 40:
|
|
237
|
+
factors['recency'] = "Outdated information - verify currency"
|
|
238
|
+
|
|
239
|
+
if expertise_score >= 80:
|
|
240
|
+
factors['expertise'] = "Expert source"
|
|
241
|
+
elif expertise_score <= 45:
|
|
242
|
+
factors['expertise'] = "Limited expertise indicators"
|
|
243
|
+
|
|
244
|
+
if bias_score >= 80:
|
|
245
|
+
factors['bias'] = "Balanced perspective"
|
|
246
|
+
elif bias_score <= 50:
|
|
247
|
+
factors['bias'] = "Potential bias detected"
|
|
248
|
+
|
|
249
|
+
return factors
|
|
250
|
+
|
|
251
|
+
def _generate_recommendation(self, overall_score: float) -> str:
|
|
252
|
+
"""Generate trust recommendation"""
|
|
253
|
+
if overall_score >= 80:
|
|
254
|
+
return "high_trust"
|
|
255
|
+
elif overall_score >= 60:
|
|
256
|
+
return "moderate_trust"
|
|
257
|
+
elif overall_score >= 40:
|
|
258
|
+
return "low_trust"
|
|
259
|
+
else:
|
|
260
|
+
return "verify"
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
# Example usage
|
|
264
|
+
if __name__ == '__main__':
|
|
265
|
+
evaluator = SourceEvaluator()
|
|
266
|
+
|
|
267
|
+
# Test sources
|
|
268
|
+
test_sources = [
|
|
269
|
+
{
|
|
270
|
+
'url': 'https://www.nature.com/articles/s41586-2025-12345',
|
|
271
|
+
'title': 'Breakthrough in Quantum Computing',
|
|
272
|
+
'publication_date': '2025-10-15'
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
'url': 'https://someblog.wordpress.com/shocking-discovery',
|
|
276
|
+
'title': 'SHOCKING! You Won\'t Believe This Discovery!',
|
|
277
|
+
'publication_date': '2020-01-01'
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
'url': 'https://docs.python.org/3/library/asyncio.html',
|
|
281
|
+
'title': 'asyncio — Asynchronous I/O',
|
|
282
|
+
'publication_date': '2025-11-01'
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
|
|
286
|
+
for source in test_sources:
|
|
287
|
+
score = evaluator.evaluate_source(**source)
|
|
288
|
+
print(f"\nSource: {source['title']}")
|
|
289
|
+
print(f"URL: {source['url']}")
|
|
290
|
+
print(f"Overall Score: {score.overall_score}/100")
|
|
291
|
+
print(f"Recommendation: {score.recommendation}")
|
|
292
|
+
print(f"Factors: {score.factors}")
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Report Validation Script
|
|
4
|
+
Ensures research reports meet quality standards before delivery
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import argparse
|
|
8
|
+
import re
|
|
9
|
+
import sys
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from typing import List
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ReportValidator:
|
|
15
|
+
"""Validates research report quality"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, report_path: Path):
|
|
18
|
+
self.report_path = report_path
|
|
19
|
+
self.content = self._read_report()
|
|
20
|
+
self.errors: List[str] = []
|
|
21
|
+
self.warnings: List[str] = []
|
|
22
|
+
|
|
23
|
+
def _read_report(self) -> str:
|
|
24
|
+
"""Read report file"""
|
|
25
|
+
try:
|
|
26
|
+
with open(self.report_path, 'r', encoding='utf-8') as f:
|
|
27
|
+
return f.read()
|
|
28
|
+
except Exception as e:
|
|
29
|
+
print(f"❌ ERROR: Cannot read report: {e}")
|
|
30
|
+
sys.exit(1)
|
|
31
|
+
|
|
32
|
+
def validate(self) -> bool:
|
|
33
|
+
"""Run all validation checks"""
|
|
34
|
+
print(f"\n{'='*60}")
|
|
35
|
+
print(f"VALIDATING REPORT: {self.report_path.name}")
|
|
36
|
+
print(f"{'='*60}\n")
|
|
37
|
+
|
|
38
|
+
checks = [
|
|
39
|
+
("Executive Summary", self._check_executive_summary),
|
|
40
|
+
("Required Sections", self._check_required_sections),
|
|
41
|
+
("Citations", self._check_citations),
|
|
42
|
+
("Bibliography", self._check_bibliography),
|
|
43
|
+
("Placeholder Text", self._check_placeholders),
|
|
44
|
+
("Content Truncation", self._check_content_truncation),
|
|
45
|
+
("Word Count", self._check_word_count),
|
|
46
|
+
("Source Count", self._check_source_count),
|
|
47
|
+
("Broken Links", self._check_broken_references),
|
|
48
|
+
("Concrete Grounding", self._check_concrete_grounding),
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
for check_name, check_func in checks:
|
|
52
|
+
print(f"⏳ Checking: {check_name}...", end=" ")
|
|
53
|
+
passed = check_func()
|
|
54
|
+
if passed:
|
|
55
|
+
print("✅ PASS")
|
|
56
|
+
else:
|
|
57
|
+
print("❌ FAIL")
|
|
58
|
+
|
|
59
|
+
self._print_summary()
|
|
60
|
+
|
|
61
|
+
return len(self.errors) == 0
|
|
62
|
+
|
|
63
|
+
def _check_executive_summary(self) -> bool:
|
|
64
|
+
"""Check executive summary exists and is 200-400 words"""
|
|
65
|
+
pattern = r'## Executive Summary(.*?)(?=##|\Z)'
|
|
66
|
+
match = re.search(pattern, self.content, re.DOTALL | re.IGNORECASE)
|
|
67
|
+
|
|
68
|
+
if not match:
|
|
69
|
+
self.errors.append("Missing 'Executive Summary' section")
|
|
70
|
+
return False
|
|
71
|
+
|
|
72
|
+
summary = match.group(1).strip()
|
|
73
|
+
word_count = len(summary.split())
|
|
74
|
+
|
|
75
|
+
if word_count > 400:
|
|
76
|
+
self.warnings.append(f"Executive summary too long: {word_count} words (should be ≤400)")
|
|
77
|
+
|
|
78
|
+
if word_count < 50:
|
|
79
|
+
self.warnings.append(f"Executive summary too short: {word_count} words (should be ≥50)")
|
|
80
|
+
|
|
81
|
+
return True
|
|
82
|
+
|
|
83
|
+
def _check_required_sections(self) -> bool:
|
|
84
|
+
"""Check all required sections are present"""
|
|
85
|
+
required = [
|
|
86
|
+
"Executive Summary",
|
|
87
|
+
"Introduction",
|
|
88
|
+
"Main Analysis",
|
|
89
|
+
"Synthesis",
|
|
90
|
+
"Limitations",
|
|
91
|
+
"Recommendations",
|
|
92
|
+
"Bibliography",
|
|
93
|
+
"Methodology"
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
# Recommended sections (warnings if missing, not errors)
|
|
97
|
+
recommended = [
|
|
98
|
+
"Counterevidence Register",
|
|
99
|
+
"Claims-Evidence Table"
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
missing = []
|
|
103
|
+
for section in required:
|
|
104
|
+
if not re.search(rf'##.*{section}', self.content, re.IGNORECASE):
|
|
105
|
+
missing.append(section)
|
|
106
|
+
|
|
107
|
+
if missing:
|
|
108
|
+
self.errors.append(f"Missing sections: {', '.join(missing)}")
|
|
109
|
+
return False
|
|
110
|
+
|
|
111
|
+
# Check recommended sections (warnings only)
|
|
112
|
+
missing_recommended = []
|
|
113
|
+
for section in recommended:
|
|
114
|
+
if not re.search(rf'##.*{section}', self.content, re.IGNORECASE):
|
|
115
|
+
missing_recommended.append(section)
|
|
116
|
+
|
|
117
|
+
if missing_recommended:
|
|
118
|
+
self.warnings.append(f"Missing recommended sections (for academic rigor): {', '.join(missing_recommended)}")
|
|
119
|
+
|
|
120
|
+
return True
|
|
121
|
+
|
|
122
|
+
def _check_citations(self) -> bool:
|
|
123
|
+
"""Check citation format and presence"""
|
|
124
|
+
# Find all citation references [1], [2], etc.
|
|
125
|
+
citations = re.findall(r'\[(\d+)\]', self.content)
|
|
126
|
+
|
|
127
|
+
if not citations:
|
|
128
|
+
self.errors.append("No citations found in report")
|
|
129
|
+
return False
|
|
130
|
+
|
|
131
|
+
unique_citations = set(citations)
|
|
132
|
+
|
|
133
|
+
if len(unique_citations) < 10:
|
|
134
|
+
self.warnings.append(f"Only {len(unique_citations)} unique sources cited (recommended: ≥10)")
|
|
135
|
+
|
|
136
|
+
# Check for consecutive citation numbers
|
|
137
|
+
citation_nums = sorted([int(c) for c in unique_citations])
|
|
138
|
+
if citation_nums:
|
|
139
|
+
max_citation = max(citation_nums)
|
|
140
|
+
expected = set(range(1, max_citation + 1))
|
|
141
|
+
missing = expected - set(citation_nums)
|
|
142
|
+
|
|
143
|
+
if missing:
|
|
144
|
+
self.warnings.append(f"Non-consecutive citation numbers, missing: {sorted(missing)}")
|
|
145
|
+
|
|
146
|
+
return True
|
|
147
|
+
|
|
148
|
+
def _check_bibliography(self) -> bool:
|
|
149
|
+
"""Check bibliography exists, matches citations, and has no truncation placeholders"""
|
|
150
|
+
pattern = r'## Bibliography(.*?)(?=##|\Z)'
|
|
151
|
+
match = re.search(pattern, self.content, re.DOTALL | re.IGNORECASE)
|
|
152
|
+
|
|
153
|
+
if not match:
|
|
154
|
+
self.errors.append("Missing 'Bibliography' section")
|
|
155
|
+
return False
|
|
156
|
+
|
|
157
|
+
bib_section = match.group(1)
|
|
158
|
+
|
|
159
|
+
# CRITICAL: Check for truncation placeholders (2025 CiteGuard enhancement)
|
|
160
|
+
truncation_patterns = [
|
|
161
|
+
(r'\[\d+-\d+\]', 'Citation range (e.g., [8-75])'),
|
|
162
|
+
(r'Additional.*citations', 'Phrase "Additional citations"'),
|
|
163
|
+
(r'would be included', 'Phrase "would be included"'),
|
|
164
|
+
(r'\[\.\.\.continue', 'Pattern "[...continue"'),
|
|
165
|
+
(r'\[Continue with', 'Pattern "[Continue with"'),
|
|
166
|
+
(r'etc\.(?!\w)', 'Standalone "etc."'),
|
|
167
|
+
(r'and so on', 'Phrase "and so on"'),
|
|
168
|
+
]
|
|
169
|
+
|
|
170
|
+
for pattern_re, description in truncation_patterns:
|
|
171
|
+
if re.search(pattern_re, bib_section, re.IGNORECASE):
|
|
172
|
+
self.errors.append(f"⚠️ CRITICAL: Bibliography contains truncation placeholder: {description}")
|
|
173
|
+
self.errors.append(f" This makes the report UNUSABLE - complete bibliography required")
|
|
174
|
+
return False
|
|
175
|
+
|
|
176
|
+
# Count bibliography entries [1], [2], etc.
|
|
177
|
+
bib_entries = re.findall(r'^\[(\d+)\]', bib_section, re.MULTILINE)
|
|
178
|
+
|
|
179
|
+
if not bib_entries:
|
|
180
|
+
self.errors.append("Bibliography has no entries")
|
|
181
|
+
return False
|
|
182
|
+
|
|
183
|
+
# Check citation number continuity (no gaps)
|
|
184
|
+
bib_nums = sorted([int(n) for n in bib_entries])
|
|
185
|
+
if bib_nums:
|
|
186
|
+
expected = list(range(1, bib_nums[-1] + 1))
|
|
187
|
+
actual = bib_nums
|
|
188
|
+
missing = [n for n in expected if n not in actual]
|
|
189
|
+
if missing:
|
|
190
|
+
self.errors.append(f"Bibliography has gaps in numbering: missing {missing}")
|
|
191
|
+
return False
|
|
192
|
+
|
|
193
|
+
# Find citations in text
|
|
194
|
+
text_citations = set(re.findall(r'\[(\d+)\]', self.content))
|
|
195
|
+
bib_citations = set(bib_entries)
|
|
196
|
+
|
|
197
|
+
# Check all citations have bibliography entries
|
|
198
|
+
missing_in_bib = text_citations - bib_citations
|
|
199
|
+
if missing_in_bib:
|
|
200
|
+
self.errors.append(f"Citations missing from bibliography: {sorted(missing_in_bib)}")
|
|
201
|
+
return False
|
|
202
|
+
|
|
203
|
+
# Check for unused bibliography entries
|
|
204
|
+
unused = bib_citations - text_citations
|
|
205
|
+
if unused:
|
|
206
|
+
self.warnings.append(f"Unused bibliography entries: {sorted(unused)}")
|
|
207
|
+
|
|
208
|
+
return True
|
|
209
|
+
|
|
210
|
+
def _check_placeholders(self) -> bool:
|
|
211
|
+
"""Check for placeholder text that shouldn't be in final report"""
|
|
212
|
+
placeholders = [
|
|
213
|
+
'TBD', 'TODO', 'FIXME', 'XXX',
|
|
214
|
+
'[citation needed]', '[needs citation]',
|
|
215
|
+
'[placeholder]', '[TODO]', '[TBD]'
|
|
216
|
+
]
|
|
217
|
+
|
|
218
|
+
found_placeholders = []
|
|
219
|
+
for placeholder in placeholders:
|
|
220
|
+
if placeholder in self.content:
|
|
221
|
+
found_placeholders.append(placeholder)
|
|
222
|
+
|
|
223
|
+
if found_placeholders:
|
|
224
|
+
self.errors.append(f"Found placeholder text: {', '.join(found_placeholders)}")
|
|
225
|
+
return False
|
|
226
|
+
|
|
227
|
+
return True
|
|
228
|
+
|
|
229
|
+
def _check_content_truncation(self) -> bool:
|
|
230
|
+
"""Check for content truncation patterns (2025 Progressive Assembly enhancement)"""
|
|
231
|
+
truncation_patterns = [
|
|
232
|
+
(r'Content continues', 'Phrase "Content continues"'),
|
|
233
|
+
(r'Due to length', 'Phrase "Due to length"'),
|
|
234
|
+
(r'would continue', 'Phrase "would continue"'),
|
|
235
|
+
(r'\[Sections \d+-\d+', 'Pattern "[Sections X-Y"'),
|
|
236
|
+
(r'Additional sections', 'Phrase "Additional sections"'),
|
|
237
|
+
(r'comprehensive.*word document that continues', 'Pattern "comprehensive...document that continues"'),
|
|
238
|
+
]
|
|
239
|
+
|
|
240
|
+
for pattern_re, description in truncation_patterns:
|
|
241
|
+
if re.search(pattern_re, self.content, re.IGNORECASE):
|
|
242
|
+
self.errors.append(f"⚠️ CRITICAL: Content truncation detected: {description}")
|
|
243
|
+
self.errors.append(f" Report is INCOMPLETE and UNUSABLE - regenerate with progressive assembly")
|
|
244
|
+
return False
|
|
245
|
+
|
|
246
|
+
return True
|
|
247
|
+
|
|
248
|
+
def _check_word_count(self) -> bool:
|
|
249
|
+
"""Check overall report length"""
|
|
250
|
+
word_count = len(self.content.split())
|
|
251
|
+
|
|
252
|
+
if word_count < 500:
|
|
253
|
+
self.warnings.append(f"Report is very short: {word_count} words (consider expanding)")
|
|
254
|
+
# No upper limit warning - progressive assembly supports unlimited lengths
|
|
255
|
+
|
|
256
|
+
return True
|
|
257
|
+
|
|
258
|
+
def _check_source_count(self) -> bool:
|
|
259
|
+
"""Check minimum source count"""
|
|
260
|
+
pattern = r'## Bibliography(.*?)(?=##|\Z)'
|
|
261
|
+
match = re.search(pattern, self.content, re.DOTALL | re.IGNORECASE)
|
|
262
|
+
|
|
263
|
+
if not match:
|
|
264
|
+
return True # Already caught in bibliography check
|
|
265
|
+
|
|
266
|
+
bib_section = match.group(1)
|
|
267
|
+
bib_entries = re.findall(r'^\[(\d+)\]', bib_section, re.MULTILINE)
|
|
268
|
+
|
|
269
|
+
source_count = len(set(bib_entries))
|
|
270
|
+
|
|
271
|
+
if source_count < 10:
|
|
272
|
+
self.warnings.append(f"Only {source_count} sources (recommended: ≥10)")
|
|
273
|
+
|
|
274
|
+
return True
|
|
275
|
+
|
|
276
|
+
def _check_broken_references(self) -> bool:
|
|
277
|
+
"""Check for broken internal references"""
|
|
278
|
+
# Find all markdown links [text](./path)
|
|
279
|
+
internal_links = re.findall(r'\[.*?\]\((\.\/.*?)\)', self.content)
|
|
280
|
+
|
|
281
|
+
broken = []
|
|
282
|
+
for link in internal_links:
|
|
283
|
+
# Remove anchor if present
|
|
284
|
+
link_path = link.split('#')[0]
|
|
285
|
+
full_path = self.report_path.parent / link_path
|
|
286
|
+
|
|
287
|
+
if not full_path.exists():
|
|
288
|
+
broken.append(link)
|
|
289
|
+
|
|
290
|
+
if broken:
|
|
291
|
+
self.errors.append(f"Broken internal links: {', '.join(broken)}")
|
|
292
|
+
return False
|
|
293
|
+
|
|
294
|
+
return True
|
|
295
|
+
|
|
296
|
+
def _check_concrete_grounding(self) -> bool:
|
|
297
|
+
"""Warn when major findings appear purely abstract with no grounding examples"""
|
|
298
|
+
pattern = r'## Main Analysis(.*?)(?=##|\Z)'
|
|
299
|
+
match = re.search(pattern, self.content, re.DOTALL | re.IGNORECASE)
|
|
300
|
+
|
|
301
|
+
if not match:
|
|
302
|
+
return True # Already covered by required sections
|
|
303
|
+
|
|
304
|
+
main_analysis = match.group(1)
|
|
305
|
+
finding_count = len(re.findall(r'^###\s+Finding\b', main_analysis, re.MULTILINE | re.IGNORECASE))
|
|
306
|
+
|
|
307
|
+
if finding_count == 0:
|
|
308
|
+
return True
|
|
309
|
+
|
|
310
|
+
grounding_markers = [
|
|
311
|
+
r'Concrete Example',
|
|
312
|
+
r'Mini-Case',
|
|
313
|
+
r'Applied Scenario',
|
|
314
|
+
r'Counterexample',
|
|
315
|
+
r'Failure Mode',
|
|
316
|
+
r'Representative Case',
|
|
317
|
+
r'Illustrative Hypothetical',
|
|
318
|
+
r'Hypothetical Example',
|
|
319
|
+
]
|
|
320
|
+
marker_count = 0
|
|
321
|
+
for marker in grounding_markers:
|
|
322
|
+
marker_count += len(re.findall(marker, main_analysis, re.IGNORECASE))
|
|
323
|
+
|
|
324
|
+
if marker_count == 0:
|
|
325
|
+
self.warnings.append(
|
|
326
|
+
"Main Analysis has no concrete example/case markers. "
|
|
327
|
+
"For abstract or technical findings, add source-grounded examples, mini-cases, "
|
|
328
|
+
"counterexamples, failure modes, or clearly labeled hypotheticals."
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
hypothetical_mentions = len(re.findall(r'\bhypothetical\b|\billustrative\b', self.content, re.IGNORECASE))
|
|
332
|
+
citation_like_hypotheticals = re.findall(
|
|
333
|
+
r'(?i)(hypothetical|illustrative)[^\n]{0,120}\[\d+\]',
|
|
334
|
+
self.content,
|
|
335
|
+
)
|
|
336
|
+
if hypothetical_mentions and citation_like_hypotheticals:
|
|
337
|
+
self.warnings.append(
|
|
338
|
+
"Hypothetical or illustrative examples appear next to citations. "
|
|
339
|
+
"Make sure invented scenarios are labeled clearly and not presented as sourced facts."
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
return True
|
|
343
|
+
|
|
344
|
+
def _print_summary(self):
|
|
345
|
+
"""Print validation summary"""
|
|
346
|
+
print(f"\n{'='*60}")
|
|
347
|
+
print(f"VALIDATION SUMMARY")
|
|
348
|
+
print(f"{'='*60}\n")
|
|
349
|
+
|
|
350
|
+
if self.errors:
|
|
351
|
+
print(f"❌ ERRORS ({len(self.errors)}):")
|
|
352
|
+
for error in self.errors:
|
|
353
|
+
print(f" • {error}")
|
|
354
|
+
print()
|
|
355
|
+
|
|
356
|
+
if self.warnings:
|
|
357
|
+
print(f"⚠️ WARNINGS ({len(self.warnings)}):")
|
|
358
|
+
for warning in self.warnings:
|
|
359
|
+
print(f" • {warning}")
|
|
360
|
+
print()
|
|
361
|
+
|
|
362
|
+
if not self.errors and not self.warnings:
|
|
363
|
+
print("✅ ALL CHECKS PASSED - Report meets quality standards!\n")
|
|
364
|
+
elif not self.errors:
|
|
365
|
+
print("✅ VALIDATION PASSED (with warnings)\n")
|
|
366
|
+
else:
|
|
367
|
+
print("❌ VALIDATION FAILED - Please fix errors before delivery\n")
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
def main():
|
|
371
|
+
parser = argparse.ArgumentParser(
|
|
372
|
+
description="Validate research report quality",
|
|
373
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
374
|
+
epilog="""
|
|
375
|
+
Examples:
|
|
376
|
+
python validate_report.py --report report.md
|
|
377
|
+
python validate_report.py -r ~/.claude/research_output/research_report_20251104_153045.md
|
|
378
|
+
"""
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
parser.add_argument(
|
|
382
|
+
'--report', '-r',
|
|
383
|
+
type=str,
|
|
384
|
+
required=True,
|
|
385
|
+
help='Path to research report markdown file'
|
|
386
|
+
)
|
|
387
|
+
|
|
388
|
+
args = parser.parse_args()
|
|
389
|
+
|
|
390
|
+
report_path = Path(args.report)
|
|
391
|
+
|
|
392
|
+
if not report_path.exists():
|
|
393
|
+
print(f"❌ ERROR: Report file not found: {report_path}")
|
|
394
|
+
sys.exit(1)
|
|
395
|
+
|
|
396
|
+
validator = ReportValidator(report_path)
|
|
397
|
+
passed = validator.validate()
|
|
398
|
+
|
|
399
|
+
sys.exit(0 if passed else 1)
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
if __name__ == '__main__':
|
|
403
|
+
main()
|