gsd-pi 2.50.0-dev.d210a87 → 2.51.0-dev.7d435fe
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 +4 -4
- package/dist/headless-events.d.ts +18 -0
- package/dist/headless-events.js +36 -0
- package/dist/headless-types.d.ts +28 -0
- package/dist/headless-types.js +7 -0
- package/dist/headless.d.ts +8 -3
- package/dist/headless.js +47 -16
- package/dist/help-text.js +16 -5
- package/dist/onboarding.js +5 -4
- package/dist/remote-questions-config.js +1 -1
- package/dist/resources/extensions/async-jobs/async-bash-tool.js +29 -17
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +18 -19
- package/dist/resources/extensions/gsd/auto-dispatch.js +18 -0
- package/dist/resources/extensions/gsd/auto-start.js +2 -0
- package/dist/resources/extensions/gsd/auto-timers.js +24 -2
- package/dist/resources/extensions/gsd/auto-tool-tracking.js +25 -7
- package/dist/resources/extensions/gsd/auto-worktree.js +21 -0
- package/dist/resources/extensions/gsd/auto.js +4 -2
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +95 -69
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +12 -2
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +1 -1
- package/dist/resources/extensions/gsd/claude-import.js +60 -9
- package/dist/resources/extensions/gsd/commands/handlers/auto.js +69 -6
- package/dist/resources/extensions/gsd/commands-config.js +10 -5
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +1 -1
- package/dist/resources/extensions/gsd/detection.js +6 -6
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +3 -3
- package/dist/resources/extensions/gsd/error-classifier.js +105 -0
- package/dist/resources/extensions/gsd/gitignore.js +7 -7
- package/dist/resources/extensions/gsd/gsd-db.js +298 -45
- package/dist/resources/extensions/gsd/init-wizard.js +2 -2
- package/dist/resources/extensions/gsd/key-manager.js +7 -16
- package/dist/resources/extensions/gsd/memory-store.js +28 -13
- package/dist/resources/extensions/gsd/milestone-actions.js +19 -0
- package/dist/resources/extensions/gsd/preferences-models.js +1 -13
- package/dist/resources/extensions/gsd/preferences.js +13 -13
- package/dist/resources/extensions/gsd/prompts/system.md +1 -1
- package/dist/resources/extensions/gsd/provider-error-pause.js +0 -44
- package/dist/resources/extensions/gsd/rule-registry.js +1 -1
- package/dist/resources/extensions/gsd/service-tier.js +13 -2
- package/dist/resources/extensions/gsd/state.js +21 -2
- package/dist/resources/extensions/gsd/tools/complete-milestone.js +3 -10
- package/dist/resources/extensions/gsd/tools/complete-slice.js +3 -17
- package/dist/resources/extensions/gsd/tools/complete-task.js +7 -18
- package/dist/resources/extensions/gsd/tools/plan-milestone.js +26 -17
- package/dist/resources/extensions/gsd/tools/plan-slice.js +25 -14
- package/dist/resources/extensions/gsd/tools/plan-task.js +21 -11
- package/dist/resources/extensions/gsd/tools/reassess-roadmap.js +47 -37
- package/dist/resources/extensions/gsd/tools/replan-slice.js +49 -38
- package/dist/resources/extensions/gsd/tools/validate-milestone.js +23 -16
- package/dist/resources/extensions/gsd/workflow-logger.js +0 -1
- package/dist/resources/extensions/remote-questions/config.js +1 -1
- package/dist/resources/extensions/remote-questions/remote-command.js +1 -1
- package/dist/resources/extensions/search-the-web/native-search.js +1 -1
- package/dist/resources/extensions/search-the-web/provider.js +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +21 -21
- package/dist/web/standalone/.next/build-manifest.json +3 -3
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
- package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.html +2 -2
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +21 -21
- package/dist/web/standalone/.next/server/chunks/2229.js +2 -2
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +2 -2
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/static/chunks/4024.21054f459af5cc78.js +9 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-cfc9a116e6450a6b.js → webpack-024d82be84800e52.js} +1 -1
- package/dist/web/standalone/.next/static/css/a58ef8a151aa0493.css +1 -0
- package/dist/wizard.js +4 -1
- package/package.json +2 -2
- package/packages/pi-ai/dist/models.d.ts +14 -3
- package/packages/pi-ai/dist/models.d.ts.map +1 -1
- package/packages/pi-ai/dist/models.js +53 -10
- package/packages/pi-ai/dist/models.js.map +1 -1
- package/packages/pi-ai/dist/models.test.js +102 -1
- package/packages/pi-ai/dist/models.test.js.map +1 -1
- package/packages/pi-ai/dist/types.d.ts +30 -0
- package/packages/pi-ai/dist/types.d.ts.map +1 -1
- package/packages/pi-ai/dist/types.js.map +1 -1
- package/packages/pi-ai/src/models.test.ts +114 -1
- package/packages/pi-ai/src/models.ts +70 -13
- package/packages/pi-ai/src/types.ts +31 -0
- package/packages/pi-coding-agent/dist/cli/args.d.ts +2 -0
- package/packages/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/cli/args.js +3 -0
- package/packages/pi-coding-agent/dist/cli/args.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/bash-executor.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/bash-executor.js +5 -1
- package/packages/pi-coding-agent/dist/core/bash-executor.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/model-registry.js +9 -4
- package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.d.ts +19 -0
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js +83 -0
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/bash.js +5 -1
- package/packages/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/main.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/main.js +5 -3
- package/packages/pi-coding-agent/dist/main.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +0 -2
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +28 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-client.js +49 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +114 -6
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-protocol-v2.test.d.ts +9 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-protocol-v2.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-protocol-v2.test.js +831 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-protocol-v2.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +66 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
- package/packages/pi-coding-agent/dist/utils/shell.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/utils/shell.js +0 -1
- package/packages/pi-coding-agent/dist/utils/shell.js.map +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/cli/args.ts +4 -0
- package/packages/pi-coding-agent/src/core/bash-executor.ts +5 -1
- package/packages/pi-coding-agent/src/core/model-registry.ts +10 -3
- package/packages/pi-coding-agent/src/core/tools/bash-spawn-windows.test.ts +101 -0
- package/packages/pi-coding-agent/src/core/tools/bash.ts +5 -1
- package/packages/pi-coding-agent/src/index.ts +3 -0
- package/packages/pi-coding-agent/src/main.ts +5 -3
- package/packages/pi-coding-agent/src/modes/index.ts +8 -1
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +0 -2
- package/packages/pi-coding-agent/src/modes/rpc/rpc-client.ts +54 -1
- package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +124 -6
- package/packages/pi-coding-agent/src/modes/rpc/rpc-protocol-v2.test.ts +971 -0
- package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +61 -4
- package/packages/pi-coding-agent/src/utils/shell.ts +0 -1
- package/pkg/package.json +1 -1
- package/src/resources/extensions/async-jobs/async-bash-tool.ts +22 -11
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +19 -20
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +21 -0
- package/src/resources/extensions/gsd/auto-dispatch.ts +19 -0
- package/src/resources/extensions/gsd/auto-start.ts +2 -0
- package/src/resources/extensions/gsd/auto-timers.ts +25 -1
- package/src/resources/extensions/gsd/auto-tool-tracking.ts +30 -6
- package/src/resources/extensions/gsd/auto-worktree.ts +21 -0
- package/src/resources/extensions/gsd/auto.ts +5 -2
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +115 -72
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +11 -2
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +1 -1
- package/src/resources/extensions/gsd/claude-import.ts +58 -9
- package/src/resources/extensions/gsd/commands/handlers/auto.ts +73 -6
- package/src/resources/extensions/gsd/commands-config.ts +11 -5
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +1 -1
- package/src/resources/extensions/gsd/detection.ts +6 -6
- package/src/resources/extensions/gsd/docs/preferences-reference.md +3 -3
- package/src/resources/extensions/gsd/error-classifier.ts +139 -0
- package/src/resources/extensions/gsd/gitignore.ts +7 -7
- package/src/resources/extensions/gsd/gsd-db.ts +355 -63
- package/src/resources/extensions/gsd/init-wizard.ts +2 -2
- package/src/resources/extensions/gsd/key-manager.ts +7 -16
- package/src/resources/extensions/gsd/memory-store.ts +29 -18
- package/src/resources/extensions/gsd/milestone-actions.ts +17 -0
- package/src/resources/extensions/gsd/preferences-models.ts +1 -13
- package/src/resources/extensions/gsd/preferences.ts +12 -13
- package/src/resources/extensions/gsd/prompts/system.md +1 -1
- package/src/resources/extensions/gsd/provider-error-pause.ts +0 -57
- package/src/resources/extensions/gsd/rule-registry.ts +1 -1
- package/src/resources/extensions/gsd/service-tier.ts +14 -2
- package/src/resources/extensions/gsd/state.ts +22 -2
- package/src/resources/extensions/gsd/tests/auto-milestone-target.test.ts +61 -0
- package/src/resources/extensions/gsd/tests/claude-import-marketplace-discovery.test.ts +191 -0
- package/src/resources/extensions/gsd/tests/claude-import-tui.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/commands-config.test.ts +24 -0
- package/src/resources/extensions/gsd/tests/complete-slice.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +106 -0
- package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +35 -7
- package/src/resources/extensions/gsd/tests/detection.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/doctor-git.test.ts +4 -4
- package/src/resources/extensions/gsd/tests/doctor-proactive.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/empty-db-reconciliation.test.ts +79 -0
- package/src/resources/extensions/gsd/tests/git-service.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/idle-watchdog-stall-override.test.ts +125 -0
- package/src/resources/extensions/gsd/tests/init-wizard.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/interactive-tool-idle-exemption.test.ts +119 -0
- package/src/resources/extensions/gsd/tests/key-manager.test.ts +16 -1
- package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +7 -7
- package/src/resources/extensions/gsd/tests/park-db-sync.test.ts +85 -0
- package/src/resources/extensions/gsd/tests/preferences-worktree-sync.test.ts +91 -0
- package/src/resources/extensions/gsd/tests/preferences.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +77 -70
- package/src/resources/extensions/gsd/tests/remediation-completion-guard.test.ts +110 -0
- package/src/resources/extensions/gsd/tests/remote-questions.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/terminated-transient.test.ts +42 -31
- package/src/resources/extensions/gsd/tests/token-cost-display.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/vacuous-truth-slices.test.ts +115 -0
- package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +90 -0
- package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +81 -1
- package/src/resources/extensions/gsd/tests/worktree-preferences-sync.test.ts +130 -0
- package/src/resources/extensions/gsd/tools/complete-milestone.ts +3 -14
- package/src/resources/extensions/gsd/tools/complete-slice.ts +3 -21
- package/src/resources/extensions/gsd/tools/complete-task.ts +9 -22
- package/src/resources/extensions/gsd/tools/plan-milestone.ts +28 -18
- package/src/resources/extensions/gsd/tools/plan-slice.ts +28 -16
- package/src/resources/extensions/gsd/tools/plan-task.ts +24 -12
- package/src/resources/extensions/gsd/tools/reassess-roadmap.ts +54 -42
- package/src/resources/extensions/gsd/tools/replan-slice.ts +53 -40
- package/src/resources/extensions/gsd/tools/validate-milestone.ts +26 -20
- package/src/resources/extensions/gsd/workflow-logger.ts +0 -1
- package/src/resources/extensions/remote-questions/config.ts +1 -1
- package/src/resources/extensions/remote-questions/remote-command.ts +1 -1
- package/src/resources/extensions/search-the-web/native-search.ts +1 -1
- package/src/resources/extensions/search-the-web/provider.ts +1 -1
- package/dist/web/standalone/.next/static/chunks/4024.9ad5def014d90ce4.js +0 -9
- package/dist/web/standalone/.next/static/css/de141508b083f922.css +0 -1
- /package/dist/resources/extensions/gsd/templates/{preferences.md → PREFERENCES.md} +0 -0
- /package/dist/web/standalone/.next/static/{yJIyd5cXPNpmXTv18ZlyC → RqOU-jOv9uZ1Q03P6L6nn}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{yJIyd5cXPNpmXTv18ZlyC → RqOU-jOv9uZ1Q03P6L6nn}/_ssgManifest.js +0 -0
- /package/src/resources/extensions/gsd/templates/{preferences.md → PREFERENCES.md} +0 -0
|
@@ -61,48 +61,55 @@ export async function handleReassessRoadmap(rawParams, basePath) {
|
|
|
61
61
|
catch (err) {
|
|
62
62
|
return { error: `validation failed: ${err.message}` };
|
|
63
63
|
}
|
|
64
|
-
// ── Verify milestone exists and is active ────────────────────────
|
|
65
|
-
const milestone = getMilestone(params.milestoneId);
|
|
66
|
-
if (!milestone) {
|
|
67
|
-
return { error: `milestone not found: ${params.milestoneId}` };
|
|
68
|
-
}
|
|
69
|
-
if (milestone.status === "complete" || milestone.status === "done") {
|
|
70
|
-
return { error: `cannot reassess a closed milestone: ${params.milestoneId} (status: ${milestone.status})` };
|
|
71
|
-
}
|
|
72
|
-
// ── Verify completedSliceId is actually complete ──────────────────
|
|
73
|
-
const completedSlice = getSlice(params.milestoneId, params.completedSliceId);
|
|
74
|
-
if (!completedSlice) {
|
|
75
|
-
return { error: `completedSliceId not found: ${params.milestoneId}/${params.completedSliceId}` };
|
|
76
|
-
}
|
|
77
|
-
if (completedSlice.status !== "complete" && completedSlice.status !== "done") {
|
|
78
|
-
return { error: `completedSliceId ${params.completedSliceId} is not complete (status: ${completedSlice.status}) — reassess can only be called after a slice finishes` };
|
|
79
|
-
}
|
|
80
|
-
// ── Structural enforcement ────────────────────────────────────────
|
|
81
|
-
const existingSlices = getMilestoneSlices(params.milestoneId);
|
|
82
|
-
const completedSliceIds = new Set();
|
|
83
|
-
for (const slice of existingSlices) {
|
|
84
|
-
if (slice.status === "complete" || slice.status === "done") {
|
|
85
|
-
completedSliceIds.add(slice.id);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// Reject modifications to completed slices
|
|
89
|
-
for (const modifiedSlice of params.sliceChanges.modified) {
|
|
90
|
-
if (completedSliceIds.has(modifiedSlice.sliceId)) {
|
|
91
|
-
return { error: `cannot modify completed slice ${modifiedSlice.sliceId}` };
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// Reject removal of completed slices
|
|
95
|
-
for (const removedId of params.sliceChanges.removed) {
|
|
96
|
-
if (completedSliceIds.has(removedId)) {
|
|
97
|
-
return { error: `cannot remove completed slice ${removedId}` };
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
64
|
// ── Compute assessment artifact path ──────────────────────────────
|
|
101
65
|
// Assessment lives in the completed slice's directory
|
|
102
66
|
const assessmentRelPath = join(".gsd", "milestones", params.milestoneId, "slices", params.completedSliceId, `${params.completedSliceId}-ASSESSMENT.md`);
|
|
103
|
-
// ──
|
|
67
|
+
// ── Guards + DB writes inside a single transaction (prevents TOCTOU) ───
|
|
68
|
+
// Guards must be inside the transaction so the state they check cannot
|
|
69
|
+
// change between the read and the write (#2723).
|
|
70
|
+
let guardError = null;
|
|
104
71
|
try {
|
|
105
72
|
transaction(() => {
|
|
73
|
+
// Verify milestone exists and is active
|
|
74
|
+
const milestone = getMilestone(params.milestoneId);
|
|
75
|
+
if (!milestone) {
|
|
76
|
+
guardError = `milestone not found: ${params.milestoneId}`;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (milestone.status === "complete" || milestone.status === "done") {
|
|
80
|
+
guardError = `cannot reassess a closed milestone: ${params.milestoneId} (status: ${milestone.status})`;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Verify completedSliceId is actually complete
|
|
84
|
+
const completedSlice = getSlice(params.milestoneId, params.completedSliceId);
|
|
85
|
+
if (!completedSlice) {
|
|
86
|
+
guardError = `completedSliceId not found: ${params.milestoneId}/${params.completedSliceId}`;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (completedSlice.status !== "complete" && completedSlice.status !== "done") {
|
|
90
|
+
guardError = `completedSliceId ${params.completedSliceId} is not complete (status: ${completedSlice.status}) — reassess can only be called after a slice finishes`;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Structural enforcement — reject modifications/removal of completed slices
|
|
94
|
+
const existingSlices = getMilestoneSlices(params.milestoneId);
|
|
95
|
+
const completedSliceIds = new Set();
|
|
96
|
+
for (const slice of existingSlices) {
|
|
97
|
+
if (slice.status === "complete" || slice.status === "done") {
|
|
98
|
+
completedSliceIds.add(slice.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const modifiedSlice of params.sliceChanges.modified) {
|
|
102
|
+
if (completedSliceIds.has(modifiedSlice.sliceId)) {
|
|
103
|
+
guardError = `cannot modify completed slice ${modifiedSlice.sliceId}`;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
for (const removedId of params.sliceChanges.removed) {
|
|
108
|
+
if (completedSliceIds.has(removedId)) {
|
|
109
|
+
guardError = `cannot remove completed slice ${removedId}`;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
106
113
|
// Record assessment
|
|
107
114
|
insertAssessment({
|
|
108
115
|
path: assessmentRelPath,
|
|
@@ -142,6 +149,9 @@ export async function handleReassessRoadmap(rawParams, basePath) {
|
|
|
142
149
|
catch (err) {
|
|
143
150
|
return { error: `db write failed: ${err.message}` };
|
|
144
151
|
}
|
|
152
|
+
if (guardError) {
|
|
153
|
+
return { error: guardError };
|
|
154
|
+
}
|
|
145
155
|
// ── Render artifacts ──────────────────────────────────────────────
|
|
146
156
|
try {
|
|
147
157
|
const roadmapResult = await renderRoadmapFromDb(basePath, params.milestoneId);
|
|
@@ -46,46 +46,54 @@ export async function handleReplanSlice(rawParams, basePath) {
|
|
|
46
46
|
catch (err) {
|
|
47
47
|
return { error: `validation failed: ${err.message}` };
|
|
48
48
|
}
|
|
49
|
-
// ──
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (parentSlice.status === "complete" || parentSlice.status === "done") {
|
|
55
|
-
return { error: `cannot replan a closed slice: ${params.sliceId} (status: ${parentSlice.status})` };
|
|
56
|
-
}
|
|
57
|
-
// ── Verify blocker task exists and is complete ────────────────────
|
|
58
|
-
const blockerTask = getTask(params.milestoneId, params.sliceId, params.blockerTaskId);
|
|
59
|
-
if (!blockerTask) {
|
|
60
|
-
return { error: `blockerTaskId not found: ${params.milestoneId}/${params.sliceId}/${params.blockerTaskId}` };
|
|
61
|
-
}
|
|
62
|
-
if (blockerTask.status !== "complete" && blockerTask.status !== "done") {
|
|
63
|
-
return { error: `blockerTaskId ${params.blockerTaskId} is not complete (status: ${blockerTask.status}) — the blocker task must be finished before a replan is triggered` };
|
|
64
|
-
}
|
|
65
|
-
// ── Structural enforcement ────────────────────────────────────────
|
|
66
|
-
const existingTasks = getSliceTasks(params.milestoneId, params.sliceId);
|
|
67
|
-
const completedTaskIds = new Set();
|
|
68
|
-
for (const task of existingTasks) {
|
|
69
|
-
if (task.status === "complete" || task.status === "done") {
|
|
70
|
-
completedTaskIds.add(task.id);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// Reject updates to completed tasks
|
|
74
|
-
for (const updatedTask of params.updatedTasks) {
|
|
75
|
-
if (completedTaskIds.has(updatedTask.taskId)) {
|
|
76
|
-
return { error: `cannot modify completed task ${updatedTask.taskId}` };
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Reject removal of completed tasks
|
|
80
|
-
for (const removedId of params.removedTaskIds) {
|
|
81
|
-
if (completedTaskIds.has(removedId)) {
|
|
82
|
-
return { error: `cannot remove completed task ${removedId}` };
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// ── Transaction: DB mutations ─────────────────────────────────────
|
|
86
|
-
const existingTaskIds = new Set(existingTasks.map((t) => t.id));
|
|
49
|
+
// ── Guards + DB writes inside a single transaction (prevents TOCTOU) ───
|
|
50
|
+
// Guards must be inside the transaction so the state they check cannot
|
|
51
|
+
// change between the read and the write (#2723).
|
|
52
|
+
let guardError = null;
|
|
53
|
+
let existingTaskIds = new Set();
|
|
87
54
|
try {
|
|
88
55
|
transaction(() => {
|
|
56
|
+
// Verify parent slice exists and is not closed
|
|
57
|
+
const parentSlice = getSlice(params.milestoneId, params.sliceId);
|
|
58
|
+
if (!parentSlice) {
|
|
59
|
+
guardError = `missing parent slice: ${params.milestoneId}/${params.sliceId}`;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (parentSlice.status === "complete" || parentSlice.status === "done") {
|
|
63
|
+
guardError = `cannot replan a closed slice: ${params.sliceId} (status: ${parentSlice.status})`;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Verify blocker task exists and is complete
|
|
67
|
+
const blockerTask = getTask(params.milestoneId, params.sliceId, params.blockerTaskId);
|
|
68
|
+
if (!blockerTask) {
|
|
69
|
+
guardError = `blockerTaskId not found: ${params.milestoneId}/${params.sliceId}/${params.blockerTaskId}`;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (blockerTask.status !== "complete" && blockerTask.status !== "done") {
|
|
73
|
+
guardError = `blockerTaskId ${params.blockerTaskId} is not complete (status: ${blockerTask.status}) — the blocker task must be finished before a replan is triggered`;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Structural enforcement — reject modifications/removal of completed tasks
|
|
77
|
+
const existingTasks = getSliceTasks(params.milestoneId, params.sliceId);
|
|
78
|
+
const completedTaskIds = new Set();
|
|
79
|
+
for (const task of existingTasks) {
|
|
80
|
+
if (task.status === "complete" || task.status === "done") {
|
|
81
|
+
completedTaskIds.add(task.id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const updatedTask of params.updatedTasks) {
|
|
85
|
+
if (completedTaskIds.has(updatedTask.taskId)) {
|
|
86
|
+
guardError = `cannot modify completed task ${updatedTask.taskId}`;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
for (const removedId of params.removedTaskIds) {
|
|
91
|
+
if (completedTaskIds.has(removedId)) {
|
|
92
|
+
guardError = `cannot remove completed task ${removedId}`;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
existingTaskIds = new Set(existingTasks.map((t) => t.id));
|
|
89
97
|
// Record replan history
|
|
90
98
|
insertReplanHistory({
|
|
91
99
|
milestoneId: params.milestoneId,
|
|
@@ -138,6 +146,9 @@ export async function handleReplanSlice(rawParams, basePath) {
|
|
|
138
146
|
catch (err) {
|
|
139
147
|
return { error: `db write failed: ${err.message}` };
|
|
140
148
|
}
|
|
149
|
+
if (guardError) {
|
|
150
|
+
return { error: guardError };
|
|
151
|
+
}
|
|
141
152
|
// ── Render artifacts ──────────────────────────────────────────────
|
|
142
153
|
try {
|
|
143
154
|
const renderResult = await renderPlanFromDb(basePath, params.milestoneId, params.sliceId);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* renders VALIDATION.md to disk, and invalidates caches.
|
|
6
6
|
*/
|
|
7
7
|
import { join } from "node:path";
|
|
8
|
-
import { transaction,
|
|
8
|
+
import { transaction, insertAssessment, deleteAssessmentByScope, } from "../gsd-db.js";
|
|
9
9
|
import { resolveMilestonePath, clearPathCache } from "../paths.js";
|
|
10
10
|
import { saveFile, clearParseCache } from "../files.js";
|
|
11
11
|
import { invalidateStateCache } from "../state.js";
|
|
@@ -45,7 +45,7 @@ export async function handleValidateMilestone(params, basePath) {
|
|
|
45
45
|
if (!isValidMilestoneVerdict(params.verdict)) {
|
|
46
46
|
return { error: `verdict must be one of: ${VALIDATION_VERDICTS.join(", ")}` };
|
|
47
47
|
}
|
|
48
|
-
// ──
|
|
48
|
+
// ── Resolve paths and render markdown ────────────────────────────────
|
|
49
49
|
const validationMd = renderValidationMarkdown(params);
|
|
50
50
|
let validationPath;
|
|
51
51
|
const milestoneDir = resolveMilestonePath(basePath, params.milestoneId);
|
|
@@ -57,26 +57,33 @@ export async function handleValidateMilestone(params, basePath) {
|
|
|
57
57
|
const manualDir = join(gsdDir, "milestones", params.milestoneId);
|
|
58
58
|
validationPath = join(manualDir, `${params.milestoneId}-VALIDATION.md`);
|
|
59
59
|
}
|
|
60
|
+
// ── DB write first — matches complete-task/complete-slice pattern ───
|
|
61
|
+
// Write DB before disk so a crash between the two leaves a recoverable
|
|
62
|
+
// state: the DB row exists but the file is missing, which projection
|
|
63
|
+
// rendering can regenerate. The inverse (file exists, no DB row) is
|
|
64
|
+
// harder to detect and recover from (#2725).
|
|
65
|
+
const validatedAt = new Date().toISOString();
|
|
66
|
+
transaction(() => {
|
|
67
|
+
insertAssessment({
|
|
68
|
+
path: validationPath,
|
|
69
|
+
milestoneId: params.milestoneId,
|
|
70
|
+
sliceId: null,
|
|
71
|
+
taskId: null,
|
|
72
|
+
status: params.verdict,
|
|
73
|
+
scope: 'milestone-validation',
|
|
74
|
+
fullContent: validationMd,
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
// ── Filesystem render (outside transaction) ────────────────────────────
|
|
78
|
+
// If disk render fails, roll back the DB row so state stays consistent.
|
|
60
79
|
try {
|
|
61
80
|
await saveFile(validationPath, validationMd);
|
|
62
81
|
}
|
|
63
82
|
catch (renderErr) {
|
|
64
|
-
process.stderr.write(`gsd-db: validate_milestone — disk render failed: ${renderErr.message}\n`);
|
|
83
|
+
process.stderr.write(`gsd-db: validate_milestone — disk render failed, rolling back DB row: ${renderErr.message}\n`);
|
|
84
|
+
deleteAssessmentByScope(params.milestoneId, 'milestone-validation');
|
|
65
85
|
return { error: `disk render failed: ${renderErr.message}` };
|
|
66
86
|
}
|
|
67
|
-
// ── DB write — store in assessments table ──────────────────────────────
|
|
68
|
-
const validatedAt = new Date().toISOString();
|
|
69
|
-
transaction(() => {
|
|
70
|
-
const adapter = _getAdapter();
|
|
71
|
-
adapter.prepare(`INSERT OR REPLACE INTO assessments (path, milestone_id, slice_id, task_id, status, scope, full_content, created_at)
|
|
72
|
-
VALUES (:path, :mid, NULL, NULL, :verdict, 'milestone-validation', :content, :created_at)`).run({
|
|
73
|
-
":path": validationPath,
|
|
74
|
-
":mid": params.milestoneId,
|
|
75
|
-
":verdict": params.verdict,
|
|
76
|
-
":content": validationMd,
|
|
77
|
-
":created_at": validatedAt,
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
87
|
invalidateStateCache();
|
|
81
88
|
clearPathCache();
|
|
82
89
|
clearParseCache();
|
|
@@ -158,7 +158,6 @@ export function readAuditLog(basePath) {
|
|
|
158
158
|
*/
|
|
159
159
|
export function _resetLogs() {
|
|
160
160
|
_buffer = [];
|
|
161
|
-
_auditBasePath = null;
|
|
162
161
|
}
|
|
163
162
|
// ─── Internal ───────────────────────────────────────────────────────────
|
|
164
163
|
function _push(severity, component, message, context) {
|
|
@@ -43,7 +43,7 @@ function hydrateRemoteTokensFromAuth() {
|
|
|
43
43
|
for (const [providerId, envVar] of needed) {
|
|
44
44
|
try {
|
|
45
45
|
const creds = auth.getCredentialsForProvider(providerId);
|
|
46
|
-
const apiKeyCred = creds.find((c) => c.type === "api_key");
|
|
46
|
+
const apiKeyCred = creds.find((c) => c.type === "api_key" && !!c.key);
|
|
47
47
|
if (apiKeyCred?.key) {
|
|
48
48
|
process.env[envVar] = apiKeyCred.key;
|
|
49
49
|
}
|
|
@@ -301,7 +301,7 @@ function saveProviderToken(provider, token) {
|
|
|
301
301
|
}
|
|
302
302
|
function removeProviderToken(provider) {
|
|
303
303
|
const auth = getAuthStorage();
|
|
304
|
-
auth.
|
|
304
|
+
auth.remove(provider);
|
|
305
305
|
}
|
|
306
306
|
export function saveRemoteQuestionsConfig(channel, channelId) {
|
|
307
307
|
const prefsPath = getGlobalGSDPreferencesPath();
|
|
@@ -22,7 +22,7 @@ const THINKING_TYPES = new Set(["thinking", "redacted_thinking"]);
|
|
|
22
22
|
export const MAX_NATIVE_SEARCHES_PER_SESSION = 15;
|
|
23
23
|
/** When true, skip native web search injection and keep Brave/custom tools active on Anthropic. */
|
|
24
24
|
export function preferBraveSearch() {
|
|
25
|
-
//
|
|
25
|
+
// PREFERENCES.md takes priority over env var
|
|
26
26
|
const prefsPref = resolveSearchProviderFromPreferences();
|
|
27
27
|
if (prefsPref === "brave" || prefsPref === "tavily" || prefsPref === "ollama")
|
|
28
28
|
return true;
|
|
@@ -91,7 +91,7 @@ export function resolveSearchProvider(overridePreference) {
|
|
|
91
91
|
pref = overridePreference;
|
|
92
92
|
}
|
|
93
93
|
else {
|
|
94
|
-
//
|
|
94
|
+
// PREFERENCES.md takes priority over auth.json
|
|
95
95
|
const mdPref = resolveSearchProviderFromPreferences();
|
|
96
96
|
if (mdPref && mdPref !== 'auto' && mdPref !== 'native') {
|
|
97
97
|
pref = mdPref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
RqOU-jOv9uZ1Q03P6L6nn
|
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"/_not-found/page": "/_not-found",
|
|
3
2
|
"/_global-error/page": "/_global-error",
|
|
3
|
+
"/_not-found/page": "/_not-found",
|
|
4
|
+
"/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
|
|
4
5
|
"/api/boot/route": "/api/boot",
|
|
6
|
+
"/api/dev-mode/route": "/api/dev-mode",
|
|
5
7
|
"/api/bridge-terminal/resize/route": "/api/bridge-terminal/resize",
|
|
6
|
-
"/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
|
|
7
8
|
"/api/bridge-terminal/stream/route": "/api/bridge-terminal/stream",
|
|
8
|
-
"/api/
|
|
9
|
+
"/api/cleanup/route": "/api/cleanup",
|
|
9
10
|
"/api/browse-directories/route": "/api/browse-directories",
|
|
10
|
-
"/api/
|
|
11
|
-
"/api/dev-mode/route": "/api/dev-mode",
|
|
12
|
-
"/api/forensics/route": "/api/forensics",
|
|
11
|
+
"/api/doctor/route": "/api/doctor",
|
|
13
12
|
"/api/export-data/route": "/api/export-data",
|
|
14
|
-
"/api/
|
|
13
|
+
"/api/forensics/route": "/api/forensics",
|
|
15
14
|
"/api/git/route": "/api/git",
|
|
16
15
|
"/api/history/route": "/api/history",
|
|
17
16
|
"/api/inspect/route": "/api/inspect",
|
|
18
|
-
"/api/hooks/route": "/api/hooks",
|
|
19
|
-
"/api/knowledge/route": "/api/knowledge",
|
|
20
17
|
"/api/experimental/route": "/api/experimental",
|
|
18
|
+
"/api/captures/route": "/api/captures",
|
|
21
19
|
"/api/live-state/route": "/api/live-state",
|
|
22
|
-
"/api/
|
|
20
|
+
"/api/hooks/route": "/api/hooks",
|
|
23
21
|
"/api/onboarding/route": "/api/onboarding",
|
|
24
22
|
"/api/recovery/route": "/api/recovery",
|
|
25
|
-
"/api/
|
|
26
|
-
"/api/session/command/route": "/api/session/command",
|
|
23
|
+
"/api/preferences/route": "/api/preferences",
|
|
27
24
|
"/api/projects/route": "/api/projects",
|
|
28
|
-
"/api/session/
|
|
29
|
-
"/api/
|
|
30
|
-
"/api/skill-health/route": "/api/skill-health",
|
|
31
|
-
"/api/shutdown/route": "/api/shutdown",
|
|
25
|
+
"/api/session/command/route": "/api/session/command",
|
|
26
|
+
"/api/session/browser/route": "/api/session/browser",
|
|
32
27
|
"/api/session/events/route": "/api/session/events",
|
|
33
|
-
"/api/
|
|
28
|
+
"/api/settings-data/route": "/api/settings-data",
|
|
29
|
+
"/api/knowledge/route": "/api/knowledge",
|
|
34
30
|
"/api/files/route": "/api/files",
|
|
31
|
+
"/api/shutdown/route": "/api/shutdown",
|
|
32
|
+
"/api/session/manage/route": "/api/session/manage",
|
|
33
|
+
"/api/skill-health/route": "/api/skill-health",
|
|
35
34
|
"/api/terminal/resize/route": "/api/terminal/resize",
|
|
36
35
|
"/api/terminal/input/route": "/api/terminal/input",
|
|
36
|
+
"/api/switch-root/route": "/api/switch-root",
|
|
37
|
+
"/api/terminal/sessions/route": "/api/terminal/sessions",
|
|
38
|
+
"/api/steer/route": "/api/steer",
|
|
37
39
|
"/api/visualizer/route": "/api/visualizer",
|
|
40
|
+
"/api/update/route": "/api/update",
|
|
41
|
+
"/api/terminal/upload/route": "/api/terminal/upload",
|
|
38
42
|
"/api/terminal/stream/route": "/api/terminal/stream",
|
|
39
|
-
"/api/terminal/sessions/route": "/api/terminal/sessions",
|
|
40
|
-
"/api/switch-root/route": "/api/switch-root",
|
|
41
43
|
"/api/remote-questions/route": "/api/remote-questions",
|
|
42
|
-
"/api/terminal/upload/route": "/api/terminal/upload",
|
|
43
44
|
"/api/undo/route": "/api/undo",
|
|
44
|
-
"/api/update/route": "/api/update",
|
|
45
45
|
"/page": "/"
|
|
46
46
|
}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/RqOU-jOv9uZ1Q03P6L6nn/_buildManifest.js",
|
|
8
|
+
"static/RqOU-jOv9uZ1Q03P6L6nn/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
|
-
"static/chunks/webpack-
|
|
11
|
+
"static/chunks/webpack-024d82be84800e52.js",
|
|
12
12
|
"static/chunks/4bd1b696-e5d7c65570c947b7.js",
|
|
13
13
|
"static/chunks/3794-337d1ca25ad99a89.js",
|
|
14
14
|
"static/chunks/main-app-fdab67f7802d7832.js"
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"dynamicRoutes": {},
|
|
79
79
|
"notFoundRoutes": [],
|
|
80
80
|
"preview": {
|
|
81
|
-
"previewModeId": "
|
|
82
|
-
"previewModeSigningKey": "
|
|
83
|
-
"previewModeEncryptionKey": "
|
|
81
|
+
"previewModeId": "4945dced8a82d77f0c3a8c70dcd06251",
|
|
82
|
+
"previewModeSigningKey": "b20961d59db25bfca5bfa7acc3da50b56169d4b5a455aab4b0ff9ce00a2c5eac",
|
|
83
|
+
"previewModeEncryptionKey": "0ed844a3b328c46f8b542601075f3c75390f3615dfb1acdf4d08586fdfe55731"
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"static/chunks/363642f4.f9053a63f1b97508.js",
|
|
7
7
|
"static/chunks/4986-c2fc8845ce785303.js",
|
|
8
8
|
"static/chunks/2008.817d0885545aaea9.js",
|
|
9
|
-
"static/chunks/4024.
|
|
9
|
+
"static/chunks/4024.21054f459af5cc78.js"
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
12
|
"components/gsd/chat-mode.tsx -> react-markdown": {
|
package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"21942":{"*":{"id":"18550","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"99703","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"65720","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/components/theme-provider.tsx":{"id":21942,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/components/ui/sonner.tsx":{"id":61549,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-sans\"}],\"variableName\":\"geistSans\"}":{"id":85048,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-mono\"}],\"variableName\":\"geistMono\"}":{"id":35696,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/globals.css":{"id":66872,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/page.tsx":{"id":66919,"name":"*","chunks":["8974","static/chunks/app/page-b950e4e384cc62b3.js"],"async":false}},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/":[],"/__w/gsd-2/gsd-2/web/app/layout":[{"inlined":false,"path":"static/css/de70bee13400563f.css"},{"inlined":false,"path":"static/css/
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"21942":{"*":{"id":"18550","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"99703","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"65720","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/components/theme-provider.tsx":{"id":21942,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/components/ui/sonner.tsx":{"id":61549,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-sans\"}],\"variableName\":\"geistSans\"}":{"id":85048,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-mono\"}],\"variableName\":\"geistMono\"}":{"id":35696,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/globals.css":{"id":66872,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/page.tsx":{"id":66919,"name":"*","chunks":["8974","static/chunks/app/page-b950e4e384cc62b3.js"],"async":false}},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/":[],"/__w/gsd-2/gsd-2/web/app/layout":[{"inlined":false,"path":"static/css/de70bee13400563f.css"},{"inlined":false,"path":"static/css/a58ef8a151aa0493.css"}],"/__w/gsd-2/gsd-2/web/app/page":[],"/__w/gsd-2/gsd-2/web/app/_global-error/page":[]},"rscModuleMapping":{"21942":{"*":{"id":"9796","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"85561","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"99647","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><!--RqOU_jOv9uZ1Q03P6L6nn--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-024d82be84800e52.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-024d82be84800e52.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[90484,[],\"ViewportBoundary\"]\n9:I[90484,[],\"MetadataBoundary\"]\nb:I[27123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"RqOU-jOv9uZ1Q03P6L6nn\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
7:I[90484,[],"ViewportBoundary"]
|
|
7
7
|
9:I[90484,[],"MetadataBoundary"]
|
|
8
8
|
b:I[27123,[],""]
|
|
9
|
-
0:{"P":null,"b":"
|
|
9
|
+
0:{"P":null,"b":"RqOU-jOv9uZ1Q03P6L6nn","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true}
|
|
10
10
|
8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
11
11
|
6:null
|
|
12
12
|
a:[]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
7:I[90484,[],"ViewportBoundary"]
|
|
7
7
|
9:I[90484,[],"MetadataBoundary"]
|
|
8
8
|
b:I[27123,[],""]
|
|
9
|
-
0:{"P":null,"b":"
|
|
9
|
+
0:{"P":null,"b":"RqOU-jOv9uZ1Q03P6L6nn","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true}
|
|
10
10
|
8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
11
11
|
6:null
|
|
12
12
|
a:[]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[90484,[],"OutletBoundary"]
|
|
3
3
|
3:"$Sreact.suspense"
|
|
4
|
-
0:{"buildId":"
|
|
4
|
+
0:{"buildId":"RqOU-jOv9uZ1Q03P6L6nn","rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false}
|
|
5
5
|
4:null
|
package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[57121,[],""]
|
|
3
3
|
3:I[74581,[],""]
|
|
4
|
-
0:{"buildId":"
|
|
4
|
+
0:{"buildId":"RqOU-jOv9uZ1Q03P6L6nn","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
|