{ "name": "tutti", "private": true, "packageManager": "pnpm@10.11.0", "workspaces": [ "apps/*", "packages/*/*", "services/tuttid/builtin-apps/tutti-onboarding", "tools/fixtures/*" ], "engines": { "node": ">=24", "pnpm": "10.11.0" }, "pnpm": { "overrides": { "@radix-ui/react-slot": "1.2.5", "yauzl": "3.4.0" } }, "scripts": { "build": "pnpm -r --if-present build && pnpm generate:builtin-apps && cd packages/appcli/core && go build ./... && cd ../../workspace/files && go build ./... && cd ../../workbench/service && go build ./... && cd ../../../services/tuttid && go build ./... && cd ../../apps/cli && go build ./...", "build:go": "pnpm generate:builtin-apps && cd packages/appcli/core && go build ./... && cd ../../workspace/files && go build ./... && cd ../../workbench/service && go build ./... && cd ../../../services/tuttid && go build ./... && cd ../../apps/cli && go build ./...", "build:npm-packages": "node ./tools/scripts/build-npm-packages.mjs", "check:api-generated": "node ./tools/scripts/generate-openapi.mjs --check && node ./tools/scripts/check-agent-protocol-enums.mjs && node ./tools/scripts/sync-market-go-client.mjs --check", "check:backdrop-filter-authoring": "node ./tools/scripts/check-backdrop-filter-authoring.mjs", "check:backdrop-filter-authoring:staged": "node ./tools/scripts/check-backdrop-filter-authoring.mjs --staged", "check:css-has-performance": "node ./tools/scripts/check-css-has-performance.mjs", "check:css-has-performance:staged": "node ./tools/scripts/check-css-has-performance.mjs --staged", "check:agent-protocol-enums": "node ./tools/scripts/check-agent-protocol-enums.mjs", "check:agent-activity-runtime-boundaries": "node ./tools/scripts/check-agent-activity-runtime-boundaries.mjs", "check:agent-gui-degradation": "node ./tools/scripts/check-agent-gui-degradation.mjs", "check:agent-gui-degradation:staged": "node ./tools/scripts/check-agent-gui-degradation.mjs --staged", "check:agent-gui-provider-catalog-generated": "node ./tools/scripts/check-agent-gui-provider-catalog.mjs", "check:agent-host-boundary": "node ./tools/scripts/check-agent-host-boundary.mjs", "check:agent-provider-strategy-boundaries": "node ./tools/scripts/check-agent-provider-strategy-boundaries.mjs", "check:codexproto-generated": "node ./tools/scripts/check-codexproto-generated.mjs", "check:connector-boundaries": "node ./tools/scripts/check-connector-boundaries.mjs", "check:defaults-generated": "node ./tools/scripts/generate-defaults.mjs --check", "check:device-link-android": "make -C packages/device-link test android-crosscompile android-bindings-check", "check:changed": "node ./tools/scripts/run-check-changed.mjs", "check:electron-runtime-boundaries": "node ./tools/scripts/check-electron-runtime-boundaries.mjs", "check:electron-runtime-boundaries:staged": "node ./tools/scripts/check-electron-runtime-boundaries.mjs --staged", "check:event-protocol-generated": "node ./tools/scripts/generate-event-protocol.mjs --check", "check:agent-live-protocol-generated": "node ./tools/scripts/generate-agent-live-protocol.mjs --check", "check:full": "node ./tools/scripts/run-check-full.mjs", "check:golangci-version": "node ./tools/scripts/setup-dev.mjs --only=golangci-lint", "check:i18n": "node ./tools/scripts/check-i18n.mjs", "check:tutti-names": "node ./tools/scripts/check-tutti-names.mjs", "check:workbench-go-contract": "node ./tools/scripts/generate-workbench-go-contract.mjs --check", "check:ui-boundaries": "node ./tools/scripts/check-ui-boundaries.mjs", "check:ui-boundaries:staged": "node ./tools/scripts/check-ui-boundaries.mjs --staged", "check:workbench-openapi-schema": "node ./tools/scripts/sync-workbench-openapi-schema.mjs --check", "check:renderer-boundaries": "node ./tools/scripts/check-renderer-feature-boundaries.mjs", "check:renderer-boundaries:staged": "node ./tools/scripts/check-renderer-feature-boundaries.mjs --staged", "check:runtime-image-budgets": "node ./tools/scripts/check-runtime-image-budgets.mjs", "check:runtime-image-budgets:staged": "node ./tools/scripts/check-runtime-image-budgets.mjs --staged", "dev": "pnpm dev:desktop", "build:windows:e2e": "powershell -NoProfile -ExecutionPolicy Bypass -File ./tools/scripts/build-windows-e2e-dev.ps1", "dev:windows:e2e": "powershell -NoProfile -ExecutionPolicy Bypass -File ./tools/scripts/start-windows-e2e-dev.ps1", "dev:windows:e2e:clean": "powershell -NoProfile -ExecutionPolicy Bypass -File ./tools/scripts/start-windows-e2e-dev.ps1 -ResetState", "dev:cli": "node ./tools/scripts/install-dev-cli.mjs", "dev:desktop": "pnpm --filter @tutti-os/desktop dev", "dev:web": "node ./tools/scripts/dev-web.mjs", "dev:ui-storyboard": "pnpm --filter @tutti-os/ui-storyboard dev", "e2e:agent-gui": "node ./tools/scripts/run-agent-session-replay.mjs", "pretest:ts": "pnpm prewarm:electron", "preview:desktop": "pnpm --filter @tutti-os/desktop preview", "perf:agent-gui": "node ./tools/scripts/run-agent-gui-performance.mjs", "prewarm:electron": "node ./tools/scripts/prewarm-electron.mjs", "push:checked": "node ./tools/scripts/push-checked.mjs", "generate:api": "node ./tools/scripts/generate-openapi.mjs", "generate:market-go-client": "node ./tools/scripts/sync-market-go-client.mjs", "generate:agent-gui-provider-catalog": "node ./tools/scripts/generate-agent-gui-provider-catalog.mjs", "generate:builtin-apps": "pnpm --filter @tutti-os/builtin-tutti-onboarding package:builtin", "generate:defaults": "node ./tools/scripts/generate-defaults.mjs", "generate:event-protocol": "node ./tools/scripts/generate-event-protocol.mjs", "generate:agent-live-protocol": "node ./tools/scripts/generate-agent-live-protocol.mjs", "install:golangci-lint": "node ./tools/scripts/setup-dev.mjs --install=golangci-lint", "lint": "pnpm lint:ts && pnpm lint:go", "lint:go": "pnpm generate:builtin-apps && pnpm lint:go:prepared", "lint:go:prepared": "node ./tools/scripts/check-http-client-funnel.mjs && node ./tools/scripts/run-golangci-lint.mjs", "lint:ts": "oxlint . --deny-warnings", "lark:logs": "node ./tools/scripts/lark-log-tool.mjs", "mobile:android": "pnpm --filter @tutti-os/mobile android", "mobile:check": "pnpm --filter @tutti-os/mobile check", "mobile:ios": "pnpm --filter @tutti-os/mobile ios", "mobile:ios:pods": "pnpm --filter @tutti-os/mobile ios:pods", "mobile:start": "pnpm --filter @tutti-os/mobile start", "mobile:test": "pnpm --filter @tutti-os/mobile test", "format": "pnpm format:code && pnpm format:assets", "format:code": "oxfmt --write \"**/*.{ts,tsx,js,jsx,mjs,cjs}\"", "format:assets": "prettier --write --config packages/configs/prettier/base.mjs \"**/*.{json,md,yml,yaml,css,html}\"", "format:check": "oxfmt --check \"**/*.{ts,tsx,js,jsx,mjs,cjs}\" && prettier --check --config packages/configs/prettier/base.mjs \"**/*.{json,md,yml,yaml,css,html}\"", "prepare": "husky", "release:beta": "node ./tools/scripts/release-beta.mjs", "release:packages:apply-version": "node ./tools/scripts/apply-ci-package-release-version.mjs", "release:packages:next-version": "node ./tools/scripts/next-package-release-version.mjs", "release:pack:check": "node ./tools/scripts/run-package-pack-check.mjs", "release:packages": "node ./tools/scripts/publish-packages.mjs", "review:architecture": "node ./.codex/skills/tutti-architecture-review/scripts/plan-review.mjs --format summary", "review:architecture:package": "node ./.codex/skills/tutti-architecture-review/scripts/plan-review.mjs --format json --output-temp", "review:architecture:test": "node --test ./.codex/skills/tutti-architecture-review/scripts/plan-review.test.mjs ./.codex/skills/tutti-architecture-review/scripts/build-review-scope.test.mjs", "trace:desktop": "node ./tools/scripts/capture-electron-trace.mjs", "setup:dev": "node ./tools/scripts/setup-dev.mjs", "setup:worktree": "node ./tools/scripts/setup-worktree.mjs", "smoke:desktop-transport": "node ./tools/scripts/smoke-desktop-transport.mjs", "sync:workbench-openapi-schema": "node ./tools/scripts/sync-workbench-openapi-schema.mjs", "sync:workbench-go-contract": "node ./tools/scripts/generate-workbench-go-contract.mjs", "test:tools": "node ./tools/scripts/run-workspace-tests.mjs --tools-only", "test:go": "pnpm generate:builtin-apps && pnpm test:go:prepared", "test:go:agent-daemon": "node ./tools/scripts/run-go-tests.mjs --agent-daemon-only", "test:go:prepared": "node ./tools/scripts/run-go-tests.mjs", "test:ts": "node ./tools/scripts/run-workspace-tests.mjs", "typecheck": "node ./tools/scripts/run-typecheck.mjs" }, "lint-staged": { "*.{ts,tsx,js,jsx,mjs,cjs}": [ "oxfmt --write", "oxlint --fix --deny-warnings --no-error-on-unmatched-pattern" ], "*.{json,md,yml,yaml,css,html}": [ "prettier --write --config packages/configs/prettier/base.mjs" ], "*.go": [ "gofmt -w" ] }, "devDependencies": { "@changesets/cli": "2.31.0", "@hey-api/openapi-ts": "0.97.2", "@tutti-os/ui-system": "workspace:*", "@typescript/native-preview": "7.0.0-dev.20260617.2", "es-module-lexer": "2.1.0", "husky": "^9.1.7", "lint-staged": "^17.0.5", "oxfmt": "0.55.0", "oxlint": "1.70.0", "prettier": "^3.8.3", "tsup": "8.5.1", "vite": "^6.3.5", "yaml": "^2.9.0" } }