@skt-ai-labs/trayambak-cli 0.6.1 → 0.6.3
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 +20 -18
- package/dist/apps/cli/src/command-registry.js +1 -1
- package/dist/apps/cli/src/commands/agent.js +1 -1
- package/dist/apps/cli/src/commands/archive.js +1 -1
- package/dist/apps/cli/src/commands/checkpoint.js +1 -1
- package/dist/apps/cli/src/commands/command-dispatch.js +1 -1
- package/dist/apps/cli/src/commands/commit.js +1 -1
- package/dist/apps/cli/src/commands/compact.js +1 -1
- package/dist/apps/cli/src/commands/config.js +1 -1
- package/dist/apps/cli/src/commands/db.js +1 -1
- package/dist/apps/cli/src/commands/doctor.js +1 -1
- package/dist/apps/cli/src/commands/download.js +1 -1
- package/dist/apps/cli/src/commands/exec.js +1 -1
- package/dist/apps/cli/src/commands/index.js +1 -1
- package/dist/apps/cli/src/commands/login.js +1 -1
- package/dist/apps/cli/src/commands/manager.js +1 -1
- package/dist/apps/cli/src/commands/marketplace.js +1 -1
- package/dist/apps/cli/src/commands/mcp.js +1 -1
- package/dist/apps/cli/src/commands/mode.js +1 -1
- package/dist/apps/cli/src/commands/models.js +1 -1
- package/dist/apps/cli/src/commands/plan.js +1 -1
- package/dist/apps/cli/src/commands/pr.js +1 -1
- package/dist/apps/cli/src/commands/registry.js +1 -1
- package/dist/apps/cli/src/commands/run.js +1 -1
- package/dist/apps/cli/src/commands/sandbox.js +1 -1
- package/dist/apps/cli/src/commands/serve.js +1 -1
- package/dist/apps/cli/src/commands/session-export.js +1 -1
- package/dist/apps/cli/src/commands/session-resume.js +1 -1
- package/dist/apps/cli/src/commands/shortcuts.js +1 -1
- package/dist/apps/cli/src/commands/slash-command.js +1 -1
- package/dist/apps/cli/src/commands/stats.js +1 -1
- package/dist/apps/cli/src/commands/streaming-gate.js +1 -1
- package/dist/apps/cli/src/commands/task.js +1 -1
- package/dist/apps/cli/src/commands/todo.js +1 -1
- package/dist/apps/cli/src/commands/uninstall.js +1 -1
- package/dist/apps/cli/src/commands/upgrade.js +1 -1
- package/dist/apps/cli/src/commands/worktree.js +1 -1
- package/dist/apps/cli/src/flags.js +1 -1
- package/dist/apps/cli/src/index.js +1 -1
- package/dist/apps/cli/src/integration/board.js +1 -1
- package/dist/apps/cli/src/integration/git-refs.js +1 -1
- package/dist/apps/cli/src/integration/index.js +1 -1
- package/dist/apps/cli/src/integration/indexing.js +1 -1
- package/dist/apps/cli/src/integration/notebook.js +1 -1
- package/dist/apps/cli/src/integration/parent-watchdog.js +1 -1
- package/dist/apps/cli/src/integration/plan.js +1 -1
- package/dist/apps/cli/src/integration/presence.js +1 -1
- package/dist/apps/cli/src/integration/project-id.js +1 -1
- package/dist/apps/cli/src/integration/rules.js +1 -1
- package/dist/apps/cli/src/integration/sandbox.js +1 -1
- package/dist/apps/cli/src/integration/task-resume.js +1 -1
- package/dist/apps/cli/src/integration/text-stream.js +1 -1
- package/dist/apps/cli/src/integration/unique-id.js +1 -1
- package/dist/apps/cli/src/integration/watcher.js +1 -1
- package/dist/apps/cli/src/logger.js +1 -1
- package/dist/apps/cli/src/session/index.js +1 -1
- package/dist/apps/cli/src/session/session-compaction.js +1 -1
- package/dist/apps/cli/src/session/session-continuation.js +1 -1
- package/dist/apps/cli/src/session/session-control.js +1 -1
- package/dist/apps/cli/src/session/session-fork.js +1 -1
- package/dist/apps/cli/src/session/session-manager.js +1 -1
- package/dist/apps/cli/src/session/session-transcript.js +1 -1
- package/dist/apps/cli/src/tui/index.js +1 -1
- package/dist/apps/cli/src/tui/tui-features.js +1 -1
- package/dist/apps/cli/src/version.js +1 -1
- package/dist/apps/runtime/src/agent/agent-loop.js +1 -1
- package/dist/apps/runtime/src/agent/agent.js +1 -1
- package/dist/apps/runtime/src/agent/auto-pilot.js +1 -1
- package/dist/apps/runtime/src/agent/loop-test-harness.js +1 -1
- package/dist/apps/runtime/src/agent/review-init.js +1 -1
- package/dist/apps/runtime/src/agent/sota.js +1 -1
- package/dist/apps/runtime/src/agent/specialist-agents.js +1 -1
- package/dist/apps/runtime/src/artifacts/artifact-manager.js +1 -1
- package/dist/apps/runtime/src/checkpoints.js +1 -1
- package/dist/apps/runtime/src/compaction.js +1 -1
- package/dist/apps/runtime/src/config.js +1 -1
- package/dist/apps/runtime/src/controller/controller.js +1 -1
- package/dist/apps/runtime/src/controller/executor.js +1 -1
- package/dist/apps/runtime/src/controller/reviewer.js +1 -1
- package/dist/apps/runtime/src/controller/router.js +1 -1
- package/dist/apps/runtime/src/controller/state.js +1 -1
- package/dist/apps/runtime/src/developer-mode/bug-fix-auto.js +1 -1
- package/dist/apps/runtime/src/developer-mode/developer-mode.js +1 -1
- package/dist/apps/runtime/src/developer-mode/rag-cache.js +1 -1
- package/dist/apps/runtime/src/developer-mode/sota-mode.js +1 -1
- package/dist/apps/runtime/src/developer-mode/subagent-orchestrator.js +1 -1
- package/dist/apps/runtime/src/evidence/evidence-store.js +1 -1
- package/dist/apps/runtime/src/github-auth.js +1 -1
- package/dist/apps/runtime/src/goals.js +1 -1
- package/dist/apps/runtime/src/index.js +1 -1
- package/dist/apps/runtime/src/knowledge/knowledge-gate.js +1 -1
- package/dist/apps/runtime/src/license.js +1 -1
- package/dist/apps/runtime/src/llama-cpp-bin.js +1 -1
- package/dist/apps/runtime/src/mistakes/mistake-detector.js +1 -1
- package/dist/apps/runtime/src/notifications.js +1 -1
- package/dist/apps/runtime/src/planner/planner.js +1 -1
- package/dist/apps/runtime/src/prompt/auto-title.js +1 -1
- package/dist/apps/runtime/src/prompt/enhance-prompt.js +1 -1
- package/dist/apps/runtime/src/prompt/power-prompt.js +1 -1
- package/dist/apps/runtime/src/prompt/rules.js +1 -1
- package/dist/apps/runtime/src/repetition/repetition-detector.js +1 -1
- package/dist/apps/runtime/src/self-improvement.js +1 -1
- package/dist/apps/runtime/src/session/session.js +1 -1
- package/dist/apps/runtime/src/tools/artifacts/artifact.js +1 -1
- package/dist/apps/runtime/src/tools/checkpoint/checkpoint.js +1 -1
- package/dist/apps/runtime/src/tools/checkpoint/rewind.js +1 -1
- package/dist/apps/runtime/src/tools/code/codemode.js +1 -1
- package/dist/apps/runtime/src/tools/code/fim.js +1 -1
- package/dist/apps/runtime/src/tools/code/next-edit.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/code-search.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/semantic-search.js +1 -1
- package/dist/apps/runtime/src/tools/code-search/symbols.js +1 -1
- package/dist/apps/runtime/src/tools/command-exec/bash.js +1 -1
- package/dist/apps/runtime/src/tools/command-exec/terminal.js +1 -1
- package/dist/apps/runtime/src/tools/commands/commands.js +1 -1
- package/dist/apps/runtime/src/tools/custom/custom-tools.js +1 -1
- package/dist/apps/runtime/src/tools/diagnostics/diagnostics-tool.js +1 -1
- package/dist/apps/runtime/src/tools/diagnostics/tsc-diagnostics.js +1 -1
- package/dist/apps/runtime/src/tools/directory/list-dir.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/edit-file.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/fs-walk.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/fuzzy-match.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/read-file.js +1 -1
- package/dist/apps/runtime/src/tools/file-edit/write-file.js +1 -1
- package/dist/apps/runtime/src/tools/github/github.js +1 -1
- package/dist/apps/runtime/src/tools/globber/glob.js +1 -1
- package/dist/apps/runtime/src/tools/hook-exec.js +1 -1
- package/dist/apps/runtime/src/tools/index.js +1 -1
- package/dist/apps/runtime/src/tools/manifest/read-manifest.js +1 -1
- package/dist/apps/runtime/src/tools/marketplace/marketplace.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp-install.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp-runner-tool.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/mcp.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/registry.js +1 -1
- package/dist/apps/runtime/src/tools/mcp/tool-search.js +1 -1
- package/dist/apps/runtime/src/tools/memory/dream.js +1 -1
- package/dist/apps/runtime/src/tools/memory/memory.js +1 -1
- package/dist/apps/runtime/src/tools/mode/mode.js +1 -1
- package/dist/apps/runtime/src/tools/pentest/pentest-tools.js +1 -1
- package/dist/apps/runtime/src/tools/pentest/security-tool-registry.js +1 -1
- package/dist/apps/runtime/src/tools/planning/todo.js +1 -1
- package/dist/apps/runtime/src/tools/planning/todoread.js +1 -1
- package/dist/apps/runtime/src/tools/regex/grep.js +1 -1
- package/dist/apps/runtime/src/tools/search/ripgrep.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-core.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-loading.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-model.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-parser.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skill-selection.js +1 -1
- package/dist/apps/runtime/src/tools/skills/skills.js +1 -1
- package/dist/apps/runtime/src/tools/text/csv.js +1 -1
- package/dist/apps/runtime/src/tools/text/diff-render.js +1 -1
- package/dist/apps/runtime/src/tools/text/diff.js +1 -1
- package/dist/apps/runtime/src/tools/text/summarize.js +1 -1
- package/dist/apps/runtime/src/tools/text/yaml.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent-catalog.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent-manager.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/agent.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/ask-question.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/cron.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/debate.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/fleet.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/generate-agent.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/monitor.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/notebook-edit.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/parallel-execute.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/parallel-review.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/rules.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/send-message.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/sota-solve.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/swarm.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/tasks.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/team.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/workflow.js +1 -1
- package/dist/apps/runtime/src/tools/trayambak/worktree.js +1 -1
- package/dist/apps/runtime/src/tools/types.js +1 -1
- package/dist/apps/runtime/src/tools/web/multi-search.js +1 -1
- package/dist/apps/runtime/src/tools/web/web-search.js +1 -1
- package/dist/apps/runtime/src/tools/web/webbrowse.js +1 -1
- package/dist/apps/runtime/src/tools/web/webfetch.js +1 -1
- package/dist/apps/runtime/src/update/auto-update.js +1 -1
- package/dist/packages/acp/src/index.js +1 -1
- package/dist/packages/approval/src/index.js +1 -1
- package/dist/packages/checkpoints/src/index.js +1 -1
- package/dist/packages/cli/src/commands/registry.js +1 -1
- package/dist/packages/client/src/index.js +1 -1
- package/dist/packages/coding-agent/src/index.js +1 -1
- package/dist/packages/core/src/agent_communication.js +1 -1
- package/dist/packages/core/src/agent_registry.js +1 -1
- package/dist/packages/core/src/agents_md.js +1 -1
- package/dist/packages/core/src/analytics.js +1 -1
- package/dist/packages/core/src/approval.js +1 -1
- package/dist/packages/core/src/auth.js +1 -1
- package/dist/packages/core/src/context/compactor.js +1 -1
- package/dist/packages/core/src/cron/scheduler.js +1 -1
- package/dist/packages/core/src/curator/librarian.js +1 -1
- package/dist/packages/core/src/env_filter.js +1 -1
- package/dist/packages/core/src/extension_api.js +1 -1
- package/dist/packages/core/src/feature_flags.js +1 -1
- package/dist/packages/core/src/hook_runtime.js +1 -1
- package/dist/packages/core/src/i18n.js +1 -1
- package/dist/packages/core/src/memory/manager.js +1 -1
- package/dist/packages/core/src/memory/provider.js +1 -1
- package/dist/packages/core/src/plan_mode.js +1 -1
- package/dist/packages/core/src/process.js +1 -1
- package/dist/packages/core/src/providers/manager.js +1 -1
- package/dist/packages/core/src/providers/registry.js +1 -1
- package/dist/packages/core/src/rollout_budget.js +1 -1
- package/dist/packages/core/src/secrets.js +1 -1
- package/dist/packages/core/src/session_store.js +1 -1
- package/dist/packages/core/src/state_db.js +1 -1
- package/dist/packages/core/src/subagents.js +1 -1
- package/dist/packages/core/src/token_budget.js +1 -1
- package/dist/packages/core/src/toolsets/arsenal.js +1 -1
- package/dist/packages/core/src/validate.js +1 -1
- package/dist/packages/execpolicy/src/policy.js +1 -1
- package/dist/packages/function/src/index.js +1 -1
- package/dist/packages/harness/src/index.js +1 -1
- package/dist/packages/mcp/src/index.js +1 -1
- package/dist/packages/mcp/src/oauth-callback.js +1 -1
- package/dist/packages/mcp/src/oauth.js +1 -1
- package/dist/packages/mcp/src/spawn-resolve.js +1 -1
- package/dist/packages/mcp-server/src/index.js +1 -1
- package/dist/packages/modes/src/index.js +1 -1
- package/dist/packages/protocol/src/events.js +1 -1
- package/dist/packages/protocol/src/messages.js +1 -1
- package/dist/packages/protocol/src/permission-rules.js +1 -1
- package/dist/packages/protocol/src/permissions.js +1 -1
- package/dist/packages/protocol/src/tools.js +1 -1
- package/dist/packages/protocol/src/toolsets.js +1 -1
- package/dist/packages/protocol/src/util/url.js +1 -1
- package/dist/packages/provider/src/anthropic.js +1 -1
- package/dist/packages/provider/src/catalog.js +1 -1
- package/dist/packages/provider/src/custom.js +1 -1
- package/dist/packages/provider/src/faux-stream.js +1 -1
- package/dist/packages/provider/src/google.js +1 -1
- package/dist/packages/provider/src/huggingface.js +1 -1
- package/dist/packages/provider/src/index.js +1 -1
- package/dist/packages/provider/src/llama-cpp.js +1 -1
- package/dist/packages/provider/src/nvidia.js +1 -1
- package/dist/packages/provider/src/ollama.js +1 -1
- package/dist/packages/provider/src/openai.js +1 -1
- package/dist/packages/provider/src/types.js +1 -1
- package/dist/packages/provider/src/xai.js +1 -1
- package/dist/packages/sandbox/src/gate.js +1 -1
- package/dist/packages/sandbox/src/index.js +1 -1
- package/dist/packages/sandbox/src/spawn.js +1 -1
- package/dist/packages/sandbox/src/types.js +1 -1
- package/dist/packages/sandbox/src/violation.js +1 -1
- package/dist/packages/schema/src/index.js +1 -1
- package/dist/packages/sdk/src/index.js +1 -1
- package/dist/packages/server/src/cors.js +1 -1
- package/dist/packages/server/src/daemon.js +1 -1
- package/dist/packages/server/src/github-app.js +1 -1
- package/dist/packages/server/src/github-autofix.js +1 -1
- package/dist/packages/server/src/github-jobs.js +1 -1
- package/dist/packages/server/src/github-oauth.js +1 -1
- package/dist/packages/server/src/index.js +1 -1
- package/dist/packages/server/src/install-ps1.js +1 -1
- package/dist/packages/server/src/license-store.js +1 -1
- package/dist/packages/session-backends/src/index.js +1 -1
- package/dist/packages/session-backends/src/transcript.js +1 -1
- package/dist/packages/telemetry/src/index.js +1 -1
- package/dist/packages/tui/src/app/app-state.js +1 -1
- package/dist/packages/tui/src/app/events.js +1 -1
- package/dist/packages/tui/src/approval-notification.js +1 -1
- package/dist/packages/tui/src/bottom_pane/composer.js +1 -1
- package/dist/packages/tui/src/bottom_pane/index.js +1 -1
- package/dist/packages/tui/src/chatwidget/chat-widget.js +1 -1
- package/dist/packages/tui/src/chatwidget/index.js +1 -1
- package/dist/packages/tui/src/dialogs.js +1 -1
- package/dist/packages/tui/src/index.js +1 -1
- package/dist/packages/tui/src/ink-app/glyphs.js +1 -1
- package/dist/packages/tui/src/ink-app/utils/stringWidth.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/AgentPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/App.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/CommandPalette.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ExecToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Footer.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/GroupedToolUseContent.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MCPToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageList.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageResponse.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/MessageRow.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ModelPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/PermissionOverlay.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/PromptInput.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ProviderPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SandboxSetup.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SessionPicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Sidebar.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/Spinner.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SplashScreen.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SubagentPanel.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SubagentRow.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/SwarmToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ThemePicker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ToolCallItem.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/ToolUseLoader.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/TrayambakLogo.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolCanceledMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolErrorMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolRejectMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolResultMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/UserToolResultMessage/UserToolSuccessMessage.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/WelcomeScreen.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/WhichKey.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/app-bootstrap.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/clipboard.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/command-palette.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/file-mention.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/footer-fit.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/fuzzy.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/glyphs.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/index.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/keys.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/mode-stack.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/model-picker.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/mouse-input.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/prompt-files.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/provider-model-support.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/resize-guard.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/restore-messages.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/scroll-math.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/session-picker-actions.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/sidebar-data.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/skt-themes.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/stdin-sanitizer.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/subagent-view.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/syntax-highlight.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/terminal-notify.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/text-format.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/theme.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/themeColors.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/types.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/use-border-pulse.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/useAppInput.js +1 -1
- package/dist/packages/tui/src/ink-app-esm/utils/stringWidth.js +1 -1
- package/dist/packages/tui/src/keybindings.js +1 -1
- package/dist/packages/tui/src/keys.js +1 -1
- package/dist/packages/tui/src/notifications.js +1 -1
- package/dist/packages/tui/src/premium-ui.js +1 -1
- package/dist/packages/tui/src/stdin-buffer.js +1 -1
- package/dist/packages/tui/src/terminal-ui.js +1 -1
- package/dist/packages/tui/src/tui/terminal.js +1 -1
- package/dist/packages/tui/src/ui/border.js +1 -1
- package/dist/packages/tui/src/ui/box.js +1 -1
- package/dist/packages/tui/src/ui/dialog.js +1 -1
- package/dist/packages/tui/src/ui/footer-mode.js +1 -1
- package/dist/packages/tui/src/ui/footer.js +1 -1
- package/dist/packages/tui/src/ui/key-hint.js +1 -1
- package/dist/packages/tui/src/ui/skt-themes.js +1 -1
- package/dist/packages/tui/src/ui/spinner.js +1 -1
- package/dist/packages/tui/src/ui/theme.js +1 -1
- package/dist/packages/tui/src/ui/toast.js +1 -1
- package/dist/packages/tui/src/ui/tool-display.js +1 -1
- package/dist/packages/tui/src/ui/tool-palette.js +1 -1
- package/dist/skt/0-points/points.js +1 -1
- package/dist/skt/1-errors/mistake.js +1 -1
- package/dist/skt/1-errors/penalty.js +1 -1
- package/dist/skt/10-upload/upload.js +1 -1
- package/dist/skt/11-ui/components.js +1 -1
- package/dist/skt/12-control/content-control.js +1 -1
- package/dist/skt/12-control/hallucination.js +1 -1
- package/dist/skt/12-control/points.js +1 -1
- package/dist/skt/12-control/repetition.js +1 -1
- package/dist/skt/12-control/verification.js +1 -1
- package/dist/skt/13-healing/ast-validator.js +1 -1
- package/dist/skt/13-healing/healing-controller.js +1 -1
- package/dist/skt/13-healing/journal.js +1 -1
- package/dist/skt/13-healing/rollback.js +1 -1
- package/dist/skt/13-healing/scratchpad.js +1 -1
- package/dist/skt/13-healing/subprocess.js +1 -1
- package/dist/skt/13-healing/verify.js +1 -1
- package/dist/skt/14-hooks/codec.js +1 -1
- package/dist/skt/14-hooks/events.js +1 -1
- package/dist/skt/14-hooks/matcher.js +1 -1
- package/dist/skt/14-hooks/merge.js +1 -1
- package/dist/skt/14-hooks/runner.js +1 -1
- package/dist/skt/14-hooks/types.js +1 -1
- package/dist/skt/3-user/instructions.js +1 -1
- package/dist/skt/4-mem/memory.js +1 -1
- package/dist/skt/5-eval/cot-chain.js +1 -1
- package/dist/skt/5-eval/cot.js +1 -1
- package/dist/skt/5-eval/eval.js +1 -1
- package/dist/skt/6-u/improvements.js +1 -1
- package/dist/skt/6-u/reward.js +1 -1
- package/dist/skt/7-cli/autorepair.js +1 -1
- package/dist/skt/7-cli/clibugs.js +1 -1
- package/dist/skt/7-cli/reinstall.js +1 -1
- package/dist/skt/7-cli/reset.js +1 -1
- package/dist/skt/9-session/session.js +1 -1
- package/dist/skt/context.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['GitHubOAuthStore']=exports['OAUTH_STATE_TTL_MS']=void 0x0,exports['defaultOAuthPath']=defaultOAuthPath;const node_crypto_1=require('node:crypto'),node_fs_1=require('node:fs'),node_path_1=require('node:path');function defaultOAuthPath(){return process.env.GITHUB_OAUTH_PATH??'./data/github-oauth.json';}exports['OAUTH_STATE_TTL_MS']=0xa*0xea60;function atomicWriteJson(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['GitHubOAuthStore']=exports['OAUTH_STATE_TTL_MS']=void 0x0,exports['defaultOAuthPath']=defaultOAuthPath;const node_crypto_1=require('node:crypto'),node_fs_1=require('node:fs'),node_path_1=require('node:path');function defaultOAuthPath(){return process.env.GITHUB_OAUTH_PATH??'./data/github-oauth.json';}exports['OAUTH_STATE_TTL_MS']=0xa*0xea60;function atomicWriteJson(_0x30d2b5,_0x52c4e1){(0x0,node_fs_1['mkdirSync'])((0x0,node_path_1['dirname'])(_0x30d2b5),{'recursive':!![]});const _0x496221=_0x30d2b5+'.tmp-'+process['pid'];(0x0,node_fs_1['writeFileSync'])(_0x496221,JSON['stringify'](_0x52c4e1,null,0x2),{'encoding':'utf8','mode':0x180});try{(0x0,node_fs_1['chmodSync'])(_0x496221,0x180);}catch{}(0x0,node_fs_1['renameSync'])(_0x496221,_0x30d2b5);}function loadFile(_0x36f500){const _0x38aaf9={'version':0x1,'states':{},'tokens':{}};if(!(0x0,node_fs_1['existsSync'])(_0x36f500))return _0x38aaf9;try{const _0x1f3bc4=JSON['parse']((0x0,node_fs_1['readFileSync'])(_0x36f500,'utf8'));if(!_0x1f3bc4||typeof _0x1f3bc4!=='object')return _0x38aaf9;return{'version':0x1,'states':_0x1f3bc4['states']&&typeof _0x1f3bc4['states']==='object'?_0x1f3bc4['states']:{},'tokens':_0x1f3bc4['tokens']&&typeof _0x1f3bc4['tokens']==='object'?_0x1f3bc4['tokens']:{}};}catch{return _0x38aaf9;}}class GitHubOAuthStore{['states'];['tokens'];['file'];constructor(_0x42acf5){this['file']=_0x42acf5??defaultOAuthPath();const _0x2bfaaa=loadFile(this['file']);this['states']=_0x2bfaaa['states'],this['tokens']=_0x2bfaaa['tokens'],this['pruneStates']();}['save'](){atomicWriteJson(this['file'],{'version':0x1,'states':this['states'],'tokens':this['tokens']});}['pruneStates'](_0x477c94=Date['now']()){let _0x3ea196=![];for(const [_0x4905e8,_0x500eab]of Object['entries'](this['states'])){(!_0x500eab||_0x477c94-_0x500eab['createdAt']>exports['OAUTH_STATE_TTL_MS'])&&(delete this['states'][_0x4905e8],_0x3ea196=!![]);}if(_0x3ea196)this['save']();}['beginLogin'](_0x593c11){this['pruneStates']();for(const [_0x18b13e,_0x56c2b9]of Object['entries'](this['states'])){if(_0x56c2b9['machineId']===_0x593c11)delete this['states'][_0x18b13e];}const _0x477960={'state':(0x0,node_crypto_1['randomUUID'])()['replace'](/-/g,''),'machineId':_0x593c11,'createdAt':Date['now']()};return this['states'][_0x477960['state']]=_0x477960,this['save'](),_0x477960;}['consumeState'](_0x3b0a3d){this['pruneStates']();const _0x35ebf0=this['states'][_0x3b0a3d];if(!_0x35ebf0)return null;return delete this['states'][_0x3b0a3d],this['save'](),_0x35ebf0['machineId'];}['storeToken'](_0x34cab9,_0xc393ce,_0x2ed778){this['tokens'][_0x34cab9]={'machineId':_0x34cab9,'token':_0xc393ce,'login':_0x2ed778,'createdAt':Date['now']()},this['save']();}['tokenFor'](_0xbc2474){return this['tokens'][_0xbc2474];}['logout'](_0x585565){if(!this['tokens'][_0x585565])return![];return delete this['tokens'][_0x585565],this['save'](),!![];}get['size'](){return Object['keys'](this['tokens'])['length'];}}exports['GitHubOAuthStore']=GitHubOAuthStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x3c26f3,_0x3f12ce,_0xf197aa,_0x45e026){if(_0x45e026===undefined)_0x45e026=_0xf197aa;var _0x312a70=Object['getOwnPropertyDescriptor'](_0x3f12ce,_0xf197aa);(!_0x312a70||('get'in _0x312a70?!_0x3f12ce['__esModule']:_0x312a70['writable']||_0x312a70['configurable']))&&(_0x312a70={'enumerable':!![],'get':function(){return _0x3f12ce[_0xf197aa];}}),Object['defineProperty'](_0x3c26f3,_0x45e026,_0x312a70);}:function(_0x21c09b,_0x158500,_0x1c09ad,_0xcef73e){if(_0xcef73e===undefined)_0xcef73e=_0x1c09ad;_0x21c09b[_0xcef73e]=_0x158500[_0x1c09ad];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x5e2c4a,_0xc64416){Object['defineProperty'](_0x5e2c4a,'default',{'enumerable':!![],'value':_0xc64416});}:function(_0x53c5ba,_0x3f899c){_0x53c5ba['default']=_0x3f899c;}),__importStar=this&&this['__importStar']||(function(){var _0x57e9b6=function(_0x34749a){return _0x57e9b6=Object['getOwnPropertyNames']||function(_0xa510de){var _0x3cfa8f=[];for(var _0x127628 in _0xa510de)if(Object['prototype']['hasOwnProperty']['call'](_0xa510de,_0x127628))_0x3cfa8f[_0x3cfa8f['length']]=_0x127628;return _0x3cfa8f;},_0x57e9b6(_0x34749a);};return function(_0x57c620){if(_0x57c620&&_0x57c620['__esModule'])return _0x57c620;var _0x1fed2f={};if(_0x57c620!=null){for(var _0x3a28b8=_0x57e9b6(_0x57c620),_0x171575=0x0;_0x171575<_0x3a28b8['length'];_0x171575++)if(_0x3a28b8[_0x171575]!=='default')__createBinding(_0x1fed2f,_0x57c620,_0x3a28b8[_0x171575]);}return __setModuleDefault(_0x1fed2f,_0x57c620),_0x1fed2f;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['OPENAPI_SPEC']=void 0x0,exports['startServer']=startServer;const http=__importStar(require('http')),crypto_1=require('crypto'),node_fs_1=require('node:fs'),index_js_1=require('../../../apps/runtime/src/index.js'),index_js_2=require('../../telemetry/src/index.js'),transcript_js_1=require('../../session-backends/src/transcript.js'),github_app_js_1=require('./github-app.js'),license_js_1=require('../../../apps/runtime/src/license.js'),license_store_js_1=require('./license-store.js'),github_oauth_js_1=require('./github-oauth.js'),install_ps1_js_1=require('./install-ps1.js'),github_jobs_js_1=require('./github-jobs.js'),github_autofix_js_1=require('./github-autofix.js'),cors_js_1=require('./cors.js');function readJsonBody(_0x57875f,_0x18f7cd){return new Promise(_0x53cd29=>{let _0x1fc9bd='',_0x4ec0df=0x0,_0x13467b=![];const _0x2f0a07=(_0x55c001,_0x25fd20)=>{if(_0x13467b)return;_0x13467b=!![],_0x18f7cd['writeHead'](_0x55c001,{'Content-Type':'application/json'}),_0x18f7cd['end'](JSON['stringify']({'error':_0x25fd20})),setImmediate(()=>_0x57875f['destroy']());};_0x57875f['on']('data',_0x1164c6=>{if(_0x13467b)return;const _0x542dbe=typeof _0x1164c6==='string'?_0x1164c6:_0x1164c6['toString']('utf8');_0x4ec0df+=Buffer['byteLength'](_0x542dbe);if(_0x4ec0df>MAX_BODY_BYTES){_0x2f0a07(0x19d,'body\x20too\x20large\x20(max\x201MB)');return;}_0x1fc9bd+=_0x542dbe;}),_0x57875f['on']('end',()=>{if(_0x13467b||_0x57875f['destroyed'])return;try{_0x53cd29(JSON['parse'](_0x1fc9bd));}catch{_0x2f0a07(0x190,'invalid\x20JSON'),_0x53cd29(null);}});});}function adminPage(){return'<!doctype\x20html>\x0a<html\x20lang=\x22en\x22><head><meta\x20charset=\x22utf-8\x22><meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,initial-scale=1\x22>\x0a<title>Trayambak\x20—\x20license\x20generator</title>\x0a<style>body{font-family:system-ui,sans-serif;max-width:560px;margin:3rem\x20auto;padding:0\x201rem;color:#111}label{display:block;margin:1rem\x200\x20.25rem;font-weight:600}input,select,button{font-size:1rem;padding:.5rem;width:100%;box-sizing:border-box}button{margin-top:1.25rem;background:#111;color:#fff;border:0;cursor:pointer}#out{margin-top:1.5rem;padding:1rem;background:#f4f4f4;word-break:break-all;display:none;font-family:monospace;font-size:1.2rem}#err{color:#b00;margin-top:1rem}pre{background:#f4f4f4;padding:1rem;overflow:auto;font-size:.8rem}</style>\x0a</head><body>\x0a<h1>Trayambak\x20license\x20generator</h1>\x0a<p>Bearer\x20token\x20is\x20asked\x20once\x20per\x20session\x20and\x20never\x20stored.\x20Minted\x20codes\x20are\x2016\x20letters,\x20always\x20<b>1102-…</b>,\x20verified\x20<b>live\x20by\x20this\x20server</b>\x20(registry\x20+\x201-machine\x20binding).</p>\x0a<p>Users\x20self-serve\x20a\x207-day\x20trial\x20from\x20the\x20TUI\x20(<b>/devmode\x20trial</b>\x20—\x201\x20live\x20trial\x20per\x20machine,\x20born\x20bound,\x205/hour\x20per\x20network).\x20Paid\x20keys\x20come\x20from\x20Mint\x20below.\x20Exploitation?\x20Find\x20the\x20key\x20id\x20in\x20<b>Usage</b>,\x20paste\x20it\x20under\x20<b>Revoke</b>\x20—\x20dead\x20in\x20one\x20click,\x20everywhere.</p>\x0a<label>Bearer\x20token\x20(TRAYAMBAK_WEB_TOKEN)<input\x20id=\x22token\x22\x20type=\x22password\x22\x20autocomplete=\x22off\x22></label>\x0a<label>Plan<select\x20id=\x22plan\x22><option\x20value=\x22pentest\x22>pentest</option><option\x20value=\x22pro\x22>pro</option><option\x20value=\x22enterprise\x22>enterprise</option><option\x20value=\x22basic\x22>basic</option></select></label>\x0a<label>Days\x20valid<input\x20id=\x22days\x22\x20type=\x22number\x22\x20value=\x22365\x22\x20min=\x221\x22\x20max=\x223650\x22></label>\x0a<label>Customer\x20id\x20(optional)<input\x20id=\x22cid\x22\x20type=\x22text\x22\x20placeholder=\x22acme-corp\x22></label>\x0a<button\x20id=\x22go\x22>Mint\x20license</button>\x0a<div\x20id=\x22err\x22></div>\x0a<div\x20id=\x22out\x22></div>\x0a<h2>Register\x20a\x20pre-existing\x20code</h2>\x0a<p>Legacy/offline-era\x20keys\x20must\x20be\x20imported\x20once\x20before\x20their\x20holders\x20can\x20activate\x20them.</p>\x0a<label>Code\x20to\x20import<input\x20id=\x22imp\x22\x20type=\x22text\x22\x20placeholder=\x221102-XXXX-XXXX-XXXX\x22></label>\x0a<label>Customer\x20id\x20(optional)<input\x20id=\x22impcid\x22\x20type=\x22text\x22></label>\x0a<button\x20id=\x22goimp\x22>Import\x20code</button>\x0a<h2>Licenses</h2>\x0a<button\x20id=\x22golist\x22>Refresh\x20list</button>\x0a<pre\x20id=\x22list\x22></pre>\x0a<h2>Usage\x20(latest\x20100)</h2>\x0a<button\x20id=\x22gouse\x22>Refresh\x20usage</button>\x0a<pre\x20id=\x22use\x22></pre>\x0a<h2>Revoke\x20/\x20unbind\x20by\x20id</h2>\x0a<label>License\x20id<input\x20id=\x22lid\x22\x20type=\x22text\x22></label>\x0a<button\x20id=\x22gorev\x22>Revoke</button>\x0a<button\x20id=\x22gounb\x22>Unbind\x20machine</button>\x0a<script>\x0aconst\x20auth\x20=\x20()\x20=>\x20({\x20\x22Content-Type\x22:\x20\x22application/json\x22,\x20\x22Authorization\x22:\x20\x22Bearer\x20\x22\x20+\x20document.getElementById(\x22token\x22).value\x20});\x0aconst\x20show\x20=\x20(el,\x20v)\x20=>\x20{\x20const\x20e\x20=\x20document.getElementById(el);\x20e.textContent\x20=\x20typeof\x20v\x20===\x20\x22string\x22\x20?\x20v\x20:\x20JSON.stringify(v,\x20null,\x202);\x20e.style.display\x20=\x20\x22block\x22;\x20};\x0adocument.getElementById(\x22go\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20err\x20=\x20document.getElementById(\x22err\x22),\x20out\x20=\x20document.getElementById(\x22out\x22);\x0a\x20\x20err.textContent\x20=\x20\x22\x22;\x20out.style.display\x20=\x20\x22none\x22;\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/mint\x22,\x20{\x20method:\x20\x22POST\x22,\x0a\x20\x20\x20\x20\x20\x20headers:\x20auth(),\x0a\x20\x20\x20\x20\x20\x20body:\x20JSON.stringify({\x20plan:\x20document.getElementById(\x22plan\x22).value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20days:\x20Number(document.getElementById(\x22days\x22).value),\x0a\x20\x20\x20\x20\x20\x20\x20\x20id:\x20document.getElementById(\x22cid\x22).value\x20||\x20undefined\x20})\x20});\x0a\x20\x20\x20\x20const\x20j\x20=\x20await\x20r.json();\x0a\x20\x20\x20\x20if\x20(!r.ok)\x20throw\x20new\x20Error(j.error\x20||\x20(\x22HTTP\x20\x22\x20+\x20r.status));\x0a\x20\x20\x20\x20out.textContent\x20=\x20j.key;\x20out.style.display\x20=\x20\x22block\x22;\x0a\x20\x20}\x20catch\x20(e)\x20{\x20err.textContent\x20=\x20String((e\x20&&\x20e.message)\x20||\x20e);\x20}\x0a};\x0adocument.getElementById(\x22goimp\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20err\x20=\x20document.getElementById(\x22err\x22);\x0a\x20\x20err.textContent\x20=\x20\x22\x22;\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/import\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20\x20\x20body:\x20JSON.stringify({\x20key:\x20document.getElementById(\x22imp\x22).value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20customer:\x20document.getElementById(\x22impcid\x22).value\x20||\x20undefined\x20})\x20});\x0a\x20\x20\x20\x20const\x20j\x20=\x20await\x20r.json();\x0a\x20\x20\x20\x20if\x20(!r.ok)\x20throw\x20new\x20Error(j.error\x20||\x20(\x22HTTP\x20\x22\x20+\x20r.status));\x0a\x20\x20\x20\x20show(\x22out\x22,\x20\x22imported\x20id\x20\x22\x20+\x20j.id\x20+\x20\x22\x20(\x22\x20+\x20j.plan\x20+\x20\x22)\x22);\x0a\x20\x20}\x20catch\x20(e)\x20{\x20err.textContent\x20=\x20String((e\x20&&\x20e.message)\x20||\x20e);\x20}\x0a};\x0adocument.getElementById(\x22golist\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/licenses\x22,\x20{\x20headers:\x20auth()\x20});\x0a\x20\x20show(\x22list\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gouse\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/usage?tail=100\x22,\x20{\x20headers:\x20auth()\x20});\x0a\x20\x20show(\x22use\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gorev\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/revoke\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20body:\x20JSON.stringify({\x20id:\x20document.getElementById(\x22lid\x22).value\x20})\x20});\x0a\x20\x20show(\x22out\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gounb\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/unbind\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20body:\x20JSON.stringify({\x20id:\x20document.getElementById(\x22lid\x22).value\x20})\x20});\x0a\x20\x20show(\x22out\x22,\x20await\x20r.json());\x0a};\x0a</script>\x0a</body></html>';}const LOOPBACK_HOSTS=new Set(['127.0.0.1','::1','localhost','0:0:0:0:0:0:0:1']),MAX_BODY_BYTES=0x100000;exports['OPENAPI_SPEC']={'openapi':'3.0.0','info':{'title':'Trayambak\x20Agent\x20API','version':'0.6.1'},'paths':{'/health':{'get':{'summary':'Health\x20check'}},'/v1/models':{'get':{'summary':'List\x20models'}},'/v1/agent':{'post':{'summary':'Run\x20agent\x20(SSE)'}},'/api/sessions':{'get':{'summary':'List\x20transcripts'}},'/admin':{'get':{'summary':'License\x20generator\x20UI\x20(SKT\x20operators)'}},'/admin/mint':{'post':{'summary':'Mint\x20a\x2016-letter\x20license\x20(bearer-gated)'}},'/admin/import':{'post':{'summary':'Register\x20a\x20pre-existing\x20code\x20(bearer-gated)'}},'/admin/revoke':{'post':{'summary':'Revoke\x20a\x20license\x20by\x20id\x20(bearer-gated)'}},'/admin/unbind':{'post':{'summary':'Free\x20a\x20license\x27s\x20machine\x20binding\x20(bearer-gated)'}},'/admin/licenses':{'get':{'summary':'List\x20licenses,\x20masked\x20(bearer-gated)'}},'/admin/usage':{'get':{'summary':'Tail\x20pentest\x20usage\x20telemetry\x20(bearer-gated)'}},'/admin/jobs':{'get':{'summary':'Tail\x20GitHub\x20job\x20history\x20(bearer-gated)'}},'/license/verify':{'post':{'summary':'Live\x20license\x20check\x20(public,\x20machine-bound)'}},'/license/activate':{'post':{'summary':'Bind\x20a\x20license\x20to\x20a\x20machine\x20(public)'}},'/license/mint-trial':{'post':{'summary':'Self-service\x207-day\x20trial,\x201/machine\x20(public,\x20rate-limited)'}},'/auth/github/start':{'post':{'summary':'Begin\x20CLI\x20GitHub\x20login,\x20returns\x20browser\x20URL\x20(public,\x20rate-limited)'}},'/auth/github/callback':{'get':{'summary':'OAuth\x20redirect\x20target\x20(public,\x20browser-facing)'}},'/auth/github/status':{'get':{'summary':'Poll\x20login\x20completion\x20by\x20machine\x20(public)'}},'/auth/github/logout':{'post':{'summary':'Forget\x20a\x20machine\x27s\x20token\x20(public)'}},'/github/read':{'post':{'summary':'Read\x20an\x20issue\x20+\x20comments\x20with\x20the\x20stored\x20user\x20token\x20(public,\x20logged-in)'}},'/install.ps1':{'get':{'summary':'Windows\x20one-line\x20installer\x20(public)'}},'/license/usage':{'post':{'summary':'Record\x20pentest\x20tool\x20usage\x20(public,\x20licensed)'}},'/webhooks/github':{'post':{'summary':'GitHub\x20App\x20webhook\x20(HMAC\x20verified)'}},'/openapi.json':{'get':{'summary':'OpenAPI\x20spec'}}}};function startServer(_0x43eb6d={}){const _0x40b19a=_0x43eb6d['port']??Number(process.env.TRAYAMBAK_SERVER_PORT??0x2253),_0x12275f=_0x43eb6d['host']??'127.0.0.1';let _0x2c23d4=_0x43eb6d['token']??process.env.TRAYAMBAK_WEB_TOKEN;const _0x42d288=_0x43eb6d['corsOrigins']??process.env.TRAYAMBAK_WEB_ORIGINS??'';let _0x16eea1=![];!_0x2c23d4&&!LOOPBACK_HOSTS['has'](_0x12275f)&&(_0x2c23d4=(0x0,crypto_1['randomBytes'])(0x20)['toString']('hex'),_0x16eea1=!![]);const _0x5b6090=(0x0,index_js_1['loadConfig'])(),_0x4a0cb6=(0x0,index_js_2['createTelemetry'])(![]),_0x1d585f=(0x0,license_store_js_1['defaultLicenseStorePaths'])(),_0x1660b6=new license_store_js_1['LicenseStore']({'file':_0x43eb6d['licenseStorePath']??_0x1d585f['file'],'usageFile':_0x43eb6d['licenseUsagePath']??_0x1d585f['usageFile']}),_0x5692dd=new Set(['/license/verify','/license/activate','/license/usage','/license/mint-trial','/webhooks/github','/auth/github/start','/auth/github/callback','/auth/github/status','/auth/github/logout','/github/read','/install.ps1']),_0x58d719=new Map(),_0x480fe8=0x5,_0x50f9b6=new Map(),_0x1a11ac=0xa,_0x3e5a8b=new github_oauth_js_1['GitHubOAuthStore'](_0x43eb6d['githubOAuthPath']??(0x0,github_oauth_js_1['defaultOAuthPath'])()),_0x2052f8=(0x0,github_autofix_js_1['parseAutofixRepos'])(process.env.GITHUB_AUTOFIX_REPOS),_0x26d849=(process.env.GITHUB_AUTOFIX_LABEL??'trayambak')['trim']()||'trayambak',_0xc08be1=Math['min'](Math['max'](Number(process.env.GITHUB_AUTOFIX_INTERVAL_MIN??0x1e)||0x1e,0x5),0x5a0),_0x2a1942=process.env.GITHUB_AUTOFIX_TRIAGE_COMMENT===undefined?(0x0,github_autofix_js_1['defaultTriageComment'])(_0x26d849):process.env.GITHUB_AUTOFIX_TRIAGE_COMMENT??'';if(_0x2052f8['length']>0x0){const _0x386e9d=new github_autofix_js_1['AutofixLedger']((0x0,github_autofix_js_1['defaultAutofixLedgerPath'])()),_0x1313b8=()=>{void((async()=>{try{const _0x3babcb=await(0x0,github_autofix_js_1['autofixTick'])({'repos':_0x2052f8,'label':_0x26d849,'ledger':_0x386e9d,'installationIdFor':installationIdForOwner,'tokenFor':installationTokenFor,'fetchJson':async(_0x14d4b6,_0xc1b5ac)=>{const _0x49cb27=await githubApi(_0x14d4b6,_0xc1b5ac);return{'status':_0x49cb27['status'],'json':_0x49cb27['json']};},'listAllRepos':allInstalledRepos,'postComment':async(_0x5aac48,_0x5cf362,_0x2e1a2c)=>{const _0x4c80df=_0x5aac48['split']('/')[0x0]??'',_0x8f7357=await installationIdForOwner(_0x4c80df)['catch'](()=>0x0);if(!_0x8f7357)return![];const _0x42aeee=await installationTokenFor(_0x8f7357)['catch'](()=>'');if(!_0x42aeee)return![];return postGithubComment(_0x4c80df,_0x5aac48['split']('/')[0x1]??'',_0x5cf362,_0x2e1a2c,_0x42aeee);},'triageComment':_0x2a1942,'runJob':(_0x3f413b,_0x3e8783,_0x4f747b,_0x239fee)=>enqueueGithubJob({'repoFullName':_0x3f413b,'issueNumber':_0x3e8783,'task':_0x4f747b,'isPullRequest':![]},{'installation':{'id':_0x239fee}})});(_0x3babcb['checked']>0x0||_0x3babcb['ran']['length']>0x0||_0x3babcb['triaged']['length']>0x0)&&process['stdout']['write']('[github-autofix]\x20tick:\x20checked\x20'+_0x3babcb['checked']+',\x20ran\x20'+_0x3babcb['ran']['length']+',\x20triaged\x20'+_0x3babcb['triaged']['length']+'\x0a');}catch(_0x19a846){process['stderr']['write']('[github-autofix]\x20tick\x20failed:\x20'+(_0x19a846 instanceof Error?_0x19a846['message']:String(_0x19a846))+'\x0a');}})());},_0x30df44=setInterval(_0x1313b8,_0xc08be1*0xea60);if(typeof _0x30df44['unref']==='function')_0x30df44['unref']();const _0x3723e0=setTimeout(_0x1313b8,0x1d4c0);if(typeof _0x3723e0['unref']==='function')_0x3723e0['unref']();process['stdout']['write']('[github-autofix]\x20watching\x20'+_0x2052f8['join'](',')+'\x20label='+_0x26d849+'\x20every\x20'+_0xc08be1+'m\x0a');}else process['stdout']['write']('[github-autofix]\x20idle\x20(GITHUB_AUTOFIX_REPOS\x20unset)\x0a');const _0x53607a=http['createServer'](async(_0x96b5b2,_0x222e85)=>{const _0x29857f=(0x0,cors_js_1['resolveCors'])(_0x96b5b2['headers']['origin'],_0x96b5b2['headers']['host'],_0x42d288);for(const [_0x59781b,_0x5b72ce]of Object['entries'](_0x29857f['headers'])){_0x222e85['setHeader'](_0x59781b,_0x5b72ce);}if(_0x96b5b2['method']==='OPTIONS'){_0x222e85['writeHead'](_0x29857f['allowed']?0xcc:0x193),_0x222e85['end']();return;}if(!_0x29857f['allowed']){_0x222e85['writeHead'](0x193,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'origin\x20not\x20allowed'}));return;}const _0x5819c1=(_0x96b5b2['url']??'/')['split']('?')[0x0];if(_0x2c23d4&&_0x96b5b2['url']!=='/health'&&!_0x5692dd['has'](_0x5819c1)){const _0x3ba34f=Buffer['from'](_0x96b5b2['headers']['authorization']??''),_0x189544=Buffer['from']('Bearer\x20'+_0x2c23d4),_0x185af5=_0x3ba34f['length']===_0x189544['length']&&_0x3ba34f['length']>0x0&&(0x0,crypto_1['timingSafeEqual'])(_0x3ba34f,_0x189544);if(!_0x185af5){_0x222e85['writeHead'](0x191,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'unauthorized'}));return;}}if(_0x96b5b2['method']==='GET'&&_0x96b5b2['url']==='/health'){_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'status':'ok','model':_0x5b6090['model']}));return;}if(_0x96b5b2['method']==='GET'&&_0x96b5b2['url']==='/openapi.json'){_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify'](exports['OPENAPI_SPEC']));return;}if(_0x96b5b2['method']==='GET'&&_0x96b5b2['url']==='/api/sessions'){_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'});try{_0x222e85['end'](JSON['stringify']({'sessions':(0x0,transcript_js_1['listTranscripts'])()}));}catch{_0x222e85['end'](JSON['stringify']({'sessions':[]}));}return;}if(_0x96b5b2['method']==='GET'&&_0x96b5b2['url']==='/v1/models'){_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'data':[{'id':_0x5b6090['model']}]}));return;}if(_0x96b5b2['method']==='GET'&&_0x96b5b2['url']==='/admin'){_0x222e85['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x222e85['end'](adminPage());return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/admin/mint'){const _0x177248=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x177248)return;const _0xd20db2=typeof _0x177248['plan']==='string'?_0x177248['plan']:'',_0x5b182d=typeof _0x177248['days']==='number'?_0x177248['days']:Number['NaN'];if(_0xd20db2!=='basic'&&_0xd20db2!=='pentest'&&_0xd20db2!=='pro'&&_0xd20db2!=='enterprise'){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'plan\x20must\x20be\x20basic|pentest|pro|enterprise'}));return;}if(!Number['isFinite'](_0x5b182d)||_0x5b182d<0x1||_0x5b182d>0xe42){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'days\x20must\x20be\x201..3650'}));return;}try{const _0x29fff8=Math['floor'](Date['now']()/0x5265c00),{activationEpochDays:_0x102821}=await Promise['resolve']()['then'](()=>__importStar(require('../../../apps/runtime/src/license.js'))),_0x4139d3=(0x0,license_js_1['mintActivationKey'])({'plan':_0xd20db2,'expDays':_0x29fff8-_0x102821()+Math['floor'](_0x5b182d)},(0x0,license_js_1['activationCheckKey'])()),_0x5a84a6=typeof _0x177248['id']==='string'?_0x177248['id']:undefined,_0x41b7c8=_0x1660b6['register'](_0x4139d3,_0x5a84a6);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'key':_0x4139d3,'id':_0x41b7c8['id']}));}catch(_0xa99ebd){_0x222e85['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'mint\x20failed:\x20'+(_0xa99ebd instanceof Error?_0xa99ebd['message']:String(_0xa99ebd))}));}return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/install.ps1'){_0x222e85['writeHead'](0xc8,{'Content-Type':'text/plain;\x20charset=utf-8'}),_0x222e85['end'](install_ps1_js_1['INSTALL_PS1']);return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/license/verify'){const _0x16e09a=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x16e09a)return;const _0x3bdea9=licenseMachineId(_0x16e09a['machineId']);if(!_0x3bdea9){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'valid':![],'reason':'missing\x20machineId'}));return;}const _0x4bf682=_0x1660b6['check'](typeof _0x16e09a['key']==='string'?_0x16e09a['key']:'',_0x3bdea9);if(_0x4bf682['valid']===!![])_0x1660b6['touch'](_0x4bf682['record']?.['id']??'');_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'valid':_0x4bf682['valid'],'plan':_0x4bf682['plan'],'exp':_0x4bf682['exp'],'reason':_0x4bf682['reason']}));return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/license/activate'){const _0x3f33fd=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x3f33fd)return;const _0x3406f2=licenseMachineId(_0x3f33fd['machineId']);if(!_0x3406f2){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0x241551=_0x1660b6['activate'](typeof _0x3f33fd['key']==='string'?_0x3f33fd['key']:'',_0x3406f2);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':_0x241551['ok'],'plan':_0x241551['plan'],'exp':_0x241551['exp'],'reason':_0x241551['reason']}));return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/license/usage'){const _0x3e3fa3=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x3e3fa3)return;const _0x4478ed=licenseMachineId(_0x3e3fa3['machineId']),_0xea7150=typeof _0x3e3fa3['tool']==='string'?_0x3e3fa3['tool']['slice'](0x0,0x78):'';if(!_0x4478ed||!_0xea7150){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'missing\x20machineId/tool'}));return;}const _0x3b326a=_0x1660b6['checkPentestOnly'](typeof _0x3e3fa3['key']==='string'?_0x3e3fa3['key']:'',_0x4478ed);if(_0x3b326a['valid']!==!![]){_0x222e85['writeHead'](0x193,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':_0x3b326a['reason']??'license\x20invalid'}));return;}_0x1660b6['touch'](_0x3b326a['record']?.['id']??''),_0x1660b6['appendUsage']({'keyId':_0x3b326a['record']?.['id']??'','machineId':_0x4478ed,'tool':_0xea7150,'target':typeof _0x3e3fa3['target']==='string'?_0x3e3fa3['target']['slice'](0x0,0x12c):'','ok':_0x3e3fa3['ok']!==![]}),_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/license/mint-trial'){const _0xb1a06b=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0xb1a06b)return;const _0x4f988a=licenseMachineId(_0xb1a06b['machineId']);if(!_0x4f988a){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0x557939=clientIp(_0x96b5b2),_0x31f543=Date['now'](),_0x1e6790=(_0x58d719['get'](_0x557939)??[])['filter'](_0x4c320c=>_0x31f543-_0x4c320c<0x36ee80);if(_0x1e6790['length']>=_0x480fe8){_0x222e85['writeHead'](0x1ad,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'too\x20many\x20trial\x20requests\x20from\x20this\x20network\x20—\x20try\x20again\x20later'}));return;}_0x1e6790['push'](_0x31f543),_0x58d719['set'](_0x557939,_0x1e6790);if(_0x1660b6['activeTrialForMachine'](_0x4f988a)){_0x222e85['writeHead'](0x199,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'this\x20machine\x20already\x20has\x20a\x20live\x20trial\x20—\x20ask\x20SKT\x20for\x20a\x20full\x20key'}));return;}try{const _0x49ae16=Number(process.env.LICENSE_TRIAL_DAYS??0x7),_0x35f1e0=Math['min'](Math['max'](Math['floor'](Number['isFinite'](_0x49ae16)?_0x49ae16:0x7),0x1),0x1e),_0x38d0c9=Math['floor'](Date['now']()/0x5265c00),{activationEpochDays:_0x35f7fb}=await Promise['resolve']()['then'](()=>__importStar(require('../../../apps/runtime/src/license.js'))),_0x23abf1=(0x0,license_js_1['mintActivationKey'])({'plan':'pentest','expDays':_0x38d0c9-_0x35f7fb()+_0x35f1e0},(0x0,license_js_1['activationCheckKey'])()),_0x8a943f=_0x1660b6['register'](_0x23abf1,'trial',{'trial':!![]}),_0x4dbc27=_0x1660b6['activate'](_0x23abf1,_0x4f988a);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':_0x4dbc27['ok'],'key':_0x23abf1,'id':_0x8a943f['id'],'exp':_0x8a943f['exp'],'days':_0x35f1e0}));}catch(_0x489d47){_0x222e85['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'trial\x20mint\x20failed:\x20'+(_0x489d47 instanceof Error?_0x489d47['message']:String(_0x489d47))}));}return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/auth/github/start'){const _0xf250bb=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0xf250bb)return;const _0x35cf2c=licenseMachineId(_0xf250bb['machineId']);if(!_0x35cf2c){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0x163f3f=(process.env.GITHUB_CLIENT_ID??'')['trim']();if(!_0x163f3f){_0x222e85['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'GitHub\x20login\x20not\x20configured\x20on\x20this\x20server'}));return;}const _0x40cbc3=clientIp(_0x96b5b2),_0x4e8d2b=Date['now'](),_0x28fb9f=(_0x50f9b6['get'](_0x40cbc3)??[])['filter'](_0x3c57de=>_0x4e8d2b-_0x3c57de<0x36ee80);if(_0x28fb9f['length']>=_0x1a11ac){_0x222e85['writeHead'](0x1ad,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':![],'reason':'too\x20many\x20login\x20requests\x20from\x20this\x20network\x20—\x20try\x20again\x20later'}));return;}_0x28fb9f['push'](_0x4e8d2b),_0x50f9b6['set'](_0x40cbc3,_0x28fb9f);const _0x5da6f0=_0x3e5a8b['beginLogin'](_0x35cf2c),_0x4236d4='https://github.com/login/oauth/authorize?client_id='+encodeURIComponent(_0x163f3f)+'&state='+_0x5da6f0['state'];_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![],'url':_0x4236d4}));return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/auth/github/callback'){const _0x12c3c6=(_0x456a4b,_0x80db3c,_0x3259d5)=>{_0x222e85['writeHead'](_0x3259d5?0xc8:0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x222e85['end']('<!doctype\x20html><html\x20lang=\x22en\x22><head><meta\x20charset=\x22utf-8\x22><title>'+_0x456a4b+'</title>'+'<style>body{font-family:system-ui,sans-serif;max-width:560px;margin:3rem\x20auto;padding:0\x201rem}</style></head>'+('<body><h1>'+_0x456a4b+'</h1><p>'+_0x80db3c+'</p></body></html>'));},_0x34802e=new URL(_0x96b5b2['url']??'/','http://localhost')['searchParams'],_0x490f51=_0x34802e['get']('code')??'',_0xa296e2=_0x34802e['get']('state')??'',_0x47b4ea=_0x3e5a8b['consumeState'](_0xa296e2);if(!_0x490f51||!_0x47b4ea){_0x12c3c6('Authorization\x20failed','This\x20link\x20is\x20expired\x20or\x20already\x20used\x20(10-minute,\x20single-use).\x20Run\x20/github\x20login\x20in\x20the\x20CLI\x20again\x20for\x20a\x20fresh\x20one.',![]);return;}const _0x5e0984=(process.env.GITHUB_CLIENT_ID??'')['trim'](),_0x495be8=(process.env.GITHUB_CLIENT_SECRET??'')['trim']();if(!_0x5e0984||!_0x495be8){_0x12c3c6('Server\x20misconfigured','GitHub\x20login\x20is\x20not\x20configured\x20on\x20this\x20server.',![]);return;}try{const _0x351932=await fetch('https://github.com/login/oauth/access_token',{'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json','User-Agent':'trayambak'},'body':JSON['stringify']({'client_id':_0x5e0984,'client_secret':_0x495be8,'code':_0x490f51}),'signal':AbortSignal['timeout'](0x4e20)}),_0x2a87ba=await _0x351932['json']();if(!_0x351932['ok']||typeof _0x2a87ba['access_token']!=='string'||!_0x2a87ba['access_token'])throw new Error(typeof _0x2a87ba['error_description']==='string'?_0x2a87ba['error_description']:'HTTP\x20'+_0x351932['status']);const _0x291e64=await githubApi('/user',_0x2a87ba['access_token']),_0x36d53d=_0x291e64['json']&&typeof _0x291e64['json']==='object'&&typeof _0x291e64['json']['login']==='string'?_0x291e64['json']['login']:'github-user';_0x3e5a8b['storeToken'](_0x47b4ea,_0x2a87ba['access_token'],_0x36d53d),_0x12c3c6('Authorized','Logged\x20in\x20as\x20<b>'+_0x36d53d+'</b>.\x20Return\x20to\x20the\x20CLI\x20—\x20it\x20picks\x20this\x20up\x20automatically.',!![]);}catch(_0xa014e6){_0x12c3c6('Authorization\x20failed','Could\x20not\x20finish\x20login\x20('+(_0xa014e6 instanceof Error?_0xa014e6['message']:String(_0xa014e6))+').\x20Run\x20/github\x20login\x20again.',![]);}return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/auth/github/status'){const _0x30002f=licenseMachineId(new URL(_0x96b5b2['url']??'/','http://localhost')['searchParams']['get']('machineId')),_0x37329d=_0x30002f?_0x3e5a8b['tokenFor'](_0x30002f):undefined;_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify'](_0x37329d?{'authorized':!![],'login':_0x37329d['login']}:{'authorized':![]}));return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/auth/github/logout'){const _0x29b56f=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x29b56f)return;const _0x28c47a=licenseMachineId(_0x29b56f['machineId']);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':_0x28c47a?_0x3e5a8b['logout'](_0x28c47a):![]}));return;}if(_0x96b5b2['method']==='POST'&&_0x5819c1==='/github/read'){const _0x4f5e81=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x4f5e81)return;const _0x1e459c=licenseMachineId(_0x4f5e81['machineId']),_0x41469d=_0x1e459c?_0x3e5a8b['tokenFor'](_0x1e459c):undefined;if(!_0x41469d){_0x222e85['writeHead'](0x191,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'GitHub\x20login\x20required\x20—\x20run\x20/github\x20login\x20first'}));return;}let _0x2c9c40='',_0x265cc1='';try{;({owner:_0x2c9c40,repo:_0x265cc1}=(0x0,github_app_js_1['splitRepo'])(typeof _0x4f5e81['repo']==='string'?_0x4f5e81['repo']:''));}catch{_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'repo\x20must\x20be\x20owner/name'}));return;}const _0x1edcc4=Math['floor'](Number(_0x4f5e81['number']));if(!Number['isFinite'](_0x1edcc4)||_0x1edcc4<0x1){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'number\x20must\x20be\x20a\x20positive\x20issue/PR\x20number'}));return;}const _0x218ca8=_0x4f5e81['withComments']!==![],[_0x49bd22,_0x333969]=await Promise['all']([githubApi('/repos/'+_0x2c9c40+'/'+_0x265cc1+'/issues/'+_0x1edcc4,_0x41469d['token']),_0x218ca8?githubApi('/repos/'+_0x2c9c40+'/'+_0x265cc1+'/issues/'+_0x1edcc4+'/comments?per_page=20',_0x41469d['token']):Promise['resolve']({'status':0xc8,'json':[]})]);if(_0x49bd22['status']===0x0){_0x222e85['writeHead'](0x1f6,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'GitHub\x20unreachable\x20from\x20the\x20license\x20server'}));return;}if(_0x49bd22['status']!==0xc8||!_0x49bd22['json']||typeof _0x49bd22['json']!=='object'){const _0x508fec=_0x49bd22['json']&&typeof _0x49bd22['json']==='object'&&typeof _0x49bd22['json']['message']==='string'?_0x49bd22['json']['message']:'HTTP\x20'+_0x49bd22['status'];_0x222e85['writeHead'](_0x49bd22['status']===0x194?0x194:0x1f6,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'GitHub:\x20'+_0x508fec}));return;}const _0x889e13=_0x49bd22['json'],_0x4eac2a=Array['isArray'](_0x333969['json'])?_0x333969['json']:[];_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![],'issue':{'number':typeof _0x889e13['number']==='number'?_0x889e13['number']:_0x1edcc4,'title':typeof _0x889e13['title']==='string'?_0x889e13['title']:'','state':typeof _0x889e13['state']==='string'?_0x889e13['state']:'','author':_0x889e13['user']&&typeof _0x889e13['user']==='object'&&typeof _0x889e13['user']['login']==='string'?_0x889e13['user']['login']:'','url':typeof _0x889e13['html_url']==='string'?_0x889e13['html_url']:'','body':typeof _0x889e13['body']==='string'?_0x889e13['body']['slice'](0x0,0x1f40):'','commentsCount':typeof _0x889e13['comments']==='number'?_0x889e13['comments']:_0x4eac2a['length'],'isPullRequest':_0x889e13['pull_request']!==undefined},'comments':_0x4eac2a['filter'](_0x2671de=>!!_0x2671de&&typeof _0x2671de==='object')['slice'](-0x14)['map'](_0x5028ba=>({'author':_0x5028ba['user']&&typeof _0x5028ba['user']==='object'&&typeof _0x5028ba['user']['login']==='string'?_0x5028ba['user']['login']:'','body':typeof _0x5028ba['body']==='string'?_0x5028ba['body']['slice'](0x0,0x7d0):'','createdAt':typeof _0x5028ba['created_at']==='string'?_0x5028ba['created_at']:''}))}));return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/admin/import'){const _0x4ac9b9=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x4ac9b9)return;try{const _0x5e77fe=_0x1660b6['register'](typeof _0x4ac9b9['key']==='string'?_0x4ac9b9['key']:'',typeof _0x4ac9b9['customer']==='string'?_0x4ac9b9['customer']:undefined);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'id':_0x5e77fe['id'],'plan':_0x5e77fe['plan']}));}catch(_0x361d67){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':_0x361d67 instanceof Error?_0x361d67['message']:String(_0x361d67)}));}return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/admin/revoke'){const _0x175570=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x175570)return;const _0x40f6aa=typeof _0x175570['id']==='string'?_0x175570['id']:'';if(!_0x40f6aa||!_0x1660b6['revoke'](_0x40f6aa)){_0x222e85['writeHead'](0x194,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'unknown\x20license\x20id'}));return;}_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/admin/unbind'){const _0x40ef6a=await readJsonBody(_0x96b5b2,_0x222e85);if(!_0x40ef6a)return;const _0x15b9ab=typeof _0x40ef6a['id']==='string'?_0x40ef6a['id']:'';if(!_0x15b9ab||!_0x1660b6['unbind'](_0x15b9ab)){_0x222e85['writeHead'](0x194,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'unknown\x20license\x20id'}));return;}_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/admin/licenses'){const _0x1f1021=_0x1660b6['list']()['map'](_0x1364e3=>({'id':_0x1364e3['id'],'key':_0x1364e3['key']['slice'](0x0,0x4)+'-…-'+_0x1364e3['key']['slice'](-0x4),'plan':_0x1364e3['plan'],'exp':_0x1364e3['exp'],'customer':_0x1364e3['customer'],'trial':_0x1364e3['trial']===!![],'revoked':_0x1364e3['revoked'],'bound':Boolean(_0x1364e3['boundMachineId']),'machine':_0x1364e3['boundMachineId']?_0x1364e3['boundMachineId']['slice'](0x0,0x8)+'…':undefined,'createdAt':_0x1364e3['createdAt'],'lastSeenAt':_0x1364e3['lastSeenAt']}));_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'licenses':_0x1f1021}));return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/admin/usage'){const _0x55e857=Number((_0x96b5b2['url']??'')['split']('tail=')[0x1]??0x64);_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'usage':_0x1660b6['readUsageTail'](Number['isFinite'](_0x55e857)?_0x55e857:0x64)}));return;}if(_0x96b5b2['method']==='GET'&&_0x5819c1==='/admin/jobs'){const _0x4bf79d=Number((_0x96b5b2['url']??'')['split']('tail=')[0x1]??0x64),{readJobTail:_0x5115c3}=await Promise['resolve']()['then'](()=>__importStar(require('./github-jobs.js')));_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'jobs':_0x5115c3(Number['isFinite'](_0x4bf79d)?_0x4bf79d:0x64)}));return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/webhooks/github'){const _0x25fec1=process.env.GITHUB_WEBHOOK_SECRET??'';if(!_0x25fec1){_0x222e85['writeHead'](0x1f7,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'webhooks\x20disabled\x20(GITHUB_WEBHOOK_SECRET\x20unset)'}));return;}const _0x345eab=[];let _0x18a09e=0x0,_0x26b3cd=![];_0x96b5b2['on']('data',_0x23378a=>{if(_0x26b3cd)return;const _0x504304=typeof _0x23378a==='string'?Buffer['from'](_0x23378a,'utf8'):_0x23378a;_0x18a09e+=_0x504304['length'];if(_0x18a09e>MAX_BODY_BYTES){_0x26b3cd=!![],_0x222e85['writeHead'](0x19d,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'body\x20too\x20large\x20(max\x201MB)'})),setImmediate(()=>_0x96b5b2['destroy']());return;}_0x345eab['push'](_0x504304);}),_0x96b5b2['on']('end',()=>{if(_0x26b3cd||_0x96b5b2['destroyed'])return;const _0x5c104f=Buffer['concat'](_0x345eab),_0x4df100=_0x96b5b2['headers']['x-hub-signature-256'];if(!(0x0,github_app_js_1['verifyWebhookSignature'])(_0x25fec1,_0x5c104f,Array['isArray'](_0x4df100)?_0x4df100[0x0]:_0x4df100)){_0x222e85['writeHead'](0x191,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'bad\x20signature'}));return;}let _0x2f320a=null;try{_0x2f320a=JSON['parse'](_0x5c104f['toString']('utf8'));}catch{_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'invalid\x20JSON'}));return;}const _0x36bcca=_0x96b5b2['headers']['x-github-event'],_0x4dc957=(0x0,github_app_js_1['routeGithubEvent'])(Array['isArray'](_0x36bcca)?_0x36bcca[0x0]??'':_0x36bcca??'',_0x2f320a);if(_0x4dc957['kind']!=='job'){_0x222e85['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![],..._0x4dc957['kind']==='ignored'?{'ignored':_0x4dc957['reason']}:{}}));return;}_0x222e85['writeHead'](0xca,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'ok':!![],'accepted':!![]})),void enqueueGithubJob(_0x4dc957['job'],_0x2f320a);});return;}if(_0x96b5b2['method']==='POST'&&_0x96b5b2['url']==='/v1/agent'){let _0x431b0c='',_0x41ce4d=0x0,_0x45e315=![];const _0x2e51d4=new AbortController();_0x96b5b2['on']('close',()=>_0x2e51d4['abort']()),_0x96b5b2['on']('data',_0x54f587=>{if(_0x45e315)return;const _0x10388c=typeof _0x54f587==='string'?_0x54f587:_0x54f587['toString']('utf8');_0x41ce4d+=Buffer['byteLength'](_0x10388c);if(_0x41ce4d>MAX_BODY_BYTES){_0x45e315=!![],_0x222e85['writeHead'](0x19d,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'body\x20too\x20large\x20(max\x201MB)'})),setImmediate(()=>_0x96b5b2['destroy']());return;}_0x431b0c+=_0x10388c;}),_0x96b5b2['on']('end',()=>{if(_0x45e315||_0x96b5b2['destroyed'])return;const _0x1ea896=safeJson(_0x431b0c),_0x53d1a8=typeof _0x1ea896['prompt']==='string'?_0x1ea896['prompt']:undefined,_0x20c365=typeof _0x1ea896['sessionFile']==='string'?_0x1ea896['sessionFile']:undefined;if(!_0x53d1a8||typeof _0x53d1a8!=='string'){_0x222e85['writeHead'](0x190,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'missing\x20\x27prompt\x27'}));return;}_0x222e85['writeHead'](0xc8,{'Content-Type':'text/event-stream','Cache-Control':'no-cache','Connection':'keep-alive'});const _0x367fb0=new index_js_1['Agent']({'config':_0x5b6090,'sessionFile':_0x20c365}),_0x363aa4=_0x17559b=>{try{if(!_0x96b5b2['destroyed']&&!_0x222e85['writableEnded'])_0x222e85['write'](_0x17559b);}catch{_0x2e51d4['abort']();}};_0x367fb0['run'](_0x53d1a8,_0x229c45=>{_0x4a0cb6['capture'](_0x229c45),_0x363aa4('data:\x20'+JSON['stringify'](_0x229c45)+'\x0a\x0a');},_0x2e51d4['signal'])['then'](()=>{_0x363aa4('data:\x20[DONE]\x0a\x0a');try{if(!_0x96b5b2['destroyed']&&!_0x222e85['writableEnded'])_0x222e85['end']();}catch{}})['catch'](_0x47aed1=>{_0x363aa4('data:\x20'+JSON['stringify']({'error':String(_0x47aed1)})+'\x0a\x0a');try{if(!_0x96b5b2['destroyed']&&!_0x222e85['writableEnded'])_0x222e85['end']();}catch{}});});return;}_0x222e85['writeHead'](0x194,{'Content-Type':'application/json'}),_0x222e85['end'](JSON['stringify']({'error':'not\x20found'}));});return _0x53607a['listen'](_0x40b19a,_0x12275f,()=>{process['stdout']['write']('trayambak\x20server\x20listening\x20on\x20http://'+_0x12275f+':'+_0x40b19a+'\x0a'),_0x16eea1&&_0x2c23d4&&process['stdout']['write']('generated\x20bearer\x20token\x20(set\x20TRAYAMBAK_WEB_TOKEN\x20to\x20avoid\x20this):\x20'+_0x2c23d4+'\x0a');}),Object['defineProperty'](_0x53607a,'effectiveToken',{'value':_0x2c23d4??'','enumerable':![]}),_0x53607a;}function safeJson(_0x10fadd){try{return JSON['parse'](_0x10fadd);}catch{return{};}}let githubJobQueue=Promise['resolve']();function enqueueGithubJob(_0x18e113,_0x1cbe58){const _0x48a0ed=githubJobQueue['then'](()=>runGithubJob(_0x18e113,_0x1cbe58))['catch'](_0x1c334d=>{return process['stderr']['write']('[github-app]\x20job\x20failed:\x20'+(_0x1c334d instanceof Error?_0x1c334d['message']:String(_0x1c334d))+'\x0a'),'';});return githubJobQueue=_0x48a0ed['then'](()=>undefined),_0x48a0ed;}async function postGithubComment(_0xdbb6ad,_0x7a0a38,_0x64ba56,_0x2c2090,_0x744355){try{const _0x40639a=await fetch('https://api.github.com/repos/'+_0xdbb6ad+'/'+_0x7a0a38+'/issues/'+_0x64ba56+'/comments',{'method':'POST','headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x744355,'Content-Type':'application/json','X-GitHub-Api-Version':'2022-11-28'},'body':JSON['stringify']({'body':_0x2c2090['slice'](0x0,0xfa0)}),'signal':AbortSignal['timeout'](0x4e20)});return _0x40639a['status']===0xc9;}catch{return![];}}async function allInstalledRepos(){const _0x1086f0=githubAppJwt();if(!_0x1086f0)return[];try{const _0x22b15d=await fetch('https://api.github.com/app/installations',{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x1086f0,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](0x4e20)}),_0x3cb26a=await _0x22b15d['json']();if(!_0x22b15d['ok']||!Array['isArray'](_0x3cb26a))return[];const _0x41e0fe=[];for(const _0x1b559c of _0x3cb26a){if(typeof _0x1b559c?.['id']!=='number')continue;const _0x3fa799=await installationTokenFor(_0x1b559c['id']);if(!_0x3fa799)continue;const _0x25b459=await githubApi('/installation/repositories?per_page=100',_0x3fa799);if(_0x25b459['status']!==0xc8||!_0x25b459['json']||typeof _0x25b459['json']!=='object')continue;const _0x16f8ca=_0x25b459['json']['repositories'];if(!Array['isArray'](_0x16f8ca))continue;for(const _0x2c4faf of _0x16f8ca){_0x2c4faf&&typeof _0x2c4faf==='object'&&typeof _0x2c4faf['full_name']==='string'&&_0x41e0fe['push'](_0x2c4faf['full_name']['toLowerCase']());}}return[...new Set(_0x41e0fe)];}catch{return[];}}function githubAppJwt(){const _0x21243c=(process.env.GITHUB_APP_ID??'')['trim']();let _0x1f00a1=(process.env.GITHUB_PRIVATE_KEY??'')['trim']();if(!_0x21243c||!_0x1f00a1)return'';if(!_0x1f00a1['includes']('BEGIN'))try{_0x1f00a1=(0x0,node_fs_1['readFileSync'])(_0x1f00a1,'utf8');}catch{return'';}try{return(0x0,github_app_js_1['createAppJwt'])(_0x21243c,_0x1f00a1);}catch{return'';}}async function installationIdForOwner(_0x16f7cc){const _0x488ece=githubAppJwt();if(!_0x488ece)return 0x0;try{const _0xf3b097=await fetch('https://api.github.com/app/installations',{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x488ece,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](0x4e20)}),_0x455651=await _0xf3b097['json']();if(!_0xf3b097['ok']||!Array['isArray'](_0x455651))return 0x0;const _0x4c11da=_0x455651['find'](_0x45416f=>_0x45416f&&typeof _0x45416f['account']?.['login']==='string'&&_0x45416f['account']['login']['toLowerCase']()===_0x16f7cc['toLowerCase']());return typeof _0x4c11da?.['id']==='number'?_0x4c11da['id']:0x0;}catch{return 0x0;}}async function installationTokenFor(_0x21aeec){const _0x559f82=githubAppJwt();if(!_0x559f82||!_0x21aeec)return'';try{const _0x30ac67=process.env.GITHUB_API_BASE??'https://api.github.com';return await(0x0,github_app_js_1['createInstallationToken'])(_0x30ac67,_0x559f82,_0x21aeec);}catch{return'';}}function licenseMachineId(_0x542172){if(typeof _0x542172!=='string')return'';const _0x3fcd82=_0x542172['trim']();return _0x3fcd82['length']>=0x4&&_0x3fcd82['length']<=0x80?_0x3fcd82:'';}async function githubApi(_0x5b6721,_0x234fd7,_0x338dc4=0x4e20){try{const _0x1b7888=await fetch('https://api.github.com'+_0x5b6721,{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x234fd7,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](_0x338dc4)});let _0x20de5e=null;try{_0x20de5e=await _0x1b7888['json']();}catch{}return{'status':_0x1b7888['status'],'json':_0x20de5e};}catch{return{'status':0x0,'json':null};}}function clientIp(_0x24d7df){const _0x4a4eea=_0x56d542=>(Array['isArray'](_0x56d542)?_0x56d542[0x0]:_0x56d542)?.['split'](',')[0x0]?.['trim']()??'';return _0x4a4eea(_0x24d7df['headers']['cf-connecting-ip'])||_0x4a4eea(_0x24d7df['headers']['x-forwarded-for'])||_0x4a4eea(_0x24d7df['headers']['x-real-ip'])||_0x24d7df['socket']['remoteAddress']||'unknown';}async function runGithubJob(_0x383e18,_0x57e2c1){const _0x327143=process.env.GITHUB_API_BASE??'https://api.github.com',_0x314d07=new Date()['toISOString']();process['stdout']['write']('[github-app]\x20job\x20'+_0x383e18['repoFullName']+'#'+_0x383e18['issueNumber']+'\x20started\x20at\x20'+_0x314d07+'\x0a');const _0x216fa6=process.env.TRAYAMBAK_GITHUB_WORKSPACE??(0x0,index_js_1['loadConfig'])()['cwd'],_0x423141=(0x0,index_js_1['loadConfig'])(),_0x2525a1={..._0x423141,'cwd':_0x216fa6,'permissions':{..._0x423141['permissions'],'rulesV2':[..._0x423141['permissions']?.['rulesV2']??[],{'tool':'github','action':'allow','reason':'GitHub\x20App\x20job:\x20comment-authorized,\x20installation-token\x20scoped'}]}},_0x54bf4b=new index_js_1['Agent']({'config':_0x2525a1}),_0x447c1d=process.env.GITHUB_APP_ID??'';let _0x1d6a7c=process.env.GITHUB_PRIVATE_KEY??'';if(_0x1d6a7c&&!_0x1d6a7c['includes']('BEGIN')){const _0x692271=await Promise['resolve']()['then'](()=>__importStar(require('node:fs')));try{_0x1d6a7c=_0x692271['readFileSync'](_0x1d6a7c,'utf8');}catch{_0x1d6a7c='';}}const _0x3c3484=_0x57e2c1?.['installation'],_0x3105ac=typeof _0x3c3484?.['id']==='number'?_0x3c3484['id']:0x0;let _0x49bfc0='';if(_0x447c1d&&_0x1d6a7c&&_0x3105ac)try{_0x49bfc0=await(0x0,github_app_js_1['createInstallationToken'])(_0x327143,(0x0,github_app_js_1['createAppJwt'])(_0x447c1d,_0x1d6a7c),_0x3105ac);}catch(_0x4ddb3e){process['stdout']['write']('[github-app]\x20installation\x20token\x20mint\x20failed:\x20'+(_0x4ddb3e instanceof Error?_0x4ddb3e['message']:String(_0x4ddb3e))+'\x0a');}let _0x2d3fb3=[],_0x11a701='';const _0x5271b0=[],_0x2a0ed5=[],_0x24628c=_0x50ccd6=>{try{if(_0x50ccd6?.['type']==='budget_exhausted'){_0x5271b0['push']('Budget\x20exhausted\x20(used\x20'+(typeof _0x50ccd6['used']==='number'?_0x50ccd6['used']:'?')+'\x20of\x20'+(typeof _0x50ccd6['max']==='number'?_0x50ccd6['max']:'?')+')\x20—\x20the\x20run\x20stopped\x20before\x20the\x20model\x20was\x20called.');return;}if(_0x50ccd6?.['type']==='message_end'){const _0x16f699=_0x50ccd6['message'];if(_0x16f699?.['stopReason']==='error'&&Array['isArray'](_0x16f699['content'])){const _0x566be5=_0x16f699['content']['filter'](_0xcfc18=>!!_0xcfc18&&typeof _0xcfc18==='object'&&_0xcfc18['type']==='text')['map'](_0x151e8b=>_0x151e8b['text'])['join']('\x0a')['trim']();if(_0x566be5)_0x5271b0['push'](_0x566be5);}if(_0x16f699?.['role']==='tool'&&Array['isArray'](_0x16f699['content'])){const _0x2ba8c3=_0x16f699['content']['filter'](_0x43c40a=>!!_0x43c40a&&typeof _0x43c40a==='object'&&_0x43c40a['type']==='text')['map'](_0x483a90=>_0x483a90['text'])['join']('\x0a');_0x2ba8c3&&/fail|error|denied|not found|404|401|403|refus/i['test'](_0x2ba8c3)&&_0x2a0ed5['push'](_0x2ba8c3['slice'](0x0,0x12c));}}}catch{}};try{const _0x594aeb=process.env.GITHUB_TOKEN;if(_0x49bfc0)process.env.GITHUB_TOKEN=_0x49bfc0;const _0x2e335e=(0x0,github_app_js_1['describeGithubThread'])(_0x57e2c1);try{_0x2d3fb3=await _0x54bf4b['run']('GitHub\x20request\x20in\x20'+_0x383e18['repoFullName']+(_0x383e18['isPullRequest']?'\x20(pull\x20request':'\x20(issue')+'\x20#'+_0x383e18['issueNumber']+'):\x0a'+_0x383e18['task']+'\x0a\x0aYou\x20have\x20repo\x20access\x20via\x20the\x20github\x20tool\x20(GITHUB_TOKEN\x20is\x20set\x20for\x20this\x20run)\x20—\x20read\x20the\x20actual\x20issue/PR\x20first\x20(read_issue),\x20never\x20claim\x20access\x20errors\x20without\x20trying\x20the\x20tool.\x20If\x20the\x20tool\x20says\x20Not\x20Found\x20on\x20the\x20repository\x20itself,\x20the\x20App\x20is\x20not\x20installed\x20there:\x20tell\x20the\x20user\x20to\x20install\x20it\x20(GitHub\x20App\x20settings\x20→\x20Install\x20App\x20→\x20that\x20repository)\x20instead\x20of\x20guessing\x20further.'+(_0x2e335e?'\x0a\x0aContext\x20from\x20GitHub:\x0a'+_0x2e335e:''),_0x24628c);}finally{if(_0x49bfc0){if(_0x594aeb===undefined)delete process.env.GITHUB_TOKEN;else process.env.GITHUB_TOKEN=_0x594aeb;}}}catch(_0x59ffce){_0x11a701=_0x59ffce instanceof Error?_0x59ffce['message']:String(_0x59ffce);}const _0x222a89=(0x0,github_app_js_1['selectJobReply'])(_0x2d3fb3,_0x11a701,_0x5271b0);(0x0,github_jobs_js_1['recordJob'])({'repo':_0x383e18['repoFullName'],'issue':_0x383e18['issueNumber'],'task':_0x383e18['task'],'messages':_0x2d3fb3['length'],'replyHead':_0x222a89,..._0x11a701?{'error':_0x11a701}:{}});const _0x31eeec=_0x2d3fb3['map'](_0x2f2bce=>{const _0x3123ad=Array['isArray'](_0x2f2bce['content'])?_0x2f2bce['content']['map'](_0xc8a7d=>_0xc8a7d?.['type']??'?')['join']('+'):typeof _0x2f2bce['content'];return(_0x2f2bce['role']??'?')+'['+_0x3123ad+']';})['join']('\x20');process['stdout']['write']('[github-app]\x20job\x20'+_0x383e18['repoFullName']+'#'+_0x383e18['issueNumber']+'\x20finished\x20('+_0x2d3fb3['length']+'\x20messages:\x20'+(_0x31eeec||'none')+(_0x11a701?',\x20error:\x20'+_0x11a701['slice'](0x0,0xc8):'')+(_0x2a0ed5['length']>0x0?',\x20toolDiags:\x20'+_0x2a0ed5['join']('\x20||\x20')['slice'](0x0,0x258):'')+')\x0a');if(!_0x447c1d||!_0x1d6a7c||!_0x3105ac||!_0x49bfc0)return process['stdout']['write']('[github-app]\x20job\x20done\x20but\x20no\x20reply\x20channel\x20(need\x20GITHUB_APP_ID\x20+\x20GITHUB_PRIVATE_KEY\x20+\x20installation\x20id\x20+\x20token\x20mint).\x0a---\x20result\x20---\x0a'+_0x222a89+'\x0a---\x20end\x20---\x0a'),_0x222a89;const {owner:_0x5d8c71,repo:_0x13a0a0}=(0x0,github_app_js_1['splitRepo'])(_0x383e18['repoFullName']),_0x2e5af0=_0x222a89['length']>0xea60?_0x222a89['slice'](0x0,0xea60)+'\x0a\x0a…(truncated,\x20full\x20log\x20on\x20the\x20VPS)':_0x222a89;return await(0x0,github_app_js_1['postIssueComment'])({'apiBase':_0x327143,'token':_0x49bfc0},_0x5d8c71,_0x13a0a0,_0x383e18['issueNumber'],'##\x20Trayambak\x20result\x0a\x0a'+_0x2e5af0),process['stdout']['write']('[github-app]\x20job\x20'+_0x383e18['repoFullName']+'#'+_0x383e18['issueNumber']+'\x20replied\x0a'),_0x222a89;}
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x3efd5b,_0x6e4c56,_0x23f9b9,_0x14213e){if(_0x14213e===undefined)_0x14213e=_0x23f9b9;var _0x30ae0a=Object['getOwnPropertyDescriptor'](_0x6e4c56,_0x23f9b9);(!_0x30ae0a||('get'in _0x30ae0a?!_0x6e4c56['__esModule']:_0x30ae0a['writable']||_0x30ae0a['configurable']))&&(_0x30ae0a={'enumerable':!![],'get':function(){return _0x6e4c56[_0x23f9b9];}}),Object['defineProperty'](_0x3efd5b,_0x14213e,_0x30ae0a);}:function(_0x281e9c,_0x494427,_0x21105e,_0x14050b){if(_0x14050b===undefined)_0x14050b=_0x21105e;_0x281e9c[_0x14050b]=_0x494427[_0x21105e];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x1160a9,_0x4feb65){Object['defineProperty'](_0x1160a9,'default',{'enumerable':!![],'value':_0x4feb65});}:function(_0x23fd77,_0x2b1f5a){_0x23fd77['default']=_0x2b1f5a;}),__importStar=this&&this['__importStar']||(function(){var _0x12916c=function(_0x2868fa){return _0x12916c=Object['getOwnPropertyNames']||function(_0x3bf968){var _0x2a53ae=[];for(var _0x20975b in _0x3bf968)if(Object['prototype']['hasOwnProperty']['call'](_0x3bf968,_0x20975b))_0x2a53ae[_0x2a53ae['length']]=_0x20975b;return _0x2a53ae;},_0x12916c(_0x2868fa);};return function(_0xa6ed26){if(_0xa6ed26&&_0xa6ed26['__esModule'])return _0xa6ed26;var _0x225710={};if(_0xa6ed26!=null){for(var _0x5628b7=_0x12916c(_0xa6ed26),_0x1d9075=0x0;_0x1d9075<_0x5628b7['length'];_0x1d9075++)if(_0x5628b7[_0x1d9075]!=='default')__createBinding(_0x225710,_0xa6ed26,_0x5628b7[_0x1d9075]);}return __setModuleDefault(_0x225710,_0xa6ed26),_0x225710;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['OPENAPI_SPEC']=void 0x0,exports['startServer']=startServer;const http=__importStar(require('http')),crypto_1=require('crypto'),node_fs_1=require('node:fs'),node_path_1=require('node:path'),index_js_1=require('../../../apps/runtime/src/index.js'),index_js_2=require('../../telemetry/src/index.js'),transcript_js_1=require('../../session-backends/src/transcript.js'),github_app_js_1=require('./github-app.js'),license_js_1=require('../../../apps/runtime/src/license.js'),license_store_js_1=require('./license-store.js'),github_oauth_js_1=require('./github-oauth.js'),install_ps1_js_1=require('./install-ps1.js'),github_jobs_js_1=require('./github-jobs.js'),github_autofix_js_1=require('./github-autofix.js'),cors_js_1=require('./cors.js');function readJsonBody(_0xdce522,_0x181be6){return new Promise(_0x21cdcf=>{let _0xdfefd8='',_0x4e24be=0x0,_0x3b2631=![];const _0x1e1a4b=(_0x3bb86a,_0x2770d0)=>{if(_0x3b2631)return;_0x3b2631=!![],_0x181be6['writeHead'](_0x3bb86a,{'Content-Type':'application/json'}),_0x181be6['end'](JSON['stringify']({'error':_0x2770d0})),setImmediate(()=>_0xdce522['destroy']());};_0xdce522['on']('data',_0x32ef31=>{if(_0x3b2631)return;const _0x21a292=typeof _0x32ef31==='string'?_0x32ef31:_0x32ef31['toString']('utf8');_0x4e24be+=Buffer['byteLength'](_0x21a292);if(_0x4e24be>MAX_BODY_BYTES){_0x1e1a4b(0x19d,'body\x20too\x20large\x20(max\x201MB)');return;}_0xdfefd8+=_0x21a292;}),_0xdce522['on']('end',()=>{if(_0x3b2631||_0xdce522['destroyed'])return;try{_0x21cdcf(JSON['parse'](_0xdfefd8));}catch{_0x1e1a4b(0x190,'invalid\x20JSON'),_0x21cdcf(null);}});});}function adminPage(){return'<!doctype\x20html>\x0a<html\x20lang=\x22en\x22><head><meta\x20charset=\x22utf-8\x22><meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,initial-scale=1\x22>\x0a<title>Trayambak\x20—\x20license\x20generator</title>\x0a<style>body{font-family:system-ui,sans-serif;max-width:560px;margin:3rem\x20auto;padding:0\x201rem;color:#111}label{display:block;margin:1rem\x200\x20.25rem;font-weight:600}input,select,button{font-size:1rem;padding:.5rem;width:100%;box-sizing:border-box}button{margin-top:1.25rem;background:#111;color:#fff;border:0;cursor:pointer}#out{margin-top:1.5rem;padding:1rem;background:#f4f4f4;word-break:break-all;display:none;font-family:monospace;font-size:1.2rem}#err{color:#b00;margin-top:1rem}pre{background:#f4f4f4;padding:1rem;overflow:auto;font-size:.8rem}</style>\x0a</head><body>\x0a<h1>Trayambak\x20license\x20generator</h1>\x0a<p>Bearer\x20token\x20is\x20asked\x20once\x20per\x20session\x20and\x20never\x20stored.\x20Minted\x20codes\x20are\x2016\x20letters,\x20always\x20<b>1102-…</b>,\x20verified\x20<b>live\x20by\x20this\x20server</b>\x20(registry\x20+\x201-machine\x20binding).</p>\x0a<p>Users\x20self-serve\x20a\x207-day\x20trial\x20from\x20the\x20TUI\x20(<b>/devmode\x20trial</b>\x20—\x201\x20live\x20trial\x20per\x20machine,\x20born\x20bound,\x205/hour\x20per\x20network).\x20Paid\x20keys\x20come\x20from\x20Mint\x20below.\x20Exploitation?\x20Find\x20the\x20key\x20id\x20in\x20<b>Usage</b>,\x20paste\x20it\x20under\x20<b>Revoke</b>\x20—\x20dead\x20in\x20one\x20click,\x20everywhere.</p>\x0a<label>Bearer\x20token\x20(TRAYAMBAK_WEB_TOKEN)<input\x20id=\x22token\x22\x20type=\x22password\x22\x20autocomplete=\x22off\x22></label>\x0a<label>Plan<select\x20id=\x22plan\x22><option\x20value=\x22pentest\x22>pentest</option><option\x20value=\x22pro\x22>pro</option><option\x20value=\x22enterprise\x22>enterprise</option><option\x20value=\x22basic\x22>basic</option></select></label>\x0a<label>Days\x20valid<input\x20id=\x22days\x22\x20type=\x22number\x22\x20value=\x22365\x22\x20min=\x221\x22\x20max=\x223650\x22></label>\x0a<label>Customer\x20id\x20(optional)<input\x20id=\x22cid\x22\x20type=\x22text\x22\x20placeholder=\x22acme-corp\x22></label>\x0a<button\x20id=\x22go\x22>Mint\x20license</button>\x0a<div\x20id=\x22err\x22></div>\x0a<div\x20id=\x22out\x22></div>\x0a<h2>Register\x20a\x20pre-existing\x20code</h2>\x0a<p>Legacy/offline-era\x20keys\x20must\x20be\x20imported\x20once\x20before\x20their\x20holders\x20can\x20activate\x20them.</p>\x0a<label>Code\x20to\x20import<input\x20id=\x22imp\x22\x20type=\x22text\x22\x20placeholder=\x221102-XXXX-XXXX-XXXX\x22></label>\x0a<label>Customer\x20id\x20(optional)<input\x20id=\x22impcid\x22\x20type=\x22text\x22></label>\x0a<button\x20id=\x22goimp\x22>Import\x20code</button>\x0a<h2>Licenses</h2>\x0a<button\x20id=\x22golist\x22>Refresh\x20list</button>\x0a<pre\x20id=\x22list\x22></pre>\x0a<h2>Usage\x20(latest\x20100)</h2>\x0a<button\x20id=\x22gouse\x22>Refresh\x20usage</button>\x0a<pre\x20id=\x22use\x22></pre>\x0a<h2>Revoke\x20/\x20unbind\x20by\x20id</h2>\x0a<label>License\x20id<input\x20id=\x22lid\x22\x20type=\x22text\x22></label>\x0a<button\x20id=\x22gorev\x22>Revoke</button>\x0a<button\x20id=\x22gounb\x22>Unbind\x20machine</button>\x0a<script>\x0aconst\x20auth\x20=\x20()\x20=>\x20({\x20\x22Content-Type\x22:\x20\x22application/json\x22,\x20\x22Authorization\x22:\x20\x22Bearer\x20\x22\x20+\x20document.getElementById(\x22token\x22).value\x20});\x0aconst\x20show\x20=\x20(el,\x20v)\x20=>\x20{\x20const\x20e\x20=\x20document.getElementById(el);\x20e.textContent\x20=\x20typeof\x20v\x20===\x20\x22string\x22\x20?\x20v\x20:\x20JSON.stringify(v,\x20null,\x202);\x20e.style.display\x20=\x20\x22block\x22;\x20};\x0adocument.getElementById(\x22go\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20err\x20=\x20document.getElementById(\x22err\x22),\x20out\x20=\x20document.getElementById(\x22out\x22);\x0a\x20\x20err.textContent\x20=\x20\x22\x22;\x20out.style.display\x20=\x20\x22none\x22;\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/mint\x22,\x20{\x20method:\x20\x22POST\x22,\x0a\x20\x20\x20\x20\x20\x20headers:\x20auth(),\x0a\x20\x20\x20\x20\x20\x20body:\x20JSON.stringify({\x20plan:\x20document.getElementById(\x22plan\x22).value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20days:\x20Number(document.getElementById(\x22days\x22).value),\x0a\x20\x20\x20\x20\x20\x20\x20\x20id:\x20document.getElementById(\x22cid\x22).value\x20||\x20undefined\x20})\x20});\x0a\x20\x20\x20\x20const\x20j\x20=\x20await\x20r.json();\x0a\x20\x20\x20\x20if\x20(!r.ok)\x20throw\x20new\x20Error(j.error\x20||\x20(\x22HTTP\x20\x22\x20+\x20r.status));\x0a\x20\x20\x20\x20out.textContent\x20=\x20j.key;\x20out.style.display\x20=\x20\x22block\x22;\x0a\x20\x20}\x20catch\x20(e)\x20{\x20err.textContent\x20=\x20String((e\x20&&\x20e.message)\x20||\x20e);\x20}\x0a};\x0adocument.getElementById(\x22goimp\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20err\x20=\x20document.getElementById(\x22err\x22);\x0a\x20\x20err.textContent\x20=\x20\x22\x22;\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/import\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20\x20\x20body:\x20JSON.stringify({\x20key:\x20document.getElementById(\x22imp\x22).value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20customer:\x20document.getElementById(\x22impcid\x22).value\x20||\x20undefined\x20})\x20});\x0a\x20\x20\x20\x20const\x20j\x20=\x20await\x20r.json();\x0a\x20\x20\x20\x20if\x20(!r.ok)\x20throw\x20new\x20Error(j.error\x20||\x20(\x22HTTP\x20\x22\x20+\x20r.status));\x0a\x20\x20\x20\x20show(\x22out\x22,\x20\x22imported\x20id\x20\x22\x20+\x20j.id\x20+\x20\x22\x20(\x22\x20+\x20j.plan\x20+\x20\x22)\x22);\x0a\x20\x20}\x20catch\x20(e)\x20{\x20err.textContent\x20=\x20String((e\x20&&\x20e.message)\x20||\x20e);\x20}\x0a};\x0adocument.getElementById(\x22golist\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/licenses\x22,\x20{\x20headers:\x20auth()\x20});\x0a\x20\x20show(\x22list\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gouse\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/usage?tail=100\x22,\x20{\x20headers:\x20auth()\x20});\x0a\x20\x20show(\x22use\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gorev\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/revoke\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20body:\x20JSON.stringify({\x20id:\x20document.getElementById(\x22lid\x22).value\x20})\x20});\x0a\x20\x20show(\x22out\x22,\x20await\x20r.json());\x0a};\x0adocument.getElementById(\x22gounb\x22).onclick\x20=\x20async\x20()\x20=>\x20{\x0a\x20\x20const\x20r\x20=\x20await\x20fetch(\x22/admin/unbind\x22,\x20{\x20method:\x20\x22POST\x22,\x20headers:\x20auth(),\x0a\x20\x20\x20\x20body:\x20JSON.stringify({\x20id:\x20document.getElementById(\x22lid\x22).value\x20})\x20});\x0a\x20\x20show(\x22out\x22,\x20await\x20r.json());\x0a};\x0a</script>\x0a</body></html>';}const LOOPBACK_HOSTS=new Set(['127.0.0.1','::1','localhost','0:0:0:0:0:0:0:1']),MAX_BODY_BYTES=0x100000;exports['OPENAPI_SPEC']={'openapi':'3.0.0','info':{'title':'Trayambak\x20Agent\x20API','version':'0.6.3'},'paths':{'/health':{'get':{'summary':'Health\x20check'}},'/v1/models':{'get':{'summary':'List\x20models'}},'/v1/agent':{'post':{'summary':'Run\x20agent\x20(SSE)'}},'/api/sessions':{'get':{'summary':'List\x20transcripts'}},'/admin':{'get':{'summary':'License\x20generator\x20UI\x20(SKT\x20operators)'}},'/admin/mint':{'post':{'summary':'Mint\x20a\x2016-letter\x20license\x20(bearer-gated)'}},'/admin/import':{'post':{'summary':'Register\x20a\x20pre-existing\x20code\x20(bearer-gated)'}},'/admin/revoke':{'post':{'summary':'Revoke\x20a\x20license\x20by\x20id\x20(bearer-gated)'}},'/admin/unbind':{'post':{'summary':'Free\x20a\x20license\x27s\x20machine\x20binding\x20(bearer-gated)'}},'/admin/licenses':{'get':{'summary':'List\x20licenses,\x20masked\x20(bearer-gated)'}},'/admin/usage':{'get':{'summary':'Tail\x20pentest\x20usage\x20telemetry\x20(bearer-gated)'}},'/admin/jobs':{'get':{'summary':'Tail\x20GitHub\x20job\x20history\x20(bearer-gated)'}},'/license/verify':{'post':{'summary':'Live\x20license\x20check\x20(public,\x20machine-bound)'}},'/license/activate':{'post':{'summary':'Bind\x20a\x20license\x20to\x20a\x20machine\x20(public)'}},'/license/mint-trial':{'post':{'summary':'Self-service\x207-day\x20trial,\x201/machine\x20(public,\x20rate-limited)'}},'/auth/github/start':{'post':{'summary':'Begin\x20CLI\x20GitHub\x20login,\x20returns\x20browser\x20URL\x20(public,\x20rate-limited)'}},'/auth/github/callback':{'get':{'summary':'OAuth\x20redirect\x20target\x20(public,\x20browser-facing)'}},'/auth/github/status':{'get':{'summary':'Poll\x20login\x20completion\x20by\x20machine\x20(public)'}},'/auth/github/logout':{'post':{'summary':'Forget\x20a\x20machine\x27s\x20token\x20(public)'}},'/github/read':{'post':{'summary':'Read\x20an\x20issue\x20+\x20comments\x20with\x20the\x20stored\x20user\x20token\x20(public,\x20logged-in)'}},'/img/:name':{'get':{'summary':'Static\x20README\x20images\x20(public,\x20png/jpg\x20only)'}},'/docs/:name':{'get':{'summary':'Docs\x20pages\x20as\x20markdown\x20(public,\x20.md\x20only)'}},'/install.ps1':{'get':{'summary':'Windows\x20one-line\x20installer\x20(public)'}},'/license/usage':{'post':{'summary':'Record\x20pentest\x20tool\x20usage\x20(public,\x20licensed)'}},'/webhooks/github':{'post':{'summary':'GitHub\x20App\x20webhook\x20(HMAC\x20verified)'}},'/openapi.json':{'get':{'summary':'OpenAPI\x20spec'}}}};function startServer(_0x128b0c={}){const _0x5f1a09=_0x128b0c['port']??Number(process.env.TRAYAMBAK_SERVER_PORT??0x2253),_0x1ed751=_0x128b0c['host']??'127.0.0.1';let _0x319dfe=_0x128b0c['token']??process.env.TRAYAMBAK_WEB_TOKEN;const _0x3419b9=_0x128b0c['corsOrigins']??process.env.TRAYAMBAK_WEB_ORIGINS??'';let _0x36ecb8=![];!_0x319dfe&&!LOOPBACK_HOSTS['has'](_0x1ed751)&&(_0x319dfe=(0x0,crypto_1['randomBytes'])(0x20)['toString']('hex'),_0x36ecb8=!![]);const _0x242311=(0x0,index_js_1['loadConfig'])(),_0x40dd5b=(0x0,index_js_2['createTelemetry'])(![]),_0x8dd886=(0x0,license_store_js_1['defaultLicenseStorePaths'])(),_0x498c60=new license_store_js_1['LicenseStore']({'file':_0x128b0c['licenseStorePath']??_0x8dd886['file'],'usageFile':_0x128b0c['licenseUsagePath']??_0x8dd886['usageFile']}),_0x31066e=new Set(['/license/verify','/license/activate','/license/usage','/license/mint-trial','/webhooks/github','/auth/github/start','/auth/github/callback','/auth/github/status','/auth/github/logout','/github/read','/install.ps1']),_0x2f9e40=_0x128b0c['imgDir']??process.env.TRAYAMBAK_IMG_DIR??'./Img',_0x379c70=_0x128b0c['docsDir']??process.env.TRAYAMBAK_DOCS_DIR??'./docs',_0x5ba969=new Map(),_0x95dd6e=0x5,_0x879871=new Map(),_0x763afa=0xa,_0x4bfbcd=new github_oauth_js_1['GitHubOAuthStore'](_0x128b0c['githubOAuthPath']??(0x0,github_oauth_js_1['defaultOAuthPath'])()),_0x574590=(0x0,github_autofix_js_1['parseAutofixRepos'])(process.env.GITHUB_AUTOFIX_REPOS),_0x5546f5=(process.env.GITHUB_AUTOFIX_LABEL??'trayambak')['trim']()||'trayambak',_0x6189f0=Math['min'](Math['max'](Number(process.env.GITHUB_AUTOFIX_INTERVAL_MIN??0x1e)||0x1e,0x5),0x5a0),_0x54a649=process.env.GITHUB_AUTOFIX_TRIAGE_COMMENT===undefined?(0x0,github_autofix_js_1['defaultTriageComment'])(_0x5546f5):process.env.GITHUB_AUTOFIX_TRIAGE_COMMENT??'';if(_0x574590['length']>0x0){const _0x5d8e1e=new github_autofix_js_1['AutofixLedger']((0x0,github_autofix_js_1['defaultAutofixLedgerPath'])()),_0xe935b2=()=>{void((async()=>{try{const _0x19860c=await(0x0,github_autofix_js_1['autofixTick'])({'repos':_0x574590,'label':_0x5546f5,'ledger':_0x5d8e1e,'installationIdFor':installationIdForOwner,'tokenFor':installationTokenFor,'fetchJson':async(_0x5d81ea,_0x387bfc)=>{const _0x589174=await githubApi(_0x5d81ea,_0x387bfc);return{'status':_0x589174['status'],'json':_0x589174['json']};},'listAllRepos':allInstalledRepos,'postComment':async(_0x2e4576,_0x1904cf,_0x1f3a1e)=>{const _0x306d5b=_0x2e4576['split']('/')[0x0]??'',_0x128b11=await installationIdForOwner(_0x306d5b)['catch'](()=>0x0);if(!_0x128b11)return![];const _0x221261=await installationTokenFor(_0x128b11)['catch'](()=>'');if(!_0x221261)return![];return postGithubComment(_0x306d5b,_0x2e4576['split']('/')[0x1]??'',_0x1904cf,_0x1f3a1e,_0x221261);},'triageComment':_0x54a649,'runJob':(_0x430f02,_0x419f39,_0x2741e9,_0x5d0e17)=>enqueueGithubJob({'repoFullName':_0x430f02,'issueNumber':_0x419f39,'task':_0x2741e9,'isPullRequest':![]},{'installation':{'id':_0x5d0e17}})});(_0x19860c['checked']>0x0||_0x19860c['ran']['length']>0x0||_0x19860c['triaged']['length']>0x0)&&process['stdout']['write']('[github-autofix]\x20tick:\x20checked\x20'+_0x19860c['checked']+',\x20ran\x20'+_0x19860c['ran']['length']+',\x20triaged\x20'+_0x19860c['triaged']['length']+'\x0a');}catch(_0x4b7fa1){process['stderr']['write']('[github-autofix]\x20tick\x20failed:\x20'+(_0x4b7fa1 instanceof Error?_0x4b7fa1['message']:String(_0x4b7fa1))+'\x0a');}})());},_0x59a724=setInterval(_0xe935b2,_0x6189f0*0xea60);if(typeof _0x59a724['unref']==='function')_0x59a724['unref']();const _0xd96cea=setTimeout(_0xe935b2,0x1d4c0);if(typeof _0xd96cea['unref']==='function')_0xd96cea['unref']();process['stdout']['write']('[github-autofix]\x20watching\x20'+_0x574590['join'](',')+'\x20label='+_0x5546f5+'\x20every\x20'+_0x6189f0+'m\x0a');}else process['stdout']['write']('[github-autofix]\x20idle\x20(GITHUB_AUTOFIX_REPOS\x20unset)\x0a');const _0x52a7c8=http['createServer'](async(_0x1bff4f,_0xc7c9b0)=>{const _0x352b2e=(0x0,cors_js_1['resolveCors'])(_0x1bff4f['headers']['origin'],_0x1bff4f['headers']['host'],_0x3419b9);for(const [_0x712621,_0x5ba10b]of Object['entries'](_0x352b2e['headers'])){_0xc7c9b0['setHeader'](_0x712621,_0x5ba10b);}if(_0x1bff4f['method']==='OPTIONS'){_0xc7c9b0['writeHead'](_0x352b2e['allowed']?0xcc:0x193),_0xc7c9b0['end']();return;}if(!_0x352b2e['allowed']){_0xc7c9b0['writeHead'](0x193,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'origin\x20not\x20allowed'}));return;}const _0xec3805=(_0x1bff4f['url']??'/')['split']('?')[0x0];if(_0x1bff4f['method']==='GET'&&_0xec3805['startsWith']('/img/')){serveReadmeImage(_0x1bff4f,_0xc7c9b0,_0x2f9e40,_0xec3805);return;}if(_0x1bff4f['method']==='GET'&&_0xec3805['startsWith']('/docs/')){serveDocsFile(_0x1bff4f,_0xc7c9b0,_0x379c70,_0xec3805);return;}if(_0x319dfe&&_0x1bff4f['url']!=='/health'&&!_0x31066e['has'](_0xec3805)){const _0x4427e2=Buffer['from'](_0x1bff4f['headers']['authorization']??''),_0x39bc33=Buffer['from']('Bearer\x20'+_0x319dfe),_0xa7a6e5=_0x4427e2['length']===_0x39bc33['length']&&_0x4427e2['length']>0x0&&(0x0,crypto_1['timingSafeEqual'])(_0x4427e2,_0x39bc33);if(!_0xa7a6e5){_0xc7c9b0['writeHead'](0x191,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'unauthorized'}));return;}}if(_0x1bff4f['method']==='GET'&&_0x1bff4f['url']==='/health'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'status':'ok','model':_0x242311['model']}));return;}if(_0x1bff4f['method']==='GET'&&_0x1bff4f['url']==='/openapi.json'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify'](exports['OPENAPI_SPEC']));return;}if(_0x1bff4f['method']==='GET'&&_0x1bff4f['url']==='/api/sessions'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'});try{_0xc7c9b0['end'](JSON['stringify']({'sessions':(0x0,transcript_js_1['listTranscripts'])()}));}catch{_0xc7c9b0['end'](JSON['stringify']({'sessions':[]}));}return;}if(_0x1bff4f['method']==='GET'&&_0x1bff4f['url']==='/v1/models'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'data':[{'id':_0x242311['model']}]}));return;}if(_0x1bff4f['method']==='GET'&&_0x1bff4f['url']==='/admin'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xc7c9b0['end'](adminPage());return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/admin/mint'){const _0x11af0b=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x11af0b)return;const _0x4f0dd0=typeof _0x11af0b['plan']==='string'?_0x11af0b['plan']:'',_0xf0eee8=typeof _0x11af0b['days']==='number'?_0x11af0b['days']:Number['NaN'];if(_0x4f0dd0!=='basic'&&_0x4f0dd0!=='pentest'&&_0x4f0dd0!=='pro'&&_0x4f0dd0!=='enterprise'){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'plan\x20must\x20be\x20basic|pentest|pro|enterprise'}));return;}if(!Number['isFinite'](_0xf0eee8)||_0xf0eee8<0x1||_0xf0eee8>0xe42){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'days\x20must\x20be\x201..3650'}));return;}try{const _0x1f8711=Math['floor'](Date['now']()/0x5265c00),{activationEpochDays:_0x13e06e}=await Promise['resolve']()['then'](()=>__importStar(require('../../../apps/runtime/src/license.js'))),_0x3c5845=(0x0,license_js_1['mintActivationKey'])({'plan':_0x4f0dd0,'expDays':_0x1f8711-_0x13e06e()+Math['floor'](_0xf0eee8)},(0x0,license_js_1['activationCheckKey'])()),_0x2f90d2=typeof _0x11af0b['id']==='string'?_0x11af0b['id']:undefined,_0x1510bf=_0x498c60['register'](_0x3c5845,_0x2f90d2);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'key':_0x3c5845,'id':_0x1510bf['id']}));}catch(_0x51d85e){_0xc7c9b0['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'mint\x20failed:\x20'+(_0x51d85e instanceof Error?_0x51d85e['message']:String(_0x51d85e))}));}return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/install.ps1'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'text/plain;\x20charset=utf-8'}),_0xc7c9b0['end'](install_ps1_js_1['INSTALL_PS1']);return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/license/verify'){const _0x1b38e6=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x1b38e6)return;const _0x51b7a5=licenseMachineId(_0x1b38e6['machineId']);if(!_0x51b7a5){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'valid':![],'reason':'missing\x20machineId'}));return;}const _0x550bab=_0x498c60['check'](typeof _0x1b38e6['key']==='string'?_0x1b38e6['key']:'',_0x51b7a5);if(_0x550bab['valid']===!![])_0x498c60['touch'](_0x550bab['record']?.['id']??'');_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'valid':_0x550bab['valid'],'plan':_0x550bab['plan'],'exp':_0x550bab['exp'],'reason':_0x550bab['reason']}));return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/license/activate'){const _0x316276=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x316276)return;const _0x2b8951=licenseMachineId(_0x316276['machineId']);if(!_0x2b8951){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0xdb024d=_0x498c60['activate'](typeof _0x316276['key']==='string'?_0x316276['key']:'',_0x2b8951);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':_0xdb024d['ok'],'plan':_0xdb024d['plan'],'exp':_0xdb024d['exp'],'reason':_0xdb024d['reason']}));return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/license/usage'){const _0x2b17d1=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x2b17d1)return;const _0x405446=licenseMachineId(_0x2b17d1['machineId']),_0x3493b2=typeof _0x2b17d1['tool']==='string'?_0x2b17d1['tool']['slice'](0x0,0x78):'';if(!_0x405446||!_0x3493b2){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'missing\x20machineId/tool'}));return;}const _0x5a2057=_0x498c60['checkPentestOnly'](typeof _0x2b17d1['key']==='string'?_0x2b17d1['key']:'',_0x405446);if(_0x5a2057['valid']!==!![]){_0xc7c9b0['writeHead'](0x193,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':_0x5a2057['reason']??'license\x20invalid'}));return;}_0x498c60['touch'](_0x5a2057['record']?.['id']??''),_0x498c60['appendUsage']({'keyId':_0x5a2057['record']?.['id']??'','machineId':_0x405446,'tool':_0x3493b2,'target':typeof _0x2b17d1['target']==='string'?_0x2b17d1['target']['slice'](0x0,0x12c):'','ok':_0x2b17d1['ok']!==![]}),_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/license/mint-trial'){const _0x961a3e=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x961a3e)return;const _0x37c45b=licenseMachineId(_0x961a3e['machineId']);if(!_0x37c45b){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0x20b5d5=clientIp(_0x1bff4f),_0x1cba2e=Date['now'](),_0x27e215=(_0x5ba969['get'](_0x20b5d5)??[])['filter'](_0xdf6cd2=>_0x1cba2e-_0xdf6cd2<0x36ee80);if(_0x27e215['length']>=_0x95dd6e){_0xc7c9b0['writeHead'](0x1ad,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'too\x20many\x20trial\x20requests\x20from\x20this\x20network\x20—\x20try\x20again\x20later'}));return;}_0x27e215['push'](_0x1cba2e),_0x5ba969['set'](_0x20b5d5,_0x27e215);if(_0x498c60['activeTrialForMachine'](_0x37c45b)){_0xc7c9b0['writeHead'](0x199,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'this\x20machine\x20already\x20has\x20a\x20live\x20trial\x20—\x20ask\x20SKT\x20for\x20a\x20full\x20key'}));return;}try{const _0x363d95=Number(process.env.LICENSE_TRIAL_DAYS??0x7),_0x188699=Math['min'](Math['max'](Math['floor'](Number['isFinite'](_0x363d95)?_0x363d95:0x7),0x1),0x1e),_0x473d3f=Math['floor'](Date['now']()/0x5265c00),{activationEpochDays:_0x5c3077}=await Promise['resolve']()['then'](()=>__importStar(require('../../../apps/runtime/src/license.js'))),_0x2c09db=(0x0,license_js_1['mintActivationKey'])({'plan':'pentest','expDays':_0x473d3f-_0x5c3077()+_0x188699},(0x0,license_js_1['activationCheckKey'])()),_0x193ed9=_0x498c60['register'](_0x2c09db,'trial',{'trial':!![]}),_0x251ca8=_0x498c60['activate'](_0x2c09db,_0x37c45b);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':_0x251ca8['ok'],'key':_0x2c09db,'id':_0x193ed9['id'],'exp':_0x193ed9['exp'],'days':_0x188699}));}catch(_0x5e6196){_0xc7c9b0['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'trial\x20mint\x20failed:\x20'+(_0x5e6196 instanceof Error?_0x5e6196['message']:String(_0x5e6196))}));}return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/auth/github/start'){const _0x59a580=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x59a580)return;const _0x5ead3f=licenseMachineId(_0x59a580['machineId']);if(!_0x5ead3f){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'missing\x20machineId'}));return;}const _0x34a7da=(process.env.GITHUB_CLIENT_ID??'')['trim']();if(!_0x34a7da){_0xc7c9b0['writeHead'](0x1f4,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'GitHub\x20login\x20not\x20configured\x20on\x20this\x20server'}));return;}const _0x68e7c=clientIp(_0x1bff4f),_0x330b21=Date['now'](),_0x389f4b=(_0x879871['get'](_0x68e7c)??[])['filter'](_0x37b868=>_0x330b21-_0x37b868<0x36ee80);if(_0x389f4b['length']>=_0x763afa){_0xc7c9b0['writeHead'](0x1ad,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':![],'reason':'too\x20many\x20login\x20requests\x20from\x20this\x20network\x20—\x20try\x20again\x20later'}));return;}_0x389f4b['push'](_0x330b21),_0x879871['set'](_0x68e7c,_0x389f4b);const _0x483593=_0x4bfbcd['beginLogin'](_0x5ead3f),_0x37a3bd='https://github.com/login/oauth/authorize?client_id='+encodeURIComponent(_0x34a7da)+'&state='+_0x483593['state'];_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![],'url':_0x37a3bd}));return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/auth/github/callback'){const _0x4091c0=(_0x2daecf,_0x21904a,_0x274690)=>{_0xc7c9b0['writeHead'](_0x274690?0xc8:0x190,{'Content-Type':'text/html;\x20charset=utf-8'}),_0xc7c9b0['end']('<!doctype\x20html><html\x20lang=\x22en\x22><head><meta\x20charset=\x22utf-8\x22><title>'+_0x2daecf+'</title>'+'<style>body{font-family:system-ui,sans-serif;max-width:560px;margin:3rem\x20auto;padding:0\x201rem}</style></head>'+('<body><h1>'+_0x2daecf+'</h1><p>'+_0x21904a+'</p></body></html>'));},_0x1821b0=new URL(_0x1bff4f['url']??'/','http://localhost')['searchParams'],_0x57b583=_0x1821b0['get']('code')??'',_0x2318ef=_0x1821b0['get']('state')??'',_0x3a3b6e=_0x4bfbcd['consumeState'](_0x2318ef);if(!_0x57b583||!_0x3a3b6e){_0x4091c0('Authorization\x20failed','This\x20link\x20is\x20expired\x20or\x20already\x20used\x20(10-minute,\x20single-use).\x20Run\x20/github\x20login\x20in\x20the\x20CLI\x20again\x20for\x20a\x20fresh\x20one.',![]);return;}const _0x4632b8=(process.env.GITHUB_CLIENT_ID??'')['trim'](),_0x27fa3f=(process.env.GITHUB_CLIENT_SECRET??'')['trim']();if(!_0x4632b8||!_0x27fa3f){_0x4091c0('Server\x20misconfigured','GitHub\x20login\x20is\x20not\x20configured\x20on\x20this\x20server.',![]);return;}try{const _0x1d9255=await fetch('https://github.com/login/oauth/access_token',{'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json','User-Agent':'trayambak'},'body':JSON['stringify']({'client_id':_0x4632b8,'client_secret':_0x27fa3f,'code':_0x57b583}),'signal':AbortSignal['timeout'](0x4e20)}),_0xb6e09b=await _0x1d9255['json']();if(!_0x1d9255['ok']||typeof _0xb6e09b['access_token']!=='string'||!_0xb6e09b['access_token'])throw new Error(typeof _0xb6e09b['error_description']==='string'?_0xb6e09b['error_description']:'HTTP\x20'+_0x1d9255['status']);const _0x165a16=await githubApi('/user',_0xb6e09b['access_token']),_0x3f617c=_0x165a16['json']&&typeof _0x165a16['json']==='object'&&typeof _0x165a16['json']['login']==='string'?_0x165a16['json']['login']:'github-user';_0x4bfbcd['storeToken'](_0x3a3b6e,_0xb6e09b['access_token'],_0x3f617c),_0x4091c0('Authorized','Logged\x20in\x20as\x20<b>'+_0x3f617c+'</b>.\x20Return\x20to\x20the\x20CLI\x20—\x20it\x20picks\x20this\x20up\x20automatically.',!![]);}catch(_0x4cc756){_0x4091c0('Authorization\x20failed','Could\x20not\x20finish\x20login\x20('+(_0x4cc756 instanceof Error?_0x4cc756['message']:String(_0x4cc756))+').\x20Run\x20/github\x20login\x20again.',![]);}return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/auth/github/status'){const _0x94c0fd=licenseMachineId(new URL(_0x1bff4f['url']??'/','http://localhost')['searchParams']['get']('machineId')),_0x17bff4=_0x94c0fd?_0x4bfbcd['tokenFor'](_0x94c0fd):undefined;_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify'](_0x17bff4?{'authorized':!![],'login':_0x17bff4['login']}:{'authorized':![]}));return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/auth/github/logout'){const _0x21f87a=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x21f87a)return;const _0x49f911=licenseMachineId(_0x21f87a['machineId']);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':_0x49f911?_0x4bfbcd['logout'](_0x49f911):![]}));return;}if(_0x1bff4f['method']==='POST'&&_0xec3805==='/github/read'){const _0x149bd4=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x149bd4)return;const _0x12fb14=licenseMachineId(_0x149bd4['machineId']),_0x3bf4fb=_0x12fb14?_0x4bfbcd['tokenFor'](_0x12fb14):undefined;if(!_0x3bf4fb){_0xc7c9b0['writeHead'](0x191,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'GitHub\x20login\x20required\x20—\x20run\x20/github\x20login\x20first'}));return;}let _0x39b463='',_0x2072fb='';try{;({owner:_0x39b463,repo:_0x2072fb}=(0x0,github_app_js_1['splitRepo'])(typeof _0x149bd4['repo']==='string'?_0x149bd4['repo']:''));}catch{_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'repo\x20must\x20be\x20owner/name'}));return;}const _0x307742=Math['floor'](Number(_0x149bd4['number']));if(!Number['isFinite'](_0x307742)||_0x307742<0x1){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'number\x20must\x20be\x20a\x20positive\x20issue/PR\x20number'}));return;}const _0x2fa022=_0x149bd4['withComments']!==![],[_0x252630,_0x1a1b40]=await Promise['all']([githubApi('/repos/'+_0x39b463+'/'+_0x2072fb+'/issues/'+_0x307742,_0x3bf4fb['token']),_0x2fa022?githubApi('/repos/'+_0x39b463+'/'+_0x2072fb+'/issues/'+_0x307742+'/comments?per_page=20',_0x3bf4fb['token']):Promise['resolve']({'status':0xc8,'json':[]})]);if(_0x252630['status']===0x0){_0xc7c9b0['writeHead'](0x1f6,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'GitHub\x20unreachable\x20from\x20the\x20license\x20server'}));return;}if(_0x252630['status']!==0xc8||!_0x252630['json']||typeof _0x252630['json']!=='object'){const _0x7a794d=_0x252630['json']&&typeof _0x252630['json']==='object'&&typeof _0x252630['json']['message']==='string'?_0x252630['json']['message']:'HTTP\x20'+_0x252630['status'];_0xc7c9b0['writeHead'](_0x252630['status']===0x194?0x194:0x1f6,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'GitHub:\x20'+_0x7a794d}));return;}const _0x288aaa=_0x252630['json'],_0x104942=Array['isArray'](_0x1a1b40['json'])?_0x1a1b40['json']:[];_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![],'issue':{'number':typeof _0x288aaa['number']==='number'?_0x288aaa['number']:_0x307742,'title':typeof _0x288aaa['title']==='string'?_0x288aaa['title']:'','state':typeof _0x288aaa['state']==='string'?_0x288aaa['state']:'','author':_0x288aaa['user']&&typeof _0x288aaa['user']==='object'&&typeof _0x288aaa['user']['login']==='string'?_0x288aaa['user']['login']:'','url':typeof _0x288aaa['html_url']==='string'?_0x288aaa['html_url']:'','body':typeof _0x288aaa['body']==='string'?_0x288aaa['body']['slice'](0x0,0x1f40):'','commentsCount':typeof _0x288aaa['comments']==='number'?_0x288aaa['comments']:_0x104942['length'],'isPullRequest':_0x288aaa['pull_request']!==undefined},'comments':_0x104942['filter'](_0x6e04a7=>!!_0x6e04a7&&typeof _0x6e04a7==='object')['slice'](-0x14)['map'](_0x5d9a82=>({'author':_0x5d9a82['user']&&typeof _0x5d9a82['user']==='object'&&typeof _0x5d9a82['user']['login']==='string'?_0x5d9a82['user']['login']:'','body':typeof _0x5d9a82['body']==='string'?_0x5d9a82['body']['slice'](0x0,0x7d0):'','createdAt':typeof _0x5d9a82['created_at']==='string'?_0x5d9a82['created_at']:''}))}));return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/admin/import'){const _0x31c478=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x31c478)return;try{const _0x60122c=_0x498c60['register'](typeof _0x31c478['key']==='string'?_0x31c478['key']:'',typeof _0x31c478['customer']==='string'?_0x31c478['customer']:undefined);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'id':_0x60122c['id'],'plan':_0x60122c['plan']}));}catch(_0x4c5bce){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':_0x4c5bce instanceof Error?_0x4c5bce['message']:String(_0x4c5bce)}));}return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/admin/revoke'){const _0x24435b=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x24435b)return;const _0x5add00=typeof _0x24435b['id']==='string'?_0x24435b['id']:'';if(!_0x5add00||!_0x498c60['revoke'](_0x5add00)){_0xc7c9b0['writeHead'](0x194,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'unknown\x20license\x20id'}));return;}_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/admin/unbind'){const _0x5f22aa=await readJsonBody(_0x1bff4f,_0xc7c9b0);if(!_0x5f22aa)return;const _0x256fda=typeof _0x5f22aa['id']==='string'?_0x5f22aa['id']:'';if(!_0x256fda||!_0x498c60['unbind'](_0x256fda)){_0xc7c9b0['writeHead'](0x194,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'unknown\x20license\x20id'}));return;}_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![]}));return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/admin/licenses'){const _0x13bac5=_0x498c60['list']()['map'](_0x66fd2e=>({'id':_0x66fd2e['id'],'key':_0x66fd2e['key']['slice'](0x0,0x4)+'-…-'+_0x66fd2e['key']['slice'](-0x4),'plan':_0x66fd2e['plan'],'exp':_0x66fd2e['exp'],'customer':_0x66fd2e['customer'],'trial':_0x66fd2e['trial']===!![],'revoked':_0x66fd2e['revoked'],'bound':Boolean(_0x66fd2e['boundMachineId']),'machine':_0x66fd2e['boundMachineId']?_0x66fd2e['boundMachineId']['slice'](0x0,0x8)+'…':undefined,'createdAt':_0x66fd2e['createdAt'],'lastSeenAt':_0x66fd2e['lastSeenAt']}));_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'licenses':_0x13bac5}));return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/admin/usage'){const _0x1ab03c=Number((_0x1bff4f['url']??'')['split']('tail=')[0x1]??0x64);_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'usage':_0x498c60['readUsageTail'](Number['isFinite'](_0x1ab03c)?_0x1ab03c:0x64)}));return;}if(_0x1bff4f['method']==='GET'&&_0xec3805==='/admin/jobs'){const _0x3c0987=Number((_0x1bff4f['url']??'')['split']('tail=')[0x1]??0x64),{readJobTail:_0x15e1b3}=await Promise['resolve']()['then'](()=>__importStar(require('./github-jobs.js')));_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'jobs':_0x15e1b3(Number['isFinite'](_0x3c0987)?_0x3c0987:0x64)}));return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/webhooks/github'){const _0x1d65e7=process.env.GITHUB_WEBHOOK_SECRET??'';if(!_0x1d65e7){_0xc7c9b0['writeHead'](0x1f7,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'webhooks\x20disabled\x20(GITHUB_WEBHOOK_SECRET\x20unset)'}));return;}const _0x593073=[];let _0x23a2d4=0x0,_0x2387f3=![];_0x1bff4f['on']('data',_0x3c4e24=>{if(_0x2387f3)return;const _0x429616=typeof _0x3c4e24==='string'?Buffer['from'](_0x3c4e24,'utf8'):_0x3c4e24;_0x23a2d4+=_0x429616['length'];if(_0x23a2d4>MAX_BODY_BYTES){_0x2387f3=!![],_0xc7c9b0['writeHead'](0x19d,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'body\x20too\x20large\x20(max\x201MB)'})),setImmediate(()=>_0x1bff4f['destroy']());return;}_0x593073['push'](_0x429616);}),_0x1bff4f['on']('end',()=>{if(_0x2387f3||_0x1bff4f['destroyed'])return;const _0x3c6ee5=Buffer['concat'](_0x593073),_0x523511=_0x1bff4f['headers']['x-hub-signature-256'];if(!(0x0,github_app_js_1['verifyWebhookSignature'])(_0x1d65e7,_0x3c6ee5,Array['isArray'](_0x523511)?_0x523511[0x0]:_0x523511)){_0xc7c9b0['writeHead'](0x191,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'bad\x20signature'}));return;}let _0x270612=null;try{_0x270612=JSON['parse'](_0x3c6ee5['toString']('utf8'));}catch{_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'invalid\x20JSON'}));return;}const _0x268392=_0x1bff4f['headers']['x-github-event'],_0x50c16e=(0x0,github_app_js_1['routeGithubEvent'])(Array['isArray'](_0x268392)?_0x268392[0x0]??'':_0x268392??'',_0x270612);if(_0x50c16e['kind']!=='job'){_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![],..._0x50c16e['kind']==='ignored'?{'ignored':_0x50c16e['reason']}:{}}));return;}_0xc7c9b0['writeHead'](0xca,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'ok':!![],'accepted':!![]})),void enqueueGithubJob(_0x50c16e['job'],_0x270612);});return;}if(_0x1bff4f['method']==='POST'&&_0x1bff4f['url']==='/v1/agent'){let _0x2419da='',_0xf4c548=0x0,_0xd84c01=![];const _0x4d5980=new AbortController();_0x1bff4f['on']('close',()=>_0x4d5980['abort']()),_0x1bff4f['on']('data',_0x42856b=>{if(_0xd84c01)return;const _0x2114cf=typeof _0x42856b==='string'?_0x42856b:_0x42856b['toString']('utf8');_0xf4c548+=Buffer['byteLength'](_0x2114cf);if(_0xf4c548>MAX_BODY_BYTES){_0xd84c01=!![],_0xc7c9b0['writeHead'](0x19d,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'body\x20too\x20large\x20(max\x201MB)'})),setImmediate(()=>_0x1bff4f['destroy']());return;}_0x2419da+=_0x2114cf;}),_0x1bff4f['on']('end',()=>{if(_0xd84c01||_0x1bff4f['destroyed'])return;const _0x414587=safeJson(_0x2419da),_0x1eb144=typeof _0x414587['prompt']==='string'?_0x414587['prompt']:undefined,_0x2410bf=typeof _0x414587['sessionFile']==='string'?_0x414587['sessionFile']:undefined;if(!_0x1eb144||typeof _0x1eb144!=='string'){_0xc7c9b0['writeHead'](0x190,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'missing\x20\x27prompt\x27'}));return;}_0xc7c9b0['writeHead'](0xc8,{'Content-Type':'text/event-stream','Cache-Control':'no-cache','Connection':'keep-alive'});const _0x9a80b3=new index_js_1['Agent']({'config':_0x242311,'sessionFile':_0x2410bf}),_0xe1d52e=_0x52ae42=>{try{if(!_0x1bff4f['destroyed']&&!_0xc7c9b0['writableEnded'])_0xc7c9b0['write'](_0x52ae42);}catch{_0x4d5980['abort']();}};_0x9a80b3['run'](_0x1eb144,_0x3da054=>{_0x40dd5b['capture'](_0x3da054),_0xe1d52e('data:\x20'+JSON['stringify'](_0x3da054)+'\x0a\x0a');},_0x4d5980['signal'])['then'](()=>{_0xe1d52e('data:\x20[DONE]\x0a\x0a');try{if(!_0x1bff4f['destroyed']&&!_0xc7c9b0['writableEnded'])_0xc7c9b0['end']();}catch{}})['catch'](_0x4099c8=>{_0xe1d52e('data:\x20'+JSON['stringify']({'error':String(_0x4099c8)})+'\x0a\x0a');try{if(!_0x1bff4f['destroyed']&&!_0xc7c9b0['writableEnded'])_0xc7c9b0['end']();}catch{}});});return;}_0xc7c9b0['writeHead'](0x194,{'Content-Type':'application/json'}),_0xc7c9b0['end'](JSON['stringify']({'error':'not\x20found'}));});return _0x52a7c8['listen'](_0x5f1a09,_0x1ed751,()=>{process['stdout']['write']('trayambak\x20server\x20listening\x20on\x20http://'+_0x1ed751+':'+_0x5f1a09+'\x0a'),_0x36ecb8&&_0x319dfe&&process['stdout']['write']('generated\x20bearer\x20token\x20(set\x20TRAYAMBAK_WEB_TOKEN\x20to\x20avoid\x20this):\x20'+_0x319dfe+'\x0a');}),Object['defineProperty'](_0x52a7c8,'effectiveToken',{'value':_0x319dfe??'','enumerable':![]}),_0x52a7c8;}function safeJson(_0x2fe68d){try{return JSON['parse'](_0x2fe68d);}catch{return{};}}let githubJobQueue=Promise['resolve']();function enqueueGithubJob(_0x288504,_0x5812d7){const _0x38a77=githubJobQueue['then'](()=>runGithubJob(_0x288504,_0x5812d7))['catch'](_0x28c22e=>{return process['stderr']['write']('[github-app]\x20job\x20failed:\x20'+(_0x28c22e instanceof Error?_0x28c22e['message']:String(_0x28c22e))+'\x0a'),'';});return githubJobQueue=_0x38a77['then'](()=>undefined),_0x38a77;}async function postGithubComment(_0x585817,_0x27ada0,_0x3f1fc7,_0x5dfd30,_0x418801){try{const _0x195753=await fetch('https://api.github.com/repos/'+_0x585817+'/'+_0x27ada0+'/issues/'+_0x3f1fc7+'/comments',{'method':'POST','headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x418801,'Content-Type':'application/json','X-GitHub-Api-Version':'2022-11-28'},'body':JSON['stringify']({'body':_0x5dfd30['slice'](0x0,0xfa0)}),'signal':AbortSignal['timeout'](0x4e20)});return _0x195753['status']===0xc9;}catch{return![];}}async function allInstalledRepos(){const _0x47f736=githubAppJwt();if(!_0x47f736)return[];try{const _0x5ba732=await fetch('https://api.github.com/app/installations',{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x47f736,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](0x4e20)}),_0x491095=await _0x5ba732['json']();if(!_0x5ba732['ok']||!Array['isArray'](_0x491095))return[];const _0x4528ac=[];for(const _0x24ac14 of _0x491095){if(typeof _0x24ac14?.['id']!=='number')continue;const _0x5d75a9=await installationTokenFor(_0x24ac14['id']);if(!_0x5d75a9)continue;const _0x437fc5=await githubApi('/installation/repositories?per_page=100',_0x5d75a9);if(_0x437fc5['status']!==0xc8||!_0x437fc5['json']||typeof _0x437fc5['json']!=='object')continue;const _0x2fc8a3=_0x437fc5['json']['repositories'];if(!Array['isArray'](_0x2fc8a3))continue;for(const _0x599057 of _0x2fc8a3){_0x599057&&typeof _0x599057==='object'&&typeof _0x599057['full_name']==='string'&&_0x4528ac['push'](_0x599057['full_name']['toLowerCase']());}}return[...new Set(_0x4528ac)];}catch{return[];}}function githubAppJwt(){const _0x4eb1e6=(process.env.GITHUB_APP_ID??'')['trim']();let _0x1f8602=(process.env.GITHUB_PRIVATE_KEY??'')['trim']();if(!_0x4eb1e6||!_0x1f8602)return'';if(!_0x1f8602['includes']('BEGIN'))try{_0x1f8602=(0x0,node_fs_1['readFileSync'])(_0x1f8602,'utf8');}catch{return'';}try{return(0x0,github_app_js_1['createAppJwt'])(_0x4eb1e6,_0x1f8602);}catch{return'';}}async function installationIdForOwner(_0x694501){const _0x4a18c8=githubAppJwt();if(!_0x4a18c8)return 0x0;try{const _0x55388f=await fetch('https://api.github.com/app/installations',{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x4a18c8,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](0x4e20)}),_0x3ed43b=await _0x55388f['json']();if(!_0x55388f['ok']||!Array['isArray'](_0x3ed43b))return 0x0;const _0x53fd95=_0x3ed43b['find'](_0x2f647c=>_0x2f647c&&typeof _0x2f647c['account']?.['login']==='string'&&_0x2f647c['account']['login']['toLowerCase']()===_0x694501['toLowerCase']());return typeof _0x53fd95?.['id']==='number'?_0x53fd95['id']:0x0;}catch{return 0x0;}}async function installationTokenFor(_0x5bec47){const _0x43f0c7=githubAppJwt();if(!_0x43f0c7||!_0x5bec47)return'';try{const _0x181b1c=process.env.GITHUB_API_BASE??'https://api.github.com';return await(0x0,github_app_js_1['createInstallationToken'])(_0x181b1c,_0x43f0c7,_0x5bec47);}catch{return'';}}async function serveReadmeImage(_0x19fb3d,_0xae2491,_0x3aa5c9,_0x1f5e44){try{const _0x1bf720=_0x1f5e44['slice']('/img/'['length']);if(!/^[A-Za-z0-9_-]+\.(png|jpg|jpeg)$/i['test'](_0x1bf720)){_0xae2491['writeHead'](0x194,{'Content-Type':'application/json'}),_0xae2491['end'](JSON['stringify']({'error':'not\x20found'}));return;}const {readFile:_0x62e5dd}=await Promise['resolve']()['then'](()=>__importStar(require('node:fs/promises'))),_0x33d237=await _0x62e5dd((0x0,node_path_1['join'])(_0x3aa5c9,_0x1bf720)),_0x120f02=/\.png$/i['test'](_0x1bf720)?'image/png':'image/jpeg';_0xae2491['writeHead'](0xc8,{'Content-Type':_0x120f02,'Cache-Control':'public,\x20max-age=86400'}),_0xae2491['end'](_0x33d237);}catch{_0xae2491['writeHead'](0x194,{'Content-Type':'application/json'}),_0xae2491['end'](JSON['stringify']({'error':'not\x20found'}));}}async function serveDocsFile(_0x26680f,_0x10506e,_0x17a558,_0x5af8f6){try{const _0x4b5238=_0x5af8f6['slice']('/docs/'['length']);if(!/^[A-Za-z0-9_-]+\.md$/i['test'](_0x4b5238)){_0x10506e['writeHead'](0x194,{'Content-Type':'application/json'}),_0x10506e['end'](JSON['stringify']({'error':'not\x20found'}));return;}const {readFile:_0x2e37ee}=await Promise['resolve']()['then'](()=>__importStar(require('node:fs/promises'))),_0x144883=await _0x2e37ee((0x0,node_path_1['join'])(_0x17a558,_0x4b5238));_0x10506e['writeHead'](0xc8,{'Content-Type':'text/markdown;\x20charset=utf-8','Cache-Control':'public,\x20max-age=3600'}),_0x10506e['end'](_0x144883);}catch{_0x10506e['writeHead'](0x194,{'Content-Type':'application/json'}),_0x10506e['end'](JSON['stringify']({'error':'not\x20found'}));}}function licenseMachineId(_0x56b93f){if(typeof _0x56b93f!=='string')return'';const _0x57b9aa=_0x56b93f['trim']();return _0x57b9aa['length']>=0x4&&_0x57b9aa['length']<=0x80?_0x57b9aa:'';}async function githubApi(_0x2b258d,_0x54c9c1,_0x2f9bb7=0x4e20){try{const _0x471fbf=await fetch('https://api.github.com'+_0x2b258d,{'headers':{'Accept':'application/vnd.github+json','User-Agent':'trayambak','Authorization':'Bearer\x20'+_0x54c9c1,'X-GitHub-Api-Version':'2022-11-28'},'signal':AbortSignal['timeout'](_0x2f9bb7)});let _0x346de4=null;try{_0x346de4=await _0x471fbf['json']();}catch{}return{'status':_0x471fbf['status'],'json':_0x346de4};}catch{return{'status':0x0,'json':null};}}function clientIp(_0x3973e9){const _0x42cb85=_0x1d1821=>(Array['isArray'](_0x1d1821)?_0x1d1821[0x0]:_0x1d1821)?.['split'](',')[0x0]?.['trim']()??'';return _0x42cb85(_0x3973e9['headers']['cf-connecting-ip'])||_0x42cb85(_0x3973e9['headers']['x-forwarded-for'])||_0x42cb85(_0x3973e9['headers']['x-real-ip'])||_0x3973e9['socket']['remoteAddress']||'unknown';}async function runGithubJob(_0xd7675d,_0x1bdab5){const _0x5a83ff=process.env.GITHUB_API_BASE??'https://api.github.com',_0x37288b=new Date()['toISOString']();process['stdout']['write']('[github-app]\x20job\x20'+_0xd7675d['repoFullName']+'#'+_0xd7675d['issueNumber']+'\x20started\x20at\x20'+_0x37288b+'\x0a');const _0x171dd2=process.env.TRAYAMBAK_GITHUB_WORKSPACE??(0x0,index_js_1['loadConfig'])()['cwd'],_0x25d5bd=(0x0,index_js_1['loadConfig'])(),_0xd07c75={..._0x25d5bd,'cwd':_0x171dd2,'permissions':{..._0x25d5bd['permissions'],'rulesV2':[..._0x25d5bd['permissions']?.['rulesV2']??[],{'tool':'github','action':'allow','reason':'GitHub\x20App\x20job:\x20comment-authorized,\x20installation-token\x20scoped'}]}},_0x31a7f8=new index_js_1['Agent']({'config':_0xd07c75}),_0x5bdaa5=process.env.GITHUB_APP_ID??'';let _0x1f2905=process.env.GITHUB_PRIVATE_KEY??'';if(_0x1f2905&&!_0x1f2905['includes']('BEGIN')){const _0xefd702=await Promise['resolve']()['then'](()=>__importStar(require('node:fs')));try{_0x1f2905=_0xefd702['readFileSync'](_0x1f2905,'utf8');}catch{_0x1f2905='';}}const _0x4244f1=_0x1bdab5?.['installation'],_0x543823=typeof _0x4244f1?.['id']==='number'?_0x4244f1['id']:0x0;let _0x1e3324='';if(_0x5bdaa5&&_0x1f2905&&_0x543823)try{_0x1e3324=await(0x0,github_app_js_1['createInstallationToken'])(_0x5a83ff,(0x0,github_app_js_1['createAppJwt'])(_0x5bdaa5,_0x1f2905),_0x543823);}catch(_0x4b4462){process['stdout']['write']('[github-app]\x20installation\x20token\x20mint\x20failed:\x20'+(_0x4b4462 instanceof Error?_0x4b4462['message']:String(_0x4b4462))+'\x0a');}let _0x1d6029=[],_0x16dc95='';const _0x34d9d6=[],_0x487a54=[],_0x68dd03=_0x300504=>{try{if(_0x300504?.['type']==='budget_exhausted'){_0x34d9d6['push']('Budget\x20exhausted\x20(used\x20'+(typeof _0x300504['used']==='number'?_0x300504['used']:'?')+'\x20of\x20'+(typeof _0x300504['max']==='number'?_0x300504['max']:'?')+')\x20—\x20the\x20run\x20stopped\x20before\x20the\x20model\x20was\x20called.');return;}if(_0x300504?.['type']==='message_end'){const _0x313450=_0x300504['message'];if(_0x313450?.['stopReason']==='error'&&Array['isArray'](_0x313450['content'])){const _0x14a531=_0x313450['content']['filter'](_0x4be2d3=>!!_0x4be2d3&&typeof _0x4be2d3==='object'&&_0x4be2d3['type']==='text')['map'](_0x754c08=>_0x754c08['text'])['join']('\x0a')['trim']();if(_0x14a531)_0x34d9d6['push'](_0x14a531);}if(_0x313450?.['role']==='tool'&&Array['isArray'](_0x313450['content'])){const _0x2ed77c=_0x313450['content']['filter'](_0xc46af=>!!_0xc46af&&typeof _0xc46af==='object'&&_0xc46af['type']==='text')['map'](_0x3a8dd8=>_0x3a8dd8['text'])['join']('\x0a');_0x2ed77c&&/fail|error|denied|not found|404|401|403|refus/i['test'](_0x2ed77c)&&_0x487a54['push'](_0x2ed77c['slice'](0x0,0x12c));}}}catch{}};try{const _0x3180db=process.env.GITHUB_TOKEN;if(_0x1e3324)process.env.GITHUB_TOKEN=_0x1e3324;const _0x449d0d=(0x0,github_app_js_1['describeGithubThread'])(_0x1bdab5);try{_0x1d6029=await _0x31a7f8['run']('GitHub\x20request\x20in\x20'+_0xd7675d['repoFullName']+(_0xd7675d['isPullRequest']?'\x20(pull\x20request':'\x20(issue')+'\x20#'+_0xd7675d['issueNumber']+'):\x0a'+_0xd7675d['task']+'\x0a\x0aYou\x20have\x20repo\x20access\x20via\x20the\x20github\x20tool\x20(GITHUB_TOKEN\x20is\x20set\x20for\x20this\x20run)\x20—\x20read\x20the\x20actual\x20issue/PR\x20first\x20(read_issue),\x20never\x20claim\x20access\x20errors\x20without\x20trying\x20the\x20tool.\x20If\x20the\x20tool\x20says\x20Not\x20Found\x20on\x20the\x20repository\x20itself,\x20the\x20App\x20is\x20not\x20installed\x20there:\x20tell\x20the\x20user\x20to\x20install\x20it\x20(GitHub\x20App\x20settings\x20→\x20Install\x20App\x20→\x20that\x20repository)\x20instead\x20of\x20guessing\x20further.'+(_0x449d0d?'\x0a\x0aContext\x20from\x20GitHub:\x0a'+_0x449d0d:''),_0x68dd03);}finally{if(_0x1e3324){if(_0x3180db===undefined)delete process.env.GITHUB_TOKEN;else process.env.GITHUB_TOKEN=_0x3180db;}}}catch(_0x2657e3){_0x16dc95=_0x2657e3 instanceof Error?_0x2657e3['message']:String(_0x2657e3);}const _0x46edfc=(0x0,github_app_js_1['selectJobReply'])(_0x1d6029,_0x16dc95,_0x34d9d6);(0x0,github_jobs_js_1['recordJob'])({'repo':_0xd7675d['repoFullName'],'issue':_0xd7675d['issueNumber'],'task':_0xd7675d['task'],'messages':_0x1d6029['length'],'replyHead':_0x46edfc,..._0x16dc95?{'error':_0x16dc95}:{}});const _0x55d6a9=_0x1d6029['map'](_0x17ddf4=>{const _0x51edc6=Array['isArray'](_0x17ddf4['content'])?_0x17ddf4['content']['map'](_0x5859d9=>_0x5859d9?.['type']??'?')['join']('+'):typeof _0x17ddf4['content'];return(_0x17ddf4['role']??'?')+'['+_0x51edc6+']';})['join']('\x20');process['stdout']['write']('[github-app]\x20job\x20'+_0xd7675d['repoFullName']+'#'+_0xd7675d['issueNumber']+'\x20finished\x20('+_0x1d6029['length']+'\x20messages:\x20'+(_0x55d6a9||'none')+(_0x16dc95?',\x20error:\x20'+_0x16dc95['slice'](0x0,0xc8):'')+(_0x487a54['length']>0x0?',\x20toolDiags:\x20'+_0x487a54['join']('\x20||\x20')['slice'](0x0,0x258):'')+')\x0a');if(!_0x5bdaa5||!_0x1f2905||!_0x543823||!_0x1e3324)return process['stdout']['write']('[github-app]\x20job\x20done\x20but\x20no\x20reply\x20channel\x20(need\x20GITHUB_APP_ID\x20+\x20GITHUB_PRIVATE_KEY\x20+\x20installation\x20id\x20+\x20token\x20mint).\x0a---\x20result\x20---\x0a'+_0x46edfc+'\x0a---\x20end\x20---\x0a'),_0x46edfc;const {owner:_0x2ab744,repo:_0x4c857b}=(0x0,github_app_js_1['splitRepo'])(_0xd7675d['repoFullName']),_0x1b5652=_0x46edfc['length']>0xea60?_0x46edfc['slice'](0x0,0xea60)+'\x0a\x0a…(truncated,\x20full\x20log\x20on\x20the\x20VPS)':_0x46edfc;return await(0x0,github_app_js_1['postIssueComment'])({'apiBase':_0x5a83ff,'token':_0x1e3324},_0x2ab744,_0x4c857b,_0xd7675d['issueNumber'],'##\x20Trayambak\x20result\x0a\x0a'+_0x1b5652),process['stdout']['write']('[github-app]\x20job\x20'+_0xd7675d['repoFullName']+'#'+_0xd7675d['issueNumber']+'\x20replied\x0a'),_0x46edfc;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';var _0x112b21=_0x3819;function _0x3819(_0x23ddcb,_0x3a88c6){_0x23ddcb=_0x23ddcb-0x79;var _0x58b2a3=_0x58b2();var _0x381948=_0x58b2a3[_0x23ddcb];return _0x381948;}(function(_0x122303,_0x2a88ca){var _0x2093c4=_0x3819,_0x3df009=_0x122303();while(!![]){try{var _0x4a12ff=parseInt(_0x2093c4(0x7d))/0x1+parseInt(_0x2093c4(0x79))/0x2+-parseInt(_0x2093c4(0x7b))/0x3*(parseInt(_0x2093c4(0x7c))/0x4)+-parseInt(_0x2093c4(0x7e))/0x5*(parseInt(_0x2093c4(0x7f))/0x6)+-parseInt(_0x2093c4(0x84))/0x7+parseInt(_0x2093c4(0x82))/0x8*(parseInt(_0x2093c4(0x81))/0x9)+parseInt(_0x2093c4(0x7a))/0xa*(parseInt(_0x2093c4(0x85))/0xb);if(_0x4a12ff===_0x2a88ca)break;else _0x3df009['push'](_0x3df009['shift']());}catch(_0xa7590c){_0x3df009['push'](_0x3df009['shift']());}}}(_0x58b2,0x411c8));function _0x58b2(){var _0x56fd45=['6414RnlvJR','defineProperty','45IwUest','102328AcDusz','INSTALL_PS1','603736SGFFaw','9889KuNoXr','401024HGKwEe','5320EEIcbl','3nzYjjM','1565588sNnhmB','398205YgBgsX','1855UvbIsV'];_0x58b2=function(){return _0x56fd45;};return _0x58b2();}Object[_0x112b21(0x80)](exports,'__esModule',{'value':!![]}),exports[_0x112b21(0x83)]=void 0x0,exports['INSTALL_PS1']='#\x20Trayambak\x20one-line\x20installer.\x0a#\x20Run:\x20irm\x20https://skt.sktailabs.in/install.ps1\x20|\x20iex\x0a$ErrorActionPreference\x20=\x20\x22Stop\x22\x0a\x0afunction\x20Fail($msg)\x20{\x20Write-Error\x20$msg;\x20exit\x201\x20}\x0a\x0atry\x20{\x20$nodeV\x20=\x20node\x20--version\x20}\x20catch\x20{\x20Fail\x20\x22node\x20not\x20found\x20—\x20install\x20Node\x2020+\x20from\x20https://nodejs.org,\x20then\x20re-run\x20this\x20command.\x22\x20}\x0aWrite-Output\x20\x22node\x20$nodeV\x20found.\x22\x0a\x0a#\x20Download\x20+\x20install\x20with\x20a\x20live\x20spinner:\x20npm\x20install\x20-g\x20runs\x20as\x20a\x0a#\x20background\x20job\x20while\x20the\x20foreground\x20paints\x20progress\x20(elapsed\x20+\x20frames).\x0a#\x20start-job\x20can\x20be\x20unavailable\x20in\x20locked-down\x20hosts\x20—\x20then\x20fall\x20straight\x0a#\x20through\x20to\x20a\x20direct\x20install\x20(same\x20command,\x20no\x20animation).\x0a$frames\x20=\x20@(\x27|\x27,\x20\x27/\x27,\x20\x27-\x27,\x20\x27\x27)\x0a$installDone\x20=\x20$false\x0atry\x20{\x0a\x20\x20$job\x20=\x20Start-Job\x20-ScriptBlock\x20{\x20npm\x20install\x20-g\x20@skt-ai-labs/trayambak-cli\x20}\x0a\x20\x20$t0\x20=\x20Get-Date\x0a\x20\x20$i\x20=\x200\x0a\x20\x20while\x20($job.State\x20-eq\x20\x27Running\x27)\x20{\x0a\x20\x20\x20\x20$elapsed\x20=\x20[int]((Get-Date)\x20-\x20$t0).TotalSeconds\x0a\x20\x20\x20\x20if\x20($elapsed\x20-gt\x20600)\x20{\x20Stop-Job\x20$job;\x20Fail\x20\x22install\x20timed\x20out\x20after\x2010\x20minutes\x20(network/npm\x20issue?)\x22\x20}\x0a\x20\x20\x20\x20Write-Progress\x20-Activity\x20\x22Installing\x20trayambak\x22\x20-Status\x20\x22$($frames[$i\x20%\x204])\x20downloading…\x20$elapsed\x20s\x20elapsed\x22\x0a\x20\x20\x20\x20Start-Sleep\x20-Milliseconds\x20200\x0a\x20\x20\x20\x20$i++\x0a\x20\x20}\x0a\x20\x20Write-Progress\x20-Activity\x20\x22Installing\x20trayambak\x22\x20-Completed\x0a\x20\x20$jobOut\x20=\x20Receive-Job\x20$job\x202>&1\x20|\x20Out-String\x0a\x20\x20Remove-Job\x20$job\x20-Force\x0a\x20\x20if\x20($job.State\x20-ne\x20\x27Completed\x27)\x20{\x20Fail\x20\x22npm\x20install\x20failed:$([Environment]::NewLine)$jobOut\x22\x20}\x0a\x20\x20$installDone\x20=\x20$true\x0a}\x20catch\x20{\x0a\x20\x20Write-Output\x20\x22background\x20install\x20unavailable,\x20installing\x20directly…\x22\x0a}\x0aif\x20(-not\x20$installDone)\x20{\x0a\x20\x20try\x20{\x20npm\x20install\x20-g\x20@skt-ai-labs/trayambak-cli\x20}\x20catch\x20{\x20Fail\x20\x22npm\x20install\x20failed:\x20$($_.Exception.Message)\x22\x20}\x0a}\x0aWrite-Output\x20\x22download\x20+\x20install\x20complete.\x22\x0a\x0atry\x20{\x20$ver\x20=\x20trayambak\x20--version\x20}\x20catch\x20{\x20Fail\x20\x22install\x20finished\x20but\x20\x27trayambak\x27\x20is\x20not\x20on\x20PATH\x20—\x20restart\x20the\x20terminal\x20and\x20try\x20again.\x22\x20}\x0aWrite-Output\x20\x22trayambak\x20$ver\x20installed.\x22\x0aWrite-Output\x20\x22\x22\x0aWrite-Output\x20\x22Next\x20steps:\x22\x0aWrite-Output\x20\x22\x20\x201.\x20trayambak\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20open\x20the\x20TUI\x22\x0aWrite-Output\x20\x22\x20\x202.\x20/provider\x20add\x20\x20\x20\x20\x20\x20\x20\x20#\x20connect\x20your\x20model\x20backend\x20+\x20API\x20key\x22\x0aWrite-Output\x20\x22\x20\x203.\x20/github\x20login\x20\x20\x20\x20\x20\x20\x20\x20#\x20authorize\x20GitHub\x20(browser\x20opens)\x22\x0aWrite-Output\x20\x22\x20\x204.\x20/devmode\x20trial\x20\x20\x20\x20\x20\x20\x20#\x20or\x20paste\x20a\x20license:\x20/devmode\x20on\x201102-XXXX-XXXX-XXXX\x22\x0a';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['LicenseStore']=void 0x0,exports['defaultLicenseStorePaths']=defaultLicenseStorePaths,exports['checkLicense']=checkLicense,exports['checkPentest']=checkPentest;const node_fs_1=require('node:fs'),node_path_1=require('node:path'),license_js_1=require('../../../apps/runtime/src/license.js');function defaultLicenseStorePaths(){const
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['LicenseStore']=void 0x0,exports['defaultLicenseStorePaths']=defaultLicenseStorePaths,exports['checkLicense']=checkLicense,exports['checkPentest']=checkPentest;const node_fs_1=require('node:fs'),node_path_1=require('node:path'),license_js_1=require('../../../apps/runtime/src/license.js');function defaultLicenseStorePaths(){const _0x37b409=process.env.LICENSE_STORE_PATH??'./data/licenses.json',_0x4a0e96=process.env.LICENSE_USAGE_PATH??'./data/license-usage.jsonl';return{'file':_0x37b409,'usageFile':_0x4a0e96};}function atomicWriteJson(_0x266593,_0xa249bf){(0x0,node_fs_1['mkdirSync'])((0x0,node_path_1['dirname'])(_0x266593),{'recursive':!![]});const _0x1e406b=_0x266593+'.tmp-'+process['pid'];(0x0,node_fs_1['writeFileSync'])(_0x1e406b,JSON['stringify'](_0xa249bf,null,0x2),{'encoding':'utf8','mode':0x180});try{(0x0,node_fs_1['chmodSync'])(_0x1e406b,0x180);}catch{}(0x0,node_fs_1['renameSync'])(_0x1e406b,_0x266593);}function loadStoreFile(_0x462307){if(!(0x0,node_fs_1['existsSync'])(_0x462307))return{};try{const _0x36ee88=JSON['parse']((0x0,node_fs_1['readFileSync'])(_0x462307,'utf8'));if(_0x36ee88&&typeof _0x36ee88==='object'&&_0x36ee88['keys']&&typeof _0x36ee88['keys']==='object')return _0x36ee88['keys'];}catch{}return{};}const PENTEST_PLANS=new Set(['pentest','pro','enterprise']);function checkLicense(_0x11670d,_0xef03f7,_0x4c382d,_0x24b507){const _0x4b48ef=typeof _0xef03f7==='string'?_0xef03f7['trim']():'';if(!_0x4b48ef)return{'valid':![],'reason':'no\x20license\x20key\x20supplied'};const _0x235b37=(0x0,license_js_1['normalizeLicenseKey'])(_0x4b48ef);if(!_0x235b37)return{'valid':![],'reason':'malformed\x20key\x20(want\x2016\x20letters,\x201102-XXXX-XXXX-XXXX)'};const _0x56c9c2=(0x0,license_js_1['verifyLicenseKey'])(_0x4b48ef,_0x24b507);if(_0x56c9c2['valid']!==!![])return{'valid':![],'reason':_0x56c9c2['valid']===![]?_0x56c9c2['reason']:'invalid\x20key'};const _0x4aa39f=_0x11670d[_0x56c9c2['claims']['id']];if(!_0x4aa39f||(0x0,license_js_1['normalizeLicenseKey'])(_0x4aa39f['key'])!==_0x235b37)return{'valid':![],'reason':'unknown\x20license\x20(not\x20issued\x20by\x20SKT\x20—\x20register\x20it\x20via\x20/admin\x20first)'};if(_0x56c9c2['claims']['exp']*0x3e8<=Date['now']())return{'valid':![],'reason':'expired\x20on\x20'+new Date(_0x56c9c2['claims']['exp']*0x3e8)['toISOString']()['slice'](0x0,0xa)};if(_0x4aa39f['revoked'])return{'valid':![],'reason':'license\x20revoked\x20—\x20contact\x20SKT\x20AI\x20LABS','record':_0x4aa39f};const _0x44aa77=typeof _0x4c382d==='string'?_0x4c382d['trim']():'';if(!_0x44aa77)return{'valid':![],'reason':'no\x20machine\x20identity\x20supplied','record':_0x4aa39f};if(!_0x4aa39f['boundMachineId'])return{'valid':![],'reason':'not\x20activated\x20on\x20this\x20machine\x20—\x20run\x20/devmode\x20on\x20<key>\x20once\x20to\x20bind\x20it','record':_0x4aa39f};if(_0x4aa39f['boundMachineId']!==_0x44aa77)return{'valid':![],'reason':'bound\x20to\x20another\x20machine\x20(1-machine\x20license)\x20—\x20ask\x20SKT\x20to\x20unbind\x20it','record':_0x4aa39f};return{'valid':!![],'plan':_0x56c9c2['claims']['plan'],'exp':_0x56c9c2['claims']['exp'],'record':_0x4aa39f};}function checkPentest(_0x36654f,_0x369668,_0x4243c6,_0x2c87ac){const _0x43c9b9=checkLicense(_0x36654f,_0x369668,_0x4243c6,_0x2c87ac);if(_0x43c9b9['valid']!==!![])return _0x43c9b9;if(!_0x43c9b9['plan']||!PENTEST_PLANS['has'](_0x43c9b9['plan']))return{'valid':![],'plan':_0x43c9b9['plan'],'exp':_0x43c9b9['exp'],'reason':'plan\x20\x27'+(_0x43c9b9['plan']??'unknown')+'\x27\x20does\x20not\x20cover\x20pentest\x20tools','record':_0x43c9b9['record']};return _0x43c9b9;}class LicenseStore{['keys'];['file'];['usageFile'];['secret'];constructor(_0x3e2d6e,_0x2fa83c){const _0x5bfabc=defaultLicenseStorePaths();this['file']=_0x3e2d6e?.['file']??_0x5bfabc['file'],this['usageFile']=_0x3e2d6e?.['usageFile']??_0x5bfabc['usageFile'],this['secret']=_0x2fa83c,this['keys']=loadStoreFile(this['file']);}['save'](){atomicWriteJson(this['file'],{'version':0x1,'keys':this['keys']});}['register'](_0x5c3f26,_0x40d2ad,_0x20b590){const _0x6b10e3=(0x0,license_js_1['verifyLicenseKey'])(_0x5c3f26,this['secret']);if(_0x6b10e3['valid']!==!![])throw new Error('cannot\x20register:\x20'+(_0x6b10e3['valid']===![]?_0x6b10e3['reason']:'invalid\x20key'));const _0x490fe7=this['keys'][_0x6b10e3['claims']['id']],_0x17dc46=(0x0,license_js_1['normalizeLicenseKey'])(_0x5c3f26);if(_0x490fe7&&(0x0,license_js_1['normalizeLicenseKey'])(_0x490fe7['key'])===_0x17dc46)return _0x490fe7;const _0x114ed2={'id':_0x6b10e3['claims']['id'],'key':_0x17dc46['slice'](0x0,0x4)+'-'+_0x17dc46['slice'](0x4,0x8)+'-'+_0x17dc46['slice'](0x8,0xc)+'-'+_0x17dc46['slice'](0xc,0x10),'plan':_0x6b10e3['claims']['plan'],'exp':_0x6b10e3['claims']['exp'],'customer':typeof _0x40d2ad==='string'&&_0x40d2ad['trim']()?_0x40d2ad['trim']()['slice'](0x0,0x78):undefined,'revoked':![],'trial':_0x20b590?.['trial']===!![]?!![]:undefined,'createdAt':new Date()['toISOString']()};return this['keys'][_0x114ed2['id']]=_0x114ed2,this['save'](),_0x114ed2;}['check'](_0x3cb32c,_0x349705){return checkLicense(this['keys'],_0x3cb32c,_0x349705,this['secret']);}checkPentestOnly(_0x40e1a2,_0x41ea23){return checkPentest(this['keys'],_0x40e1a2,_0x41ea23,this['secret']);}['activate'](_0x25c58f,_0x3ccd5c){const _0x563ed7=typeof _0x3ccd5c==='string'?_0x3ccd5c['trim']():'';if(!_0x563ed7)return{'ok':![],'reason':'no\x20machine\x20identity\x20supplied'};const _0x5aca96=this['check'](_0x25c58f,_0x563ed7);if(_0x5aca96['valid']===!![])return{'ok':!![],'plan':_0x5aca96['plan'],'exp':_0x5aca96['exp'],'record':_0x5aca96['record']};if(_0x5aca96['record']&&!_0x5aca96['record']['revoked']&&!_0x5aca96['record']['boundMachineId']&&_0x5aca96['reason']?.['startsWith']('not\x20activated'))return _0x5aca96['record']['boundMachineId']=_0x563ed7,_0x5aca96['record']['lastSeenAt']=new Date()['toISOString'](),this['save'](),{'ok':!![],'plan':_0x5aca96['record']['plan'],'exp':_0x5aca96['record']['exp'],'record':_0x5aca96['record']};return{'ok':![],'plan':_0x5aca96['plan'],'exp':_0x5aca96['exp'],'reason':_0x5aca96['reason'],'record':_0x5aca96['record']};}['revoke'](_0x5620b3){const _0x160cd2=this['find'](_0x5620b3);if(!_0x160cd2)return![];return _0x160cd2['revoked']=!![],this['save'](),!![];}['unbind'](_0x4ec293){const _0x162724=this['find'](_0x4ec293);if(!_0x162724)return![];return delete _0x162724['boundMachineId'],this['save'](),!![];}['touch'](_0x547869){const _0x2f0e58=this['keys'][_0x547869];if(!_0x2f0e58)return;_0x2f0e58['lastSeenAt']=new Date()['toISOString'](),this['save']();}['activeTrialForMachine'](_0x1800c6){const _0x1095a2=Date['now']();return Object['values'](this['keys'])['find'](_0x1e1c51=>_0x1e1c51['trial']===!![]&&_0x1e1c51['revoked']!==!![]&&_0x1e1c51['exp']*0x3e8>_0x1095a2&&_0x1e1c51['boundMachineId']===_0x1800c6);}['find'](_0x64497f){const _0x5677a9=_0x64497f['trim']();if(this['keys'][_0x5677a9])return this['keys'][_0x5677a9];const _0x52940d=(0x0,license_js_1['normalizeLicenseKey'])(_0x5677a9);if(!_0x52940d)return undefined;return Object['values'](this['keys'])['find'](_0x404c9b=>(0x0,license_js_1['normalizeLicenseKey'])(_0x404c9b['key'])===_0x52940d);}['list'](){return Object['values'](this['keys'])['sort']((_0x48900c,_0x137ee0)=>_0x48900c['createdAt']<_0x137ee0['createdAt']?0x1:-0x1);}get['size'](){return Object['keys'](this['keys'])['length'];}['appendUsage'](_0x33aaa3){(0x0,node_fs_1['mkdirSync'])((0x0,node_path_1['dirname'])(this['usageFile']),{'recursive':!![]});const _0x45cbc9=JSON['stringify']({..._0x33aaa3,'ts':new Date()['toISOString']()})+'\x0a';try{(0x0,node_fs_1['appendFileSync'])(this['usageFile'],_0x45cbc9,'utf8');const _0x3636ac=(0x0,node_fs_1['statSync'])(this['usageFile'])['size'];if(_0x3636ac>0x200000){const _0x42867d=(0x0,node_fs_1['readFileSync'])(this['usageFile'],'utf8')['split']('\x0a')['filter'](_0x5a47a3=>_0x5a47a3['length']>0x0);(0x0,node_fs_1['writeFileSync'])(this['usageFile'],_0x42867d['slice'](-0x1388)['join']('\x0a')+'\x0a','utf8');}}catch{}}['readUsageTail'](_0x101fd5){const _0x23693b=Math['min'](Math['max'](Math['floor'](_0x101fd5),0x1),0x1f4);try{if(!(0x0,node_fs_1['existsSync'])(this['usageFile']))return[];const _0x5a6a48=(0x0,node_fs_1['readFileSync'])(this['usageFile'],'utf8')['split']('\x0a')['filter'](_0x3c35de=>_0x3c35de['length']>0x0),_0x5b8712=[];for(const _0x1bbaee of _0x5a6a48['slice'](-_0x23693b)){try{_0x5b8712['push'](JSON['parse'](_0x1bbaee));}catch{}}return _0x5b8712;}catch{return[];}}}exports['LicenseStore']=LicenseStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x147ac4,_0x2ac0ed,_0x48f31,_0x5e370b){if(_0x5e370b===undefined)_0x5e370b=_0x48f31;var _0x46aa03=Object['getOwnPropertyDescriptor'](_0x2ac0ed,_0x48f31);(!_0x46aa03||('get'in _0x46aa03?!_0x2ac0ed['__esModule']:_0x46aa03['writable']||_0x46aa03['configurable']))&&(_0x46aa03={'enumerable':!![],'get':function(){return _0x2ac0ed[_0x48f31];}}),Object['defineProperty'](_0x147ac4,_0x5e370b,_0x46aa03);}:function(_0x3cf763,_0x537a74,_0x3ad13b,_0x3a3f1b){if(_0x3a3f1b===undefined)_0x3a3f1b=_0x3ad13b;_0x3cf763[_0x3a3f1b]=_0x537a74[_0x3ad13b];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x2925eb,_0xc74405){Object['defineProperty'](_0x2925eb,'default',{'enumerable':!![],'value':_0xc74405});}:function(_0x5cc77d,_0x1413db){_0x5cc77d['default']=_0x1413db;}),__importStar=this&&this['__importStar']||(function(){var _0x5d82a4=function(_0x2f51c4){return _0x5d82a4=Object['getOwnPropertyNames']||function(_0x4eddc1){var _0x34a086=[];for(var _0x1fa636 in _0x4eddc1)if(Object['prototype']['hasOwnProperty']['call'](_0x4eddc1,_0x1fa636))_0x34a086[_0x34a086['length']]=_0x1fa636;return _0x34a086;},_0x5d82a4(_0x2f51c4);};return function(_0x83b536){if(_0x83b536&&_0x83b536['__esModule'])return _0x83b536;var _0xacaa52={};if(_0x83b536!=null){for(var _0x2255fb=_0x5d82a4(_0x83b536),_0x31b568=0x0;_0x31b568<_0x2255fb['length'];_0x31b568++)if(_0x2255fb[_0x31b568]!=='default')__createBinding(_0xacaa52,_0x83b536,_0x2255fb[_0x31b568]);}return __setModuleDefault(_0xacaa52,_0x83b536),_0xacaa52;};}()),__exportStar=this&&this['__exportStar']||function(_0x43e15f,_0x54df4d){for(var _0x200443 in _0x43e15f)if(_0x200443!=='default'&&!Object['prototype']['hasOwnProperty']['call'](_0x54df4d,_0x200443))__createBinding(_0x54df4d,_0x43e15f,_0x200443);};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['FileBackend']=exports['InMemoryBackend']=void 0x0,exports['createSessionBackend']=createSessionBackend;const fs=__importStar(require('fs')),path=__importStar(require('path'));class InMemoryBackend{['id']='memory';['messages']=[];['load'](){return this['messages'];}['save'](_0x347349){this['messages']=_0x347349['slice']();}['clear'](){this['messages']=[];}}exports['InMemoryBackend']=InMemoryBackend;class FileBackend{['file'];['id'];constructor(_0x111153){this['file']=_0x111153,this['id']='file:'+_0x111153;}['load'](){if(!fs['existsSync'](this['file']))return[];try{return JSON['parse'](fs['readFileSync'](this['file'],'utf8'))['messages']??[];}catch{return[];}}['save'](_0x36653e){fs['mkdirSync'](path['dirname'](this['file']),{'recursive':!![]});const _0x239812=this['file']+'.tmp-'+process['pid'];fs['writeFileSync'](_0x239812,JSON['stringify']({'messages':_0x36653e},null,0x2),{'encoding':'utf8','mode':0x180});try{fs['chmodSync'](_0x239812,0x180);}catch{}fs['renameSync'](_0x239812,this['file']);try{fs['chmodSync'](this['file'],0x180);}catch{}}['clear'](){if(fs['existsSync'](this['file']))fs['unlinkSync'](this['file']);}}exports['FileBackend']=FileBackend;function createSessionBackend(_0x130aae){return _0x130aae?new FileBackend(_0x130aae):new InMemoryBackend();}__exportStar(require('./transcript.js'),exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(
|
|
1
|
+
'use strict';var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x57636a,_0x118a2c,_0x556796,_0x84b04c){if(_0x84b04c===undefined)_0x84b04c=_0x556796;var _0x4184ea=Object['getOwnPropertyDescriptor'](_0x118a2c,_0x556796);(!_0x4184ea||('get'in _0x4184ea?!_0x118a2c['__esModule']:_0x4184ea['writable']||_0x4184ea['configurable']))&&(_0x4184ea={'enumerable':!![],'get':function(){return _0x118a2c[_0x556796];}}),Object['defineProperty'](_0x57636a,_0x84b04c,_0x4184ea);}:function(_0x12f4c2,_0x5ce893,_0x4f9eb7,_0x466621){if(_0x466621===undefined)_0x466621=_0x4f9eb7;_0x12f4c2[_0x466621]=_0x5ce893[_0x4f9eb7];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(_0x1dbb7e,_0x13115b){Object['defineProperty'](_0x1dbb7e,'default',{'enumerable':!![],'value':_0x13115b});}:function(_0x416768,_0x2d966f){_0x416768['default']=_0x2d966f;}),__importStar=this&&this['__importStar']||(function(){var _0x5a5019=function(_0x4a9a3d){return _0x5a5019=Object['getOwnPropertyNames']||function(_0x1270bd){var _0x41bcad=[];for(var _0x412c68 in _0x1270bd)if(Object['prototype']['hasOwnProperty']['call'](_0x1270bd,_0x412c68))_0x41bcad[_0x41bcad['length']]=_0x412c68;return _0x41bcad;},_0x5a5019(_0x4a9a3d);};return function(_0x4b41f0){if(_0x4b41f0&&_0x4b41f0['__esModule'])return _0x4b41f0;var _0x374349={};if(_0x4b41f0!=null){for(var _0x20f7ed=_0x5a5019(_0x4b41f0),_0xa3ac24=0x0;_0xa3ac24<_0x20f7ed['length'];_0xa3ac24++)if(_0x20f7ed[_0xa3ac24]!=='default')__createBinding(_0x374349,_0x4b41f0,_0x20f7ed[_0xa3ac24]);}return __setModuleDefault(_0x374349,_0x4b41f0),_0x374349;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['sessionsRoot']=sessionsRoot,exports['newTranscriptId']=newTranscriptId,exports['sessionDir']=sessionDir,exports['contextFile']=contextFile,exports['wireFile']=wireFile,exports['stateFile']=stateFile,exports['createTranscript']=createTranscript,exports['appendContext']=appendContext,exports['appendWire']=appendWire,exports['readState']=readState,exports['writeState']=writeState,exports['isEmptyTranscript']=isEmptyTranscript,exports['listTranscripts']=listTranscripts,exports['migrateLegacyFile']=migrateLegacyFile;const crypto=__importStar(require('crypto')),fs=__importStar(require('fs')),os=__importStar(require('os')),path=__importStar(require('path'));function sessionsRoot(){if(process.env.TRAYAMBAK_SESSIONS_DIR)return process.env.TRAYAMBAK_SESSIONS_DIR;return path['join'](os['homedir'](),'.trayambak','sessions');}function newTranscriptId(){try{return crypto['randomUUID']();}catch{return Date['now']()+'-'+crypto['randomBytes'](0x8)['toString']('hex');}}function atomicWrite0600(_0x365675,_0x3370d5){fs['mkdirSync'](path['dirname'](_0x365675),{'recursive':!![]});const _0x53d3b7=_0x365675+'.tmp-'+process['pid'];fs['writeFileSync'](_0x53d3b7,_0x3370d5,{'encoding':'utf8','mode':0x180});try{fs['chmodSync'](_0x53d3b7,0x180);}catch{}fs['renameSync'](_0x53d3b7,_0x365675);try{fs['chmodSync'](_0x365675,0x180);}catch{}}function sessionDir(_0x474945){return path['join'](sessionsRoot(),_0x474945);}function contextFile(_0x59025b){return path['join'](sessionDir(_0x59025b),'context.jsonl');}function wireFile(_0x8e5e4b){return path['join'](sessionDir(_0x8e5e4b),'wire.jsonl');}function stateFile(_0x14db6c){return path['join'](sessionDir(_0x14db6c),'state.json');}function createTranscript(_0x4e3e75,_0x12e41c){const _0x137b38=_0x12e41c??newTranscriptId(),_0x492711=sessionDir(_0x137b38);fs['mkdirSync'](_0x492711,{'recursive':!![]});if(!fs['existsSync'](contextFile(_0x137b38)))atomicWrite0600(contextFile(_0x137b38),'');if(!fs['existsSync'](wireFile(_0x137b38)))atomicWrite0600(wireFile(_0x137b38),'');return writeState(_0x137b38,{'title':'Untitled','updatedAt':Date['now'](),'workDir':_0x4e3e75}),{'id':_0x137b38};}function appendContext(_0x30e385,_0x503a35){try{fs['mkdirSync'](sessionDir(_0x30e385),{'recursive':!![]}),fs['appendFileSync'](contextFile(_0x30e385),JSON['stringify'](_0x503a35)+'\x0a','utf8'),touchState(_0x30e385);}catch{}}function appendWire(_0x57ef08,_0x4e8b39){try{fs['mkdirSync'](sessionDir(_0x57ef08),{'recursive':!![]}),fs['appendFileSync'](wireFile(_0x57ef08),JSON['stringify']({'t':Date['now'](),'event':_0x4e8b39})+'\x0a','utf8');}catch{}}function readState(_0x3b9d8a){try{const _0x5814d1=JSON['parse'](fs['readFileSync'](stateFile(_0x3b9d8a),'utf8'));if(!_0x5814d1||typeof _0x5814d1!=='object')return null;return _0x5814d1;}catch{return null;}}function writeState(_0x5c869e,_0x4a26d6){try{atomicWrite0600(stateFile(_0x5c869e),JSON['stringify'](_0x4a26d6,null,0x2));}catch{}}function touchState(_0x321a14){try{const _0x66aa58=readState(_0x321a14);if(!_0x66aa58)return;_0x66aa58['updatedAt']=Date['now']();const _0x4df25e=readFirstUserText(_0x321a14);_0x4df25e&&(!_0x66aa58['title']||_0x66aa58['title']==='Untitled')&&!_0x66aa58['customTitle']&&(_0x66aa58['title']=_0x4df25e['slice'](0x0,0x32)),writeState(_0x321a14,_0x66aa58);}catch{}}function readFirstUserText(_0x5093ca){try{const _0x167c78=wireFile(_0x5093ca);if(!fs['existsSync'](_0x167c78))return null;const _0x1ba885=fs['readFileSync'](_0x167c78,'utf8')['split']('\x0a')['slice'](0x0,0x32);for(const _0x33d7f1 of _0x1ba885){if(!_0x33d7f1['trim']())continue;try{const _0x2734a5=JSON['parse'](_0x33d7f1),_0x4f6245=_0x2734a5?.['event']?.['user_input'];if(typeof _0x4f6245==='string'&&_0x4f6245['trim']())return _0x4f6245['trim']();}catch{continue;}}}catch{}return null;}function isEmptyTranscript(_0x17a11a){try{const _0x274e69=readState(_0x17a11a);if(_0x274e69?.['customTitle'])return![];for(const _0x4323d0 of[contextFile(_0x17a11a),wireFile(_0x17a11a)]){if(!fs['existsSync'](_0x4323d0))continue;const _0x42c1f5=fs['readFileSync'](_0x4323d0,'utf8')['trim']();if(_0x42c1f5['length']>0x0)return![];}return!![];}catch{return![];}}function listTranscripts(){const _0x133fd4=sessionsRoot();try{if(!fs['existsSync'](_0x133fd4))return[];return fs['readdirSync'](_0x133fd4,{'withFileTypes':!![]})['filter'](_0x4357b2=>_0x4357b2['isDirectory']())['map'](_0x2f8961=>({'id':_0x2f8961['name'],'state':readState(_0x2f8961['name'])}))['filter'](_0x2fdb3f=>!isEmptyTranscript(_0x2fdb3f['id']))['sort']((_0x416206,_0x7b0047)=>(_0x7b0047['state']?.['updatedAt']??0x0)-(_0x416206['state']?.['updatedAt']??0x0));}catch{return[];}}function migrateLegacyFile(_0x5dd976){try{const _0x438b47=path['join'](sessionsRoot(),_0x5dd976+'.jsonl'),_0x50dd23=contextFile(_0x5dd976);fs['existsSync'](_0x438b47)&&!fs['existsSync'](_0x50dd23)&&(fs['mkdirSync'](sessionDir(_0x5dd976),{'recursive':!![]}),fs['renameSync'](_0x438b47,_0x50dd23));}catch{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['NullTelemetry']=exports['ConsoleTelemetry']=void 0x0,exports['createTelemetry']=createTelemetry,exports['isTelemetryDisabled']=isTelemetryDisabled;const secrets_js_1=require('../../core/src/secrets.js'),DEBUG_DETAIL_CAP=0x7d0;function redactedDetail(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['NullTelemetry']=exports['ConsoleTelemetry']=void 0x0,exports['createTelemetry']=createTelemetry,exports['isTelemetryDisabled']=isTelemetryDisabled;const secrets_js_1=require('../../core/src/secrets.js'),DEBUG_DETAIL_CAP=0x7d0;function redactedDetail(_0x39d030){const _0x386723={..._0x39d030};delete _0x386723['type'];try{const _0x44647e=JSON['stringify']((0x0,secrets_js_1['redactPayload'])(_0x386723));if(_0x44647e===undefined)return'';return'\x20'+(_0x44647e['length']>DEBUG_DETAIL_CAP?_0x44647e['slice'](0x0,DEBUG_DETAIL_CAP)+'…':_0x44647e);}catch{return'\x20[unserializable]';}}class ConsoleTelemetry{['id']='console';['count']=0x0;['capture'](_0xa965f3){this['count']++;if(isTelemetryDisabled())return;process.env.TRAYAMBAK_TELEMETRY==='debug'&&process['stderr']['write']('[telemetry]\x20'+_0xa965f3['type']+redactedDetail(_0xa965f3)+'\x0a');}['flush'](){process['stderr']['write']('[telemetry]\x20captured\x20'+this['count']+'\x20events\x0a');}}exports['ConsoleTelemetry']=ConsoleTelemetry;class NullTelemetry{['id']='null';['capture'](_0x3ecf47){}['flush'](){}}exports['NullTelemetry']=NullTelemetry;function createTelemetry(_0x5ce57a=![]){if(isTelemetryDisabled())return new NullTelemetry();return _0x5ce57a?new ConsoleTelemetry():new NullTelemetry();}function isTelemetryDisabled(){const _0x5482e0=(process.env.TRAYAMBAK_TELEMETRY??'')['trim']()['toLowerCase']();return _0x5482e0==='0'||_0x5482e0==='false'||_0x5482e0==='off'||_0x5482e0==='no';}
|