gsd-pi 2.57.0 → 2.58.0-dev.778d6ac
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli.js +49 -35
- package/dist/headless-ui.d.ts +17 -0
- package/dist/headless-ui.js +97 -3
- package/dist/headless.js +67 -6
- package/dist/help-text.js +1 -0
- package/dist/onboarding.js +44 -0
- package/dist/resource-loader.js +16 -1
- package/dist/resources/agents/researcher.md +1 -1
- package/dist/resources/extensions/ask-user-questions.js +16 -3
- package/dist/resources/extensions/async-jobs/extension-manifest.json +1 -1
- package/dist/resources/extensions/bg-shell/extension-manifest.json +1 -1
- package/dist/resources/extensions/browser-tools/extension-manifest.json +1 -1
- package/dist/resources/extensions/claude-code-cli/partial-builder.js +14 -6
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +59 -36
- package/dist/resources/extensions/context7/extension-manifest.json +1 -1
- package/dist/resources/extensions/get-secrets-from-user.js +8 -5
- package/dist/resources/extensions/google-search/extension-manifest.json +1 -1
- package/dist/resources/extensions/google-search/index.js +2 -1
- package/dist/resources/extensions/gsd/auto/infra-errors.js +4 -0
- package/dist/resources/extensions/gsd/auto/phases.js +25 -21
- package/dist/resources/extensions/gsd/auto-artifact-paths.js +2 -2
- package/dist/resources/extensions/gsd/auto-dashboard.js +37 -20
- package/dist/resources/extensions/gsd/auto-dispatch.js +20 -5
- package/dist/resources/extensions/gsd/auto-model-selection.js +26 -3
- package/dist/resources/extensions/gsd/auto-post-unit.js +16 -4
- package/dist/resources/extensions/gsd/auto-prompts.js +1 -1
- package/dist/resources/extensions/gsd/auto-recovery.js +13 -5
- package/dist/resources/extensions/gsd/auto-start.js +35 -22
- package/dist/resources/extensions/gsd/auto-worktree.js +203 -14
- package/dist/resources/extensions/gsd/auto.js +4 -0
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +32 -0
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +82 -9
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +32 -1
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +33 -18
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +44 -11
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +67 -0
- package/dist/resources/extensions/gsd/captures.js +56 -4
- package/dist/resources/extensions/gsd/db-writer.js +116 -8
- package/dist/resources/extensions/gsd/dispatch-guard.js +11 -1
- package/dist/resources/extensions/gsd/doctor-git-checks.js +28 -0
- package/dist/resources/extensions/gsd/doctor-providers.js +2 -1
- package/dist/resources/extensions/gsd/doctor-runtime-checks.js +5 -4
- package/dist/resources/extensions/gsd/doctor.js +3 -1
- package/dist/resources/extensions/gsd/error-classifier.js +13 -10
- package/dist/resources/extensions/gsd/extension-manifest.json +16 -1
- package/dist/resources/extensions/gsd/forensics.js +123 -20
- package/dist/resources/extensions/gsd/git-service.js +23 -1
- package/dist/resources/extensions/gsd/gitignore.js +33 -0
- package/dist/resources/extensions/gsd/gsd-db.js +44 -10
- package/dist/resources/extensions/gsd/guided-flow.js +106 -44
- package/dist/resources/extensions/gsd/health-widget-core.js +31 -0
- package/dist/resources/extensions/gsd/health-widget.js +17 -0
- package/dist/resources/extensions/gsd/index.js +1 -1
- package/dist/resources/extensions/gsd/memory-extractor.js +7 -0
- package/dist/resources/extensions/gsd/migrate-external.js +8 -1
- package/dist/resources/extensions/gsd/milestone-validation-gates.js +45 -0
- package/dist/resources/extensions/gsd/model-cost-table.js +18 -0
- package/dist/resources/extensions/gsd/model-router.js +35 -1
- package/dist/resources/extensions/gsd/native-git-bridge.js +17 -0
- package/dist/resources/extensions/gsd/notifications.js +16 -1
- package/dist/resources/extensions/gsd/parallel-eligibility.js +13 -2
- package/dist/resources/extensions/gsd/parallel-merge.js +78 -5
- package/dist/resources/extensions/gsd/parallel-orchestrator.js +23 -6
- package/dist/resources/extensions/gsd/parsers-legacy.js +20 -3
- package/dist/resources/extensions/gsd/paths.js +43 -0
- package/dist/resources/extensions/gsd/preferences-models.js +14 -1
- package/dist/resources/extensions/gsd/preferences-types.js +2 -1
- package/dist/resources/extensions/gsd/preferences.js +42 -31
- package/dist/resources/extensions/gsd/prompt-loader.js +4 -1
- package/dist/resources/extensions/gsd/prompts/complete-milestone.md +1 -1
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +4 -2
- package/dist/resources/extensions/gsd/prompts/discuss-headless.md +1 -1
- package/dist/resources/extensions/gsd/prompts/discuss.md +1 -1
- package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -1
- package/dist/resources/extensions/gsd/prompts/forensics.md +2 -2
- package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
- package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +2 -0
- package/dist/resources/extensions/gsd/prompts/rethink.md +1 -1
- package/dist/resources/extensions/gsd/prompts/triage-captures.md +1 -0
- package/dist/resources/extensions/gsd/prompts/validate-milestone.md +2 -2
- package/dist/resources/extensions/gsd/repo-identity.js +205 -11
- package/dist/resources/extensions/gsd/rethink.js +5 -0
- package/dist/resources/extensions/gsd/roadmap-slices.js +5 -4
- package/dist/resources/extensions/gsd/state.js +85 -27
- package/dist/resources/extensions/gsd/tests/dist-redirect.mjs +20 -1
- package/dist/resources/extensions/gsd/tools/complete-task.js +34 -71
- package/dist/resources/extensions/gsd/tools/plan-milestone.js +12 -2
- package/dist/resources/extensions/gsd/tools/reassess-roadmap.js +29 -1
- package/dist/resources/extensions/gsd/tools/validate-milestone.js +18 -3
- package/dist/resources/extensions/gsd/triage-resolution.js +22 -7
- package/dist/resources/extensions/gsd/undo.js +2 -2
- package/dist/resources/extensions/gsd/unit-ownership.js +164 -33
- package/dist/resources/extensions/gsd/verdict-parser.js +20 -8
- package/dist/resources/extensions/gsd/workflow-manifest.js +24 -5
- package/dist/resources/extensions/gsd/workflow-projections.js +95 -63
- package/dist/resources/extensions/gsd/workflow-reconcile.js +35 -5
- package/dist/resources/extensions/gsd/workspace-index.js +24 -0
- package/dist/resources/extensions/gsd/worktree-manager.js +105 -1
- package/dist/resources/extensions/gsd/worktree-resolver.js +20 -3
- package/dist/resources/extensions/mcp-client/index.js +11 -7
- package/dist/resources/extensions/ollama/index.js +112 -0
- package/dist/resources/extensions/ollama/model-capabilities.js +115 -0
- package/dist/resources/extensions/ollama/ollama-client.js +168 -0
- package/dist/resources/extensions/ollama/ollama-commands.js +194 -0
- package/dist/resources/extensions/ollama/ollama-discovery.js +69 -0
- package/dist/resources/extensions/ollama/ollama-tool.js +184 -0
- package/dist/resources/extensions/ollama/types.js +2 -0
- package/dist/resources/extensions/search-the-web/extension-manifest.json +1 -1
- package/dist/resources/extensions/shared/interview-ui.js +11 -1
- package/dist/resources/skills/create-gsd-extension/SKILL.md +5 -3
- package/dist/resources/skills/create-gsd-extension/references/key-rules-gotchas.md +5 -4
- package/dist/resources/skills/create-gsd-extension/workflows/add-capability.md +2 -2
- package/dist/resources/skills/create-gsd-extension/workflows/create-extension.md +4 -4
- package/dist/resources/skills/create-gsd-extension/workflows/debug-extension.md +5 -3
- package/dist/startup-model-validation.d.ts +39 -0
- package/dist/startup-model-validation.js +50 -0
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +12 -12
- package/dist/web/standalone/.next/build-manifest.json +4 -4
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
- package/dist/web/standalone/.next/required-server-files.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
- package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.html +2 -2
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
- package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +4 -4
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +5 -5
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/page.js +2 -2
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +12 -12
- package/dist/web/standalone/.next/server/chunks/2229.js +2 -2
- package/dist/web/standalone/.next/server/chunks/7471.js +3 -3
- 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/middleware.js +2 -2
- package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
- package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +2 -2
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/static/chunks/6502.7593d7797a4b3999.js +9 -0
- package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/page-0c485498795110d6.js +1 -0
- package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-4332cbd5dd1be584.js → webpack-a1c1e452c6b32d04.js} +1 -1
- package/dist/web/standalone/.next/static/css/f6e8833d46e738d8.css +1 -0
- package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
- package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
- package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
- package/dist/web/standalone/server.js +1 -1
- package/dist/web-mode.js +2 -1
- package/package.json +2 -2
- package/packages/daemon/src/cli.ts +49 -0
- package/packages/daemon/src/daemon.test.ts +104 -1
- package/packages/daemon/src/daemon.ts +24 -1
- package/packages/daemon/src/discord-bot.ts +73 -3
- package/packages/daemon/src/event-bridge.ts +15 -9
- package/packages/daemon/src/event-formatter.ts +30 -2
- package/packages/daemon/src/index.ts +9 -0
- package/packages/daemon/src/launchd.test.ts +356 -0
- package/packages/daemon/src/launchd.ts +242 -0
- package/packages/daemon/src/message-batcher.test.ts +2 -2
- package/packages/daemon/src/message-batcher.ts +9 -3
- package/packages/daemon/src/orchestrator.test.ts +1 -0
- package/packages/daemon/src/orchestrator.ts +106 -2
- package/packages/native/dist/ast/index.js +9 -5
- package/packages/native/dist/ast/types.js +2 -1
- package/packages/native/dist/clipboard/index.js +12 -7
- package/packages/native/dist/clipboard/types.js +2 -1
- package/packages/native/dist/diff/index.js +12 -7
- package/packages/native/dist/diff/types.js +2 -1
- package/packages/native/dist/fd/index.js +6 -3
- package/packages/native/dist/fd/types.js +2 -1
- package/packages/native/dist/glob/index.js +9 -5
- package/packages/native/dist/glob/types.js +2 -1
- package/packages/native/dist/grep/index.js +9 -5
- package/packages/native/dist/grep/types.js +2 -1
- package/packages/native/dist/gsd-parser/index.js +18 -11
- package/packages/native/dist/gsd-parser/types.js +2 -1
- package/packages/native/dist/highlight/index.js +12 -7
- package/packages/native/dist/highlight/types.js +2 -1
- package/packages/native/dist/html/index.js +6 -3
- package/packages/native/dist/html/types.js +2 -1
- package/packages/native/dist/image/index.js +10 -5
- package/packages/native/dist/image/types.js +7 -4
- package/packages/native/dist/index.js +70 -17
- package/packages/native/dist/json-parse/index.js +13 -8
- package/packages/native/dist/native.js +47 -10
- package/packages/native/dist/ps/index.js +15 -9
- package/packages/native/dist/ps/types.js +2 -1
- package/packages/native/dist/stream-process/index.js +12 -7
- package/packages/native/dist/text/index.js +24 -14
- package/packages/native/dist/text/types.js +5 -2
- package/packages/native/dist/truncate/index.js +12 -7
- package/packages/native/dist/ttsr/index.js +12 -7
- package/packages/native/dist/ttsr/types.js +2 -1
- package/packages/native/dist/xxhash/index.js +9 -5
- package/packages/native/package.json +19 -19
- package/packages/native/src/__tests__/module-compat.test.mjs +91 -0
- package/packages/native/src/native.ts +9 -8
- package/packages/pi-agent-core/dist/agent-loop.js +3 -2
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/dist/proxy.d.ts +1 -1
- package/packages/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/proxy.js.map +1 -1
- package/packages/pi-agent-core/src/agent-loop.test.ts +45 -0
- package/packages/pi-agent-core/src/agent-loop.ts +3 -2
- package/packages/pi-agent-core/src/proxy.ts +1 -1
- package/packages/pi-ai/dist/env-api-keys.js +1 -0
- package/packages/pi-ai/dist/env-api-keys.js.map +1 -1
- package/packages/pi-ai/dist/index.d.ts +1 -0
- package/packages/pi-ai/dist/index.d.ts.map +1 -1
- package/packages/pi-ai/dist/index.js +1 -0
- package/packages/pi-ai/dist/index.js.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.js +19 -2
- package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.test.d.ts +2 -0
- package/packages/pi-ai/dist/providers/anthropic-shared.test.d.ts.map +1 -0
- package/packages/pi-ai/dist/providers/anthropic-shared.test.js +25 -0
- package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -0
- package/packages/pi-ai/dist/types.d.ts +3 -3
- package/packages/pi-ai/dist/types.d.ts.map +1 -1
- package/packages/pi-ai/dist/types.js.map +1 -1
- package/packages/pi-ai/dist/utils/json-parse.d.ts +3 -0
- package/packages/pi-ai/dist/utils/json-parse.d.ts.map +1 -1
- package/packages/pi-ai/dist/utils/json-parse.js +24 -1
- package/packages/pi-ai/dist/utils/json-parse.js.map +1 -1
- package/packages/pi-ai/dist/utils/repair-tool-json.d.ts +37 -0
- package/packages/pi-ai/dist/utils/repair-tool-json.d.ts.map +1 -0
- package/packages/pi-ai/dist/utils/repair-tool-json.js +75 -0
- package/packages/pi-ai/dist/utils/repair-tool-json.js.map +1 -0
- package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.d.ts +2 -0
- package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.d.ts.map +1 -0
- package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js +73 -0
- package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js.map +1 -0
- package/packages/pi-ai/src/env-api-keys.ts +1 -0
- package/packages/pi-ai/src/index.ts +1 -0
- package/packages/pi-ai/src/providers/anthropic-shared.test.ts +29 -0
- package/packages/pi-ai/src/providers/anthropic-shared.ts +17 -2
- package/packages/pi-ai/src/types.ts +3 -2
- package/packages/pi-ai/src/utils/json-parse.ts +28 -1
- package/packages/pi-ai/src/utils/repair-tool-json.ts +88 -0
- package/packages/pi-ai/src/utils/tests/repair-tool-json.test.ts +102 -0
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +4 -0
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +31 -0
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts +17 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.js +62 -2
- package/packages/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.test.d.ts +6 -0
- package/packages/pi-coding-agent/dist/core/compaction/compaction.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/compaction/compaction.test.js +176 -0
- package/packages/pi-coding-agent/dist/core/compaction/compaction.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/exec.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/exec.js +3 -1
- package/packages/pi-coding-agent/dist/core/exec.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.d.ts +28 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.js +37 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.test.js +63 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-manifest.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.d.ts +19 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.js +115 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.test.js +109 -0
- package/packages/pi-coding-agent/dist/core/extensions/extension-sort.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +4 -0
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js +2 -0
- package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts +5 -0
- package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.js +5 -0
- package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.d.ts +44 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.js +97 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.test.js +181 -0
- package/packages/pi-coding-agent/dist/core/image-overflow-recovery.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/core/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/index.js +1 -1
- package/packages/pi-coding-agent/dist/core/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/index.js +3 -0
- package/packages/pi-coding-agent/dist/core/lsp/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.js +3 -0
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/messages.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/messages.js +31 -2
- package/packages/pi-coding-agent/dist/core/messages.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/messages.test.d.ts +9 -0
- package/packages/pi-coding-agent/dist/core/messages.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/messages.test.js +86 -0
- package/packages/pi-coding-agent/dist/core/messages.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/model-resolver.js +1 -0
- package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/resource-loader.d.ts +10 -0
- package/packages/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/resource-loader.js +12 -1
- package/packages/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/retry-handler.d.ts +6 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/retry-handler.js +48 -1
- package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/retry-handler.test.d.ts +9 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.test.js +193 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/tools/hashline-read.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/hashline-read.js +10 -3
- package/packages/pi-coding-agent/dist/core/tools/hashline-read.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/read.js +13 -4
- package/packages/pi-coding-agent/dist/core/tools/read.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/spawn-shell-windows.test.d.ts +16 -0
- package/packages/pi-coding-agent/dist/core/tools/spawn-shell-windows.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/tools/spawn-shell-windows.test.js +80 -0
- package/packages/pi-coding-agent/dist/core/tools/spawn-shell-windows.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/index.d.ts +2 -2
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +4 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/remote-terminal.d.ts +1 -0
- package/packages/pi-coding-agent/dist/modes/rpc/remote-terminal.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/remote-terminal.js +5 -0
- package/packages/pi-coding-agent/dist/modes/rpc/remote-terminal.js.map +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/core/agent-session.ts +38 -1
- package/packages/pi-coding-agent/src/core/compaction/compaction.test.ts +236 -0
- package/packages/pi-coding-agent/src/core/compaction/compaction.ts +94 -1
- package/packages/pi-coding-agent/src/core/exec.ts +3 -1
- package/packages/pi-coding-agent/src/core/extensions/extension-manifest.test.ts +77 -0
- package/packages/pi-coding-agent/src/core/extensions/extension-manifest.ts +62 -0
- package/packages/pi-coding-agent/src/core/extensions/extension-sort.test.ts +134 -0
- package/packages/pi-coding-agent/src/core/extensions/extension-sort.ts +137 -0
- package/packages/pi-coding-agent/src/core/extensions/index.ts +4 -0
- package/packages/pi-coding-agent/src/core/extensions/loader.ts +5 -0
- package/packages/pi-coding-agent/src/core/image-overflow-recovery.test.ts +228 -0
- package/packages/pi-coding-agent/src/core/image-overflow-recovery.ts +118 -0
- package/packages/pi-coding-agent/src/core/index.ts +6 -0
- package/packages/pi-coding-agent/src/core/lsp/index.ts +3 -0
- package/packages/pi-coding-agent/src/core/lsp/lspmux.ts +3 -0
- package/packages/pi-coding-agent/src/core/messages.test.ts +114 -0
- package/packages/pi-coding-agent/src/core/messages.ts +29 -2
- package/packages/pi-coding-agent/src/core/model-resolver.ts +1 -0
- package/packages/pi-coding-agent/src/core/resource-loader.ts +20 -1
- package/packages/pi-coding-agent/src/core/retry-handler.test.ts +255 -0
- package/packages/pi-coding-agent/src/core/retry-handler.ts +52 -1
- package/packages/pi-coding-agent/src/core/tools/hashline-read.ts +11 -3
- package/packages/pi-coding-agent/src/core/tools/read.ts +14 -4
- package/packages/pi-coding-agent/src/core/tools/spawn-shell-windows.test.ts +92 -0
- package/packages/pi-coding-agent/src/index.ts +6 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +7 -0
- package/packages/pi-coding-agent/src/modes/rpc/remote-terminal.ts +6 -0
- package/packages/pi-tui/dist/terminal.d.ts +2 -0
- package/packages/pi-tui/dist/terminal.d.ts.map +1 -1
- package/packages/pi-tui/dist/terminal.js +9 -0
- package/packages/pi-tui/dist/terminal.js.map +1 -1
- package/packages/pi-tui/dist/tui.d.ts.map +1 -1
- package/packages/pi-tui/dist/tui.js +9 -0
- package/packages/pi-tui/dist/tui.js.map +1 -1
- package/packages/pi-tui/src/terminal.ts +14 -0
- package/packages/pi-tui/src/tui.ts +8 -0
- package/pkg/package.json +1 -1
- package/scripts/ensure-workspace-builds.cjs +45 -14
- package/src/resources/agents/researcher.md +1 -1
- package/src/resources/extensions/ask-user-questions.ts +21 -3
- package/src/resources/extensions/async-jobs/extension-manifest.json +1 -1
- package/src/resources/extensions/bg-shell/extension-manifest.json +1 -1
- package/src/resources/extensions/browser-tools/extension-manifest.json +1 -1
- package/src/resources/extensions/claude-code-cli/partial-builder.ts +13 -6
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +63 -35
- package/src/resources/extensions/claude-code-cli/tests/partial-builder.test.ts +28 -0
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +108 -1
- package/src/resources/extensions/context7/extension-manifest.json +1 -1
- package/src/resources/extensions/get-secrets-from-user.ts +8 -5
- package/src/resources/extensions/google-search/extension-manifest.json +1 -1
- package/src/resources/extensions/google-search/index.ts +2 -1
- package/src/resources/extensions/gsd/auto/infra-errors.ts +3 -0
- package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -0
- package/src/resources/extensions/gsd/auto/phases.ts +43 -34
- package/src/resources/extensions/gsd/auto-artifact-paths.ts +2 -2
- package/src/resources/extensions/gsd/auto-dashboard.ts +37 -19
- package/src/resources/extensions/gsd/auto-dispatch.ts +21 -5
- package/src/resources/extensions/gsd/auto-model-selection.ts +26 -5
- package/src/resources/extensions/gsd/auto-post-unit.ts +18 -4
- package/src/resources/extensions/gsd/auto-prompts.ts +1 -1
- package/src/resources/extensions/gsd/auto-recovery.ts +12 -5
- package/src/resources/extensions/gsd/auto-start.ts +35 -26
- package/src/resources/extensions/gsd/auto-worktree.ts +197 -11
- package/src/resources/extensions/gsd/auto.ts +5 -0
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +31 -0
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +87 -9
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +38 -1
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +31 -19
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +50 -11
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +75 -0
- package/src/resources/extensions/gsd/captures.ts +63 -3
- package/src/resources/extensions/gsd/db-writer.ts +140 -7
- package/src/resources/extensions/gsd/dispatch-guard.ts +12 -1
- package/src/resources/extensions/gsd/doctor-git-checks.ts +26 -0
- package/src/resources/extensions/gsd/doctor-providers.ts +2 -1
- package/src/resources/extensions/gsd/doctor-runtime-checks.ts +5 -4
- package/src/resources/extensions/gsd/doctor.ts +3 -1
- package/src/resources/extensions/gsd/error-classifier.ts +14 -11
- package/src/resources/extensions/gsd/extension-manifest.json +16 -1
- package/src/resources/extensions/gsd/forensics.ts +144 -20
- package/src/resources/extensions/gsd/git-service.ts +26 -3
- package/src/resources/extensions/gsd/gitignore.ts +33 -0
- package/src/resources/extensions/gsd/gsd-db.ts +49 -8
- package/src/resources/extensions/gsd/guided-flow.ts +114 -45
- package/src/resources/extensions/gsd/health-widget-core.ts +34 -0
- package/src/resources/extensions/gsd/health-widget.ts +17 -0
- package/src/resources/extensions/gsd/index.ts +1 -0
- package/src/resources/extensions/gsd/memory-extractor.ts +8 -0
- package/src/resources/extensions/gsd/migrate-external.ts +9 -1
- package/src/resources/extensions/gsd/milestone-validation-gates.ts +56 -0
- package/src/resources/extensions/gsd/model-cost-table.ts +19 -0
- package/src/resources/extensions/gsd/model-router.ts +35 -1
- package/src/resources/extensions/gsd/native-git-bridge.ts +17 -0
- package/src/resources/extensions/gsd/notifications.ts +16 -0
- package/src/resources/extensions/gsd/parallel-eligibility.ts +15 -2
- package/src/resources/extensions/gsd/parallel-merge.ts +87 -4
- package/src/resources/extensions/gsd/parallel-orchestrator.ts +23 -6
- package/src/resources/extensions/gsd/parsers-legacy.ts +22 -3
- package/src/resources/extensions/gsd/paths.ts +42 -0
- package/src/resources/extensions/gsd/preferences-models.ts +14 -1
- package/src/resources/extensions/gsd/preferences-types.ts +2 -1
- package/src/resources/extensions/gsd/preferences.ts +45 -29
- package/src/resources/extensions/gsd/prompt-loader.ts +4 -1
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +1 -1
- package/src/resources/extensions/gsd/prompts/complete-slice.md +4 -2
- package/src/resources/extensions/gsd/prompts/discuss-headless.md +1 -1
- package/src/resources/extensions/gsd/prompts/discuss.md +1 -1
- package/src/resources/extensions/gsd/prompts/execute-task.md +3 -1
- package/src/resources/extensions/gsd/prompts/forensics.md +2 -2
- package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
- package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/plan-slice.md +2 -0
- package/src/resources/extensions/gsd/prompts/rethink.md +1 -1
- package/src/resources/extensions/gsd/prompts/triage-captures.md +1 -0
- package/src/resources/extensions/gsd/prompts/validate-milestone.md +2 -2
- package/src/resources/extensions/gsd/repo-identity.ts +186 -11
- package/src/resources/extensions/gsd/rethink.ts +6 -0
- package/src/resources/extensions/gsd/roadmap-slices.ts +5 -4
- package/src/resources/extensions/gsd/state.ts +84 -32
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/auto-mode-interactive-guard.test.ts +71 -0
- package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +71 -1
- package/src/resources/extensions/gsd/tests/captures.test.ts +103 -0
- package/src/resources/extensions/gsd/tests/cli-provider-rate-limit.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +27 -0
- package/src/resources/extensions/gsd/tests/complete-slice.test.ts +21 -0
- package/src/resources/extensions/gsd/tests/completion-hierarchy-guards.test.ts +192 -0
- package/src/resources/extensions/gsd/tests/db-path-worktree-symlink.test.ts +131 -0
- package/src/resources/extensions/gsd/tests/db-writer.test.ts +7 -12
- package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +78 -5
- package/src/resources/extensions/gsd/tests/derive-state.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/discord-invite-links.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/discuss-empty-db-fallback.test.ts +127 -0
- package/src/resources/extensions/gsd/tests/discuss-queued-milestones.test.ts +40 -0
- package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/dist-redirect.mjs +20 -1
- package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +117 -0
- package/src/resources/extensions/gsd/tests/dynamic-routing-default.test.ts +20 -0
- package/src/resources/extensions/gsd/tests/empty-content-abort-loop.test.ts +74 -0
- package/src/resources/extensions/gsd/tests/event-replay-idempotency.test.ts +140 -0
- package/src/resources/extensions/gsd/tests/forensics-context-persist.test.ts +129 -0
- package/src/resources/extensions/gsd/tests/forensics-db-completion.test.ts +96 -0
- package/src/resources/extensions/gsd/tests/forensics-dedup.test.ts +31 -0
- package/src/resources/extensions/gsd/tests/gsd-tools.test.ts +125 -12
- package/src/resources/extensions/gsd/tests/gsdroot-worktree-detection.test.ts +164 -0
- package/src/resources/extensions/gsd/tests/guided-flow-dynamic-routing.test.ts +135 -0
- package/src/resources/extensions/gsd/tests/guided-flow-session-isolation.test.ts +97 -0
- package/src/resources/extensions/gsd/tests/health-widget.test.ts +67 -0
- package/src/resources/extensions/gsd/tests/hook-key-parsing.test.ts +107 -0
- package/src/resources/extensions/gsd/tests/integration/auto-recovery.test.ts +111 -1
- package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +101 -0
- package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-false-positives.test.ts +243 -0
- package/src/resources/extensions/gsd/tests/integration/gitignore-staging-2570.test.ts +150 -0
- package/src/resources/extensions/gsd/tests/integration/parallel-merge.test.ts +110 -0
- package/src/resources/extensions/gsd/tests/integration/run-uat.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/integration/state-machine-live-validation.test.ts +959 -0
- package/src/resources/extensions/gsd/tests/memory-extractor.test.ts +85 -2
- package/src/resources/extensions/gsd/tests/migrate-external-worktree.test.ts +105 -0
- package/src/resources/extensions/gsd/tests/milestone-status-authoritative.test.ts +116 -0
- package/src/resources/extensions/gsd/tests/model-cost-table.test.ts +34 -0
- package/src/resources/extensions/gsd/tests/model-router.test.ts +68 -3
- package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +28 -0
- package/src/resources/extensions/gsd/tests/notifications.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/parallel-commit-scope.test.ts +159 -0
- package/src/resources/extensions/gsd/tests/parallel-eligibility-ghost.test.ts +150 -0
- package/src/resources/extensions/gsd/tests/parallel-worker-monitoring.test.ts +9 -8
- package/src/resources/extensions/gsd/tests/plan-milestone-title.test.ts +70 -0
- package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +33 -1
- package/src/resources/extensions/gsd/tests/preferences.test.ts +34 -0
- package/src/resources/extensions/gsd/tests/project-relocation-recovery.test.ts +297 -0
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/prompt-loader-replacement.test.ts +178 -0
- package/src/resources/extensions/gsd/tests/prompt-tool-names.test.ts +69 -0
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/queue-execution-guard.test.ts +157 -0
- package/src/resources/extensions/gsd/tests/quick-turn-end-cleanup.test.ts +90 -0
- package/src/resources/extensions/gsd/tests/reassess-handler.test.ts +117 -0
- package/src/resources/extensions/gsd/tests/reconciliation-edge-cases.test.ts +162 -0
- package/src/resources/extensions/gsd/tests/roadmap-slices.test.ts +97 -0
- package/src/resources/extensions/gsd/tests/secure-env-collect.test.ts +134 -0
- package/src/resources/extensions/gsd/tests/slice-disk-reconcile.test.ts +233 -0
- package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +305 -0
- package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +405 -0
- package/src/resources/extensions/gsd/tests/state-derivation-parity.test.ts +257 -0
- package/src/resources/extensions/gsd/tests/state-machine-full-walkthrough.test.ts +1628 -0
- package/src/resources/extensions/gsd/tests/stop-auto-race-null-unit.test.ts +106 -0
- package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +174 -0
- package/src/resources/extensions/gsd/tests/summary-render-parity.test.ts +221 -0
- package/src/resources/extensions/gsd/tests/tool-naming.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/triage-resolution.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/uat-stuck-loop-orphaned-worktree.test.ts +289 -0
- package/src/resources/extensions/gsd/tests/unit-ownership.test.ts +100 -17
- package/src/resources/extensions/gsd/tests/vacuum-recovery.test.ts +154 -0
- package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +27 -2
- package/src/resources/extensions/gsd/tests/validation-gate-patterns.test.ts +44 -2
- package/src/resources/extensions/gsd/tests/verdict-parser.test.ts +156 -0
- package/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts +82 -0
- package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +48 -0
- package/src/resources/extensions/gsd/tests/workflow-manifest.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +4 -2
- package/src/resources/extensions/gsd/tests/worktree-db-respawn-truncation.test.ts +140 -0
- package/src/resources/extensions/gsd/tests/worktree-db-same-file.test.ts +175 -0
- package/src/resources/extensions/gsd/tests/worktree-nested-git-safety.test.ts +101 -0
- package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +48 -1
- package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +29 -5
- package/src/resources/extensions/gsd/tests/zombie-gsd-state.test.ts +95 -0
- package/src/resources/extensions/gsd/tools/complete-task.ts +36 -74
- package/src/resources/extensions/gsd/tools/plan-milestone.ts +13 -1
- package/src/resources/extensions/gsd/tools/reassess-roadmap.ts +36 -0
- package/src/resources/extensions/gsd/tools/validate-milestone.ts +25 -2
- package/src/resources/extensions/gsd/triage-resolution.ts +23 -6
- package/src/resources/extensions/gsd/types.ts +4 -2
- package/src/resources/extensions/gsd/undo.ts +2 -2
- package/src/resources/extensions/gsd/unit-ownership.ts +206 -35
- package/src/resources/extensions/gsd/verdict-parser.ts +21 -6
- package/src/resources/extensions/gsd/workflow-logger.ts +3 -1
- package/src/resources/extensions/gsd/workflow-manifest.ts +22 -5
- package/src/resources/extensions/gsd/workflow-projections.ts +97 -64
- package/src/resources/extensions/gsd/workflow-reconcile.ts +39 -10
- package/src/resources/extensions/gsd/workspace-index.ts +30 -0
- package/src/resources/extensions/gsd/worktree-manager.ts +120 -1
- package/src/resources/extensions/gsd/worktree-resolver.ts +22 -3
- package/src/resources/extensions/mcp-client/index.ts +13 -7
- package/src/resources/extensions/mcp-client/tests/server-name-spaces.test.ts +55 -0
- package/src/resources/extensions/ollama/index.ts +130 -0
- package/src/resources/extensions/ollama/model-capabilities.ts +145 -0
- package/src/resources/extensions/ollama/ollama-client.ts +196 -0
- package/src/resources/extensions/ollama/ollama-commands.ts +248 -0
- package/src/resources/extensions/ollama/ollama-discovery.ts +106 -0
- package/src/resources/extensions/ollama/ollama-tool.ts +218 -0
- package/src/resources/extensions/ollama/tests/model-capabilities.test.ts +162 -0
- package/src/resources/extensions/ollama/tests/ollama-client.test.ts +38 -0
- package/src/resources/extensions/ollama/tests/ollama-discovery.test.ts +28 -0
- package/src/resources/extensions/ollama/types.ts +130 -0
- package/src/resources/extensions/search-the-web/extension-manifest.json +1 -1
- package/src/resources/extensions/shared/interview-ui.ts +12 -1
- package/src/resources/extensions/shared/tests/ask-user-freetext.test.ts +156 -0
- package/src/resources/skills/create-gsd-extension/SKILL.md +5 -3
- package/src/resources/skills/create-gsd-extension/references/key-rules-gotchas.md +5 -4
- package/src/resources/skills/create-gsd-extension/workflows/add-capability.md +2 -2
- package/src/resources/skills/create-gsd-extension/workflows/create-extension.md +4 -4
- package/src/resources/skills/create-gsd-extension/workflows/debug-extension.md +5 -3
- package/dist/web/standalone/.next/static/chunks/6502.2305d0afd2385711.js +0 -9
- package/dist/web/standalone/.next/static/chunks/app/page-62be3b5fa91e4c8f.js +0 -1
- package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
- package/dist/web/standalone/.next/static/css/a58ef8a151aa0493.css +0 -1
- package/src/resources/extensions/gsd/tests/empty-db-reconciliation.test.ts +0 -79
- /package/dist/web/standalone/.next/static/{yowc5qPtuKxjOr22KmOAy → R0D4xaIPl5kg93edN7Oo0}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{yowc5qPtuKxjOr22KmOAy → R0D4xaIPl5kg93edN7Oo0}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* @gsd/native — High-performance Rust modules exposed via N-API.
|
|
3
4
|
*
|
|
@@ -13,20 +14,72 @@
|
|
|
13
14
|
* - image: decode, encode, and resize images
|
|
14
15
|
for autocomplete and @-mention resolution
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.truncateOutput = exports.truncateHead = exports.truncateTail = exports.parseRoadmapFile = exports.batchParseGsdFiles = exports.extractAllSections = exports.nativeExtractSection = exports.parseFrontmatter = exports.sanitizeBinaryOutputNative = exports.stripAnsiNative = exports.processStreamChunk = exports.parseStreamingJson = exports.parsePartialJson = exports.parseJson = exports.ttsrFreeRules = exports.ttsrCheckBuffer = exports.ttsrCompileRules = exports.xxHash32Fallback = exports.xxHash32 = exports.SamplingFilter = exports.ImageFormat = exports.parseImage = exports.fuzzyFind = exports.generateDiff = exports.fuzzyFindText = exports.normalizeForFuzzyMatch = exports.EllipsisKind = exports.visibleWidth = exports.sanitizeText = exports.extractSegments = exports.sliceWithWidth = exports.truncateToWidth = exports.wrapTextWithAnsi = exports.htmlToMarkdown = exports.astEdit = exports.astGrep = exports.invalidateFsScanCache = exports.glob = exports.killProcessGroup = exports.processGroupId = exports.listDescendants = exports.killTree = exports.grep = exports.searchContent = exports.getSupportedLanguages = exports.supportsLanguage = exports.highlightCode = exports.readImageFromClipboard = exports.readTextFromClipboard = exports.copyToClipboard = void 0;
|
|
19
|
+
var index_js_1 = require("./clipboard/index.js");
|
|
20
|
+
Object.defineProperty(exports, "copyToClipboard", { enumerable: true, get: function () { return index_js_1.copyToClipboard; } });
|
|
21
|
+
Object.defineProperty(exports, "readTextFromClipboard", { enumerable: true, get: function () { return index_js_1.readTextFromClipboard; } });
|
|
22
|
+
Object.defineProperty(exports, "readImageFromClipboard", { enumerable: true, get: function () { return index_js_1.readImageFromClipboard; } });
|
|
23
|
+
var index_js_2 = require("./highlight/index.js");
|
|
24
|
+
Object.defineProperty(exports, "highlightCode", { enumerable: true, get: function () { return index_js_2.highlightCode; } });
|
|
25
|
+
Object.defineProperty(exports, "supportsLanguage", { enumerable: true, get: function () { return index_js_2.supportsLanguage; } });
|
|
26
|
+
Object.defineProperty(exports, "getSupportedLanguages", { enumerable: true, get: function () { return index_js_2.getSupportedLanguages; } });
|
|
27
|
+
var index_js_3 = require("./grep/index.js");
|
|
28
|
+
Object.defineProperty(exports, "searchContent", { enumerable: true, get: function () { return index_js_3.searchContent; } });
|
|
29
|
+
Object.defineProperty(exports, "grep", { enumerable: true, get: function () { return index_js_3.grep; } });
|
|
30
|
+
var index_js_4 = require("./ps/index.js");
|
|
31
|
+
Object.defineProperty(exports, "killTree", { enumerable: true, get: function () { return index_js_4.killTree; } });
|
|
32
|
+
Object.defineProperty(exports, "listDescendants", { enumerable: true, get: function () { return index_js_4.listDescendants; } });
|
|
33
|
+
Object.defineProperty(exports, "processGroupId", { enumerable: true, get: function () { return index_js_4.processGroupId; } });
|
|
34
|
+
Object.defineProperty(exports, "killProcessGroup", { enumerable: true, get: function () { return index_js_4.killProcessGroup; } });
|
|
35
|
+
var index_js_5 = require("./glob/index.js");
|
|
36
|
+
Object.defineProperty(exports, "glob", { enumerable: true, get: function () { return index_js_5.glob; } });
|
|
37
|
+
Object.defineProperty(exports, "invalidateFsScanCache", { enumerable: true, get: function () { return index_js_5.invalidateFsScanCache; } });
|
|
38
|
+
var index_js_6 = require("./ast/index.js");
|
|
39
|
+
Object.defineProperty(exports, "astGrep", { enumerable: true, get: function () { return index_js_6.astGrep; } });
|
|
40
|
+
Object.defineProperty(exports, "astEdit", { enumerable: true, get: function () { return index_js_6.astEdit; } });
|
|
41
|
+
var index_js_7 = require("./html/index.js");
|
|
42
|
+
Object.defineProperty(exports, "htmlToMarkdown", { enumerable: true, get: function () { return index_js_7.htmlToMarkdown; } });
|
|
43
|
+
var index_js_8 = require("./text/index.js");
|
|
44
|
+
Object.defineProperty(exports, "wrapTextWithAnsi", { enumerable: true, get: function () { return index_js_8.wrapTextWithAnsi; } });
|
|
45
|
+
Object.defineProperty(exports, "truncateToWidth", { enumerable: true, get: function () { return index_js_8.truncateToWidth; } });
|
|
46
|
+
Object.defineProperty(exports, "sliceWithWidth", { enumerable: true, get: function () { return index_js_8.sliceWithWidth; } });
|
|
47
|
+
Object.defineProperty(exports, "extractSegments", { enumerable: true, get: function () { return index_js_8.extractSegments; } });
|
|
48
|
+
Object.defineProperty(exports, "sanitizeText", { enumerable: true, get: function () { return index_js_8.sanitizeText; } });
|
|
49
|
+
Object.defineProperty(exports, "visibleWidth", { enumerable: true, get: function () { return index_js_8.visibleWidth; } });
|
|
50
|
+
Object.defineProperty(exports, "EllipsisKind", { enumerable: true, get: function () { return index_js_8.EllipsisKind; } });
|
|
51
|
+
var index_js_9 = require("./diff/index.js");
|
|
52
|
+
Object.defineProperty(exports, "normalizeForFuzzyMatch", { enumerable: true, get: function () { return index_js_9.normalizeForFuzzyMatch; } });
|
|
53
|
+
Object.defineProperty(exports, "fuzzyFindText", { enumerable: true, get: function () { return index_js_9.fuzzyFindText; } });
|
|
54
|
+
Object.defineProperty(exports, "generateDiff", { enumerable: true, get: function () { return index_js_9.generateDiff; } });
|
|
55
|
+
var index_js_10 = require("./fd/index.js");
|
|
56
|
+
Object.defineProperty(exports, "fuzzyFind", { enumerable: true, get: function () { return index_js_10.fuzzyFind; } });
|
|
57
|
+
var index_js_11 = require("./image/index.js");
|
|
58
|
+
Object.defineProperty(exports, "parseImage", { enumerable: true, get: function () { return index_js_11.parseImage; } });
|
|
59
|
+
Object.defineProperty(exports, "ImageFormat", { enumerable: true, get: function () { return index_js_11.ImageFormat; } });
|
|
60
|
+
Object.defineProperty(exports, "SamplingFilter", { enumerable: true, get: function () { return index_js_11.SamplingFilter; } });
|
|
61
|
+
var index_js_12 = require("./xxhash/index.js");
|
|
62
|
+
Object.defineProperty(exports, "xxHash32", { enumerable: true, get: function () { return index_js_12.xxHash32; } });
|
|
63
|
+
Object.defineProperty(exports, "xxHash32Fallback", { enumerable: true, get: function () { return index_js_12.xxHash32Fallback; } });
|
|
64
|
+
var index_js_13 = require("./ttsr/index.js");
|
|
65
|
+
Object.defineProperty(exports, "ttsrCompileRules", { enumerable: true, get: function () { return index_js_13.ttsrCompileRules; } });
|
|
66
|
+
Object.defineProperty(exports, "ttsrCheckBuffer", { enumerable: true, get: function () { return index_js_13.ttsrCheckBuffer; } });
|
|
67
|
+
Object.defineProperty(exports, "ttsrFreeRules", { enumerable: true, get: function () { return index_js_13.ttsrFreeRules; } });
|
|
68
|
+
var index_js_14 = require("./json-parse/index.js");
|
|
69
|
+
Object.defineProperty(exports, "parseJson", { enumerable: true, get: function () { return index_js_14.parseJson; } });
|
|
70
|
+
Object.defineProperty(exports, "parsePartialJson", { enumerable: true, get: function () { return index_js_14.parsePartialJson; } });
|
|
71
|
+
Object.defineProperty(exports, "parseStreamingJson", { enumerable: true, get: function () { return index_js_14.parseStreamingJson; } });
|
|
72
|
+
var index_js_15 = require("./stream-process/index.js");
|
|
73
|
+
Object.defineProperty(exports, "processStreamChunk", { enumerable: true, get: function () { return index_js_15.processStreamChunk; } });
|
|
74
|
+
Object.defineProperty(exports, "stripAnsiNative", { enumerable: true, get: function () { return index_js_15.stripAnsiNative; } });
|
|
75
|
+
Object.defineProperty(exports, "sanitizeBinaryOutputNative", { enumerable: true, get: function () { return index_js_15.sanitizeBinaryOutputNative; } });
|
|
76
|
+
var index_js_16 = require("./gsd-parser/index.js");
|
|
77
|
+
Object.defineProperty(exports, "parseFrontmatter", { enumerable: true, get: function () { return index_js_16.parseFrontmatter; } });
|
|
78
|
+
Object.defineProperty(exports, "nativeExtractSection", { enumerable: true, get: function () { return index_js_16.extractSection; } });
|
|
79
|
+
Object.defineProperty(exports, "extractAllSections", { enumerable: true, get: function () { return index_js_16.extractAllSections; } });
|
|
80
|
+
Object.defineProperty(exports, "batchParseGsdFiles", { enumerable: true, get: function () { return index_js_16.batchParseGsdFiles; } });
|
|
81
|
+
Object.defineProperty(exports, "parseRoadmapFile", { enumerable: true, get: function () { return index_js_16.parseRoadmapFile; } });
|
|
82
|
+
var index_js_17 = require("./truncate/index.js");
|
|
83
|
+
Object.defineProperty(exports, "truncateTail", { enumerable: true, get: function () { return index_js_17.truncateTail; } });
|
|
84
|
+
Object.defineProperty(exports, "truncateHead", { enumerable: true, get: function () { return index_js_17.truncateHead; } });
|
|
85
|
+
Object.defineProperty(exports, "truncateOutput", { enumerable: true, get: function () { return index_js_17.truncateOutput; } });
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Streaming JSON parser via native Rust bindings with JS fallback.
|
|
3
4
|
*
|
|
@@ -7,8 +8,12 @@
|
|
|
7
8
|
* Falls back to pure-JS implementation when native functions are not
|
|
8
9
|
* available (e.g. addon was compiled before json-parse was added).
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.parseJson = parseJson;
|
|
13
|
+
exports.parsePartialJson = parsePartialJson;
|
|
14
|
+
exports.parseStreamingJson = parseStreamingJson;
|
|
15
|
+
const native_js_1 = require("../native.js");
|
|
16
|
+
const hasNativeJson = typeof native_js_1.native.parseStreamingJson === "function";
|
|
12
17
|
/**
|
|
13
18
|
* JS fallback: attempt JSON.parse, return {} on failure.
|
|
14
19
|
*/
|
|
@@ -42,9 +47,9 @@ function jsFallbackStreamingJson(text) {
|
|
|
42
47
|
/**
|
|
43
48
|
* Parse a complete JSON string. Throws on invalid JSON.
|
|
44
49
|
*/
|
|
45
|
-
|
|
50
|
+
function parseJson(text) {
|
|
46
51
|
if (hasNativeJson) {
|
|
47
|
-
return native.parseJson(text);
|
|
52
|
+
return native_js_1.native.parseJson(text);
|
|
48
53
|
}
|
|
49
54
|
return JSON.parse(text);
|
|
50
55
|
}
|
|
@@ -52,9 +57,9 @@ export function parseJson(text) {
|
|
|
52
57
|
* Parse potentially incomplete JSON by closing unclosed structures.
|
|
53
58
|
* Handles unclosed strings, objects, arrays, trailing commas, and truncated literals.
|
|
54
59
|
*/
|
|
55
|
-
|
|
60
|
+
function parsePartialJson(text) {
|
|
56
61
|
if (hasNativeJson) {
|
|
57
|
-
return native.parsePartialJson(text);
|
|
62
|
+
return native_js_1.native.parsePartialJson(text);
|
|
58
63
|
}
|
|
59
64
|
return jsFallbackStreamingJson(text);
|
|
60
65
|
}
|
|
@@ -62,12 +67,12 @@ export function parsePartialJson(text) {
|
|
|
62
67
|
* Try full JSON parse first; fall back to partial parse.
|
|
63
68
|
* Returns `{}` on total failure. Drop-in replacement for the JS streaming parser.
|
|
64
69
|
*/
|
|
65
|
-
|
|
70
|
+
function parseStreamingJson(text) {
|
|
66
71
|
if (!text || text.trim() === "") {
|
|
67
72
|
return {};
|
|
68
73
|
}
|
|
69
74
|
if (hasNativeJson) {
|
|
70
|
-
return native.parseStreamingJson(text);
|
|
75
|
+
return native_js_1.native.parseStreamingJson(text);
|
|
71
76
|
}
|
|
72
77
|
return jsFallbackStreamingJson(text);
|
|
73
78
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Native addon loader.
|
|
3
4
|
*
|
|
@@ -7,12 +8,48 @@
|
|
|
7
8
|
* 2. native/addon/gsd_engine.{platform}.node (local release build)
|
|
8
9
|
* 3. native/addon/gsd_engine.dev.node (local debug build)
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.native = void 0;
|
|
46
|
+
const path = __importStar(require("node:path"));
|
|
47
|
+
// __dirname and require are available in both execution contexts:
|
|
48
|
+
// - CJS (production build via tsc): provided natively by Node
|
|
49
|
+
// - ESM (CI test loader): injected by the dist-redirect.mjs preamble
|
|
50
|
+
const _dirname = __dirname;
|
|
51
|
+
const _require = require;
|
|
52
|
+
const addonDir = path.resolve(_dirname, "..", "..", "..", "native", "addon");
|
|
16
53
|
const platformTag = `${process.platform}-${process.arch}`;
|
|
17
54
|
/** Map Node.js platform/arch to the npm package suffix */
|
|
18
55
|
const platformPackageMap = {
|
|
@@ -30,7 +67,7 @@ function loadNative() {
|
|
|
30
67
|
if (packageSuffix) {
|
|
31
68
|
try {
|
|
32
69
|
_loadedSuccessfully = true;
|
|
33
|
-
return
|
|
70
|
+
return _require(`@gsd-build/engine-${packageSuffix}`);
|
|
34
71
|
}
|
|
35
72
|
catch (err) {
|
|
36
73
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -41,7 +78,7 @@ function loadNative() {
|
|
|
41
78
|
const releasePath = path.join(addonDir, `gsd_engine.${platformTag}.node`);
|
|
42
79
|
try {
|
|
43
80
|
_loadedSuccessfully = true;
|
|
44
|
-
return
|
|
81
|
+
return _require(releasePath);
|
|
45
82
|
}
|
|
46
83
|
catch (err) {
|
|
47
84
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -51,7 +88,7 @@ function loadNative() {
|
|
|
51
88
|
const devPath = path.join(addonDir, "gsd_engine.dev.node");
|
|
52
89
|
try {
|
|
53
90
|
_loadedSuccessfully = true;
|
|
54
|
-
return
|
|
91
|
+
return _require(devPath);
|
|
55
92
|
}
|
|
56
93
|
catch (err) {
|
|
57
94
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -73,4 +110,4 @@ function loadNative() {
|
|
|
73
110
|
},
|
|
74
111
|
});
|
|
75
112
|
}
|
|
76
|
-
|
|
113
|
+
exports.native = loadNative();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Cross-platform process tree management via N-API.
|
|
3
4
|
*
|
|
@@ -5,7 +6,12 @@
|
|
|
5
6
|
* using platform-native APIs (libproc on macOS, /proc on Linux,
|
|
6
7
|
* Toolhelp32 on Windows).
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.killTree = killTree;
|
|
11
|
+
exports.listDescendants = listDescendants;
|
|
12
|
+
exports.processGroupId = processGroupId;
|
|
13
|
+
exports.killProcessGroup = killProcessGroup;
|
|
14
|
+
const native_js_1 = require("../native.js");
|
|
9
15
|
/**
|
|
10
16
|
* Kill a process tree (the process and all its descendants).
|
|
11
17
|
*
|
|
@@ -14,8 +20,8 @@ import { native } from "../native.js";
|
|
|
14
20
|
* @param signal - Signal to send (e.g. 9 for SIGKILL, 15 for SIGTERM). Ignored on Windows.
|
|
15
21
|
* @returns Number of processes successfully killed.
|
|
16
22
|
*/
|
|
17
|
-
|
|
18
|
-
return native.killTree(pid, signal);
|
|
23
|
+
function killTree(pid, signal) {
|
|
24
|
+
return native_js_1.native.killTree(pid, signal);
|
|
19
25
|
}
|
|
20
26
|
/**
|
|
21
27
|
* List all descendant PIDs of a process.
|
|
@@ -23,8 +29,8 @@ export function killTree(pid, signal) {
|
|
|
23
29
|
* @param pid - Parent process ID
|
|
24
30
|
* @returns Array of descendant PIDs (empty if no children or process doesn't exist).
|
|
25
31
|
*/
|
|
26
|
-
|
|
27
|
-
return native.listDescendants(pid);
|
|
32
|
+
function listDescendants(pid) {
|
|
33
|
+
return native_js_1.native.listDescendants(pid);
|
|
28
34
|
}
|
|
29
35
|
/**
|
|
30
36
|
* Get the process group ID for a process.
|
|
@@ -32,8 +38,8 @@ export function listDescendants(pid) {
|
|
|
32
38
|
* @param pid - Process ID
|
|
33
39
|
* @returns Process group ID, or null if the process doesn't exist or on Windows.
|
|
34
40
|
*/
|
|
35
|
-
|
|
36
|
-
return native.processGroupId(pid);
|
|
41
|
+
function processGroupId(pid) {
|
|
42
|
+
return native_js_1.native.processGroupId(pid);
|
|
37
43
|
}
|
|
38
44
|
/**
|
|
39
45
|
* Kill an entire process group.
|
|
@@ -42,6 +48,6 @@ export function processGroupId(pid) {
|
|
|
42
48
|
* @param signal - Signal to send
|
|
43
49
|
* @returns true if the signal was delivered, false on failure or Windows.
|
|
44
50
|
*/
|
|
45
|
-
|
|
46
|
-
return native.killProcessGroup(pgid, signal);
|
|
51
|
+
function killProcessGroup(pgid, signal) {
|
|
52
|
+
return native_js_1.native.killProcessGroup(pgid, signal);
|
|
47
53
|
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Bash stream processor — single-pass UTF-8 decode + ANSI strip + binary sanitization.
|
|
3
4
|
*
|
|
4
5
|
* Handles chunk boundaries for incomplete UTF-8 and ANSI escape sequences.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.processStreamChunk = processStreamChunk;
|
|
9
|
+
exports.stripAnsiNative = stripAnsiNative;
|
|
10
|
+
exports.sanitizeBinaryOutputNative = sanitizeBinaryOutputNative;
|
|
11
|
+
const native_js_1 = require("../native.js");
|
|
7
12
|
/**
|
|
8
13
|
* Process a raw bash output chunk in a single pass.
|
|
9
14
|
*
|
|
@@ -14,7 +19,7 @@ import { native } from "../native.js";
|
|
|
14
19
|
* Pass the returned `state` to the next call to handle sequences split
|
|
15
20
|
* across chunk boundaries.
|
|
16
21
|
*/
|
|
17
|
-
|
|
22
|
+
function processStreamChunk(chunk, state) {
|
|
18
23
|
// Convert StreamState arrays to the format napi expects (Vec<u8>)
|
|
19
24
|
const napiState = state
|
|
20
25
|
? {
|
|
@@ -22,7 +27,7 @@ export function processStreamChunk(chunk, state) {
|
|
|
22
27
|
ansiPending: Array.from(state.ansiPending),
|
|
23
28
|
}
|
|
24
29
|
: undefined;
|
|
25
|
-
const result = native.processStreamChunk(chunk, napiState);
|
|
30
|
+
const result = native_js_1.native.processStreamChunk(chunk, napiState);
|
|
26
31
|
return {
|
|
27
32
|
text: result.text,
|
|
28
33
|
state: {
|
|
@@ -34,8 +39,8 @@ export function processStreamChunk(chunk, state) {
|
|
|
34
39
|
/**
|
|
35
40
|
* Strip ANSI escape sequences from a string.
|
|
36
41
|
*/
|
|
37
|
-
|
|
38
|
-
return native.stripAnsiNative(text);
|
|
42
|
+
function stripAnsiNative(text) {
|
|
43
|
+
return native_js_1.native.stripAnsiNative(text);
|
|
39
44
|
}
|
|
40
45
|
/**
|
|
41
46
|
* Remove binary garbage and control characters from a string.
|
|
@@ -43,6 +48,6 @@ export function stripAnsiNative(text) {
|
|
|
43
48
|
* Keeps tab and newline. Removes carriage return, all other control
|
|
44
49
|
* characters, Unicode format characters (U+FFF9-U+FFFB), and lone surrogates.
|
|
45
50
|
*/
|
|
46
|
-
|
|
47
|
-
return native.sanitizeBinaryOutputNative(text);
|
|
51
|
+
function sanitizeBinaryOutputNative(text) {
|
|
52
|
+
return native_js_1.native.sanitizeBinaryOutputNative(text);
|
|
48
53
|
}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* ANSI-aware text measurement and slicing.
|
|
3
4
|
*
|
|
4
5
|
* High-performance UTF-16 native implementation with ASCII fast-paths,
|
|
5
6
|
* single-pass ANSI scanning, and proper Unicode grapheme cluster support.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.EllipsisKind = void 0;
|
|
10
|
+
exports.wrapTextWithAnsi = wrapTextWithAnsi;
|
|
11
|
+
exports.truncateToWidth = truncateToWidth;
|
|
12
|
+
exports.sliceWithWidth = sliceWithWidth;
|
|
13
|
+
exports.extractSegments = extractSegments;
|
|
14
|
+
exports.sanitizeText = sanitizeText;
|
|
15
|
+
exports.visibleWidth = visibleWidth;
|
|
16
|
+
const native_js_1 = require("../native.js");
|
|
17
|
+
var types_js_1 = require("./types.js");
|
|
18
|
+
Object.defineProperty(exports, "EllipsisKind", { enumerable: true, get: function () { return types_js_1.EllipsisKind; } });
|
|
9
19
|
/**
|
|
10
20
|
* Word-wrap text to a visible width, preserving ANSI escape codes across
|
|
11
21
|
* line breaks.
|
|
@@ -14,8 +24,8 @@ export { EllipsisKind } from "./types.js";
|
|
|
14
24
|
* Underline and strikethrough are reset at line ends and restored on the
|
|
15
25
|
* next line.
|
|
16
26
|
*/
|
|
17
|
-
|
|
18
|
-
return native.wrapTextWithAnsi(text, width, tabWidth);
|
|
27
|
+
function wrapTextWithAnsi(text, width, tabWidth) {
|
|
28
|
+
return native_js_1.native.wrapTextWithAnsi(text, width, tabWidth);
|
|
19
29
|
}
|
|
20
30
|
/**
|
|
21
31
|
* Truncate text to a visible width with an optional ellipsis.
|
|
@@ -26,8 +36,8 @@ export function wrapTextWithAnsi(text, width, tabWidth) {
|
|
|
26
36
|
* @param pad When true, pad with spaces to exactly `maxWidth`.
|
|
27
37
|
* @param tabWidth Tab stop width (default 3, range 1-16).
|
|
28
38
|
*/
|
|
29
|
-
|
|
30
|
-
return native.truncateToWidth(text, maxWidth, ellipsisKind, pad, tabWidth);
|
|
39
|
+
function truncateToWidth(text, maxWidth, ellipsisKind, pad, tabWidth) {
|
|
40
|
+
return native_js_1.native.truncateToWidth(text, maxWidth, ellipsisKind, pad, tabWidth);
|
|
31
41
|
}
|
|
32
42
|
/**
|
|
33
43
|
* Slice a range of visible columns from a line.
|
|
@@ -35,8 +45,8 @@ export function truncateToWidth(text, maxWidth, ellipsisKind, pad, tabWidth) {
|
|
|
35
45
|
* Counts terminal cells (skipping ANSI escapes). When `strict` is true,
|
|
36
46
|
* wide characters that would exceed the range are excluded.
|
|
37
47
|
*/
|
|
38
|
-
|
|
39
|
-
return native.sliceWithWidth(line, startCol, length, strict, tabWidth);
|
|
48
|
+
function sliceWithWidth(line, startCol, length, strict, tabWidth) {
|
|
49
|
+
return native_js_1.native.sliceWithWidth(line, startCol, length, strict, tabWidth);
|
|
40
50
|
}
|
|
41
51
|
/**
|
|
42
52
|
* Extract the before/after segments around an overlay region.
|
|
@@ -44,8 +54,8 @@ export function sliceWithWidth(line, startCol, length, strict, tabWidth) {
|
|
|
44
54
|
* ANSI state is tracked so the `after` segment renders correctly even when
|
|
45
55
|
* the overlay truncates styled text.
|
|
46
56
|
*/
|
|
47
|
-
|
|
48
|
-
return native.extractSegments(line, beforeEnd, afterStart, afterLen, strictAfter, tabWidth);
|
|
57
|
+
function extractSegments(line, beforeEnd, afterStart, afterLen, strictAfter, tabWidth) {
|
|
58
|
+
return native_js_1.native.extractSegments(line, beforeEnd, afterStart, afterLen, strictAfter, tabWidth);
|
|
49
59
|
}
|
|
50
60
|
/**
|
|
51
61
|
* Strip ANSI escape sequences, remove control characters and lone
|
|
@@ -53,14 +63,14 @@ export function extractSegments(line, beforeEnd, afterStart, afterLen, strictAft
|
|
|
53
63
|
*
|
|
54
64
|
* Returns the original string when no changes are needed (zero-copy).
|
|
55
65
|
*/
|
|
56
|
-
|
|
57
|
-
return native.sanitizeText(text);
|
|
66
|
+
function sanitizeText(text) {
|
|
67
|
+
return native_js_1.native.sanitizeText(text);
|
|
58
68
|
}
|
|
59
69
|
/**
|
|
60
70
|
* Calculate visible width of text excluding ANSI escape sequences.
|
|
61
71
|
*
|
|
62
72
|
* Tabs count as `tabWidth` cells (default 3).
|
|
63
73
|
*/
|
|
64
|
-
|
|
65
|
-
return native.visibleWidth(text, tabWidth);
|
|
74
|
+
function visibleWidth(text, tabWidth) {
|
|
75
|
+
return native_js_1.native.visibleWidth(text, tabWidth);
|
|
66
76
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EllipsisKind = void 0;
|
|
1
4
|
/** Ellipsis style for truncation. */
|
|
2
|
-
|
|
5
|
+
var EllipsisKind;
|
|
3
6
|
(function (EllipsisKind) {
|
|
4
7
|
/** Unicode ellipsis character: \u2026 (width 1) */
|
|
5
8
|
EllipsisKind[EllipsisKind["Unicode"] = 0] = "Unicode";
|
|
@@ -7,4 +10,4 @@ export var EllipsisKind;
|
|
|
7
10
|
EllipsisKind[EllipsisKind["Ascii"] = 1] = "Ascii";
|
|
8
11
|
/** No ellipsis (hard truncate) */
|
|
9
12
|
EllipsisKind[EllipsisKind["None"] = 2] = "None";
|
|
10
|
-
})(EllipsisKind || (EllipsisKind = {}));
|
|
13
|
+
})(EllipsisKind || (exports.EllipsisKind = EllipsisKind = {}));
|
|
@@ -1,25 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Line-boundary-aware output truncation (native Rust).
|
|
3
4
|
*
|
|
4
5
|
* Truncates tool output at line boundaries, counting by UTF-8 bytes.
|
|
5
6
|
* Three modes: head (keep end), tail (keep start), both (keep start+end).
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.truncateTail = truncateTail;
|
|
10
|
+
exports.truncateHead = truncateHead;
|
|
11
|
+
exports.truncateOutput = truncateOutput;
|
|
12
|
+
const native_js_1 = require("../native.js");
|
|
8
13
|
/**
|
|
9
14
|
* Keep the first `maxBytes` worth of complete lines.
|
|
10
15
|
*/
|
|
11
|
-
|
|
12
|
-
return native.truncateTail(text, maxBytes);
|
|
16
|
+
function truncateTail(text, maxBytes) {
|
|
17
|
+
return native_js_1.native.truncateTail(text, maxBytes);
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Keep the last `maxBytes` worth of complete lines.
|
|
16
21
|
*/
|
|
17
|
-
|
|
18
|
-
return native.truncateHead(text, maxBytes);
|
|
22
|
+
function truncateHead(text, maxBytes) {
|
|
23
|
+
return native_js_1.native.truncateHead(text, maxBytes);
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* Main entry point: truncate tool output with head/tail/both modes.
|
|
22
27
|
*/
|
|
23
|
-
|
|
24
|
-
return native.truncateOutput(text, maxBytes, mode);
|
|
28
|
+
function truncateOutput(text, maxBytes, mode) {
|
|
29
|
+
return native_js_1.native.truncateOutput(text, maxBytes, mode);
|
|
25
30
|
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Native TTSR regex engine.
|
|
3
4
|
*
|
|
4
5
|
* Pre-compiles all rule condition patterns into a single Rust RegexSet for
|
|
5
6
|
* O(1)-style matching per buffer check, replacing per-rule JS regex iteration.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ttsrCompileRules = ttsrCompileRules;
|
|
10
|
+
exports.ttsrCheckBuffer = ttsrCheckBuffer;
|
|
11
|
+
exports.ttsrFreeRules = ttsrFreeRules;
|
|
12
|
+
const native_js_1 = require("../native.js");
|
|
8
13
|
/**
|
|
9
14
|
* Compile TTSR rules into an optimized native regex engine.
|
|
10
15
|
*
|
|
11
16
|
* Returns an opaque handle for use with `ttsrCheckBuffer` and `ttsrFreeRules`.
|
|
12
17
|
*/
|
|
13
|
-
|
|
14
|
-
return native.ttsrCompileRules(rules);
|
|
18
|
+
function ttsrCompileRules(rules) {
|
|
19
|
+
return native_js_1.native.ttsrCompileRules(rules);
|
|
15
20
|
}
|
|
16
21
|
/**
|
|
17
22
|
* Check a buffer against compiled TTSR rules.
|
|
@@ -19,14 +24,14 @@ export function ttsrCompileRules(rules) {
|
|
|
19
24
|
* Returns an array of unique rule names whose conditions matched.
|
|
20
25
|
* All patterns are tested in a single pass via Rust's RegexSet.
|
|
21
26
|
*/
|
|
22
|
-
|
|
23
|
-
return native.ttsrCheckBuffer(handle, buffer);
|
|
27
|
+
function ttsrCheckBuffer(handle, buffer) {
|
|
28
|
+
return native_js_1.native.ttsrCheckBuffer(handle, buffer);
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* Free a compiled TTSR rule set, releasing native memory.
|
|
27
32
|
*
|
|
28
33
|
* Call when rules are no longer needed (e.g., session end).
|
|
29
34
|
*/
|
|
30
|
-
|
|
31
|
-
native.ttsrFreeRules(handle);
|
|
35
|
+
function ttsrFreeRules(handle) {
|
|
36
|
+
native_js_1.native.ttsrFreeRules(handle);
|
|
32
37
|
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Native xxHash32 — Rust implementation via napi-rs, with a pure-JS fallback.
|
|
3
4
|
*
|
|
4
5
|
* Hashes the UTF-8 representation of the input string with the given seed.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.xxHash32Fallback = xxHash32Fallback;
|
|
9
|
+
exports.xxHash32 = xxHash32;
|
|
10
|
+
const native_js_1 = require("../native.js");
|
|
7
11
|
// ─── Pure-JS xxHash32 fallback ────────────────────────────────────────────────
|
|
8
12
|
// Used when the native addon is present but does not export xxHash32
|
|
9
13
|
// (e.g. an older build or an unsupported platform variant).
|
|
@@ -62,12 +66,12 @@ function xxHash32JS(input, seed) {
|
|
|
62
66
|
* Pure-JS xxHash32 implementation. Exposed for testing to allow CI to validate
|
|
63
67
|
* the fallback path independently of native addon availability.
|
|
64
68
|
*/
|
|
65
|
-
|
|
69
|
+
function xxHash32Fallback(input, seed) {
|
|
66
70
|
return xxHash32JS(input, seed);
|
|
67
71
|
}
|
|
68
72
|
// Resolve once at module load: prefer native, fall back to JS.
|
|
69
|
-
const _xxHash32Impl = typeof native.xxHash32 === "function"
|
|
70
|
-
? (input, seed) => native.xxHash32(input, seed)
|
|
73
|
+
const _xxHash32Impl = typeof native_js_1.native.xxHash32 === "function"
|
|
74
|
+
? (input, seed) => native_js_1.native.xxHash32(input, seed)
|
|
71
75
|
: xxHash32JS;
|
|
72
76
|
/**
|
|
73
77
|
* Compute xxHash32 of a UTF-8 string.
|
|
@@ -80,6 +84,6 @@ const _xxHash32Impl = typeof native.xxHash32 === "function"
|
|
|
80
84
|
* @param seed 32-bit seed value.
|
|
81
85
|
* @returns 32-bit unsigned hash.
|
|
82
86
|
*/
|
|
83
|
-
|
|
87
|
+
function xxHash32(input, seed) {
|
|
84
88
|
return _xxHash32Impl(input, seed);
|
|
85
89
|
}
|