{"_id":"@acidicsoil/serena-gsd-bridge","name":"@acidicsoil/serena-gsd-bridge","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@acidicsoil/serena-gsd-bridge","version":"1.0.0","description":"Serena/GSD project setup CLI","type":"module","license":"MIT","engines":{"node":">=24"},"bin":{"serena-setup":"dist/cli.js"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/AcidicSoil/serena-gsd-bridge.git"},"homepage":"https://github.com/AcidicSoil/serena-gsd-bridge","bugs":{"url":"https://github.com/AcidicSoil/serena-gsd-bridge/issues"},"scripts":{"typecheck":"tsc --noEmit","build":"tsc","test":"npm run build && node --test dist/test/*.test.js","prepack":"npm run build","pack:smoke":"node scripts/pack-smoke.mjs"},"dependencies":{"@clack/prompts":"1.6.0","diff":"^9.0.0","yaml":"^2.9.0"},"devDependencies":{"@types/node":"^24.0.0","typescript":"^5.9.0"},"gitHead":"bf5f27ce05d5e5ae69384a9b10e120967daa729e","_id":"@acidicsoil/serena-gsd-bridge@1.0.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-UgRTMeVTEKtNlX5r594pNd2+fI0yZ2LDmaLkGGPQi+CtaPkxZRsEpXAXODKRJ4dZuxJQNox1RHCaNUK5hogddQ==","shasum":"11c381f0c606cc62befab24dea8f0fe24f854f3f","tarball":"https://registry.npmjs.org/@acidicsoil/serena-gsd-bridge/-/serena-gsd-bridge-1.0.0.tgz","fileCount":649,"unpackedSize":3170116,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCwJ0PCKDsEK5lGaRYtwK9zmQCC6zFUl56WYNpFLuwmGAIhAKnXa2fEH292yNbrVTAD3ynxMFQVkOcD+SLNZuTVX0bM"}]},"_npmUser":{"name":"dirty-data","email":"claytonbivens1@gmail.com"},"directories":{},"maintainers":[{"name":"dirty-data","email":"claytonbivens1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/serena-gsd-bridge_1.0.0_1786659659200_0.1349509136485727"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T22:20:59.066Z","1.0.0":"2026-08-13T22:20:59.400Z","modified":"2026-08-13T22:20:59.628Z"},"maintainers":[{"name":"dirty-data","email":"claytonbivens1@gmail.com"}],"description":"Serena/GSD project setup CLI","homepage":"https://github.com/AcidicSoil/serena-gsd-bridge","repository":{"type":"git","url":"git+https://github.com/AcidicSoil/serena-gsd-bridge.git"},"bugs":{"url":"https://github.com/AcidicSoil/serena-gsd-bridge/issues"},"license":"MIT","readme":"<!-- generated-by: gsd-doc-writer -->\n# Serena GSD Bridge\n\nSerena GSD Bridge is a repository for installing and validating Serena Native GSD Core setup surfaces, centered on the `serena-setup` helper.\n\n## Installation\n\nInstall the published package globally:\n\n```bash\nnpm install --global @acidicsoil/serena-gsd-bridge\nserena-setup init\n```\n\nFor one-shot use without a global install:\n\n```bash\nnpx @acidicsoil/serena-gsd-bridge init\n```\n\nUpgrade or uninstall it with npm:\n\n```bash\nnpm update --global @acidicsoil/serena-gsd-bridge\nnpm uninstall --global @acidicsoil/serena-gsd-bridge\n```\n\n## Quick start\n\n1. Preview the install plan for the current project:\n\n   ```bash\n   serena-setup update --dry-run --json\n   ```\n\n2. Apply the safe local default:\n\n   ```bash\n   serena-setup init\nserena-setup update\n   ```\n\n3. Install selected project skills non-interactively:\n\n   ```bash\n   serena-setup init --target /path/to/project \\\n     --choices local,agent,skills \\\n     --skills gsd-browser-automation,gsd-frontend-skill-routing \\\n     --yes\n   ```\n\n   The interactive `init` wizard presents the same skill list after the top-level **Skills** surface is selected.\n\n## Install scopes and types\n\nScope controls where modifications happen. Type controls how much gets installed within that scope.\n\n| Option | Values | Meaning |\n|---|---|---|\n| Scope | `local`, `global`, `all` | `local` writes only target-project surfaces. `global` writes only user-global Serena surfaces. `all` explicitly writes both in one run. |\n| Type | `min`, `standard`, `full` | Amount of setup to install inside the selected scope. |\n\n`full` does not mean `global`. Local `full` installs the full project-local layer set. Global `full` installs the full user-global layer set. Use `--scope all --type full` when bootstrapping both local and global surfaces together. The canonical preview command is `update --dry-run`; only `init` and `update` commands with canonical `local`, `global`, and `all` scopes and `min`, `standard`, and `full` types are supported.\n\n## What gets installed\n\n| Scope | Type | Planned surfaces |\n|---|---|---|\n| `local` | `min` | Serena index command, project memory pointer, and managed agent instruction block. |\n| `local` | `standard` | Local `min` plus `.serena/project.local.yml`. |\n| `local` | `full` | Local `standard` plus the selected logical project-skill bundles and their manifest-owned support artifacts. A selected `opengsd-docs-lookup` bundle includes its skill, docs, and sync script; a selected `gsd-frontend-skill-routing` bundle includes its references. |\n| `global` | `min` | Minimal global memory pointer: `native-gsd-core-serena/operating-rule.md`. |\n| `global` | `standard` | Core global Serena mode plus the minimal operating-rule pointer memory. |\n| `global` | `full` | The current full user-global set from `.serena-gsd/setup/manifest.json`: `serena-native-gsd-core.yml`, `gsd-browser-automation.yml`, plus `operating-rule.md`, `agent-instruction-resolution.md`, `inline-agent-substitution.md`, `role-boundary-protocol.md`, `workflow-gate-preservation.md`, `capability-routing.md`, and `result-honesty.md`; differing managed files are canonicalized on apply. |\n| `all` | `full` | Local `full` plus global `full` in one explicit command. |\n\nProject skill selection is persisted in `<target>/.serena/skills-selection.json` as direct logical skill IDs. Later `update` runs reuse that selection and do not expand to newly available skills. Targets from before this state file existed are migrated by detecting only manifest-owned skill entrypoints; unrelated user-owned skills are ignored and never deleted. Existing managed project-local artifacts are canonicalized by `update`; user-owned files outside manifest-managed targets are not overwritten. Existing user-global managed modes and memories are diffed; `global full` and `all full` canonicalize them on apply and prune stale managed `serena-native-gsd-core*` / `native-gsd-core-serena/*` files that are no longer in the manifest.\n\nProject-local setup uses descriptor-relative, no-follow filesystem access and currently requires Linux or macOS; unsupported platforms fail closed rather than downgrading to race-prone path checks.\n\n## Default source order\n\nThe helper reads `~/.serena-gsd` by default. A full home setup bundle can override the bundled setup. A simple home `project.local.yml` overlays the bundled/repo manifest, so local config is honored while the bundled managed global modes and memories still install. `SERENA_SETUP_SOURCE_ROOT` is the explicit source-root override and bypasses home lookup for that run.\n\nThe manifest at `.serena-gsd/setup/manifest.json` is the single source of truth for logical skill bundles, targets, ownership, policy, and source roots. Installable project payloads have one canonical copy: skills live under `skills/`, OpenGSD support docs live at `docs/opengsd-agent-docs.md`, and the docs sync helper lives at `.serena-gsd/scripts/opengsd-docs/`. The setup directory retains manifest metadata and setup-only modes, memories, and templates; it does not duplicate those project payloads.\n\n## Usage examples\n\nPreview a default local install:\n\n```bash\nserena-setup update --dry-run\n```\n\nApply a standard local install to another project:\n\n```bash\nserena-setup update --target /path/to/project\n```\n\nInstall global full surfaces into the configured Serena home:\n\n```bash\nserena-setup update --scope global --type full\n```\n\nUse a setup bundle from a source checkout:\n\n```bash\nSERENA_SETUP_SOURCE_ROOT=/path/to/serena-gsd-bridge serena-setup update --dry-run --json\n```\n\n## Main files\n\n| Path | Purpose |\n|---|---|\n| `cli.ts` | TypeScript CLI source. |\n| `lib/args.ts` | Parses commands, scopes, install types, flags, and defaults. |\n| `lib/install-plan.ts` | Builds the dry-run/apply operation plan. |\n| `lib/skill-selection.ts` | Resolves manifest-backed skill bundles, dependencies, persistence. |\n| `lib/operations.ts` | Validates and applies staged operations. |\n| `.serena-gsd/setup/manifest.json` | Declares logical skill bundles, source roots, targets, scopes, ownership, and install policies. |\n| `skills/` | Canonical source tree for installable project skills; do not add a second copy under `.serena-gsd/setup/`. |\n| `docs/opengsd-agent-docs.md` | Canonical source for the installable OpenGSD support document. |\n| `.serena-gsd/scripts/opengsd-docs/` | Canonical source for the installable OpenGSD docs sync helper. |\n| `install-flow.md` | Short install-flow spec for scope/type semantics. |\n\n## Testing\n\nRun the setup helper test suite:\n\n```bash\nnpm ci\nnpm run typecheck\nnpm test\nnpm run pack:smoke\n```\n\n## License\n\nLicensed under the MIT License; see `LICENSE`.\n","readmeFilename":"README.md","_rev":"1-68bf4577e10194583bf0afd160bdfe15"}