2026-03-10 22:28:37 -06:00
{
"name" : "gsd-pi" ,
2026-03-13 15:59:03 -06:00
"version" : "2.10.5" ,
2026-03-11 13:29:37 +04:00
"description" : "GSD — Get Shit Done coding agent" ,
2026-03-11 00:53:15 -06:00
"license" : "MIT" ,
2026-03-10 22:31:13 -06:00
"repository" : {
"type" : "git" ,
"url" : "git+https://github.com/glittercowboy/gsd-pi.git"
} ,
"homepage" : "https://github.com/glittercowboy/gsd-pi#readme" ,
"bugs" : {
"url" : "https://github.com/glittercowboy/gsd-pi/issues"
} ,
2026-03-10 22:28:37 -06:00
"type" : "module" ,
2026-03-12 21:55:17 -06:00
"workspaces" : [
"packages/*"
] ,
2026-03-10 22:28:37 -06:00
"bin" : {
2026-03-10 23:28:31 -06:00
"gsd" : "dist/loader.js" ,
"gsd-cli" : "dist/loader.js"
2026-03-10 22:28:37 -06:00
} ,
"files" : [
"dist" ,
2026-03-12 21:55:17 -06:00
"packages" ,
2026-03-10 22:28:37 -06:00
"pkg" ,
"src/resources" ,
"scripts/postinstall.js" ,
"package.json" ,
"README.md"
] ,
"piConfig" : {
"name" : "gsd" ,
"configDir" : ".gsd"
} ,
"engines" : {
"node" : ">=20.6.0"
} ,
"scripts" : {
2026-03-12 21:55:17 -06:00
"build:pi-tui" : "npm run build -w @gsd/pi-tui" ,
"build:pi-ai" : "npm run build -w @gsd/pi-ai" ,
"build:pi-agent-core" : "npm run build -w @gsd/pi-agent-core" ,
"build:pi-coding-agent" : "npm run build -w @gsd/pi-coding-agent" ,
2026-03-13 14:05:41 -06:00
"build:native-pkg" : "npm run build -w @gsd/native" ,
"build:pi" : "npm run build:native-pkg && npm run build:pi-tui && npm run build:pi-ai && npm run build:pi-agent-core && npm run build:pi-coding-agent" ,
2026-03-12 21:55:17 -06:00
"build" : "npm run build:pi && tsc && npm run copy-themes" ,
"copy-themes" : "node -e \"const{mkdirSync,cpSync}=require('fs');const{resolve}=require('path');const src=resolve(__dirname,'packages/pi-coding-agent/dist/modes/interactive/theme');mkdirSync('pkg/dist/modes/interactive/theme',{recursive:true});cpSync(src,'pkg/dist/modes/interactive/theme',{recursive:true})\"" ,
2026-03-11 22:06:05 -03:00
"test" : "node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/resources/extensions/gsd/tests/*.test.ts src/resources/extensions/gsd/tests/*.test.mjs src/tests/*.test.ts" ,
2026-03-13 00:56:23 -06:00
"test:browser-tools" : "node --test src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs src/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs" ,
2026-03-13 12:21:09 -06:00
"test:native" : "node --test packages/native/src/__tests__/grep.test.mjs" ,
"build:native" : "node native/scripts/build.js" ,
"build:native:dev" : "node native/scripts/build.js --dev" ,
2026-03-10 22:28:37 -06:00
"dev" : "tsc --watch" ,
"postinstall" : "node scripts/postinstall.js" ,
2026-03-11 13:34:03 -07:00
"pi:install-global" : "node scripts/install-pi-global.js" ,
"pi:uninstall-global" : "node scripts/uninstall-pi-global.js" ,
2026-03-11 09:07:17 +01:00
"sync-pkg-version" : "node scripts/sync-pkg-version.cjs" ,
2026-03-13 14:36:18 -06:00
"sync-platform-versions" : "node native/scripts/sync-platform-versions.cjs" ,
2026-03-13 16:12:37 -06:00
"prepublishOnly" : "npm run sync-pkg-version && npm run sync-platform-versions && git diff --exit-code || (echo 'ERROR: version sync changed files — commit them before publishing' && exit 1) && npm run build"
2026-03-10 22:28:37 -06:00
} ,
"dependencies" : {
2026-03-12 09:18:13 -06:00
"@clack/prompts" : "^1.1.0" ,
2026-03-13 08:36:53 +01:00
"@gsd/pi-agent-core" : "*" ,
"@gsd/pi-ai" : "*" ,
"@gsd/pi-coding-agent" : "*" ,
"@gsd/pi-tui" : "*" ,
2026-03-12 09:18:13 -06:00
"picocolors" : "^1.1.1" ,
feat: TTSR + blob/artifact storage (ported from oh-my-pi)
* docs(M002): context, requirements, and roadmap
* feat: port TTSR and blob/artifact storage from oh-my-pi
Phase 1 — TTSR (Time Traveling Stream Rules):
- TtsrManager: regex-based stream monitoring with scope filtering,
repeat gating, and buffer isolation (picomatch replaces Bun.Glob)
- Rule loader: scans ~/.gsd/agent/rules/*.md and .gsd/rules/*.md
with YAML frontmatter parsing; project rules override global
- TTSR extension: wires into pi event lifecycle (session_start,
turn_start, message_update, turn_end, agent_end) to abort on
match and inject violation as system reminder via sendMessage
- Interrupt template for rule violation injection
Phase 2 — Blob/Artifact Storage:
- BlobStore: content-addressed storage at ~/.gsd/agent/blobs/ using
Node crypto (sha256), sync I/O, automatic deduplication
- ArtifactManager: session-scoped sequential artifact files stored
alongside session JSONL (lazy dir creation, resume-safe ID scan)
- Session manager integration: prepareForPersistence externalizes
images ≥1KB to blob store before JSONL write; resolveBlobRefs
rehydrates on session load; truncates strings >500KB
- Bash tool artifact spill: uses ArtifactManager instead of temp
files when available, includes artifact:// references in output
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: harden blob store, TTSR manager, and dep classification
- Validate SHA-256 hex format in BlobStore.get/has/parseBlobRef to
prevent path traversal via crafted blob references
- Cap TTSR per-stream buffers at 512KB to prevent unbounded memory growth
- Move picomatch from devDependencies to dependencies (runtime import)
- Warn on invalid regex in TTSR rule conditions instead of silent skip
- Remove .gsd/ planning files that were force-added past .gitignore
- Add trailing newline to ttsr-interrupt.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: add tests for blob store, artifact manager, TTSR manager, and rule loader
55 tests covering:
- BlobStore put/get/has, idempotency, path traversal rejection
- parseBlobRef/isBlobRef validation, externalize/resolve round-trips
- ArtifactManager sequential IDs, lazy dir creation, session resume
- TtsrManager rule matching, scope filtering, buffer isolation,
repeat gating, buffer size cap, injection persistence
- Rule loader frontmatter parsing, directory scanning, merge logic
Also fixes BlobStore constructor to avoid TS parameter property syntax
(incompatible with Node's strip-only TypeScript mode).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 08:43:56 -06:00
"picomatch" : "^4.0.3" ,
2026-03-12 23:49:36 -06:00
"playwright" : "^1.58.2" ,
"sharp" : "^0.34.5"
2026-03-10 22:28:37 -06:00
} ,
2026-03-13 08:36:53 +01:00
"bundleDependencies" : [
2026-03-13 14:05:41 -06:00
"@gsd/native" ,
2026-03-13 08:36:53 +01:00
"@gsd/pi-agent-core" ,
"@gsd/pi-ai" ,
"@gsd/pi-coding-agent" ,
"@gsd/pi-tui"
] ,
2026-03-10 22:28:37 -06:00
"devDependencies" : {
"@types/node" : "^22.0.0" ,
feat: TTSR + blob/artifact storage (ported from oh-my-pi)
* docs(M002): context, requirements, and roadmap
* feat: port TTSR and blob/artifact storage from oh-my-pi
Phase 1 — TTSR (Time Traveling Stream Rules):
- TtsrManager: regex-based stream monitoring with scope filtering,
repeat gating, and buffer isolation (picomatch replaces Bun.Glob)
- Rule loader: scans ~/.gsd/agent/rules/*.md and .gsd/rules/*.md
with YAML frontmatter parsing; project rules override global
- TTSR extension: wires into pi event lifecycle (session_start,
turn_start, message_update, turn_end, agent_end) to abort on
match and inject violation as system reminder via sendMessage
- Interrupt template for rule violation injection
Phase 2 — Blob/Artifact Storage:
- BlobStore: content-addressed storage at ~/.gsd/agent/blobs/ using
Node crypto (sha256), sync I/O, automatic deduplication
- ArtifactManager: session-scoped sequential artifact files stored
alongside session JSONL (lazy dir creation, resume-safe ID scan)
- Session manager integration: prepareForPersistence externalizes
images ≥1KB to blob store before JSONL write; resolveBlobRefs
rehydrates on session load; truncates strings >500KB
- Bash tool artifact spill: uses ArtifactManager instead of temp
files when available, includes artifact:// references in output
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: harden blob store, TTSR manager, and dep classification
- Validate SHA-256 hex format in BlobStore.get/has/parseBlobRef to
prevent path traversal via crafted blob references
- Cap TTSR per-stream buffers at 512KB to prevent unbounded memory growth
- Move picomatch from devDependencies to dependencies (runtime import)
- Warn on invalid regex in TTSR rule conditions instead of silent skip
- Remove .gsd/ planning files that were force-added past .gitignore
- Add trailing newline to ttsr-interrupt.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: add tests for blob store, artifact manager, TTSR manager, and rule loader
55 tests covering:
- BlobStore put/get/has, idempotency, path traversal rejection
- parseBlobRef/isBlobRef validation, externalize/resolve round-trips
- ArtifactManager sequential IDs, lazy dir creation, session resume
- TtsrManager rule matching, scope filtering, buffer isolation,
repeat gating, buffer size cap, injection persistence
- Rule loader frontmatter parsing, directory scanning, merge logic
Also fixes BlobStore constructor to avoid TS parameter property syntax
(incompatible with Node's strip-only TypeScript mode).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 08:43:56 -06:00
"@types/picomatch" : "^4.0.2" ,
2026-03-13 00:56:23 -06:00
"jiti" : "^2.6.1" ,
2026-03-10 22:28:37 -06:00
"typescript" : "^5.4.0"
2026-03-10 23:28:31 -06:00
} ,
2026-03-13 14:48:14 +00:00
"optionalDependencies" : {
2026-03-13 15:59:03 -06:00
"@gsd-build/engine-darwin-arm64" : "2.10.5" ,
"@gsd-build/engine-darwin-x64" : "2.10.5" ,
"@gsd-build/engine-linux-x64-gnu" : "2.10.5" ,
"@gsd-build/engine-linux-arm64-gnu" : "2.10.5" ,
"@gsd-build/engine-win32-x64-msvc" : "2.10.5" ,
2026-03-13 09:25:27 -06:00
"fsevents" : "~2.3.3"
2026-03-13 14:48:14 +00:00
} ,
2026-03-10 23:28:31 -06:00
"overrides" : {
"gaxios" : "7.1.4"
2026-03-10 22:28:37 -06:00
}
}