@opengsd/gsd-pi 1.1.1-dev.b2556262 → 1.2.0-dev.4813ead6
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/dist/cli-web-branch.d.ts +2 -0
- package/dist/cli-web-branch.js +9 -2
- package/dist/help-text.js +5 -0
- package/dist/project-sessions.js +4 -2
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/ask-user-questions.js +78 -23
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +101 -237
- package/dist/resources/extensions/claude-code-cli/turn-assembler.js +224 -0
- package/dist/resources/extensions/github-sync/templates.js +3 -3
- package/dist/resources/extensions/gsd/artifact-projection.js +14 -0
- package/dist/resources/extensions/gsd/auto/contracts.js +8 -1
- package/dist/resources/extensions/gsd/auto/loop.js +74 -56
- package/dist/resources/extensions/gsd/auto/orchestrator.js +763 -63
- package/dist/resources/extensions/gsd/auto/phases.js +28 -3
- package/dist/resources/extensions/gsd/auto/run-unit.js +2 -1
- package/dist/resources/extensions/gsd/auto/session.js +3 -0
- package/dist/resources/extensions/gsd/auto-dashboard.js +16 -4
- package/dist/resources/extensions/gsd/auto-dispatch.js +6 -5
- package/dist/resources/extensions/gsd/auto-model-selection.js +8 -0
- package/dist/resources/extensions/gsd/auto-post-unit.js +4 -3
- package/dist/resources/extensions/gsd/auto-prompts.js +191 -9
- package/dist/resources/extensions/gsd/auto-recovery.js +48 -49
- package/dist/resources/extensions/gsd/auto-runtime-state.js +17 -0
- package/dist/resources/extensions/gsd/auto-start.js +12 -23
- package/dist/resources/extensions/gsd/auto-timers.js +16 -2
- package/dist/resources/extensions/gsd/auto-tool-tracking.js +37 -0
- package/dist/resources/extensions/gsd/auto-unit-tool-scope.js +33 -29
- package/dist/resources/extensions/gsd/auto-verification.js +7 -7
- package/dist/resources/extensions/gsd/auto-worktree.js +45 -36
- package/dist/resources/extensions/gsd/auto.js +73 -471
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +28 -37
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +11 -37
- package/dist/resources/extensions/gsd/bootstrap/query-tools.js +2 -2
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +103 -138
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +63 -4
- package/dist/resources/extensions/gsd/closeout-consistency-gate.js +21 -4
- package/dist/resources/extensions/gsd/codebase-generator.js +8 -4
- package/dist/resources/extensions/gsd/commands/handlers/auto.js +3 -0
- package/dist/resources/extensions/gsd/commands-handlers.js +20 -0
- package/dist/resources/extensions/gsd/commands-inspect.js +4 -8
- package/dist/resources/extensions/gsd/commands-maintenance.js +61 -41
- package/dist/resources/extensions/gsd/commands-ship.js +2 -2
- package/dist/resources/extensions/gsd/commands-verdict.js +12 -2
- package/dist/resources/extensions/gsd/db-workspace.js +103 -0
- package/dist/resources/extensions/gsd/debug-logger.js +10 -0
- package/dist/resources/extensions/gsd/delegation-policy.js +2 -10
- package/dist/resources/extensions/gsd/discussion-handoff.js +218 -0
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +9 -0
- package/dist/resources/extensions/gsd/doctor-proactive.js +7 -2
- package/dist/resources/extensions/gsd/doctor.js +16 -9
- package/dist/resources/extensions/gsd/error-classifier.js +1 -1
- package/dist/resources/extensions/gsd/git-conflict-state.js +16 -1
- package/dist/resources/extensions/gsd/gsd-db.js +12 -0
- package/dist/resources/extensions/gsd/guided-flow.js +36 -470
- package/dist/resources/extensions/gsd/guided-unit-completion.js +225 -0
- package/dist/resources/extensions/gsd/markdown-renderer.js +33 -33
- package/dist/resources/extensions/gsd/mcp-filter.js +8 -1
- package/dist/resources/extensions/gsd/mcp-tool-name.js +26 -0
- package/dist/resources/extensions/gsd/md-importer.js +4 -3
- package/dist/resources/extensions/gsd/migrate/safety.js +2 -2
- package/dist/resources/extensions/gsd/migration-auto-check.js +3 -2
- package/dist/resources/extensions/gsd/milestone-closeout-proof.js +72 -0
- package/dist/resources/extensions/gsd/milestone-closeout.js +12 -4
- package/dist/resources/extensions/gsd/milestone-merge-transaction.js +10 -0
- package/dist/resources/extensions/gsd/milestone-planning-persistence.js +156 -0
- package/dist/resources/extensions/gsd/milestone-readiness.js +77 -0
- package/dist/resources/extensions/gsd/milestone-settlement.js +50 -0
- package/dist/resources/extensions/gsd/milestone-validation-evidence.js +73 -0
- package/dist/resources/extensions/gsd/milestone-validation-verdict.js +57 -0
- package/dist/resources/extensions/gsd/native-git-bridge.js +45 -0
- package/dist/resources/extensions/gsd/parallel-eligibility.js +3 -6
- package/dist/resources/extensions/gsd/parallel-orchestrator.js +3 -2
- package/dist/resources/extensions/gsd/preferences-diagnostics.js +67 -0
- package/dist/resources/extensions/gsd/preferences.js +147 -29
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +1 -0
- package/dist/resources/extensions/gsd/prompts/discuss.md +6 -7
- package/dist/resources/extensions/gsd/prompts/execute-task.md +2 -0
- package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +5 -7
- package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +6 -6
- package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +1 -2
- package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +5 -6
- package/dist/resources/extensions/gsd/prompts/plan-milestone.md +2 -0
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +2 -1
- package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -0
- package/dist/resources/extensions/gsd/prompts/research-milestone.md +2 -2
- package/dist/resources/extensions/gsd/prompts/system.md +1 -1
- package/dist/resources/extensions/gsd/prompts/validate-milestone.md +5 -3
- package/dist/resources/extensions/gsd/provider-payload-policy.js +83 -0
- package/dist/resources/extensions/gsd/pull-request-process.js +13 -0
- package/dist/resources/extensions/gsd/quality-gate-closure.js +109 -0
- package/dist/resources/extensions/gsd/question-transport.js +86 -0
- package/dist/resources/extensions/gsd/roadmap-slices.js +8 -2
- package/dist/resources/extensions/gsd/schemas/parsers.js +6 -1
- package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +3 -2
- package/dist/resources/extensions/gsd/state-reconciliation/drift/artifact-db.js +21 -1
- package/dist/resources/extensions/gsd/state.js +13 -5
- package/dist/resources/extensions/gsd/templates/plan.md +7 -0
- package/dist/resources/extensions/gsd/templates/project.md +1 -0
- package/dist/resources/extensions/gsd/templates/roadmap.md +1 -1
- package/dist/resources/extensions/gsd/templates/uat.md +5 -1
- package/dist/resources/extensions/gsd/tool-contract.js +52 -8
- package/dist/resources/extensions/gsd/tool-presentation-plan.js +15 -34
- package/dist/resources/extensions/gsd/tool-surface-snapshot.js +17 -0
- package/dist/resources/extensions/gsd/tools/plan-milestone.js +15 -143
- package/dist/resources/extensions/gsd/tools/reassess-roadmap.js +39 -0
- package/dist/resources/extensions/gsd/tools/validate-milestone.js +15 -78
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +169 -20
- package/dist/resources/extensions/gsd/uat-policy.js +16 -10
- package/dist/resources/extensions/gsd/uat-run.js +9 -14
- package/dist/resources/extensions/gsd/unit-context-composer.js +40 -20
- package/dist/resources/extensions/gsd/unit-runtime.js +3 -2
- package/dist/resources/extensions/gsd/unit-tool-contracts.js +2 -1
- package/dist/resources/extensions/gsd/user-input-boundary.js +65 -4
- package/dist/resources/extensions/gsd/validation-block-guard.js +2 -0
- package/dist/resources/extensions/gsd/web-app-uat.js +80 -0
- package/dist/resources/extensions/gsd/workflow-mcp.js +15 -102
- package/dist/resources/extensions/gsd/workflow-reconcile.js +4 -3
- package/dist/resources/extensions/gsd/workflow-tool-surface.js +46 -0
- package/dist/resources/extensions/gsd/workspace-git-guard.js +2 -0
- package/dist/resources/extensions/gsd/worktree-state-projection.js +33 -4
- package/dist/resources/extensions/gsd/worktree-telemetry.js +12 -0
- package/dist/resources/extensions/shared/interview-ui.js +2 -2
- package/dist/resources/shared/claude-runtime-floor.js +182 -0
- package/dist/tsconfig.extensions.tsbuildinfo +1 -0
- package/dist/update-cmd.js +20 -0
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +5 -5
- 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 +8 -8
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- 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.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/mcp-connections/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +5 -5
- package/dist/web/standalone/.next/server/chunks/5047.js +2 -0
- package/dist/web/standalone/.next/server/chunks/5124.js +1 -0
- package/dist/web/standalone/.next/server/chunks/8357.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 +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/static/chunks/2659.b7b129ee6a769448.js +1 -0
- package/dist/web/standalone/.next/static/chunks/2772.bfa657f49f955239.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{3616.4113d484a994e411.js → 3616.3c60753b8ffcbd2e.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/4283.e4873b058df143a1.js +2 -0
- package/dist/web/standalone/.next/static/chunks/5826.a46ecdd1cfe8dabc.js +1 -0
- package/dist/web/standalone/.next/static/chunks/796.cf859a427a2cb2ac.js +10 -0
- package/dist/web/standalone/.next/static/chunks/8785.2e5a118797fb2dd2.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-dda80a1ef5587410.js → webpack-fbea77b5f9953368.js} +1 -1
- package/dist/web/standalone/node_modules/@gsd/native/package.json +1 -1
- package/dist/web/standalone/node_modules/node-pty/build/Makefile +1 -1
- package/dist/web/standalone/node_modules/postcss/lib/container.js +26 -18
- package/dist/web/standalone/node_modules/postcss/lib/css-syntax-error.js +47 -14
- package/dist/web/standalone/node_modules/postcss/lib/declaration.js +4 -4
- package/dist/web/standalone/node_modules/postcss/lib/fromJSON.js +3 -3
- package/dist/web/standalone/node_modules/postcss/lib/input.js +54 -29
- package/dist/web/standalone/node_modules/postcss/lib/lazy-result.js +47 -37
- package/dist/web/standalone/node_modules/postcss/lib/map-generator.js +26 -9
- package/dist/web/standalone/node_modules/postcss/lib/no-work-result.js +57 -55
- package/dist/web/standalone/node_modules/postcss/lib/node.js +99 -31
- package/dist/web/standalone/node_modules/postcss/lib/parse.js +1 -1
- package/dist/web/standalone/node_modules/postcss/lib/parser.js +10 -9
- package/dist/web/standalone/node_modules/postcss/lib/postcss.js +12 -12
- package/dist/web/standalone/node_modules/postcss/lib/previous-map.js +30 -11
- package/dist/web/standalone/node_modules/postcss/lib/processor.js +7 -7
- package/dist/web/standalone/node_modules/postcss/lib/result.js +5 -5
- package/dist/web/standalone/node_modules/postcss/lib/rule.js +6 -6
- package/dist/web/standalone/node_modules/postcss/lib/stringifier.js +69 -28
- package/dist/web/standalone/node_modules/postcss/lib/tokenize.js +6 -2
- package/dist/web/standalone/node_modules/postcss/package.json +48 -48
- package/dist/web-mode.d.ts +2 -0
- package/dist/web-mode.js +20 -8
- package/package.json +17 -11
- package/packages/cloud-mcp-gateway/package.json +2 -2
- package/packages/contracts/package.json +1 -1
- package/packages/daemon/package.json +4 -4
- package/packages/gsd-agent-core/dist/session/agent-session-extensions.d.ts +2 -0
- package/packages/gsd-agent-core/dist/session/agent-session-extensions.d.ts.map +1 -1
- package/packages/gsd-agent-core/dist/session/agent-session-extensions.js +14 -0
- package/packages/gsd-agent-core/dist/session/agent-session-extensions.js.map +1 -1
- package/packages/gsd-agent-core/package.json +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +3 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +106 -40
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.js +6 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
- package/packages/gsd-agent-modes/package.json +7 -7
- package/packages/mcp-server/dist/server.d.ts +10 -0
- package/packages/mcp-server/dist/server.d.ts.map +1 -1
- package/packages/mcp-server/dist/server.js +8 -0
- package/packages/mcp-server/dist/server.js.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts +41 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +2 -1
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +3 -3
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/dist/image-models.generated.d.ts +30 -0
- package/packages/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/image-models.generated.js +30 -0
- package/packages/pi-ai/dist/image-models.generated.js.map +1 -1
- package/packages/pi-ai/dist/models.generated.d.ts +8 -127
- package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/models.generated.js +47 -166
- package/packages/pi-ai/dist/models.generated.js.map +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.js +11 -3
- package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/packages/pi-coding-agent/package.json +7 -7
- package/packages/pi-tui/dist/components/input.js +1 -1
- package/packages/pi-tui/dist/components/input.js.map +1 -1
- package/packages/pi-tui/dist/keys.d.ts.map +1 -1
- package/packages/pi-tui/dist/keys.js +39 -30
- package/packages/pi-tui/dist/keys.js.map +1 -1
- package/packages/pi-tui/dist/stdin-buffer.d.ts.map +1 -1
- package/packages/pi-tui/dist/stdin-buffer.js +22 -0
- package/packages/pi-tui/dist/stdin-buffer.js.map +1 -1
- package/packages/pi-tui/package.json +2 -2
- package/packages/rpc-client/package.json +2 -2
- package/pkg/package.json +1 -1
- package/scripts/install/deps.js +10 -0
- package/scripts/link-workspace-packages.cjs +7 -40
- package/src/resources/extensions/ask-user-questions.ts +87 -24
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +126 -289
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +242 -2
- package/src/resources/extensions/claude-code-cli/turn-assembler.ts +287 -0
- package/src/resources/extensions/github-sync/templates.ts +3 -3
- package/src/resources/extensions/github-sync/tests/templates.test.ts +2 -2
- package/src/resources/extensions/gsd/artifact-projection.ts +31 -0
- package/src/resources/extensions/gsd/auto/contracts.ts +40 -121
- package/src/resources/extensions/gsd/auto/loop-deps.ts +2 -0
- package/src/resources/extensions/gsd/auto/loop.ts +83 -61
- package/src/resources/extensions/gsd/auto/orchestrator.ts +913 -64
- package/src/resources/extensions/gsd/auto/phases.ts +35 -3
- package/src/resources/extensions/gsd/auto/run-unit.ts +2 -1
- package/src/resources/extensions/gsd/auto/session.ts +4 -0
- package/src/resources/extensions/gsd/auto-dashboard.ts +18 -4
- package/src/resources/extensions/gsd/auto-dispatch.ts +20 -7
- package/src/resources/extensions/gsd/auto-model-selection.ts +8 -0
- package/src/resources/extensions/gsd/auto-post-unit.ts +4 -3
- package/src/resources/extensions/gsd/auto-prompts.ts +220 -9
- package/src/resources/extensions/gsd/auto-recovery.ts +50 -50
- package/src/resources/extensions/gsd/auto-runtime-state.ts +30 -0
- package/src/resources/extensions/gsd/auto-start.ts +17 -20
- package/src/resources/extensions/gsd/auto-timers.ts +16 -2
- package/src/resources/extensions/gsd/auto-tool-tracking.ts +40 -0
- package/src/resources/extensions/gsd/auto-unit-tool-scope.ts +42 -30
- package/src/resources/extensions/gsd/auto-verification.ts +7 -8
- package/src/resources/extensions/gsd/auto-worktree.ts +57 -42
- package/src/resources/extensions/gsd/auto.ts +96 -508
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +29 -37
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +10 -37
- package/src/resources/extensions/gsd/bootstrap/query-tools.ts +2 -2
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +120 -151
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +107 -3
- package/src/resources/extensions/gsd/closeout-consistency-gate.ts +27 -5
- package/src/resources/extensions/gsd/codebase-generator.ts +9 -5
- package/src/resources/extensions/gsd/commands/handlers/auto.ts +3 -0
- package/src/resources/extensions/gsd/commands-handlers.ts +18 -0
- package/src/resources/extensions/gsd/commands-inspect.ts +7 -8
- package/src/resources/extensions/gsd/commands-maintenance.ts +74 -40
- package/src/resources/extensions/gsd/commands-ship.ts +2 -2
- package/src/resources/extensions/gsd/commands-verdict.ts +19 -2
- package/src/resources/extensions/gsd/db-workspace.ts +170 -0
- package/src/resources/extensions/gsd/debug-logger.ts +11 -0
- package/src/resources/extensions/gsd/delegation-policy.ts +3 -11
- package/src/resources/extensions/gsd/discussion-handoff.ts +276 -0
- package/src/resources/extensions/gsd/docs/preferences-reference.md +9 -0
- package/src/resources/extensions/gsd/doctor-proactive.ts +8 -2
- package/src/resources/extensions/gsd/doctor.ts +15 -5
- package/src/resources/extensions/gsd/error-classifier.ts +1 -1
- package/src/resources/extensions/gsd/git-conflict-state.ts +17 -1
- package/src/resources/extensions/gsd/gsd-db.ts +12 -0
- package/src/resources/extensions/gsd/guided-flow.ts +49 -560
- package/src/resources/extensions/gsd/guided-unit-completion.ts +275 -0
- package/src/resources/extensions/gsd/markdown-renderer.ts +40 -20
- package/src/resources/extensions/gsd/mcp-filter.ts +9 -1
- package/src/resources/extensions/gsd/mcp-tool-name.ts +35 -0
- package/src/resources/extensions/gsd/md-importer.ts +3 -3
- package/src/resources/extensions/gsd/migrate/safety.ts +2 -2
- package/src/resources/extensions/gsd/migration-auto-check.ts +2 -2
- package/src/resources/extensions/gsd/milestone-closeout-proof.ts +131 -0
- package/src/resources/extensions/gsd/milestone-closeout.ts +12 -4
- package/src/resources/extensions/gsd/milestone-merge-transaction.ts +47 -0
- package/src/resources/extensions/gsd/milestone-planning-persistence.ts +224 -0
- package/src/resources/extensions/gsd/milestone-readiness.ts +125 -0
- package/src/resources/extensions/gsd/milestone-settlement.ts +81 -0
- package/src/resources/extensions/gsd/milestone-validation-evidence.ts +95 -0
- package/src/resources/extensions/gsd/milestone-validation-verdict.ts +80 -0
- package/src/resources/extensions/gsd/native-git-bridge.ts +48 -0
- package/src/resources/extensions/gsd/parallel-eligibility.ts +4 -5
- package/src/resources/extensions/gsd/parallel-orchestrator.ts +6 -2
- package/src/resources/extensions/gsd/preferences-diagnostics.ts +98 -0
- package/src/resources/extensions/gsd/preferences-types.ts +16 -0
- package/src/resources/extensions/gsd/preferences.ts +173 -28
- package/src/resources/extensions/gsd/prompts/complete-slice.md +1 -0
- package/src/resources/extensions/gsd/prompts/discuss.md +6 -7
- package/src/resources/extensions/gsd/prompts/execute-task.md +2 -0
- package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +5 -7
- package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +6 -6
- package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +1 -2
- package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +5 -6
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +2 -0
- package/src/resources/extensions/gsd/prompts/plan-slice.md +2 -1
- package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -0
- package/src/resources/extensions/gsd/prompts/research-milestone.md +2 -2
- package/src/resources/extensions/gsd/prompts/system.md +1 -1
- package/src/resources/extensions/gsd/prompts/validate-milestone.md +5 -3
- package/src/resources/extensions/gsd/provider-payload-policy.ts +140 -0
- package/src/resources/extensions/gsd/pull-request-process.ts +41 -0
- package/src/resources/extensions/gsd/quality-gate-closure.ts +140 -0
- package/src/resources/extensions/gsd/question-transport.ts +138 -0
- package/src/resources/extensions/gsd/roadmap-slices.ts +8 -2
- package/src/resources/extensions/gsd/schemas/parsers.ts +6 -1
- package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +6 -2
- package/src/resources/extensions/gsd/state-reconciliation/drift/artifact-db.ts +31 -10
- package/src/resources/extensions/gsd/state.ts +15 -5
- package/src/resources/extensions/gsd/templates/plan.md +7 -0
- package/src/resources/extensions/gsd/templates/project.md +1 -0
- package/src/resources/extensions/gsd/templates/roadmap.md +1 -1
- package/src/resources/extensions/gsd/templates/uat.md +5 -1
- package/src/resources/extensions/gsd/tests/artifact-db-drift-memo.test.ts +66 -0
- package/src/resources/extensions/gsd/tests/ask-user-questions-render.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +29 -1
- package/src/resources/extensions/gsd/tests/auto-dispatch-baseline-harness.test.ts +53 -0
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +321 -5
- package/src/resources/extensions/gsd/tests/auto-milestone-target.test.ts +23 -0
- package/src/resources/extensions/gsd/tests/auto-model-selection-tool-poisoning.test.ts +18 -0
- package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +709 -845
- package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +38 -10
- package/src/resources/extensions/gsd/tests/auto-runtime-state.test.ts +34 -0
- package/src/resources/extensions/gsd/tests/canonical-milestone-root.test.ts +20 -0
- package/src/resources/extensions/gsd/tests/codebase-generator.test.ts +22 -0
- package/src/resources/extensions/gsd/tests/commands-dispatcher-workspace-git.test.ts +11 -0
- package/src/resources/extensions/gsd/tests/commands-verdict.test.ts +38 -1
- package/src/resources/extensions/gsd/tests/debug-logger.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +34 -3
- package/src/resources/extensions/gsd/tests/dispatch-run-uat-browser-tools.test.ts +88 -0
- package/src/resources/extensions/gsd/tests/doctor-scope-db-unavailable.test.ts +18 -0
- package/src/resources/extensions/gsd/tests/execute-summary-save-empty-project.test.ts +64 -1
- package/src/resources/extensions/gsd/tests/execute-task-rendering.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-no-blockers.md +1 -5
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-with-blockers.md +1 -5
- package/src/resources/extensions/gsd/tests/gate-state-canonicalization.test.ts +48 -1
- package/src/resources/extensions/gsd/tests/integration/merge-strategy-regular.test.ts +157 -0
- package/src/resources/extensions/gsd/tests/markdown-renderer-parse-cache.test.ts +75 -0
- package/src/resources/extensions/gsd/tests/mcp-tool-name.test.ts +34 -0
- package/src/resources/extensions/gsd/tests/migration-auto-check.test.ts +58 -0
- package/src/resources/extensions/gsd/tests/milestone-closeout-proof.test.ts +99 -0
- package/src/resources/extensions/gsd/tests/milestone-closeout.test.ts +25 -0
- package/src/resources/extensions/gsd/tests/milestone-merge-transaction.test.ts +46 -0
- package/src/resources/extensions/gsd/tests/milestone-readiness.test.ts +65 -0
- package/src/resources/extensions/gsd/tests/milestone-validation-evidence.test.ts +41 -0
- package/src/resources/extensions/gsd/tests/milestone-validation-verdict.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/native-merge-regular.test.ts +139 -0
- package/src/resources/extensions/gsd/tests/orchestrator-legacy-parity.test.ts +127 -0
- package/src/resources/extensions/gsd/tests/parse-project-milestone-bridge.test.ts +77 -0
- package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +6 -2
- package/src/resources/extensions/gsd/tests/planning-crossval.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/preferences-diagnostics.test.ts +67 -0
- package/src/resources/extensions/gsd/tests/preferences.test.ts +183 -0
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +75 -2
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +9 -0
- package/src/resources/extensions/gsd/tests/provider-payload-policy.test.ts +165 -0
- package/src/resources/extensions/gsd/tests/pull-request-process.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +94 -0
- package/src/resources/extensions/gsd/tests/research-milestone-composer.test.ts +65 -0
- package/src/resources/extensions/gsd/tests/roadmap-parse-regression.test.ts +40 -0
- package/src/resources/extensions/gsd/tests/runtime-invariant-modules.test.ts +25 -1
- package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +80 -0
- package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +101 -1
- package/src/resources/extensions/gsd/tests/stale-queued-milestone.test.ts +27 -0
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +21 -6
- package/src/resources/extensions/gsd/tests/token-tool-gating.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/tool-availability-audit.test.ts +35 -0
- package/src/resources/extensions/gsd/tests/tool-naming.test.ts +35 -42
- package/src/resources/extensions/gsd/tests/uat-policy.test.ts +23 -0
- package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/user-input-boundary.test.ts +147 -0
- package/src/resources/extensions/gsd/tests/validate-milestone-stuck-guard.test.ts +39 -0
- package/src/resources/extensions/gsd/tests/web-app-uat.test.ts +150 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +126 -9
- package/src/resources/extensions/gsd/tests/workspace-git-preflight.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +21 -0
- package/src/resources/extensions/gsd/tests/worktree-projection-writers.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/worktree-safety.test.ts +24 -0
- package/src/resources/extensions/gsd/tests/worktree-telemetry.test.ts +22 -0
- package/src/resources/extensions/gsd/tests/write-gate-planning-unit.test.ts +15 -3
- package/src/resources/extensions/gsd/tests/write-gate.test.ts +79 -0
- package/src/resources/extensions/gsd/tool-contract.ts +86 -8
- package/src/resources/extensions/gsd/tool-presentation-plan.ts +16 -33
- package/src/resources/extensions/gsd/tool-surface-snapshot.ts +47 -0
- package/src/resources/extensions/gsd/tools/plan-milestone.ts +19 -160
- package/src/resources/extensions/gsd/tools/reassess-roadmap.ts +43 -0
- package/src/resources/extensions/gsd/tools/validate-milestone.ts +25 -84
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +183 -21
- package/src/resources/extensions/gsd/uat-policy.ts +19 -10
- package/src/resources/extensions/gsd/uat-run.ts +10 -14
- package/src/resources/extensions/gsd/unit-context-composer.ts +85 -20
- package/src/resources/extensions/gsd/unit-runtime.ts +3 -2
- package/src/resources/extensions/gsd/unit-tool-contracts.ts +2 -1
- package/src/resources/extensions/gsd/user-input-boundary.ts +55 -5
- package/src/resources/extensions/gsd/validation-block-guard.ts +2 -0
- package/src/resources/extensions/gsd/web-app-uat.ts +101 -0
- package/src/resources/extensions/gsd/workflow-mcp.ts +22 -110
- package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -3
- package/src/resources/extensions/gsd/workflow-tool-surface.ts +73 -0
- package/src/resources/extensions/gsd/workspace-git-guard.ts +1 -0
- package/src/resources/extensions/gsd/worktree-lifecycle.ts +7 -16
- package/src/resources/extensions/gsd/worktree-state-projection.ts +55 -7
- package/src/resources/extensions/gsd/worktree-telemetry.ts +16 -0
- package/src/resources/extensions/shared/interview-ui.ts +15 -2
- package/src/resources/shared/claude-runtime-floor.ts +248 -0
- package/dist/web/standalone/.next/server/chunks/678.js +0 -2
- package/dist/web/standalone/.next/static/chunks/2659.feb6499ca863ebfc.js +0 -1
- package/dist/web/standalone/.next/static/chunks/2772.151789db0edea835.js +0 -1
- package/dist/web/standalone/.next/static/chunks/4283.10a065467b5340d8.js +0 -2
- package/dist/web/standalone/.next/static/chunks/5826.960dc4634cc9b0d3.js +0 -1
- package/dist/web/standalone/.next/static/chunks/796.46f811c0fac23aab.js +0 -10
- package/dist/web/standalone/.next/static/chunks/8785.d32f7a61f55c1600.js +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/gsd-widget-prototype.d.ts +0 -21
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/gsd-widget-prototype.d.ts.map +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/gsd-widget-prototype.js +0 -213
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/gsd-widget-prototype.js.map +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-density-prototype.d.ts +0 -28
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-density-prototype.d.ts.map +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-density-prototype.js +0 -249
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-density-prototype.js.map +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-design-prototype.d.ts +0 -19
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-design-prototype.d.ts.map +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-design-prototype.js +0 -797
- package/packages/gsd-agent-modes/dist/modes/interactive/components/__prototype__/transcript-design-prototype.js.map +0 -1
- package/scripts/ensure-workspace-builds.cjs +0 -129
- /package/dist/web/standalone/.next/static/{tJOKQbQRO-9MiFDO8DIDS → tkLHUSzPA2kMmWz4DmGwI}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{tJOKQbQRO-9MiFDO8DIDS → tkLHUSzPA2kMmWz4DmGwI}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8785],{18785:(e,t,s)=>{s.r(t),s.d(t,{ChatMode:()=>en,ChatPane:()=>ek});var r=s(18870),n=s(89581),a=s(45110),o=s(67552),l=s(53348),i=s(3733),d=s(37373),c=s(74676),m=s(15007),u=s(15215),x=s(22358),p=s(78278),g=s(48510),h=s(48166),f=s(68206),b=s(32457),j=s(36843),y=s(44302),w=s(12875),v=s(61999),N=s(15183),k=s(3318),S=s(41655),A=s(69663),C=s(90034),T=s(66828),D=s(24028),E=s(67238),M=s(2959),$=s(64791),P=s(72852),R=s(78070),U=s(46518),q=s(86135),F=s(26233),I=s(65066),L=s(28011),O=s(25654),_=s(18833),z=s(43106),H=s(97019),K=s(1641);function W({...e}){return(0,r.jsx)(K.bL,{"data-slot":"popover",...e})}function Z({...e}){return(0,r.jsx)(K.l9,{"data-slot":"popover-trigger",...e})}function V({className:e,align:t="center",sideOffset:s=4,...n}){return(0,r.jsx)(K.ZL,{children:(0,r.jsx)(K.UC,{"data-slot":"popover-content",align:t,sideOffset:s,className:(0,_.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...n})})}var G=s(69745),B=s(94002),Q=s(93058),J=s(59727),Y=s(72202),X=s(42130);let ee=[{label:"Discuss",command:"/gsd discuss",icon:o.A,description:"Start guided milestone/slice discussion",category:"workflow",disabledDuringAuto:!0},{label:"Next",command:"/gsd next",icon:l.A,description:"Execute next task, then pause",category:"workflow"},{label:"Auto",command:"/gsd auto",icon:i.A,description:"Run all queued units continuously",category:"workflow"},{label:"Stop",command:"/gsd stop",icon:d.A,description:"Stop auto-mode gracefully",category:"workflow"},{label:"Pause",command:"/gsd pause",icon:c.A,description:"Pause auto-mode (preserves state)",category:"workflow"},{label:"Status",command:"/gsd status",icon:m.A,description:"Show progress dashboard",category:"visibility"},{label:"Visualize",command:"/gsd visualize",icon:u.A,description:"Interactive TUI (progress, deps, metrics, timeline)",category:"visibility"},{label:"Queue",command:"/gsd queue",icon:x.A,description:"Show queued/dispatched units and execution order",category:"visibility"},{label:"History",command:"/gsd history",icon:p.A,description:"View execution history with cost/phase/model details",category:"visibility"},{label:"Steer",command:"/gsd steer",icon:g.A,description:"Apply user override to active work",category:"correction"},{label:"Capture",command:"/gsd capture",icon:h.A,description:"Quick-capture a thought to CAPTURES.md",category:"correction"},{label:"Triage",command:"/gsd triage",icon:f.A,description:"Classify and route pending captures",category:"correction",disabledDuringAuto:!0},{label:"Skip",command:"/gsd skip",icon:b.A,description:"Prevent a unit from auto-mode dispatch",category:"correction"},{label:"Undo",command:"/gsd undo",icon:j.A,description:"Revert last completed unit",category:"correction"},{label:"Knowledge",command:"/gsd knowledge",icon:y.A,description:"Add rule, pattern, or lesson to KNOWLEDGE.md",category:"knowledge"},{label:"Mode",command:"/gsd mode",icon:w.A,description:"Set workflow mode (solo/team)",category:"config"},{label:"Prefs",command:"/gsd prefs",icon:v.A,description:"Manage preferences (global/project)",category:"config"},{label:"Doctor",command:"/gsd doctor",icon:N.A,description:"Diagnose and repair .gsd/ state",category:"maintenance"},{label:"Export",command:"/gsd export",icon:k.A,description:"Export milestone/slice results (JSON or Markdown)",category:"maintenance"},{label:"Cleanup",command:"/gsd cleanup",icon:S.A,description:"Remove merged branches or snapshots",category:"maintenance"},{label:"Remote",command:"/gsd remote",icon:A.A,description:"Control remote auto-mode (Slack/Discord)",category:"maintenance"}],et=ee.slice(0,3),es=ee.slice(3),er={workflow:"Workflow",visibility:"Visibility",correction:"Course Correction",knowledge:"Knowledge",config:"Configuration",maintenance:"Maintenance"};function en({className:e}){let t=(0,Q.gF)(),{sendCommand:s}=(0,Q._l)(),n=t.boot?.bridge??null,o=(0,a.useCallback)(e=>{s((0,Q.Sf)(e,n))},[s,n]);return(0,r.jsxs)("div",{className:(0,_.cn)("flex h-full flex-col overflow-hidden bg-background",e),children:[(0,r.jsx)(ea,{onPrimaryAction:o,onSecondaryAction:o}),(0,r.jsx)(ek,{sessionId:"gsd-main",command:"gsd",className:"flex-1",onOpenAction:e=>o(e.command)})]})}function ea({onPrimaryAction:e,onSecondaryAction:t}){let s=(0,Q.gF)(),n=s.boot,a=n?.workspace??null,o=n?.auto??null,i=(0,J.L)({phase:a?.active.phase??"pre-planning",autoActive:o?.active??!1,autoPaused:o?.paused??!1,onboardingLocked:n?.onboarding.locked??!1,commandInFlight:s.commandInFlight,bootStatus:s.bootStatus,hasMilestones:(a?.milestones.length??0)>0,stepMode:o?.stepMode??!1,projectDetectionKind:n?.projectDetection?.kind??null}),d=(()=>{if("ready"!==s.bootStatus)return s.bootStatus;let e=a?.active.phase;return e?o?.active&&!o?.paused?"auto":o?.paused?"paused":e:"idle"})();return(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-border bg-card px-4 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(C.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("span",{className:"font-medium",children:"Chat Mode"}),(0,r.jsx)("span",{className:"rounded-full border border-border bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground uppercase tracking-wide",children:d})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"chat-mode-action-bar",children:[i.primary&&(0,r.jsxs)("button",{"data-testid":"chat-primary-action",onClick:()=>{i.primary&&e(i.primary.command)},disabled:i.disabled,className:(0,_.cn)("inline-flex items-center gap-1.5 rounded-md px-3 py-1 text-xs font-medium transition-colors","destructive"===i.primary.variant?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90",i.disabled&&"cursor-not-allowed opacity-50"),title:i.disabledReason,children:[s.commandInFlight?(0,r.jsx)(T.A,{className:"h-3 w-3 animate-spin"}):i.isNewMilestone?(0,r.jsx)(D.A,{className:"h-3 w-3"}):(0,r.jsx)(l.A,{className:"h-3 w-3"}),i.primary.label]}),i.secondaries.map(e=>(0,r.jsx)("button",{"data-testid":`chat-secondary-action-${e.command}`,onClick:()=>t(e.command),disabled:i.disabled,className:(0,_.cn)("inline-flex items-center gap-1 rounded-md border border-border bg-background px-2 py-1 text-xs font-medium transition-colors hover:bg-accent",i.disabled&&"cursor-not-allowed opacity-50"),title:i.disabledReason,children:e.label},e.command)),s.commandInFlight&&(0,r.jsx)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:(0,r.jsx)(T.A,{className:"h-3 w-3 animate-spin"})})]})]})}let eo=null;function el({content:e}){let[t,n]=(0,a.useState)(null),[o,l]=(0,a.useState)(!1),i=eu();return((0,a.useEffect)(()=>{let t=!1;return Promise.all([Promise.all([s.e(1884),s.e(1571),s.e(8468)]).then(s.bind(s,58468)),Promise.all([s.e(1884),s.e(4605)]).then(s.bind(s,14605)),(!eo&&(eo=Promise.all([s.e(1571),s.e(9477)]).then(s.bind(s,19477)).then(e=>e.createHighlighter({themes:["github-dark-default","github-light-default"],langs:["typescript","tsx","javascript","jsx","json","jsonc","markdown","mdx","css","scss","less","html","xml","yaml","toml","bash","python","ruby","rust","go","java","kotlin","swift","c","cpp","csharp","php","sql","graphql","dockerfile","makefile","lua","diff","ini","dotenv"]})).catch(e=>{throw eo=null,e})),eo)]).then(([s,a,o])=>{if(t)return;console.debug("[ChatBubble] markdown modules loaded");let d=s.default,c=a.default,m=i?"github-dark-default":"github-light-default";n((0,r.jsx)(d,{remarkPlugins:[c],components:{code({className:e,children:t,...s}){let n=/language-(\w+)/.exec(e||""),a=String(t).replace(/\n$/,"");if(n)try{let e=o.codeToHtml(a,{lang:n[1],theme:m});return(0,r.jsx)("div",{className:"chat-code-block my-3 rounded-xl overflow-x-auto text-sm shadow-sm border border-border/50",dangerouslySetInnerHTML:{__html:e}})}catch{}return e||String(t).includes("\n")?(0,r.jsx)("pre",{className:(0,_.cn)("my-3 overflow-x-auto rounded-xl p-4 text-sm border border-border/50",i?"bg-[#0d1117]":"bg-[#f6f8fa]"),children:(0,r.jsx)("code",{className:"font-mono",children:t})}):(0,r.jsx)("code",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[0.85em] font-mono text-foreground",...s,children:t})},pre:({children:e})=>(0,r.jsx)(r.Fragment,{children:e}),table:({children:e})=>(0,r.jsx)("div",{className:"my-4 overflow-x-auto rounded-lg border border-border",children:(0,r.jsx)("table",{className:"min-w-full border-collapse text-sm",children:e})}),th:({children:e})=>(0,r.jsx)("th",{className:"border-b border-border bg-muted/50 px-3 py-2 text-left text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:e}),td:({children:e})=>(0,r.jsx)("td",{className:"border-b border-border/50 px-3 py-2 text-sm last:border-0",children:e}),a:({href:e,children:t})=>(0,r.jsx)("a",{href:e,className:"text-info underline underline-offset-2 hover:text-info transition-colors",target:"_blank",rel:"noopener noreferrer",children:t}),h1:({children:e})=>(0,r.jsx)("h1",{className:"mt-4 mb-2 text-base font-semibold text-foreground first:mt-0",children:e}),h2:({children:e})=>(0,r.jsx)("h2",{className:"mt-3 mb-1.5 text-sm font-semibold text-foreground first:mt-0",children:e}),h3:({children:e})=>(0,r.jsx)("h3",{className:"mt-2 mb-1 text-sm font-medium text-foreground first:mt-0",children:e}),ul:({children:e})=>(0,r.jsx)("ul",{className:"my-2 ml-4 list-disc space-y-0.5 text-sm [&>li]:text-foreground",children:e}),ol:({children:e})=>(0,r.jsx)("ol",{className:"my-2 ml-4 list-decimal space-y-0.5 text-sm [&>li]:text-foreground",children:e}),blockquote:({children:e})=>(0,r.jsx)("blockquote",{className:"my-3 border-l-2 border-primary/40 pl-3 text-sm text-muted-foreground italic",children:e}),hr:()=>(0,r.jsx)("hr",{className:"my-4 border-border/50"}),p:({children:e})=>(0,r.jsx)("p",{className:"mb-2 text-sm leading-relaxed last:mb-0 text-foreground",children:e}),img:({alt:e,src:t})=>(0,r.jsxs)("span",{className:"my-2 block rounded-lg border border-border bg-muted/50 px-3 py-2 text-xs text-muted-foreground italic",children:["\uD83D\uDDBC ",e||t||"image"]})},children:e})),l(!0)}).catch(()=>{t||l(!0)}),()=>{t=!0}},[e,i]),o&&t)?(0,r.jsx)("div",{className:"chat-markdown min-w-0",children:t}):(0,r.jsx)("span",{className:"whitespace-pre-wrap text-sm leading-relaxed text-foreground",children:e})}function ei({prompt:e,onSubmit:t}){let[s,n]=(0,a.useState)(e.selectedIndex??0),[o,l]=(0,a.useState)(!1),i=(0,a.useRef)(null);(0,a.useEffect)(()=>{console.log("[TuiSelectPrompt] mounted kind=select label=%s",e.label),requestAnimationFrame(()=>i.current?.focus())},[e.label]);let d=(0,a.useCallback)(r=>{if(r<0||r>=e.options.length)return;let a=r-s,o="";a>0?o="\x1b[B".repeat(a):a<0&&(o="\x1b[A".repeat(Math.abs(a))),console.log("[TuiSelectPrompt] submit delta=%d keystrokes=%j",a,o+="\r"),n(r),l(!0),t(o)},[s,t,e.options.length]),c=(0,a.useCallback)(t=>{if(o)return;let r=(0,B.cZ)(t.key,s,e.options.length);if("none"!==r.type){if(t.preventDefault(),t.stopPropagation(),"select"===r.type)return void n(r.index);d(r.index)}},[o,s,e.options.length,d]);if(o){let t=e.options[s]??"";return(0,r.jsxs)("div",{"data-testid":"tui-prompt-submitted",className:"mt-2 flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:t})]})}return(0,r.jsxs)("div",{ref:i,"data-testid":"tui-select-prompt",tabIndex:0,onKeyDown:c,className:"mt-2 rounded-xl border border-border bg-background p-1.5 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":`Select: ${e.label}`,role:"listbox","aria-activedescendant":`tui-select-option-${s}`,children:[e.label&&(0,r.jsx)("p",{className:"mb-1.5 px-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:e.label}),e.options.map((t,n)=>{let a=n===s,o=e.descriptions?.[n];return(0,r.jsxs)("button",{id:`tui-select-option-${n}`,"data-testid":`tui-select-option-${n}`,role:"option","aria-selected":a,onClick:()=>d(n),className:(0,_.cn)("flex w-full items-start gap-2 rounded-lg px-3 py-1.5 text-left text-sm transition-colors",a?"bg-primary/15 text-primary font-medium":"text-foreground hover:bg-muted"),children:[(0,r.jsx)("span",{className:"mt-0.5 flex h-4 w-4 flex-shrink-0 items-center justify-center font-mono text-[11px] text-muted-foreground",children:n+1}),(0,r.jsx)("span",{className:"mt-0.5 flex h-4 w-4 flex-shrink-0 items-center justify-center",children:a?(0,r.jsx)(E.A,{className:"h-3 w-3 text-primary"}):(0,r.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-muted-foreground/30"})}),(0,r.jsxs)("span",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"block",children:t}),o&&(0,r.jsx)("span",{className:"mt-0.5 block text-xs font-normal text-muted-foreground",children:o})]})]},n)})]})}function ed({prompt:e,onSubmit:t}){let[s,n]=(0,a.useState)(""),[o,l]=(0,a.useState)(!1),i=(0,a.useRef)(null);(0,a.useEffect)(()=>{console.log("[TuiTextPrompt] mounted kind=text label=%s",e.label),i.current?.focus()},[e.label]);let d=(0,a.useCallback)(()=>{o||(console.log("[TuiTextPrompt] submitted label=%s",e.label),l(!0),t(s+"\r"))},[o,s,e.label,t]),c=(0,a.useCallback)(e=>{"Enter"===e.key&&(e.preventDefault(),d())},[d]);return o?(0,r.jsxs)("div",{"data-testid":"tui-prompt-submitted",className:"mt-2 flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:"✓ Submitted"})]}):(0,r.jsxs)("div",{"data-testid":"tui-text-prompt",className:"mt-2 rounded-xl border border-border bg-background p-3 shadow-sm",children:[e.label&&(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:e.label}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(z.p,{ref:i,value:s,onChange:e=>n(e.target.value),onKeyDown:c,placeholder:"Type your answer…",className:"flex-1 h-8 text-sm","aria-label":e.label||"Text input"}),(0,r.jsx)("button",{onClick:d,disabled:!s.trim(),className:(0,_.cn)("flex h-8 items-center justify-center rounded-lg px-3 text-xs font-medium transition-[background-color,color,box-shadow,transform]",s.trim()?"bg-primary text-primary-foreground hover:bg-primary/90 active:scale-[0.96] shadow-sm":"bg-muted text-muted-foreground cursor-not-allowed"),children:"Submit"})]})]})}function ec({prompt:e,onSubmit:t}){let[s,n]=(0,a.useState)(""),[o,l]=(0,a.useState)(!1),[i,d]=(0,a.useState)(!1),c=(0,a.useRef)(null);(0,a.useEffect)(()=>{console.log("[TuiPasswordPrompt] mounted kind=password label=%s",e.label),c.current?.focus()},[e.label]);let m=(0,a.useCallback)(()=>{o||(console.log("[TuiPasswordPrompt] submitted label=%s",e.label),l(!0),t(s+"\r"))},[o,s,e.label,t]),u=(0,a.useCallback)(e=>{"Enter"===e.key&&(e.preventDefault(),m())},[m]);if(o){let t=e.label||"Value";return(0,r.jsxs)("div",{"data-testid":"tui-prompt-submitted",className:"mt-2 flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsxs)("span",{className:"font-medium",children:[t," — entered ✓"]})]})}return(0,r.jsxs)("div",{"data-testid":"tui-password-prompt",className:"mt-2 rounded-xl border border-border bg-background p-3 shadow-sm",children:[e.label&&(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:e.label}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)(z.p,{ref:c,type:i?"text":"password",value:s,onChange:e=>n(e.target.value),onKeyDown:u,placeholder:"Enter value…",className:"h-8 pr-9 text-sm","aria-label":e.label||"Password input",autoComplete:"off"}),(0,r.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":i?"Hide input":"Show input",className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-muted-foreground transition-colors",children:i?(0,r.jsx)(M.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)($.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("button",{onClick:m,disabled:!s,className:(0,_.cn)("flex h-8 items-center justify-center rounded-lg px-3 text-xs font-medium transition-[background-color,color,box-shadow,transform]",s?"bg-primary text-primary-foreground hover:bg-primary/90 active:scale-[0.96] shadow-sm":"bg-muted text-muted-foreground cursor-not-allowed"),children:"Submit"})]}),(0,r.jsx)("p",{className:"mt-1.5 text-[10px] text-muted-foreground",children:"Value is transmitted securely and not stored in chat history."})]})}function em(){return(0,r.jsx)("span",{"aria-hidden":"true",className:"ml-0.5 inline-block h-3.5 w-0.5 translate-y-0.5 rounded-full bg-current opacity-70",style:{animation:"chat-cursor 1s ease-in-out infinite"}})}function eu(){let[e,t]=(0,a.useState)(()=>"u">typeof document&&document.documentElement.classList.contains("dark"));return(0,a.useEffect)(()=>{if("u"<typeof document)return;let e=document.documentElement,s=new MutationObserver(()=>{t(e.classList.contains("dark"))});return s.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}function ex({className:e}){let t=eu();return(0,r.jsx)(n.default,{src:t?"/logo-icon-white.svg":"/logo-icon-black.svg",alt:"",width:24,height:32,unoptimized:!0,className:(0,_.cn)("h-4 w-auto",e)})}function ep({content:e,isStreaming:t}){let[s,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),l=e.split("\n").filter(e=>e.trim()),i=l.slice(-5),d=l.length>5;return(0,a.useEffect)(()=>{s&&t&&o.current&&(o.current.scrollTop=o.current.scrollHeight)},[s,t,e]),(0,r.jsx)("div",{className:"mb-3",children:(0,r.jsxs)("button",{onClick:()=>n(e=>!e),className:(0,_.cn)("group w-full rounded-xl border px-3.5 py-2.5 text-left transition-[background-color,border-color,box-shadow]","border-border/50 bg-muted/50 hover:bg-muted/50"),children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t?(0,r.jsxs)("span",{className:"relative flex h-2 w-2 flex-shrink-0",children:[(0,r.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-muted-foreground/30"}),(0,r.jsx)("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-muted-foreground/50"})]}):(0,r.jsx)("span",{className:"flex h-4 w-4 flex-shrink-0 items-center justify-center rounded bg-muted-foreground/10",children:(0,r.jsx)("span",{className:"text-[9px] text-muted-foreground",children:"\uD83D\uDCAD"})}),(0,r.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:t?"Thinking…":"Thought process"}),d&&!s&&(0,r.jsxs)("span",{className:"ml-1 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:[l.length," lines"]}),(0,r.jsx)("span",{className:"ml-auto flex-shrink-0",children:s?(0,r.jsx)(P.A,{className:"h-3 w-3 text-muted-foreground transition-transform"}):(0,r.jsx)(R.A,{className:"h-3 w-3 text-muted-foreground transition-transform group-hover:text-muted-foreground"})})]}),!s&&(0,r.jsxs)("div",{className:"mt-2 space-y-0.5 border-l-2 border-muted-foreground/10 pl-3",children:[i.map((e,t)=>(0,r.jsx)("p",{className:"text-[12px] leading-relaxed text-muted-foreground line-clamp-1",children:e},t)),t&&(0,r.jsx)(em,{})]}),s&&(0,r.jsxs)("div",{ref:o,className:"mt-2 max-h-[400px] overflow-y-auto overscroll-contain rounded-lg border border-border/50 bg-background/50 p-3 text-[12px] leading-[1.7] text-muted-foreground whitespace-pre-wrap scrollbar-thin scrollbar-thumb-border scrollbar-track-transparent",children:[e,t&&(0,r.jsx)(em,{})]})]})})}function eg({message:e,onSubmitPrompt:t,isThinking:s}){if("system"===e.role)return(0,r.jsx)("div",{className:"flex items-center justify-center py-1",children:(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground italic px-3",children:e.content})});if("user"===e.role)return(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsxs)("div",{className:"max-w-[72%] rounded-2xl rounded-br-md bg-primary px-4 py-2.5 text-sm text-primary-foreground shadow-sm",children:[e.images&&e.images.length>0&&(0,r.jsx)("div",{className:"flex gap-1.5 mb-2 flex-wrap",children:e.images.map((e,t)=>(0,r.jsx)(n.default,{src:`data:${e.mimeType};base64,${e.data}`,alt:`Attached image ${t+1}`,width:32,height:32,unoptimized:!0,className:"h-8 w-8 rounded object-cover border border-primary-foreground/20"},t))}),(0,r.jsx)("span",{className:"whitespace-pre-wrap leading-relaxed",children:e.content}),!e.complete&&(0,r.jsx)(em,{})]})});let a=e.prompt?.kind==="select"&&!e.complete&&null!=t,o=e.prompt?.kind==="text"&&!e.complete&&null!=t,l=e.prompt?.kind==="password"&&!e.complete&&null!=t,i=a||o||l;return(0,r.jsxs)("div",{className:"flex justify-start gap-3",children:[(0,r.jsx)("div",{className:"mt-1 flex-shrink-0 flex h-7 w-7 items-center justify-center rounded-full bg-card border border-border",children:(0,r.jsx)(ex,{className:"h-3.5 w-auto"})}),(0,r.jsxs)("div",{className:"max-w-[82%] min-w-0 rounded-2xl rounded-tl-md border border-border bg-card px-4 py-3 shadow-sm",children:[s&&!e.content&&(0,r.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,r.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,r.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-muted-foreground/30"}),(0,r.jsx)("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-muted-foreground/50"})]}),(0,r.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground uppercase tracking-wider",children:"Thinking…"})]}),e.content&&(0,r.jsx)(el,{content:e.content}),!e.complete&&!i&&(0,r.jsx)(em,{}),a&&(0,r.jsx)(ei,{prompt:e.prompt,onSubmit:t}),o&&(0,r.jsx)(ed,{prompt:e.prompt,onSubmit:t}),l&&(0,r.jsx)(ec,{prompt:e.prompt,onSubmit:t})]})]})}function eh({onSendInput:e,connected:t,onOpenAction:s}){let o=(0,Q.gF)().boot?.auto?.active??!1,[l,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)([]),[x,p]=(0,a.useState)(!1),[g,h]=(0,a.useState)(null),f=(0,a.useRef)(null),b=(0,a.useRef)(0);(0,a.useEffect)(()=>()=>{m.forEach(e=>URL.revokeObjectURL(e.previewUrl))},[]);let j=(0,a.useCallback)(async e=>{h(null);let t=e.filter(e=>e.type.startsWith("image/"));if(0===t.length)return;u(e=>(G.wN-e.length<=0&&h(`Maximum ${G.wN} images per message`),e));let s=m.length,r=t.slice(0,G.wN-s);r.length<t.length&&h(`Maximum ${G.wN} images per message`);let n=[];for(let e of r)try{let t=await (0,G.zF)(e),s=URL.createObjectURL(e);n.push({id:(0,G.Aw)(),data:t.data,mimeType:t.mimeType,previewUrl:s})}catch(e){console.warn("[chat-input] image processing failed:",e instanceof Error?e.message:e),h(e instanceof Error?e.message:"Failed to process image")}n.length>0&&u(e=>{let t=[...e,...n];return t.length>G.wN?(t.slice(G.wN).forEach(e=>URL.revokeObjectURL(e.previewUrl)),h(`Maximum ${G.wN} images per message`),t.slice(0,G.wN)):t})},[m.length]),y=(0,a.useCallback)(e=>{u(t=>{let s=t.find(t=>t.id===e);return s&&URL.revokeObjectURL(s.previewUrl),t.filter(t=>t.id!==e)}),h(null)},[]),w=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),p(!1),b.current=0,j(Array.from(e.dataTransfer.files))},[j]),v=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),N=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),b.current+=1,p(!0)},[]),k=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),b.current-=1,b.current<=0&&(b.current=0,p(!1))},[]),S=(0,a.useCallback)(e=>{let t=e.clipboardData?.files;if(t&&t.length>0){let s=Array.from(t).filter(e=>e.type.startsWith("image/"));s.length>0&&(e.preventDefault(),j(s))}},[j]),A=(0,a.useCallback)(()=>{!l.trim()&&0===m.length||t&&(e(l+"\r",m.length>0?m:void 0),i(""),u([]),h(null),f.current&&(f.current.style.height="auto"))},[l,t,e,m]),C=(0,a.useCallback)(e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),A())},[A]),T=(0,a.useCallback)(e=>{i(e.target.value);let t=e.target;t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,160)}px`},[]),D=l.trim().length>0||m.length>0,E=(0,a.useMemo)(()=>(function(e){let t=new Map;for(let s of e){let e=t.get(s.category);e||(e=[],t.set(s.category,e)),e.push(s)}return Array.from(t.entries()).map(([e,t])=>({category:e,label:er[e],items:t}))})(es),[]);return(0,r.jsx)("div",{className:"flex-shrink-0 border-t border-border bg-card px-4 py-3 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex items-end gap-2",onDrop:w,onDragOver:v,onDragEnter:N,onDragLeave:k,children:[(0,r.jsxs)("div",{className:(0,_.cn)("flex flex-1 flex-col rounded-xl border bg-background transition-colors",t?"border-border focus-within:ring-1 focus-within:ring-border/30":"border-border/50 opacity-80",x&&t&&"border-primary/60 ring-2 ring-primary/20 bg-primary/5"),children:[m.length>0&&(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-2.5 pb-1 flex-wrap",children:[m.map(e=>(0,r.jsxs)("div",{className:"relative group flex-shrink-0",children:[(0,r.jsx)(n.default,{src:e.previewUrl,alt:"Pending image",width:48,height:48,unoptimized:!0,className:"h-12 w-12 rounded-lg object-cover border border-border/50"}),(0,r.jsx)("button",{onClick:()=>y(e.id),"aria-label":"Remove image",className:"absolute -top-1.5 -right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-destructive text-destructive-foreground text-[10px] opacity-0 group-hover:opacity-100 transition-opacity shadow-sm",children:(0,r.jsx)(U.A,{className:"h-2.5 w-2.5"})})]},e.id)),g&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground italic",children:g})]}),(0,r.jsxs)("div",{className:"flex items-end gap-2",children:[(0,r.jsx)("textarea",{ref:f,value:l,onChange:T,onKeyDown:C,onPaste:S,disabled:!t,rows:1,"aria-label":"Send message",placeholder:t?"Message…":"Connecting…",className:"min-h-[40px] flex-1 resize-none bg-transparent px-3 py-2.5 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none disabled:cursor-not-allowed disabled:text-muted-foreground",style:{height:"40px",maxHeight:"160px",overflowY:"auto"}}),(0,r.jsxs)("div",{className:"flex flex-shrink-0 items-end pb-1.5 pr-1.5 gap-1",children:[!t&&(0,r.jsx)("span",{className:"px-2 py-1 text-[10px] font-medium text-muted-foreground uppercase tracking-wide",children:"Disconnected"}),(0,r.jsx)("button",{onClick:A,disabled:!t||!D,"aria-label":"Send",className:(0,_.cn)("flex h-7 w-7 items-center justify-center rounded-lg transition-[background-color,color,box-shadow,transform]",D&&t?"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 active:scale-[0.96]":"bg-muted text-muted-foreground cursor-not-allowed"),children:(0,r.jsx)(q.A,{className:"h-3.5 w-3.5"})})]})]})]}),s&&(0,r.jsxs)(H.Bc,{delayDuration:300,children:[et.map(e=>{let t=e.icon,n=e.disabledDuringAuto&&o;return(0,r.jsxs)(H.m_,{children:[(0,r.jsx)(H.k$,{asChild:!0,children:(0,r.jsxs)("button",{onClick:()=>s(e),disabled:n,"aria-label":e.description,className:(0,_.cn)("flex flex-shrink-0 items-center justify-center gap-1.5 rounded-xl border border-border bg-background px-3 py-2.5 text-xs font-medium text-foreground transition-colors hover:bg-accent",n&&"cursor-not-allowed opacity-40"),children:[(0,r.jsx)(t,{className:"h-3.5 w-3.5 text-muted-foreground"}),e.label]})}),(0,r.jsxs)(H.ZI,{side:"top",sideOffset:6,children:[(0,r.jsx)("p",{className:"font-medium",children:e.label}),(0,r.jsx)("p",{className:"text-[10px] opacity-80",children:n?"Disabled while auto-mode is running":e.description})]})]},e.command)}),(0,r.jsxs)(W,{open:d,onOpenChange:c,children:[(0,r.jsxs)(H.m_,{children:[(0,r.jsx)(H.k$,{asChild:!0,children:(0,r.jsx)(Z,{asChild:!0,children:(0,r.jsx)("button",{"aria-label":"More GSD commands",className:(0,_.cn)("flex flex-shrink-0 items-center justify-center rounded-xl border border-border bg-background p-2.5 text-foreground transition-colors hover:bg-accent",d&&"bg-accent"),children:(0,r.jsx)(F.A,{className:"h-4 w-4 text-muted-foreground"})})})}),!d&&(0,r.jsx)(H.ZI,{side:"top",sideOffset:6,children:"More commands"})]}),(0,r.jsx)(V,{side:"top",align:"end",sideOffset:8,className:"w-64 max-h-[420px] overflow-y-auto rounded-xl border border-border bg-popover p-2 shadow-lg",children:E.map((e,t)=>(0,r.jsxs)("div",{children:[t>0&&(0,r.jsx)("div",{className:"my-1.5 border-t border-border/50"}),(0,r.jsx)("p",{className:"px-2 py-1 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:e.label}),e.items.map(e=>{let t=e.icon,n=e.disabledDuringAuto&&o;return(0,r.jsxs)(H.m_,{children:[(0,r.jsx)(H.k$,{asChild:!0,children:(0,r.jsxs)("button",{onClick:()=>{n||(c(!1),s(e))},disabled:n,className:(0,_.cn)("flex w-full items-center gap-2.5 rounded-lg px-2 py-1.5 text-left text-sm text-foreground transition-colors hover:bg-accent",n&&"cursor-not-allowed opacity-40"),children:[(0,r.jsx)(t,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1 truncate",children:e.label})]})}),(0,r.jsxs)(H.ZI,{side:"left",sideOffset:8,children:[(0,r.jsx)("p",{className:"font-medium",children:e.label}),(0,r.jsx)("p",{className:"text-[10px] opacity-80",children:n?"Disabled while auto-mode is running":e.description})]})]},e.command)})]},e.category))})]})]})]})})}function ef({connected:e,runningLabel:t,notice:s,primaryAction:n,onPrimaryAction:a}){let o=e&&!!t;return(0,r.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center text-center py-16",children:[(0,r.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full border border-border bg-card",children:o?(0,r.jsx)(T.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}):(0,r.jsx)(C.A,{className:"h-6 w-6 text-muted-foreground"})}),(0,r.jsxs)("div",{className:"mt-3 space-y-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Chat Mode"}),o?(0,r.jsxs)("p",{className:"max-w-xs text-xs text-muted-foreground",children:["Running ",t,"…"]}):s?(0,r.jsx)("p",{className:"max-w-xs text-xs text-muted-foreground",children:s}):e?n&&a?(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsxs)("button",{onClick:a,className:"inline-flex items-center gap-2 rounded-xl border border-border bg-background px-5 py-2.5 text-sm font-medium text-foreground transition-[background-color,transform] hover:bg-accent active:scale-[0.96]",children:[(0,r.jsx)(n.icon,{className:"h-4 w-4 text-muted-foreground"}),n.label]})}):(0,r.jsx)("p",{className:"max-w-xs text-xs text-muted-foreground",children:"Connected — waiting for GSD output…"}):(0,r.jsx)("p",{className:"max-w-xs text-xs text-muted-foreground",children:"Connecting to GSD session…"})]})]})}function eb({request:e}){let{respondToUiRequest:t,dismissUiRequest:s}=(0,Q._l)(),n="extension_ui_response"===(0,Q.gF)().commandInFlight,o=(0,a.useCallback)(s=>{t(e.id,s)},[t,e.id]),l=(0,a.useCallback)(()=>{s(e.id)},[s,e.id]);return(0,r.jsxs)("div",{className:"flex justify-start gap-3","data-testid":"inline-ui-request","data-request-id":e.id,children:[(0,r.jsx)("div",{className:"mt-1 flex-shrink-0 flex h-7 w-7 items-center justify-center rounded-full bg-card border border-border",children:(0,r.jsx)(ex,{className:"h-3.5 w-auto"})}),(0,r.jsxs)("div",{className:"max-w-[82%] min-w-0 rounded-2xl rounded-tl-md border border-border bg-card px-4 py-3 shadow-sm",children:[e.title&&(0,r.jsx)("p",{className:"mb-2.5 text-sm font-medium text-foreground",children:e.title}),"select"===e.method&&(0,r.jsx)(ej,{request:e,onSubmit:o,disabled:n}),"confirm"===e.method&&(0,r.jsx)(ey,{request:e,onSubmit:o,onDismiss:l,disabled:n}),"input"===e.method&&(0,r.jsx)(ew,{request:e,onSubmit:o,disabled:n}),"editor"===e.method&&(0,r.jsx)(ev,{request:e,onSubmit:o,disabled:n})]})]})}function ej({request:e,onSubmit:t,disabled:s}){let n=!!e.allowMultiple,[o,l]=(0,a.useState)(()=>(0,B.cv)(0,e.options.length)),[i,d]=(0,a.useState)(()=>new Set),[c,m]=(0,a.useState)(!1),u=(0,a.useRef)(null);(0,a.useEffect)(()=>{n||requestAnimationFrame(()=>u.current?.focus())},[n]);let x=(0,a.useCallback)(()=>{m(!0),t({value:n?Array.from(i):e.options[o]})},[n,i,t,e.options,o]),p=(0,a.useCallback)(r=>{let n=e.options[r];n&&!s&&(l(r),m(!0),t({value:n}))},[s,t,e.options]),g=(0,a.useCallback)(t=>{if(s||c)return;let r=(0,B.cZ)(t.key,o,e.options.length);if("none"!==r.type){if(t.preventDefault(),t.stopPropagation(),"select"===r.type)return void l(r.index);p(r.index)}},[s,e.options.length,o,c,p]);if(c){let t=n?`${i.size} selected`:e.options[o]??"";return(0,r.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:t})]})}let h=n?i.size>0:o>=0;return n?(0,r.jsxs)("div",{className:"space-y-1.5",children:[e.options.map((e,t)=>{let n=i.has(e);return(0,r.jsxs)("button",{onClick:()=>{let t=new Set(i);n?t.delete(e):t.add(e),d(t)},disabled:s,className:(0,_.cn)("flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm transition-colors",n?"bg-primary/15 text-primary font-medium":"text-foreground hover:bg-muted"),children:[(0,r.jsx)("span",{className:"flex h-4 w-4 flex-shrink-0 items-center justify-center rounded border border-border",children:n&&(0,r.jsx)(E.A,{className:"h-2.5 w-2.5 text-primary"})}),(0,r.jsx)("span",{children:e})]},t)}),(0,r.jsx)("button",{onClick:x,disabled:s||!h,className:(0,_.cn)("mt-2 flex w-full items-center justify-center rounded-lg px-3 py-2 text-xs font-medium transition-[background-color,color,box-shadow,transform]",h&&!s?"bg-primary text-primary-foreground hover:bg-primary/90 active:scale-[0.96] shadow-sm":"bg-muted text-muted-foreground cursor-not-allowed"),children:n?`Submit (${i.size})`:"Submit"})]}):(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("div",{ref:u,role:"listbox",tabIndex:0,"aria-activedescendant":o>=0?`inline-select-option-${e.id}-${o}`:void 0,onKeyDown:g,className:"space-y-1.5 rounded-lg outline-none focus-visible:ring-2 focus-visible:ring-ring",children:e.options.map((t,n)=>{let a=n===o;return(0,r.jsxs)("button",{id:`inline-select-option-${e.id}-${n}`,type:"button",role:"option","aria-selected":a,onClick:()=>p(n),disabled:s,className:(0,_.cn)("flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",a?"bg-primary/15 text-primary font-medium":"text-foreground hover:bg-muted",s&&"cursor-not-allowed opacity-60"),children:[(0,r.jsx)("span",{className:"w-4 shrink-0 text-center font-mono text-[11px] text-muted-foreground",children:n+1}),(0,r.jsx)("span",{className:"min-w-0 flex-1",children:t}),a&&(0,r.jsx)(E.A,{className:"h-3 w-3 shrink-0 text-primary"})]},n)})}),(0,r.jsx)("button",{onClick:x,disabled:s||!h,className:(0,_.cn)("mt-2 flex w-full items-center justify-center rounded-lg px-3 py-2 text-xs font-medium transition-[background-color,color,box-shadow,transform]",h&&!s?"bg-primary text-primary-foreground hover:bg-primary/90 active:scale-[0.96] shadow-sm":"bg-muted text-muted-foreground cursor-not-allowed"),children:"Submit"})]})}function ey({request:e,onSubmit:t,onDismiss:s,disabled:n}){let[o,l]=(0,a.useState)(null);return null!==o?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:o?"Confirmed":"Cancelled"})]}):(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsx)("p",{className:"text-sm text-foreground leading-relaxed",children:e.message}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:()=>{l(!0),t({value:!0})},disabled:n,className:"flex-1 rounded-lg bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-sm transition-[background-color,box-shadow,transform] hover:bg-primary/90 active:scale-[0.96]",children:"Confirm"}),(0,r.jsx)("button",{onClick:()=>{l(!1),s()},disabled:n,className:"flex-1 rounded-lg border border-border bg-background px-3 py-2 text-xs font-medium text-foreground hover:bg-accent transition-colors",children:"Cancel"})]})]})}function ew({request:e,onSubmit:t,disabled:s}){let[n,o]=(0,a.useState)(""),[l,i]=(0,a.useState)(!1),d=(0,a.useRef)(null);if((0,a.useEffect)(()=>{d.current?.focus()},[]),l)return(0,r.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:"Submitted"})]});let c=()=>{n.trim()&&!s&&(i(!0),t({value:n}))};return(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(z.p,{ref:d,value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c())},placeholder:e.placeholder||"Type your answer…",disabled:s,className:"flex-1 h-8 text-sm"}),(0,r.jsx)("button",{onClick:c,disabled:s||!n.trim(),className:(0,_.cn)("flex h-8 items-center justify-center rounded-lg px-3 text-xs font-medium transition-[background-color,color,box-shadow,transform]",n.trim()&&!s?"bg-primary text-primary-foreground hover:bg-primary/90 active:scale-[0.96] shadow-sm":"bg-muted text-muted-foreground cursor-not-allowed"),children:"Submit"})]})}function ev({request:e,onSubmit:t,disabled:s}){let[n,o]=(0,a.useState)(e.prefill||""),[l,i]=(0,a.useState)(!1);return l?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg bg-primary/10 px-3 py-2 text-sm text-primary",children:[(0,r.jsx)(E.A,{className:"h-3.5 w-3.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"font-medium",children:"Submitted"})]}):(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("textarea",{value:n,onChange:e=>o(e.target.value),disabled:s,className:"w-full min-h-[120px] rounded-lg border border-border bg-background px-3 py-2 text-sm font-mono focus:outline-none focus:ring-1 focus:ring-border/30 resize-y",autoFocus:!0}),(0,r.jsx)("button",{onClick:()=>{i(!0),t({value:n})},disabled:s,className:"flex w-full items-center justify-center rounded-lg bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-sm transition-[background-color,box-shadow,transform] hover:bg-primary/90 active:scale-[0.96]",children:"Submit"})]})}function eN({tool:e}){let[t,s]=(0,a.useState)(!1),n=(0,a.useRef)(!1),o="string"==typeof e.name?e.name.toLowerCase():"",l="string"==typeof e.args?.path?e.args.path:"string"==typeof e.args?.file_path?e.args.file_path:null,i=l?l.startsWith(X.env.HOME??"/Users")?"~"+l.slice((X.env.HOME??"").length):l:null,d=e.result?.isError??!1,c=e.result?.details?.diff,m="edit"===o?(0,r.jsx)(I.A,{className:"h-3.5 w-3.5"}):"write"===o?(0,r.jsx)(L.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(O.A,{className:"h-3.5 w-3.5"}),u="edit"===o?"Edit":"write"===o?"Write":"bash"===o?"$":e.name,x="bash"===o&&"string"==typeof e.args?.command?e.args.command:null,p=e.result?.content?.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n")??"";return(0,a.useEffect)(()=>{if(n.current||!(c||p.trim()||d))return;n.current=!0;let e=requestAnimationFrame(()=>s(!0));return()=>cancelAnimationFrame(e)},[c,p,d]),(0,r.jsxs)("div",{className:"flex justify-start gap-3",children:[(0,r.jsx)("div",{className:"w-7 flex-shrink-0"}),(0,r.jsx)("div",{className:"max-w-[82%] min-w-0 w-full",children:(0,r.jsxs)("button",{onClick:()=>s(e=>!e),className:(0,_.cn)("w-full rounded-lg border px-3 py-2 text-left text-xs transition-colors",d?"border-destructive/30 bg-destructive/5 hover:bg-destructive/10":"border-border/50 bg-muted/50 hover:bg-muted/50"),children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:(0,_.cn)("flex-shrink-0",d?"text-destructive":"text-muted-foreground"),children:m}),(0,r.jsx)("span",{className:(0,_.cn)("font-mono font-medium",d?"text-destructive":"text-muted-foreground"),children:u}),i&&(0,r.jsx)("span",{className:"truncate font-mono text-info/80",children:i}),x&&!i&&(0,r.jsx)("span",{className:"truncate font-mono text-muted-foreground",children:x.length>60?x.slice(0,60)+"…":x}),(0,r.jsx)("span",{className:"ml-auto flex-shrink-0 text-muted-foreground",children:t?(0,r.jsx)(P.A,{className:"h-3 w-3"}):(0,r.jsx)(R.A,{className:"h-3 w-3"})})]}),t&&c&&(0,r.jsx)("div",{className:"mt-2 overflow-x-auto rounded-md border border-border/50 bg-background p-2 font-mono text-[11px] leading-relaxed",children:c.split("\n").map((e,t)=>{let s=e.startsWith("+"),n=e.startsWith("-"),a=e.startsWith(" ");return(0,r.jsx)("div",{className:(0,_.cn)("whitespace-pre",s&&"bg-success/10 text-success",n&&"bg-destructive/10 text-destructive",a&&"text-muted-foreground",!s&&!n&&!a&&"text-muted-foreground"),children:e},t)})}),t&&!c&&p&&(0,r.jsx)("div",{className:"mt-2 max-h-[200px] overflow-y-auto rounded-md border border-border/50 bg-background p-2 font-mono text-[11px] leading-relaxed text-muted-foreground whitespace-pre-wrap",children:p.length>2e3?p.slice(0,2e3)+"\n…":p}),t&&d&&p&&(0,r.jsx)("div",{className:"mt-2 rounded-md border border-destructive/20 bg-destructive/5 p-2 text-[11px] text-destructive whitespace-pre-wrap",children:p})]})})]})}function ek({className:e,onOpenAction:t}){let s=(0,Q.gF)(),{submitInput:n,sendCommand:o,pushChatUserMessage:c}=(0,Q._l)(),[m]=(0,Y.A)(),[u]=(0,a.useState)(()=>Date.now()),x="connected"===s.connectionState,p=s.boot?.bridge.sessionState?.isStreaming??!1,g=s.boot?.bridge??null,h=(0,J.L)({phase:s.boot?.workspace?.active.phase??"pre-planning",autoActive:s.boot?.auto?.active??!1,autoPaused:s.boot?.auto?.paused??!1,onboardingLocked:s.boot?.onboarding.locked??!1,commandInFlight:s.commandInFlight,bootStatus:s.bootStatus,hasMilestones:(s.boot?.workspace?.milestones.length??0)>0,stepMode:s.boot?.auto?.stepMode??!1,projectDetectionKind:s.boot?.projectDetection?.kind??null}),f=(0,a.useMemo)(()=>{if(!h.primary||h.disabled)return null;let e=h.primary,t={"/gsd stop":d.A,"/gsd auto":i.A,"/gsd next":l.A};return{label:e.label,icon:t[e.command]??("New Milestone"===e.label?D.A:l.A)}},[h]),b=(0,a.useCallback)(()=>{h.primary&&o((0,Q.Sf)(h.primary.command,g))},[h,o,g]),j=(0,a.useCallback)((e,t)=>{let s=e.replace(/\r$/,"").trim();(s||t&&0!==t.length)&&(c({id:"u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"user",content:s,complete:!0,timestamp:Date.now(),images:t?.map(e=>({data:e.data,mimeType:e.mimeType}))}),n(s,t))},[n,c]),y=(0,a.useMemo)(()=>{let e=[],t=s.liveTranscript,r=s.completedTurnSegments,n=s.chatUserMessages;for(let s=0;s<Math.max(n.length,t.length);s++)if(s<n.length&&e.push({kind:"message",message:n[s]}),s<r.length&&r[s].length>0)for(let t of r[s])"thinking"===t.kind?e.push({kind:"thinking",content:t.content,id:`turn-${s}-thinking-${e.length}`}):"text"===t.kind?e.push({kind:"message",message:{id:`turn-${s}-text-${e.length}`,role:"assistant",content:t.content,complete:!0,timestamp:s+1}}):"tool"===t.kind&&e.push({kind:"tool",tool:t.tool});else s<t.length&&t[s].trim()&&e.push({kind:"message",message:{id:`transcript-${s}`,role:"assistant",content:t[s],complete:!0,timestamp:s+1}});for(let t of s.currentTurnSegments)"thinking"===t.kind?e.push({kind:"thinking",content:t.content,id:`current-thinking-${e.length}`}):"text"===t.kind?e.push({kind:"message",message:{id:`current-text-${e.length}`,role:"assistant",content:t.content,complete:!0,timestamp:u}}):"tool"===t.kind&&e.push({kind:"tool",tool:t.tool});for(let t of(s.activeToolExecution&&e.push({kind:"active-tool",tool:s.activeToolExecution}),s.streamingThinkingText.length>0&&e.push({kind:"streaming-thinking",content:s.streamingThinkingText}),s.streamingAssistantText.length>0&&e.push({kind:"streaming-message",content:s.streamingAssistantText,isThinking:!1}),0===s.streamingThinkingText.length&&0===s.streamingAssistantText.length&&!s.activeToolExecution&&p&&0===s.currentTurnSegments.length&&e.push({kind:"streaming-message",content:"",isThinking:!0}),s.pendingUiRequests))e.push({kind:"ui-request",request:t});return e},[s.liveTranscript,s.completedTurnSegments,s.currentTurnSegments,s.streamingAssistantText,s.streamingThinkingText,s.activeToolExecution,s.pendingUiRequests,s.chatUserMessages,p,u]),w=(0,a.useCallback)(e=>{n(e.replace(/\r$/,""))},[n]),v=0===y.length&&!p,N=x&&!p&&y.length>0&&!s.activeToolExecution&&0===s.pendingUiRequests.length,k=(0,a.useRef)(null),S=(0,a.useRef)(!0),A=(0,a.useCallback)(()=>{let e=k.current;e&&(S.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]);return(0,a.useEffect)(()=>{let e=k.current;e&&S.current&&(e.scrollTop=e.scrollHeight)},[y]),(0,r.jsxs)("div",{"data-testid":"chat-pane-store-driven",className:(0,_.cn)("flex flex-col overflow-hidden",e),children:[(0,r.jsx)("div",{className:"flex flex-1 flex-col overflow-hidden",children:v?(0,r.jsx)(ef,{connected:x,runningLabel:p?"responding":void 0,primaryAction:f,onPrimaryAction:b}):(0,r.jsxs)("div",{ref:k,onScroll:A,className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",style:13!==m?{fontSize:`${m}px`}:void 0,children:[y.map((e,t)=>{switch(e.kind){case"message":return(0,r.jsx)(eg,{message:e.message,onSubmitPrompt:w},e.message.id);case"thinking":return(0,r.jsxs)("div",{className:"flex justify-start gap-3",children:[(0,r.jsx)("div",{className:"w-7 flex-shrink-0"}),(0,r.jsx)("div",{className:"max-w-[82%] min-w-0",children:(0,r.jsx)(ep,{content:e.content,isStreaming:!1})})]},e.id);case"streaming-thinking":return(0,r.jsxs)("div",{className:"flex justify-start gap-3",children:[(0,r.jsx)("div",{className:"w-7 flex-shrink-0"}),(0,r.jsx)("div",{className:"max-w-[82%] min-w-0",children:(0,r.jsx)(ep,{content:e.content,isStreaming:!0})})]},"streaming-thinking");case"streaming-message":return(0,r.jsx)(eg,{message:{id:"streaming-current",role:"assistant",content:e.content,complete:!1,timestamp:u},isThinking:e.isThinking},"streaming-message");case"tool":return(0,r.jsx)(eN,{tool:e.tool},e.tool.id);case"active-tool":return(0,r.jsxs)("div",{className:"flex justify-start gap-3",children:[(0,r.jsx)("div",{className:"w-7 flex-shrink-0"}),(0,r.jsx)("div",{className:"max-w-[82%] min-w-0",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border/50 bg-muted/50 px-3.5 py-2",children:[(0,r.jsx)(T.A,{className:"h-3 w-3 animate-spin text-muted-foreground"}),(0,r.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:e.tool.name}),!!e.tool.args?.path&&(0,r.jsx)("span",{className:"font-mono text-xs text-info/80 truncate",children:String(e.tool.args?.path)})]})})]},`active-${e.tool.id}`);case"ui-request":return(0,r.jsx)(eb,{request:e.request},e.request.id)}}),N&&(0,r.jsxs)("div",{className:"flex items-center gap-2 px-1 py-1 text-xs text-muted-foreground animate-in fade-in duration-500",children:[(0,r.jsx)("span",{className:"inline-block h-2 w-2 rounded-full bg-emerald-500/70 animate-pulse"}),"Ready for your input"]}),(0,r.jsx)("div",{className:"h-2"})]})}),(0,r.jsx)(eh,{onSendInput:j,connected:x,onOpenAction:t})]})}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,a,d,f,c,b,t,r,o,n={},i={};function l(e){var a=i[e];if(void 0!==a)return a.exports;var d=i[e]={exports:{}},f=!0;try{n[e].call(d.exports,d,d.exports,l),f=!1}finally{f&&delete i[e]}return d.exports}l.m=n,e=[],l.O=(a,d,f,c)=>{if(d){c=c||0;for(var b=e.length;b>0&&e[b-1][2]>c;b--)e[b]=e[b-1];e[b]=[d,f,c];return}for(var t=1/0,b=0;b<e.length;b++){for(var[d,f,c]=e[b],r=!0,o=0;o<d.length;o++)(!1&c||t>=c)&&Object.keys(l.O).every(e=>l.O[e](d[o]))?d.splice(o--,1):(r=!1,c<t&&(t=c));if(r){e.splice(b--,1);var n=f();void 0!==n&&(a=n)}}return a},l.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return l.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,f){if(1&f&&(e=this(e)),8&f||"object"==typeof e&&e&&(4&f&&e.__esModule||16&f&&"function"==typeof e.then))return e;var c=Object.create(null);l.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,l.d(c,b),c},l.d=(e,a)=>{for(var d in a)l.o(a,d)&&!l.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((a,d)=>(l.f[d](e,a),a),[])),l.u=e=>5395===e?"static/chunks/5395-712c8b12d97fd36f.js":"static/chunks/"+(({1077:"3969fbf3",1444:"65aac708",2378:"654b0707",2415:"95b71484",2445:"b07d4d74",4408:"4b0d4931",4432:"2070ac3a",5002:"38a9ebc2",5400:"817dbc02",5745:"762f9c27",5992:"59e88d55",7110:"ff8cc638",7178:"cf3a91ff",8151:"e93892bd"})[e]||e)+"."+({126:"9ba2b9f3bc2decd1",129:"1c38353c1c400672",152:"1cffac9c3e622387",162:"3092aea0f592a5c8",179:"883699416402e239",207:"f66184b363f09cc6",287:"8209489f74af51fc",338:"72226320f355ae45",390:"19e95f0dff471e06",521:"d218eead5637baa4",592:"e0dc54386e138164",597:"687ca88aab4878a8",607:"389356bce0bec389",623:"9d7a30953efb9041",628:"ce453e3867eacdb0",652:"adc4c63df50976d9",655:"af70b892d9ee7ff0",722:"6b0f9ede4792fdb2",743:"e0182df2d265e5d6",760:"22f2b7b4675cc37c",764:"7b85222921596e25",796:"46f811c0fac23aab",854:"8e11a99837f41820",860:"f5bd652b07d26589",873:"d55eae71db4fdae4",885:"a2eda74573a6b7d5",919:"ca6561eb1b7f14b6",941:"ed6bac59022f3080",945:"63ba715dc6e4fea3",1077:"9b07abe025da44ba",1123:"f7f3ad40134d8e99",1136:"2f76140d08eada66",1153:"048157f0fff9e01e",1206:"9baa9dd13a543ddb",1214:"2056b3a6e6552f7a",1250:"07796cdda0cd2444",1261:"e4d2bba8cd005033",1315:"3d55775d86c54851",1322:"c4c89a279a52df74",1345:"a4cf42ea9b13c909",1351:"7ee94d2f73451e23",1361:"4f4a1888e523849e",1423:"7cad9e54180af25d",1444:"d079243ca36c5ea2",1473:"a6b64091fe87340e",1482:"9689d3f766caf505",1495:"614c12ff10a7e552",1571:"7d29379eb7395921",1669:"6274d62b0b7a0b48",1695:"3bd5062799f8d633",1718:"160d45447ee37ec6",1743:"17835c4ac8e5ccd5",1874:"a76b2f83e3692ed0",1884:"8b25180bb68977e8",1912:"6c18c811ab80a30b",2070:"972cc52aecb08f83",2112:"8ecf08fc933fda55",2216:"bef68d39d583e498",2268:"104fd1e51f9091e9",2310:"573f48b61ab7f1c3",2331:"af7117be987990f3",2338:"a00ee44a19bee4d9",2365:"3d9a40778b3035bc",2378:"673f7e2ed249e9ac",2381:"7801777a8df06b9d",2397:"119f6bec0d803dc9",2415:"cb591d7769c93747",2445:"e34a3c703203c8a1",2474:"f820659ebb687bd5",2510:"24179d76deadadc7",2514:"3272efa11f4cabf5",2546:"1f2445595be11d8c",2598:"1df225a5dcc14011",2599:"bfc3f47c5f83c1cb",2659:"feb6499ca863ebfc",2661:"f9009d1618461a73",2686:"fc7ea5c1eee5a2a8",2740:"92d294a92e7d850a",2755:"282d43af08df2f84",2759:"edfe5f37338ad459",2772:"151789db0edea835",2780:"02c859ba77180283",2786:"a9688cc5fe6b1c38",2819:"84bfdb28b9c3f9f5",2918:"a2f8d785597a319c",2921:"030672c0326dd867",2930:"40ef631ca72bb6d9",2967:"9216a21dcf13c273",2996:"618f0444a810fe91",3009:"f86fd5262e3248d8",3011:"6b7a2b1cdf640f37",3050:"15d6b994e9ba45f6",3090:"94a59ca356662efa",3096:"1135d2c0caf0226d",3166:"8607f1a8a3e9ce29",3211:"e54601c5020211c0",3225:"ec603e751e9e2675",3238:"eaeace056cf95a31",3271:"675adb98e68d6675",3338:"397da6ca541ffabd",3367:"9ff7dfd30b60f0b9",3459:"b19b5fb587be680c",3475:"31918bc1df82570e",3549:"5fa9a69d3e72cbc5",3565:"97dbecedec5aa86f",3605:"e6efa3efb3ea2838",3606:"c9441114c48a7815",3616:"4113d484a994e411",3626:"5941c941868c4fa8",3676:"467ce1e6a1891598",3703:"b38f3e26f586a6aa",3726:"17cdcaae372b7230",3783:"e5bbeed5b0dd959f",3813:"46cde9b866a32a7f",3842:"54fd91b4e63d1012",3859:"b20f5f8e7372b1c7",3876:"614c12ff10a7e552",3903:"b8cf9b1681e071cd",3915:"a9e8cf78d79c6fe8",3957:"19008089a14b9721",4015:"b1bc267728bc0e2e",4017:"cd6aafccbc8a5e12",4033:"45786a60d513a2a1",4046:"48caa601045e2e89",4055:"610fdd174210a882",4084:"b1c0e215bb966f15",4135:"bf2b662e89fa9c68",4221:"a9909c11be2eeb3c",4263:"1ccab47318fedba3",4279:"35af682f7b26217e",4283:"10a065467b5340d8",4299:"d971e70cc188496c",4310:"85e674ad8ee69a44",4312:"3f57c4272be6993f",4369:"6934f56ee86a8304",4400:"7c5baaa08cb92ee3",4408:"ec26e3162e59e1dd",4432:"4684627aebae47be",4469:"3c155fdefafbeac6",4489:"8e74b0a7841998bb",4500:"75ec698780c458a3",4527:"f98d84e6a3fefd9b",4531:"236d7761b344aa8e",4556:"14611bd48f6e6b1a",4580:"8b21303ba8c17b40",4599:"853e8906611708d8",4605:"3fdedf487b53ad50",4607:"d3a39503f7ada32c",4665:"3126cd18619abaaa",4688:"edb09f1d5243212b",4692:"e94d1622b2a7af47",4735:"15c4dc9989dc0c48",4739:"93da5ac1a266e99c",4745:"3b1cd948aa85140e",4771:"8afee58317ca8820",4785:"c69323ddb2466dd8",4803:"9c22573110c833c2",4804:"1f6298ef85b61a54",4853:"0f266e143041f851",4861:"55f11124e2b01b24",4864:"0a4f49ce4630b8bb",4866:"41b99152f0c51f4b",4872:"16772f4c5aa2b6a7",4912:"4a896e1d83eaa89b",4949:"5dda0f80f5194ff4",4961:"f65af5ad4c40e445",4980:"23b955704d3685ea",5002:"e67f676b4ef0838a",5027:"8337dcfe6eed9b0e",5038:"844d2aa705a41935",5070:"719b31da3890ad9f",5085:"7718342da25f214c",5104:"b878b75861e1b371",5105:"8257972ee4d137cc",5134:"cedbfd63d65c7eeb",5142:"74bc377e596dba8a",5146:"8c2a145b6c08d3f3",5151:"716e0bef5b829eae",5220:"baabab50a7e52b0f",5270:"e4955d0ca95de492",5290:"87c54425f7d924ac",5315:"cca12f675faf2924",5323:"935348720adb1d4b",5331:"0b7d0c72ec8da097",5380:"3a2fe1150cd5cfef",5400:"28b6e9abcbbd2557",5411:"3f8f37be9655e773",5444:"af7e242c7457254f",5504:"2edf0833e947dc1d",5577:"bb3f81f2c408e4c3",5665:"0860090e30838620",5668:"0bd93611a3ff4f2a",5678:"a239c70dc8ec7d8c",5707:"8b562162c503157c",5745:"488b55f511068b38",5782:"e86f388ced29aa87",5826:"960dc4634cc9b0d3",5827:"c822e70f3d43bb6c",5941:"e2a61bd1f0fc65fb",5992:"82ae77105fe4dcf3",6051:"0ab65c096f692a42",6060:"e9b71068a93cba84",6063:"194b823374fd9c16",6065:"69030ecc96ee5829",6256:"0024d6cdbdaabb80",6312:"cf845477965a9183",6377:"fff6670a1759c9bb",6416:"f3dfee279b1572cc",6419:"038812086fdebf95",6467:"3a11d073b387ad12",6473:"9e963ae0b1628f43",6478:"697eab7a0fa21e82",6482:"f5ef60e285fa0d1f",6515:"1b82f729a9a0dde5",6559:"5bff64ac811186e1",6666:"f3f23d326569033b",6734:"fc8332529bdf41a1",6808:"643c09c4c01c8290",6841:"b5728e150f722169",6941:"ea8e2c9c71fd2cd0",6962:"112712eec82c5fad",6964:"0662b8072a44a3a6",7007:"7ef64327e1e42a17",7075:"3f7a6832ccc2dbe8",7086:"b713f78c1940ed4f",7110:"e57b30faf568a97e",7170:"16c4c2d8390e7cdf",7178:"5000c510258cf59b",7220:"0d05ce4590e86996",7228:"b3c3c9a814277ca7",7243:"49a137f606af7436",7261:"11dbc0180fbeae09",7262:"af8c8aba42d990fd",7297:"f2e305e4ce4d6702",7369:"5dbdfce41fb966c3",7377:"1a2ecf5a0c739873",7442:"72f474c7a32ffbf2",7471:"1132b103963d5fe4",7483:"f100f7dfce9431da",7553:"bc417df10b98ab1c",7578:"20d5d4e28e5d5a4b",7618:"96a41c270cdeb199",7638:"74b89c0a7bdf1ec8",7649:"9d8449840e323ea6",7672:"044ef970373de035",7684:"b48a9d5a3e104ce9",7686:"0ecda170d92f7c4e",7700:"306f4f14afb8f968",7756:"869b916ffa9b76c2",7781:"81ecc647deef0cca",7782:"61500afd4448c579",7785:"7000da1e2563cbb7",7788:"9b4f158263603eee",7790:"e33b1b03b35fedd6",7821:"2ed1ed0bbba0c7a0",7834:"71cf3c773b7ee0a8",7858:"250d64a985f6e4a7",7881:"a0cb60288b12f49a",7882:"2dfaedf0ae29d207",7905:"42c1464b38b8689c",7908:"b2110aab2c2c875a",7914:"4fb198fb5f5d135f",7915:"eaa5c56a7a6d3cf3",8013:"4f60a29f86748b7f",8029:"0958bda6fa108971",8077:"8f546fac0418c4bb",8114:"d4ae3814aa14ef0d",8135:"375e00a47d8a5268",8141:"57b2214799d878db",8150:"4b423a101d0b144b",8151:"53d0131855c7fa0c",8216:"a8ce0716eb650868",8222:"69f21959d892b776",8230:"19ca527d74bf10ed",8294:"a132a7a174a21659",8297:"ace10997725e096b",8343:"ae355f353bfaaf03",8355:"14bf1e0f561d91d3",8359:"ed1285561fe3ad31",8402:"b0f22d7eef4994ae",8412:"20d56a7d288a956a",8418:"c7c4ddbaadf85f19",8468:"b5657f4c281580a8",8477:"2290b6016a1b17c8",8668:"8896b07da8d7d96d",8705:"5be5ebdc43a9a420",8751:"d0b568b914ffbfa5",8770:"a97126f1f3a9b4e2",8785:"d32f7a61f55c1600",8790:"f19e4db908478e1a",8896:"7e3f3cf029b5db75",8899:"1a8dfdb581aed370",8916:"a9e0829115188fd3",8945:"7b20fc20debe768f",9044:"3187ff246dcd1b78",9046:"1e28d52982f425ef",9052:"a55c33d156aa70f2",9114:"614c12ff10a7e552",9160:"f7deac955caf6a4f",9221:"281cc760f1370692",9293:"9ddf213e52267513",9299:"52c007a28e886ab4",9331:"368ea567d63fdf3c",9339:"1acf9e17e3123140",9386:"452f3e344fcfcb71",9477:"50a92b2b535540b7",9482:"3557a55c151b9921",9503:"768da88f4b56bd52",9504:"bd652590ec1e8283",9510:"8bf1926d9f577451",9519:"4e7fac0240299c0e",9531:"a3c12da2280caaa2",9543:"33777036c8886f6f",9571:"89d2beccb4237857",9572:"ba1ea7694a5b0c21",9579:"0e7f9c150e345f3a",9622:"76af19fdfdf8b510",9635:"e3c114e207c1af16",9646:"896fe7beac2909ce",9684:"ffb5e0e3bcb7df84",9695:"530c0c12a9f06089",9723:"7f9f73336bdf3d88",9731:"a1eaf64717f7fccc",9740:"18d3fff3bcd9452d",9778:"cd22c6d56df0ee93",9840:"05ba47aa17ee6185",9929:"6faefd225ec8d02f",9996:"036f15bb95080f44"})[e]+".js",l.miniCssF=e=>"static/css/659eccb5db697b76.css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},l.l=(e,a,d,c)=>{if(f[e])return void f[e].push(a);if(void 0!==d)for(var b,t,r=document.getElementsByTagName("script"),o=0;o<r.length;o++){var n=r[o];if(n.getAttribute("src")==e||n.getAttribute("data-webpack")=="_N_E:"+d){b=n;break}}b||(t=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,l.nc&&b.setAttribute("nonce",l.nc),b.setAttribute("data-webpack","_N_E:"+d),b.src=l.tu(e)),f[e]=[a];var i=(a,d)=>{b.onerror=b.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach(e=>e(d)),a)return a(d)},s=setTimeout(i.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=i.bind(null,b.onerror),b.onload=i.bind(null,b.onload),t&&document.head.appendChild(b)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),l.tu=e=>l.tt().createScriptURL(e),l.p="/_next/",b={8068:0},l.f.miniCss=(e,a)=>{if(b[e])a.push(b[e]);else 0!==b[e]&&({4825:1})[e]&&a.push(b[e]=new Promise((a,d)=>{var f=l.miniCssF(e),c=l.p+f;if(((e,a)=>{for(var d=document.getElementsByTagName("link"),f=0;f<d.length;f++){var c=d[f],b=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(b===e||b===a))return c}for(var t=document.getElementsByTagName("style"),f=0;f<t.length;f++){var c=t[f],b=c.getAttribute("data-href");if(b===e||b===a)return c}})(f,c))return a();((e,a,d,f)=>{var c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.onerror=c.onload=b=>{if(c.onerror=c.onload=null,"load"===b.type)d();else{var t=b&&("load"===b.type?"missing":b.type),r=b&&b.target&&b.target.href||a,o=Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=t,o.request=r,c.parentNode.removeChild(c),f(o)}},c.href=a;if("function"==typeof _N_E_STYLE_LOAD){var b=c.href,t=c.onload,r=c.onerror;_N_E_STYLE_LOAD(0===b.indexOf(window.location.origin)?new URL(b).pathname:b).then(function(){t&&t.call(c,{type:"load"})},function(){r&&r.call(c,{})})}else document.head.appendChild(c)})(e,c,a,d)}).then(()=>{b[e]=0},a=>{throw delete b[e],a}))},t={8068:0,4337:0},l.f.j=(e,a)=>{var d=l.o(t,e)?t[e]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(4337|4825|8068)$/.test(e))t[e]=0;else{var f=new Promise((a,f)=>d=t[e]=[a,f]);a.push(d[2]=f);var c=l.p+l.u(e),b=Error();l.l(c,a=>{if(l.o(t,e)&&(0!==(d=t[e])&&(t[e]=void 0),d)){var f=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;b.message="Loading chunk "+e+" failed.\n("+f+": "+c+")",b.name="ChunkLoadError",b.type=f,b.request=c,d[1](b)}},"chunk-"+e,e)}},l.O.j=e=>0===t[e],r=(e,a)=>{var d,f,[c,b,r]=a,o=0;if(c.some(e=>0!==t[e])){for(d in b)l.o(b,d)&&(l.m[d]=b[d]);if(r)var n=r(l)}for(e&&e(a);o<c.length;o++)f=c[o],l.o(t,f)&&t[f]&&t[f][0](),t[f]=0;return l.O(n)},(o=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o)),l.nc=void 0})();
|
|
1
|
+
(()=>{"use strict";var e,d,a,f,c,b,t,r,o,n={},i={};function l(e){var d=i[e];if(void 0!==d)return d.exports;var a=i[e]={exports:{}},f=!0;try{n[e].call(a.exports,a,a.exports,l),f=!1}finally{f&&delete i[e]}return a.exports}l.m=n,e=[],l.O=(d,a,f,c)=>{if(a){c=c||0;for(var b=e.length;b>0&&e[b-1][2]>c;b--)e[b]=e[b-1];e[b]=[a,f,c];return}for(var t=1/0,b=0;b<e.length;b++){for(var[a,f,c]=e[b],r=!0,o=0;o<a.length;o++)(!1&c||t>=c)&&Object.keys(l.O).every(e=>l.O[e](a[o]))?a.splice(o--,1):(r=!1,c<t&&(t=c));if(r){e.splice(b--,1);var n=f();void 0!==n&&(d=n)}}return d},l.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return l.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,f){if(1&f&&(e=this(e)),8&f||"object"==typeof e&&e&&(4&f&&e.__esModule||16&f&&"function"==typeof e.then))return e;var c=Object.create(null);l.r(c);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(d=>b[d]=()=>e[d]);return b.default=()=>e,l.d(c,b),c},l.d=(e,d)=>{for(var a in d)l.o(d,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((d,a)=>(l.f[a](e,d),d),[])),l.u=e=>5395===e?"static/chunks/5395-712c8b12d97fd36f.js":"static/chunks/"+(({1077:"3969fbf3",1444:"65aac708",2378:"654b0707",2415:"95b71484",2445:"b07d4d74",4408:"4b0d4931",4432:"2070ac3a",5002:"38a9ebc2",5400:"817dbc02",5745:"762f9c27",5992:"59e88d55",7110:"ff8cc638",7178:"cf3a91ff",8151:"e93892bd"})[e]||e)+"."+({126:"9ba2b9f3bc2decd1",129:"1c38353c1c400672",152:"1cffac9c3e622387",162:"3092aea0f592a5c8",179:"883699416402e239",207:"f66184b363f09cc6",287:"8209489f74af51fc",338:"72226320f355ae45",390:"19e95f0dff471e06",521:"d218eead5637baa4",592:"e0dc54386e138164",597:"687ca88aab4878a8",607:"389356bce0bec389",623:"9d7a30953efb9041",628:"ce453e3867eacdb0",652:"adc4c63df50976d9",655:"af70b892d9ee7ff0",722:"6b0f9ede4792fdb2",743:"e0182df2d265e5d6",760:"22f2b7b4675cc37c",764:"7b85222921596e25",796:"cf859a427a2cb2ac",854:"8e11a99837f41820",860:"f5bd652b07d26589",873:"d55eae71db4fdae4",885:"a2eda74573a6b7d5",919:"ca6561eb1b7f14b6",941:"ed6bac59022f3080",945:"63ba715dc6e4fea3",1077:"9b07abe025da44ba",1123:"f7f3ad40134d8e99",1136:"2f76140d08eada66",1153:"048157f0fff9e01e",1206:"9baa9dd13a543ddb",1214:"2056b3a6e6552f7a",1250:"07796cdda0cd2444",1261:"e4d2bba8cd005033",1315:"3d55775d86c54851",1322:"c4c89a279a52df74",1345:"a4cf42ea9b13c909",1351:"7ee94d2f73451e23",1361:"4f4a1888e523849e",1423:"7cad9e54180af25d",1444:"d079243ca36c5ea2",1473:"a6b64091fe87340e",1482:"9689d3f766caf505",1495:"614c12ff10a7e552",1571:"7d29379eb7395921",1669:"6274d62b0b7a0b48",1695:"3bd5062799f8d633",1718:"160d45447ee37ec6",1743:"17835c4ac8e5ccd5",1874:"a76b2f83e3692ed0",1884:"8b25180bb68977e8",1912:"6c18c811ab80a30b",2070:"972cc52aecb08f83",2112:"8ecf08fc933fda55",2216:"bef68d39d583e498",2268:"104fd1e51f9091e9",2310:"573f48b61ab7f1c3",2331:"af7117be987990f3",2338:"a00ee44a19bee4d9",2365:"3d9a40778b3035bc",2378:"673f7e2ed249e9ac",2381:"7801777a8df06b9d",2397:"119f6bec0d803dc9",2415:"cb591d7769c93747",2445:"e34a3c703203c8a1",2474:"f820659ebb687bd5",2510:"24179d76deadadc7",2514:"3272efa11f4cabf5",2546:"1f2445595be11d8c",2598:"1df225a5dcc14011",2599:"bfc3f47c5f83c1cb",2659:"b7b129ee6a769448",2661:"f9009d1618461a73",2686:"fc7ea5c1eee5a2a8",2740:"92d294a92e7d850a",2755:"282d43af08df2f84",2759:"edfe5f37338ad459",2772:"bfa657f49f955239",2780:"02c859ba77180283",2786:"a9688cc5fe6b1c38",2819:"84bfdb28b9c3f9f5",2918:"a2f8d785597a319c",2921:"030672c0326dd867",2930:"40ef631ca72bb6d9",2967:"9216a21dcf13c273",2996:"618f0444a810fe91",3009:"f86fd5262e3248d8",3011:"6b7a2b1cdf640f37",3050:"15d6b994e9ba45f6",3090:"94a59ca356662efa",3096:"1135d2c0caf0226d",3166:"8607f1a8a3e9ce29",3211:"e54601c5020211c0",3225:"ec603e751e9e2675",3238:"eaeace056cf95a31",3271:"675adb98e68d6675",3338:"397da6ca541ffabd",3367:"9ff7dfd30b60f0b9",3459:"b19b5fb587be680c",3475:"31918bc1df82570e",3549:"5fa9a69d3e72cbc5",3565:"97dbecedec5aa86f",3605:"e6efa3efb3ea2838",3606:"c9441114c48a7815",3616:"3c60753b8ffcbd2e",3626:"5941c941868c4fa8",3676:"467ce1e6a1891598",3703:"b38f3e26f586a6aa",3726:"17cdcaae372b7230",3783:"e5bbeed5b0dd959f",3813:"46cde9b866a32a7f",3842:"54fd91b4e63d1012",3859:"b20f5f8e7372b1c7",3876:"614c12ff10a7e552",3903:"b8cf9b1681e071cd",3915:"a9e8cf78d79c6fe8",3957:"19008089a14b9721",4015:"b1bc267728bc0e2e",4017:"cd6aafccbc8a5e12",4033:"45786a60d513a2a1",4046:"48caa601045e2e89",4055:"610fdd174210a882",4084:"b1c0e215bb966f15",4135:"bf2b662e89fa9c68",4221:"a9909c11be2eeb3c",4263:"1ccab47318fedba3",4279:"35af682f7b26217e",4283:"e4873b058df143a1",4299:"d971e70cc188496c",4310:"85e674ad8ee69a44",4312:"3f57c4272be6993f",4369:"6934f56ee86a8304",4400:"7c5baaa08cb92ee3",4408:"ec26e3162e59e1dd",4432:"4684627aebae47be",4469:"3c155fdefafbeac6",4489:"8e74b0a7841998bb",4500:"75ec698780c458a3",4527:"f98d84e6a3fefd9b",4531:"236d7761b344aa8e",4556:"14611bd48f6e6b1a",4580:"8b21303ba8c17b40",4599:"853e8906611708d8",4605:"3fdedf487b53ad50",4607:"d3a39503f7ada32c",4665:"3126cd18619abaaa",4688:"edb09f1d5243212b",4692:"e94d1622b2a7af47",4735:"15c4dc9989dc0c48",4739:"93da5ac1a266e99c",4745:"3b1cd948aa85140e",4771:"8afee58317ca8820",4785:"c69323ddb2466dd8",4803:"9c22573110c833c2",4804:"1f6298ef85b61a54",4853:"0f266e143041f851",4861:"55f11124e2b01b24",4864:"0a4f49ce4630b8bb",4866:"41b99152f0c51f4b",4872:"16772f4c5aa2b6a7",4912:"4a896e1d83eaa89b",4949:"5dda0f80f5194ff4",4961:"f65af5ad4c40e445",4980:"23b955704d3685ea",5002:"e67f676b4ef0838a",5027:"8337dcfe6eed9b0e",5038:"844d2aa705a41935",5070:"719b31da3890ad9f",5085:"7718342da25f214c",5104:"b878b75861e1b371",5105:"8257972ee4d137cc",5134:"cedbfd63d65c7eeb",5142:"74bc377e596dba8a",5146:"8c2a145b6c08d3f3",5151:"716e0bef5b829eae",5220:"baabab50a7e52b0f",5270:"e4955d0ca95de492",5290:"87c54425f7d924ac",5315:"cca12f675faf2924",5323:"935348720adb1d4b",5331:"0b7d0c72ec8da097",5380:"3a2fe1150cd5cfef",5400:"28b6e9abcbbd2557",5411:"3f8f37be9655e773",5444:"af7e242c7457254f",5504:"2edf0833e947dc1d",5577:"bb3f81f2c408e4c3",5665:"0860090e30838620",5668:"0bd93611a3ff4f2a",5678:"a239c70dc8ec7d8c",5707:"8b562162c503157c",5745:"488b55f511068b38",5782:"e86f388ced29aa87",5826:"a46ecdd1cfe8dabc",5827:"c822e70f3d43bb6c",5941:"e2a61bd1f0fc65fb",5992:"82ae77105fe4dcf3",6051:"0ab65c096f692a42",6060:"e9b71068a93cba84",6063:"194b823374fd9c16",6065:"69030ecc96ee5829",6256:"0024d6cdbdaabb80",6312:"cf845477965a9183",6377:"fff6670a1759c9bb",6416:"f3dfee279b1572cc",6419:"038812086fdebf95",6467:"3a11d073b387ad12",6473:"9e963ae0b1628f43",6478:"697eab7a0fa21e82",6482:"f5ef60e285fa0d1f",6515:"1b82f729a9a0dde5",6559:"5bff64ac811186e1",6666:"f3f23d326569033b",6734:"fc8332529bdf41a1",6808:"643c09c4c01c8290",6841:"b5728e150f722169",6941:"ea8e2c9c71fd2cd0",6962:"112712eec82c5fad",6964:"0662b8072a44a3a6",7007:"7ef64327e1e42a17",7075:"3f7a6832ccc2dbe8",7086:"b713f78c1940ed4f",7110:"e57b30faf568a97e",7170:"16c4c2d8390e7cdf",7178:"5000c510258cf59b",7220:"0d05ce4590e86996",7228:"b3c3c9a814277ca7",7243:"49a137f606af7436",7261:"11dbc0180fbeae09",7262:"af8c8aba42d990fd",7297:"f2e305e4ce4d6702",7369:"5dbdfce41fb966c3",7377:"1a2ecf5a0c739873",7442:"72f474c7a32ffbf2",7471:"1132b103963d5fe4",7483:"f100f7dfce9431da",7553:"bc417df10b98ab1c",7578:"20d5d4e28e5d5a4b",7618:"96a41c270cdeb199",7638:"74b89c0a7bdf1ec8",7649:"9d8449840e323ea6",7672:"044ef970373de035",7684:"b48a9d5a3e104ce9",7686:"0ecda170d92f7c4e",7700:"306f4f14afb8f968",7756:"869b916ffa9b76c2",7781:"81ecc647deef0cca",7782:"61500afd4448c579",7785:"7000da1e2563cbb7",7788:"9b4f158263603eee",7790:"e33b1b03b35fedd6",7821:"2ed1ed0bbba0c7a0",7834:"71cf3c773b7ee0a8",7858:"250d64a985f6e4a7",7881:"a0cb60288b12f49a",7882:"2dfaedf0ae29d207",7905:"42c1464b38b8689c",7908:"b2110aab2c2c875a",7914:"4fb198fb5f5d135f",7915:"eaa5c56a7a6d3cf3",8013:"4f60a29f86748b7f",8029:"0958bda6fa108971",8077:"8f546fac0418c4bb",8114:"d4ae3814aa14ef0d",8135:"375e00a47d8a5268",8141:"57b2214799d878db",8150:"4b423a101d0b144b",8151:"53d0131855c7fa0c",8216:"a8ce0716eb650868",8222:"69f21959d892b776",8230:"19ca527d74bf10ed",8294:"a132a7a174a21659",8297:"ace10997725e096b",8343:"ae355f353bfaaf03",8355:"14bf1e0f561d91d3",8359:"ed1285561fe3ad31",8402:"b0f22d7eef4994ae",8412:"20d56a7d288a956a",8418:"c7c4ddbaadf85f19",8468:"b5657f4c281580a8",8477:"2290b6016a1b17c8",8668:"8896b07da8d7d96d",8705:"5be5ebdc43a9a420",8751:"d0b568b914ffbfa5",8770:"a97126f1f3a9b4e2",8785:"2e5a118797fb2dd2",8790:"f19e4db908478e1a",8896:"7e3f3cf029b5db75",8899:"1a8dfdb581aed370",8916:"a9e0829115188fd3",8945:"7b20fc20debe768f",9044:"3187ff246dcd1b78",9046:"1e28d52982f425ef",9052:"a55c33d156aa70f2",9114:"614c12ff10a7e552",9160:"f7deac955caf6a4f",9221:"281cc760f1370692",9293:"9ddf213e52267513",9299:"52c007a28e886ab4",9331:"368ea567d63fdf3c",9339:"1acf9e17e3123140",9386:"452f3e344fcfcb71",9477:"50a92b2b535540b7",9482:"3557a55c151b9921",9503:"768da88f4b56bd52",9504:"bd652590ec1e8283",9510:"8bf1926d9f577451",9519:"4e7fac0240299c0e",9531:"a3c12da2280caaa2",9543:"33777036c8886f6f",9571:"89d2beccb4237857",9572:"ba1ea7694a5b0c21",9579:"0e7f9c150e345f3a",9622:"76af19fdfdf8b510",9635:"e3c114e207c1af16",9646:"896fe7beac2909ce",9684:"ffb5e0e3bcb7df84",9695:"530c0c12a9f06089",9723:"7f9f73336bdf3d88",9731:"a1eaf64717f7fccc",9740:"18d3fff3bcd9452d",9778:"cd22c6d56df0ee93",9840:"05ba47aa17ee6185",9929:"6faefd225ec8d02f",9996:"036f15bb95080f44"})[e]+".js",l.miniCssF=e=>"static/css/659eccb5db697b76.css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),f={},l.l=(e,d,a,c)=>{if(f[e])return void f[e].push(d);if(void 0!==a)for(var b,t,r=document.getElementsByTagName("script"),o=0;o<r.length;o++){var n=r[o];if(n.getAttribute("src")==e||n.getAttribute("data-webpack")=="_N_E:"+a){b=n;break}}b||(t=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,l.nc&&b.setAttribute("nonce",l.nc),b.setAttribute("data-webpack","_N_E:"+a),b.src=l.tu(e)),f[e]=[d];var i=(d,a)=>{b.onerror=b.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach(e=>e(a)),d)return d(a)},s=setTimeout(i.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=i.bind(null,b.onerror),b.onload=i.bind(null,b.onload),t&&document.head.appendChild(b)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),l.tu=e=>l.tt().createScriptURL(e),l.p="/_next/",b={8068:0},l.f.miniCss=(e,d)=>{if(b[e])d.push(b[e]);else 0!==b[e]&&({4825:1})[e]&&d.push(b[e]=new Promise((d,a)=>{var f=l.miniCssF(e),c=l.p+f;if(((e,d)=>{for(var a=document.getElementsByTagName("link"),f=0;f<a.length;f++){var c=a[f],b=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(b===e||b===d))return c}for(var t=document.getElementsByTagName("style"),f=0;f<t.length;f++){var c=t[f],b=c.getAttribute("data-href");if(b===e||b===d)return c}})(f,c))return d();((e,d,a,f)=>{var c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.onerror=c.onload=b=>{if(c.onerror=c.onload=null,"load"===b.type)a();else{var t=b&&("load"===b.type?"missing":b.type),r=b&&b.target&&b.target.href||d,o=Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=t,o.request=r,c.parentNode.removeChild(c),f(o)}},c.href=d;if("function"==typeof _N_E_STYLE_LOAD){var b=c.href,t=c.onload,r=c.onerror;_N_E_STYLE_LOAD(0===b.indexOf(window.location.origin)?new URL(b).pathname:b).then(function(){t&&t.call(c,{type:"load"})},function(){r&&r.call(c,{})})}else document.head.appendChild(c)})(e,c,d,a)}).then(()=>{b[e]=0},d=>{throw delete b[e],d}))},t={8068:0,4337:0},l.f.j=(e,d)=>{var a=l.o(t,e)?t[e]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(4337|4825|8068)$/.test(e))t[e]=0;else{var f=new Promise((d,f)=>a=t[e]=[d,f]);d.push(a[2]=f);var c=l.p+l.u(e),b=Error();l.l(c,d=>{if(l.o(t,e)&&(0!==(a=t[e])&&(t[e]=void 0),a)){var f=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;b.message="Loading chunk "+e+" failed.\n("+f+": "+c+")",b.name="ChunkLoadError",b.type=f,b.request=c,a[1](b)}},"chunk-"+e,e)}},l.O.j=e=>0===t[e],r=(e,d)=>{var a,f,[c,b,r]=d,o=0;if(c.some(e=>0!==t[e])){for(a in b)l.o(b,a)&&(l.m[a]=b[a]);if(r)var n=r(l)}for(e&&e(d);o<c.length;o++)f=c[o],l.o(t,f)&&t[f]&&t[f][0](),t[f]=0;return l.O(n)},(o=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o)),l.nc=void 0})();
|
|
@@ -354,7 +354,7 @@ endif
|
|
|
354
354
|
|
|
355
355
|
quiet_cmd_regen_makefile = ACTION Regenerating $@
|
|
356
356
|
cmd_regen_makefile = cd $(srcdir); /github/home/setup-pnpm/node_modules/.pnpm/pnpm@10.12.1/node_modules/pnpm/dist/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/github/home/.cache/node-gyp/24.16.0" "-Dnode_gyp_dir=/github/home/setup-pnpm/node_modules/.pnpm/pnpm@10.12.1/node_modules/pnpm/dist/node_modules/node-gyp" "-Dnode_lib_file=/github/home/.cache/node-gyp/24.16.0/<(target_arch)/node.lib" "-Dmodule_root_dir=/__w/gsd-pi/gsd-pi/node_modules/.pnpm/node-pty@1.1.0/node_modules/node-pty" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/__w/gsd-pi/gsd-pi/node_modules/.pnpm/node-pty@1.1.0/node_modules/node-pty/build/config.gypi -I/github/home/setup-pnpm/node_modules/.pnpm/pnpm@10.12.1/node_modules/pnpm/dist/node_modules/node-gyp/addon.gypi -I/github/home/.cache/node-gyp/24.16.0/include/node/common.gypi "--toplevel-dir=." binding.gyp
|
|
357
|
-
Makefile: $(srcdir)/../../../node-addon-api@7.1.1/node_modules/node-addon-api/
|
|
357
|
+
Makefile: $(srcdir)/../../../../../../../../github/home/.cache/node-gyp/24.16.0/include/node/common.gypi $(srcdir)/build/config.gypi $(srcdir)/../../../node-addon-api@7.1.1/node_modules/node-addon-api/except.gypi $(srcdir)/../../../node-addon-api@7.1.1/node_modules/node-addon-api/noexcept.gypi $(srcdir)/../../../../../../../../github/home/setup-pnpm/node_modules/.pnpm/pnpm@10.12.1/node_modules/pnpm/dist/node_modules/node-gyp/addon.gypi $(srcdir)/binding.gyp $(srcdir)/../../../node-addon-api@7.1.1/node_modules/node-addon-api/node_addon_api.gyp
|
|
358
358
|
$(call do_cmd,regen_makefile)
|
|
359
359
|
|
|
360
360
|
# "all" is a concatenation of the "all" targets from all the included
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
let { isClean, my } = require('./symbols')
|
|
4
|
-
let Declaration = require('./declaration')
|
|
5
3
|
let Comment = require('./comment')
|
|
4
|
+
let Declaration = require('./declaration')
|
|
6
5
|
let Node = require('./node')
|
|
6
|
+
let { isClean, my } = require('./symbols')
|
|
7
7
|
|
|
8
|
-
let
|
|
8
|
+
let AtRule, parse, Root, Rule
|
|
9
9
|
|
|
10
10
|
function cleanSource(nodes) {
|
|
11
11
|
return nodes.map(i => {
|
|
@@ -15,16 +15,26 @@ function cleanSource(nodes) {
|
|
|
15
15
|
})
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function markTreeDirty(node) {
|
|
19
19
|
node[isClean] = false
|
|
20
20
|
if (node.proxyOf.nodes) {
|
|
21
21
|
for (let i of node.proxyOf.nodes) {
|
|
22
|
-
|
|
22
|
+
markTreeDirty(i)
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
class Container extends Node {
|
|
28
|
+
get first() {
|
|
29
|
+
if (!this.proxyOf.nodes) return undefined
|
|
30
|
+
return this.proxyOf.nodes[0]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
get last() {
|
|
34
|
+
if (!this.proxyOf.nodes) return undefined
|
|
35
|
+
return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]
|
|
36
|
+
}
|
|
37
|
+
|
|
28
38
|
append(...children) {
|
|
29
39
|
for (let child of children) {
|
|
30
40
|
let nodes = this.normalize(child, this.last)
|
|
@@ -153,7 +163,11 @@ class Container extends Node {
|
|
|
153
163
|
insertBefore(exist, add) {
|
|
154
164
|
let existIndex = this.index(exist)
|
|
155
165
|
let type = existIndex === 0 ? 'prepend' : false
|
|
156
|
-
let nodes = this.normalize(
|
|
166
|
+
let nodes = this.normalize(
|
|
167
|
+
add,
|
|
168
|
+
this.proxyOf.nodes[existIndex],
|
|
169
|
+
type
|
|
170
|
+
).reverse()
|
|
157
171
|
existIndex = this.index(exist)
|
|
158
172
|
for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)
|
|
159
173
|
|
|
@@ -173,6 +187,8 @@ class Container extends Node {
|
|
|
173
187
|
normalize(nodes, sample) {
|
|
174
188
|
if (typeof nodes === 'string') {
|
|
175
189
|
nodes = cleanSource(parse(nodes).nodes)
|
|
190
|
+
} else if (typeof nodes === 'undefined') {
|
|
191
|
+
nodes = []
|
|
176
192
|
} else if (Array.isArray(nodes)) {
|
|
177
193
|
nodes = nodes.slice(0)
|
|
178
194
|
for (let i of nodes) {
|
|
@@ -192,7 +208,7 @@ class Container extends Node {
|
|
|
192
208
|
nodes.value = String(nodes.value)
|
|
193
209
|
}
|
|
194
210
|
nodes = [new Declaration(nodes)]
|
|
195
|
-
} else if (nodes.selector) {
|
|
211
|
+
} else if (nodes.selector || nodes.selectors) {
|
|
196
212
|
nodes = [new Rule(nodes)]
|
|
197
213
|
} else if (nodes.name) {
|
|
198
214
|
nodes = [new AtRule(nodes)]
|
|
@@ -207,7 +223,9 @@ class Container extends Node {
|
|
|
207
223
|
if (!i[my]) Container.rebuild(i)
|
|
208
224
|
i = i.proxyOf
|
|
209
225
|
if (i.parent) i.parent.removeChild(i)
|
|
210
|
-
if (i[isClean])
|
|
226
|
+
if (i[isClean]) markTreeDirty(i)
|
|
227
|
+
|
|
228
|
+
if (!i.raws) i.raws = {}
|
|
211
229
|
if (typeof i.raws.before === 'undefined') {
|
|
212
230
|
if (sample && typeof sample.raws.before !== 'undefined') {
|
|
213
231
|
i.raws.before = sample.raws.before.replace(/\S/g, '')
|
|
@@ -383,16 +401,6 @@ class Container extends Node {
|
|
|
383
401
|
}
|
|
384
402
|
})
|
|
385
403
|
}
|
|
386
|
-
|
|
387
|
-
get first() {
|
|
388
|
-
if (!this.proxyOf.nodes) return undefined
|
|
389
|
-
return this.proxyOf.nodes[0]
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
get last() {
|
|
393
|
-
if (!this.proxyOf.nodes) return undefined
|
|
394
|
-
return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]
|
|
395
|
-
}
|
|
396
404
|
}
|
|
397
405
|
|
|
398
406
|
Container.registerParse = dependant => {
|
|
@@ -52,37 +52,70 @@ class CssSyntaxError extends Error {
|
|
|
52
52
|
|
|
53
53
|
let css = this.source
|
|
54
54
|
if (color == null) color = pico.isColorSupported
|
|
55
|
-
if (terminalHighlight) {
|
|
56
|
-
if (color) css = terminalHighlight(css)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
let lines = css.split(/\r?\n/)
|
|
60
|
-
let start = Math.max(this.line - 3, 0)
|
|
61
|
-
let end = Math.min(this.line + 2, lines.length)
|
|
62
55
|
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
let
|
|
56
|
+
let aside = text => text
|
|
57
|
+
let mark = text => text
|
|
58
|
+
let highlight = text => text
|
|
66
59
|
if (color) {
|
|
67
60
|
let { bold, gray, red } = pico.createColors(true)
|
|
68
61
|
mark = text => bold(red(text))
|
|
69
62
|
aside = text => gray(text)
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
if (terminalHighlight) {
|
|
64
|
+
highlight = text => terminalHighlight(text)
|
|
65
|
+
}
|
|
72
66
|
}
|
|
73
67
|
|
|
68
|
+
let lines = css.split(/\r?\n/)
|
|
69
|
+
let start = Math.max(this.line - 3, 0)
|
|
70
|
+
let end = Math.min(this.line + 2, lines.length)
|
|
71
|
+
let maxWidth = String(end).length
|
|
72
|
+
|
|
74
73
|
return lines
|
|
75
74
|
.slice(start, end)
|
|
76
75
|
.map((line, index) => {
|
|
77
76
|
let number = start + 1 + index
|
|
78
77
|
let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '
|
|
79
78
|
if (number === this.line) {
|
|
79
|
+
if (line.length > 160) {
|
|
80
|
+
let padding = 20
|
|
81
|
+
let subLineStart = Math.max(0, this.column - padding)
|
|
82
|
+
let subLineEnd = Math.max(
|
|
83
|
+
this.column + padding,
|
|
84
|
+
this.endColumn + padding
|
|
85
|
+
)
|
|
86
|
+
let subLine = line.slice(subLineStart, subLineEnd)
|
|
87
|
+
|
|
88
|
+
let spacing =
|
|
89
|
+
aside(gutter.replace(/\d/g, ' ')) +
|
|
90
|
+
line
|
|
91
|
+
.slice(0, Math.min(this.column - 1, padding - 1))
|
|
92
|
+
.replace(/[^\t]/g, ' ')
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
mark('>') +
|
|
96
|
+
aside(gutter) +
|
|
97
|
+
highlight(subLine) +
|
|
98
|
+
'\n ' +
|
|
99
|
+
spacing +
|
|
100
|
+
mark('^')
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
|
|
80
104
|
let spacing =
|
|
81
105
|
aside(gutter.replace(/\d/g, ' ')) +
|
|
82
106
|
line.slice(0, this.column - 1).replace(/[^\t]/g, ' ')
|
|
83
|
-
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
mark('>') +
|
|
110
|
+
aside(gutter) +
|
|
111
|
+
highlight(line) +
|
|
112
|
+
'\n ' +
|
|
113
|
+
spacing +
|
|
114
|
+
mark('^')
|
|
115
|
+
)
|
|
84
116
|
}
|
|
85
|
-
|
|
117
|
+
|
|
118
|
+
return ' ' + aside(gutter) + highlight(line)
|
|
86
119
|
})
|
|
87
120
|
.join('\n')
|
|
88
121
|
}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
let Node = require('./node')
|
|
4
4
|
|
|
5
5
|
class Declaration extends Node {
|
|
6
|
+
get variable() {
|
|
7
|
+
return this.prop.startsWith('--') || this.prop[0] === '$'
|
|
8
|
+
}
|
|
9
|
+
|
|
6
10
|
constructor(defaults) {
|
|
7
11
|
if (
|
|
8
12
|
defaults &&
|
|
@@ -14,10 +18,6 @@ class Declaration extends Node {
|
|
|
14
18
|
super(defaults)
|
|
15
19
|
this.type = 'decl'
|
|
16
20
|
}
|
|
17
|
-
|
|
18
|
-
get variable() {
|
|
19
|
-
return this.prop.startsWith('--') || this.prop[0] === '$'
|
|
20
|
-
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
module.exports = Declaration
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
let Declaration = require('./declaration')
|
|
4
|
-
let PreviousMap = require('./previous-map')
|
|
5
|
-
let Comment = require('./comment')
|
|
6
3
|
let AtRule = require('./at-rule')
|
|
4
|
+
let Comment = require('./comment')
|
|
5
|
+
let Declaration = require('./declaration')
|
|
7
6
|
let Input = require('./input')
|
|
7
|
+
let PreviousMap = require('./previous-map')
|
|
8
8
|
let Root = require('./root')
|
|
9
9
|
let Rule = require('./rule')
|
|
10
10
|
|
|
@@ -1,20 +1,39 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
let { nanoid } = require('nanoid/non-secure')
|
|
4
|
+
let { isAbsolute, resolve } = require('path')
|
|
3
5
|
let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
|
|
4
6
|
let { fileURLToPath, pathToFileURL } = require('url')
|
|
5
|
-
let { isAbsolute, resolve } = require('path')
|
|
6
|
-
let { nanoid } = require('nanoid/non-secure')
|
|
7
7
|
|
|
8
|
-
let terminalHighlight = require('./terminal-highlight')
|
|
9
8
|
let CssSyntaxError = require('./css-syntax-error')
|
|
10
9
|
let PreviousMap = require('./previous-map')
|
|
10
|
+
let terminalHighlight = require('./terminal-highlight')
|
|
11
11
|
|
|
12
|
-
let
|
|
12
|
+
let lineToIndexCache = Symbol('lineToIndexCache')
|
|
13
13
|
|
|
14
14
|
let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
|
|
15
15
|
let pathAvailable = Boolean(resolve && isAbsolute)
|
|
16
16
|
|
|
17
|
+
function getLineToIndex(input) {
|
|
18
|
+
if (input[lineToIndexCache]) return input[lineToIndexCache]
|
|
19
|
+
let lines = input.css.split('\n')
|
|
20
|
+
let lineToIndex = new Array(lines.length)
|
|
21
|
+
let prevIndex = 0
|
|
22
|
+
|
|
23
|
+
for (let i = 0, l = lines.length; i < l; i++) {
|
|
24
|
+
lineToIndex[i] = prevIndex
|
|
25
|
+
prevIndex += lines[i].length + 1
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
input[lineToIndexCache] = lineToIndex
|
|
29
|
+
return lineToIndex
|
|
30
|
+
}
|
|
31
|
+
|
|
17
32
|
class Input {
|
|
33
|
+
get from() {
|
|
34
|
+
return this.file || this.id
|
|
35
|
+
}
|
|
36
|
+
|
|
18
37
|
constructor(css, opts = {}) {
|
|
19
38
|
if (
|
|
20
39
|
css === null ||
|
|
@@ -33,6 +52,9 @@ class Input {
|
|
|
33
52
|
this.hasBOM = false
|
|
34
53
|
}
|
|
35
54
|
|
|
55
|
+
this.document = this.css
|
|
56
|
+
if (opts.document) this.document = opts.document.toString()
|
|
57
|
+
|
|
36
58
|
if (opts.from) {
|
|
37
59
|
if (
|
|
38
60
|
!pathAvailable ||
|
|
@@ -61,31 +83,38 @@ class Input {
|
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
error(message, line, column, opts = {}) {
|
|
64
|
-
let
|
|
86
|
+
let endColumn, endLine, endOffset, offset, result
|
|
65
87
|
|
|
66
88
|
if (line && typeof line === 'object') {
|
|
67
89
|
let start = line
|
|
68
90
|
let end = column
|
|
69
91
|
if (typeof start.offset === 'number') {
|
|
70
|
-
|
|
92
|
+
offset = start.offset
|
|
93
|
+
let pos = this.fromOffset(offset)
|
|
71
94
|
line = pos.line
|
|
72
95
|
column = pos.col
|
|
73
96
|
} else {
|
|
74
97
|
line = start.line
|
|
75
98
|
column = start.column
|
|
99
|
+
offset = this.fromLineAndColumn(line, column)
|
|
76
100
|
}
|
|
77
101
|
if (typeof end.offset === 'number') {
|
|
78
|
-
|
|
102
|
+
endOffset = end.offset
|
|
103
|
+
let pos = this.fromOffset(endOffset)
|
|
79
104
|
endLine = pos.line
|
|
80
105
|
endColumn = pos.col
|
|
81
106
|
} else {
|
|
82
107
|
endLine = end.line
|
|
83
108
|
endColumn = end.column
|
|
109
|
+
endOffset = this.fromLineAndColumn(end.line, end.column)
|
|
84
110
|
}
|
|
85
111
|
} else if (!column) {
|
|
86
|
-
|
|
112
|
+
offset = line
|
|
113
|
+
let pos = this.fromOffset(offset)
|
|
87
114
|
line = pos.line
|
|
88
115
|
column = pos.col
|
|
116
|
+
} else {
|
|
117
|
+
offset = this.fromLineAndColumn(line, column)
|
|
89
118
|
}
|
|
90
119
|
|
|
91
120
|
let origin = this.origin(line, column, endLine, endColumn)
|
|
@@ -113,7 +142,15 @@ class Input {
|
|
|
113
142
|
)
|
|
114
143
|
}
|
|
115
144
|
|
|
116
|
-
result.input = {
|
|
145
|
+
result.input = {
|
|
146
|
+
column,
|
|
147
|
+
endColumn,
|
|
148
|
+
endLine,
|
|
149
|
+
endOffset,
|
|
150
|
+
line,
|
|
151
|
+
offset,
|
|
152
|
+
source: this.css
|
|
153
|
+
}
|
|
117
154
|
if (this.file) {
|
|
118
155
|
if (pathToFileURL) {
|
|
119
156
|
result.input.url = pathToFileURL(this.file).toString()
|
|
@@ -124,23 +161,15 @@ class Input {
|
|
|
124
161
|
return result
|
|
125
162
|
}
|
|
126
163
|
|
|
127
|
-
|
|
128
|
-
let
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
let prevIndex = 0
|
|
133
|
-
|
|
134
|
-
for (let i = 0, l = lines.length; i < l; i++) {
|
|
135
|
-
lineToIndex[i] = prevIndex
|
|
136
|
-
prevIndex += lines[i].length + 1
|
|
137
|
-
}
|
|
164
|
+
fromLineAndColumn(line, column) {
|
|
165
|
+
let lineToIndex = getLineToIndex(this)
|
|
166
|
+
let index = lineToIndex[line - 1]
|
|
167
|
+
return index + column - 1
|
|
168
|
+
}
|
|
138
169
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
lastLine = lineToIndex[lineToIndex.length - 1]
|
|
170
|
+
fromOffset(offset) {
|
|
171
|
+
let lineToIndex = getLineToIndex(this)
|
|
172
|
+
let lastLine = lineToIndex[lineToIndex.length - 1]
|
|
144
173
|
|
|
145
174
|
let min = 0
|
|
146
175
|
if (offset >= lastLine) {
|
|
@@ -234,10 +263,6 @@ class Input {
|
|
|
234
263
|
}
|
|
235
264
|
return json
|
|
236
265
|
}
|
|
237
|
-
|
|
238
|
-
get from() {
|
|
239
|
-
return this.file || this.id
|
|
240
|
-
}
|
|
241
266
|
}
|
|
242
267
|
|
|
243
268
|
module.exports = Input
|