{"_id":"@camelstime/local-cc","_rev":"3-ca2b4e5d9205bb70daeb075c6d6896c2","name":"@camelstime/local-cc","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.5":{"name":"@camelstime/local-cc","version":"0.1.5","license":"UNLICENSED","_id":"@camelstime/local-cc@0.1.5","maintainers":[{"name":"camelstime","email":"camelridingrocket@outlook.com"}],"bin":{"mycc":"src/index.js"},"dist":{"shasum":"098684bba7bce91b1b7921efe0879944d084fb38","tarball":"https://registry.npmjs.org/@camelstime/local-cc/-/local-cc-0.1.5.tgz","fileCount":65,"integrity":"sha512-tiOued9XVNXa/9K0pLMbs3HbWvQlDHjdXXCzouG9T+rvZNDNb2qYE3ojajXmJoK2SoVIbqTlkwHnTgDOFBZWKA==","signatures":[{"sig":"MEUCIQCK1my/7fEq6jZaNNWGWUV4IC9jRFySNzQDaVN7Xu2heQIgHJ6Kv+bCz1kfVvuTKlgNuNX0rD4vwxfyoex8jzDZjbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331928},"type":"module","engines":{"node":">=18"},"exports":{"./bridge":"./src/tsRuntimeBridge.js","./package.json":"./package.json"},"gitHead":"7a2124e7521e5516e436059ddd54dec517d696f8","private":false,"scripts":{"help":"node ./src/index.js --help","check":"node --check ./src/index.js && node --check ./src/cliBootstrap.js && node --check ./src/cliEnvBridge.js && node --check ./src/cliProfileBridge.js && node --check ./src/runtimeProfileResolution.js && node --check ./src/config.js && node --check ./src/providers/openai-compatible.js && node --check ./src/providers/gemini.js && node --check ./src/nativePrompts.js && node --check ./src/utils.js && node --check ./src/tsRuntimeBridge.js && node --check ./src/resumePolicy.js && node --check ./src/sessionMigration.js","start":"node ./src/index.js","prepack":"npm run build:runtime:artifact","smoke:all":"npm run smoke:read-only && npm run smoke:read-only-edge && npm run smoke:read-only-negative && npm run smoke:read-only-limits && npm run smoke:runtime && npm run smoke:storage && npm run smoke:storage-corruption && npm run smoke:mock-provider && npm run smoke:compat-fixtures && npm run smoke:compat-loader && npm run smoke:helper-paths && npm run smoke:permissions && npm run smoke:permission-ux-readiness && npm run smoke:provider-adapters && npm run smoke:provider-preflight && npm run smoke:provider-runtime && npm run smoke:cli-ux-readiness && npm run smoke:cli-command-ux && npm run smoke:cli-permissions && npm run smoke:cli-permission-picker && npm run smoke:cli-profile-picker && npm run smoke:cli-model-picker && npm run smoke:configured-runtime && npm run smoke:engine-loop && npm run smoke:bash-tool && npm run smoke:write-tools && npm run smoke:engine-write-tools && npm run smoke:legacy-retired && npm run smoke:legacy-bridge && npm run smoke:legacy-surface && npm run smoke:native-tool-bridge && npm run smoke:cli-turn-bridge && npm run smoke:cli-rendering && npm run smoke:cli-native-boundaries && npm run smoke:bridge-stability && npm run smoke:compat-shells && npm run smoke:compat-roster && npm run smoke:compat-facade-finalization && npm run smoke:final-boundaries && npm run smoke:final-roster && npm run smoke:release-hygiene && npm run smoke:release-readiness && npm run smoke:runtime-build-contract && npm run smoke:pack-artifact-contract && npm run smoke:publish-package-contract && npm run smoke:release-process-contract && npm run smoke:repo-boundary && npm run smoke:legacy-protocol && npm run smoke:production-no-legacy-deps && npm run smoke:cli-bootstrap && npm run smoke:cli-profile-bridge && npm run smoke:config-first-run && npm run smoke:config-boundaries && npm run smoke:history-sync && npm run smoke:session-cache && npm run smoke:session-emergency-fallback && npm run smoke:resume-policy && npm run smoke:resume-prefers-transcript && npm run smoke:session-migration && npm run smoke:session-display && npm run smoke:session-metadata && npm run smoke:tool-definitions && npm run smoke:guards","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=./.tmp/npm-cache npm pack --dry-run --json","smoke:guards":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/registry-guards.js","smoke:runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/runtime-and-storage.js","smoke:storage":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-persistence.js","release:verify":"npm run check && npm run typecheck && npm run smoke:all && npm run build:runtime:artifact && npm run pack:dry-run","publish:dry-run":"npm_config_cache=./.tmp/npm-cache npm publish --dry-run","smoke:bash-tool":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/bash-tool.js","smoke:read-only":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only.js","smoke:engine-loop":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-loop.js","smoke:permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/permissions.js","smoke:write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/write-tools.js","release:assert-env":"node ./scripts/assert-release-env.js","release:assert-tag":"node ./scripts/assert-release-tag.js","smoke:final-roster":"node ./tests/smoke-js/final-roster.js","smoke:helper-paths":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/helper-paths.js","smoke:history-sync":"node ./tests/smoke-js/history-sync.js","smoke:cli-bootstrap":"node ./tests/smoke-js/cli-bootstrap.js","smoke:cli-rendering":"node ./tests/smoke-js/cli-rendering.js","smoke:compat-loader":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-loader.js","smoke:compat-roster":"node ./tests/smoke-js/compat-roster.js","smoke:compat-shells":"node ./tests/smoke-js/compat-shells.js","smoke:legacy-bridge":"node ./tests/smoke-js/legacy-bridge.js","smoke:mock-provider":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mock-provider.js","smoke:repo-boundary":"node ./tests/smoke-js/repo-boundary.js","smoke:resume-policy":"node ./tests/smoke-js/resume-policy.js","smoke:session-cache":"node ./tests/smoke-js/session-cache.js","smoke:cli-command-ux":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-command-ux.js","smoke:legacy-retired":"node ./tests/smoke-js/legacy-retired.js","smoke:legacy-surface":"node ./tests/smoke-js/legacy-surface.js","smoke:read-only-edge":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-edge.js","smoke:cli-permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permissions.js","smoke:cli-turn-bridge":"node ./tests/smoke-js/cli-turn-bridge.js","smoke:compat-fixtures":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-fixtures.js","smoke:legacy-protocol":"node ./tests/smoke-js/legacy-protocol.js","smoke:release-hygiene":"node ./tests/smoke-js/release-hygiene.js","smoke:session-display":"node ./tests/smoke-js/session-display.js","build:runtime:artifact":"node ./node_modules/typescript/bin/tsc -p ./tsconfig.runtime.json --outDir ./dist/runtime","smoke:bridge-stability":"node ./tests/smoke-js/bridge-stability.js","smoke:cli-model-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-model-picker.js","smoke:cli-ux-readiness":"node ./tests/smoke-js/cli-ux-readiness.js","smoke:config-first-run":"node ./tests/smoke-js/config-first-run.js","smoke:final-boundaries":"node ./tests/smoke-js/final-boundaries.js","smoke:provider-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-runtime.js","smoke:read-only-limits":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-limits.js","smoke:session-metadata":"node ./tests/smoke-js/session-metadata.js","smoke:tool-definitions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/tool-definitions.js","smoke:config-boundaries":"node ./tests/smoke-js/config-boundaries.js","smoke:provider-adapters":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-adapters.js","smoke:release-readiness":"node ./tests/smoke-js/release-readiness.js","smoke:session-migration":"node ./tests/smoke-js/session-migration.js","smoke:cli-profile-bridge":"node ./tests/smoke-js/cli-profile-bridge.js","smoke:cli-profile-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-profile-picker.js","smoke:configured-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/configured-runtime.js","smoke:engine-write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-write-tools.js","smoke:native-tool-bridge":"node ./tests/smoke-js/native-tool-bridge.js","smoke:provider-preflight":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-preflight.js","smoke:read-only-negative":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-negative.js","smoke:storage-corruption":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-corruption.js","smoke:cli-native-boundaries":"node ./tests/smoke-js/cli-native-boundaries.js","smoke:cli-permission-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permission-picker.js","smoke:pack-artifact-contract":"node ./tests/smoke-js/pack-artifact-contract.js","smoke:runtime-build-contract":"node ./tests/smoke-js/runtime-build-contract.js","smoke:permission-ux-readiness":"node ./tests/smoke-js/permission-ux-readiness.js","smoke:publish-package-contract":"node ./tests/smoke-js/publish-package-contract.js","smoke:release-process-contract":"node ./tests/smoke-js/release-process-contract.js","smoke:production-no-legacy-deps":"node ./tests/smoke-js/production-no-legacy-deps.js","smoke:resume-prefers-transcript":"node ./tests/smoke-js/resume-prefers-transcript.js","smoke:compat-facade-finalization":"node ./tests/smoke-js/compat-facade-finalization.js","smoke:session-emergency-fallback":"node ./tests/smoke-js/session-emergency-fallback.js"},"_npmUser":{"name":"camelstime","email":"camelridingrocket@outlook.com"},"_npmVersion":"10.9.4","description":"TS-native CLI coding assistant for MyCC","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-cc_0.1.5_1775097994681_0.6014724090001682","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@camelstime/local-cc","version":"0.2.0","license":"UNLICENSED","_id":"@camelstime/local-cc@0.2.0","maintainers":[{"name":"camelstime","email":"camelridingrocket@outlook.com"}],"bin":{"mycc":"src/index.js"},"dist":{"shasum":"0213fce82344b449deea70a96cdfa250701c022a","tarball":"https://registry.npmjs.org/@camelstime/local-cc/-/local-cc-0.2.0.tgz","fileCount":67,"integrity":"sha512-isEK1Gx+Vf8z453jh0MsX42UZsoEzafsBoEHfiLhBFyO8rjFnOCCLfl4ZMy6vyvBi9HvWggRR8x6zxSZV1oXTQ==","signatures":[{"sig":"MEUCIB8y5QwbtLJoHvj9pghxR1uAk9vDKAUq6RM+Y762528RAiEAgjtJ0MTq+He951+5BBdPQcPRmb25BLO4vijLVZZmXGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380319},"type":"module","engines":{"node":">=18"},"exports":{"./bridge":"./src/tsRuntimeBridge.js","./package.json":"./package.json"},"gitHead":"f27e9c8273d50eaaa6feb5feaad2666b4e6e6c69","private":false,"scripts":{"help":"node ./src/index.js --help","check":"node --check ./src/index.js && node --check ./src/cliBootstrap.js && node --check ./src/cliEnvBridge.js && node --check ./src/cliProfileBridge.js && node --check ./src/runtimeProfileResolution.js && node --check ./src/config.js && node --check ./src/providers/openai-compatible.js && node --check ./src/providers/gemini.js && node --check ./src/nativePrompts.js && node --check ./src/utils.js && node --check ./src/tsRuntimeBridge.js && node --check ./src/resumePolicy.js && node --check ./src/sessionMigration.js","start":"node ./src/index.js","prepack":"npm run build:runtime:artifact","smoke:all":"npm run smoke:read-only && npm run smoke:read-only-edge && npm run smoke:read-only-negative && npm run smoke:read-only-limits && npm run smoke:runtime && npm run smoke:storage && npm run smoke:storage-corruption && npm run smoke:mock-provider && npm run smoke:compat-fixtures && npm run smoke:compat-loader && npm run smoke:helper-paths && npm run smoke:permissions && npm run smoke:permission-ux-readiness && npm run smoke:provider-adapters && npm run smoke:provider-preflight && npm run smoke:provider-runtime && npm run smoke:provider-capability-contract && npm run smoke:provider-capabilities-contract && npm run smoke:phase1-spec-finalization && npm run smoke:phase1-contract-readiness && npm run smoke:cli-ux-readiness && npm run smoke:cli-command-ux && npm run smoke:cli-permissions && npm run smoke:cli-permission-picker && npm run smoke:cli-profile-picker && npm run smoke:cli-model-picker && npm run smoke:configured-runtime && npm run smoke:engine-loop && npm run smoke:bash-tool && npm run smoke:write-tools && npm run smoke:engine-write-tools && npm run smoke:legacy-retired && npm run smoke:legacy-bridge && npm run smoke:legacy-surface && npm run smoke:native-tool-bridge && npm run smoke:cli-turn-bridge && npm run smoke:cli-rendering && npm run smoke:cli-native-boundaries && npm run smoke:bridge-stability && npm run smoke:compat-shells && npm run smoke:compat-roster && npm run smoke:compat-facade-finalization && npm run smoke:final-boundaries && npm run smoke:final-roster && npm run smoke:release-hygiene && npm run smoke:release-readiness && npm run smoke:post-release-readiness && npm run smoke:runtime-build-contract && npm run smoke:pack-artifact-contract && npm run smoke:publish-package-contract && npm run smoke:release-process-contract && npm run smoke:repo-boundary && npm run smoke:legacy-protocol && npm run smoke:production-no-legacy-deps && npm run smoke:cli-bootstrap && npm run smoke:cli-profile-bridge && npm run smoke:config-first-run && npm run smoke:installed-package-diagnostics-readiness && npm run smoke:installed-package-doctor && npm run smoke:installed-package-migration && npm run smoke:installed-package-readiness && npm run smoke:installed-package-ux-readiness && npm run smoke:config-upgrade-compatibility && npm run smoke:config-schema-contract && npm run smoke:config-compatibility-readiness && npm run smoke:config-boundaries && npm run smoke:history-sync && npm run smoke:session-cache && npm run smoke:session-emergency-fallback && npm run smoke:resume-policy && npm run smoke:resume-prefers-transcript && npm run smoke:session-migration && npm run smoke:session-display && npm run smoke:session-metadata && npm run smoke:tool-definitions && npm run smoke:guards","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=./.tmp/npm-cache npm pack --dry-run --json","smoke:guards":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/registry-guards.js","smoke:runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/runtime-and-storage.js","smoke:storage":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-persistence.js","release:verify":"npm run check && npm run typecheck && npm run smoke:all && npm run build:runtime:artifact && npm run pack:dry-run","publish:dry-run":"npm_config_cache=./.tmp/npm-cache npm publish --dry-run","smoke:bash-tool":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/bash-tool.js","smoke:read-only":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only.js","smoke:engine-loop":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-loop.js","smoke:permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/permissions.js","smoke:write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/write-tools.js","release:assert-env":"node ./scripts/assert-release-env.js","release:assert-tag":"node ./scripts/assert-release-tag.js","smoke:final-roster":"node ./tests/smoke-js/final-roster.js","smoke:helper-paths":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/helper-paths.js","smoke:history-sync":"node ./tests/smoke-js/history-sync.js","smoke:cli-bootstrap":"node ./tests/smoke-js/cli-bootstrap.js","smoke:cli-rendering":"node ./tests/smoke-js/cli-rendering.js","smoke:compat-loader":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-loader.js","smoke:compat-roster":"node ./tests/smoke-js/compat-roster.js","smoke:compat-shells":"node ./tests/smoke-js/compat-shells.js","smoke:legacy-bridge":"node ./tests/smoke-js/legacy-bridge.js","smoke:mock-provider":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mock-provider.js","smoke:repo-boundary":"node ./tests/smoke-js/repo-boundary.js","smoke:resume-policy":"node ./tests/smoke-js/resume-policy.js","smoke:session-cache":"node ./tests/smoke-js/session-cache.js","smoke:cli-command-ux":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-command-ux.js","smoke:legacy-retired":"node ./tests/smoke-js/legacy-retired.js","smoke:legacy-surface":"node ./tests/smoke-js/legacy-surface.js","smoke:read-only-edge":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-edge.js","smoke:cli-permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permissions.js","smoke:cli-turn-bridge":"node ./tests/smoke-js/cli-turn-bridge.js","smoke:compat-fixtures":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-fixtures.js","smoke:legacy-protocol":"node ./tests/smoke-js/legacy-protocol.js","smoke:release-hygiene":"node ./tests/smoke-js/release-hygiene.js","smoke:session-display":"node ./tests/smoke-js/session-display.js","build:runtime:artifact":"node ./node_modules/typescript/bin/tsc -p ./tsconfig.runtime.json --outDir ./dist/runtime","smoke:bridge-stability":"node ./tests/smoke-js/bridge-stability.js","smoke:cli-model-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-model-picker.js","smoke:cli-ux-readiness":"node ./tests/smoke-js/cli-ux-readiness.js","smoke:config-first-run":"node ./tests/smoke-js/config-first-run.js","smoke:final-boundaries":"node ./tests/smoke-js/final-boundaries.js","smoke:provider-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-runtime.js","smoke:read-only-limits":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-limits.js","smoke:session-metadata":"node ./tests/smoke-js/session-metadata.js","smoke:tool-definitions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/tool-definitions.js","smoke:config-boundaries":"node ./tests/smoke-js/config-boundaries.js","smoke:provider-adapters":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-adapters.js","smoke:release-readiness":"node ./tests/smoke-js/release-readiness.js","smoke:session-migration":"node ./tests/smoke-js/session-migration.js","smoke:cli-profile-bridge":"node ./tests/smoke-js/cli-profile-bridge.js","smoke:cli-profile-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-profile-picker.js","smoke:configured-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/configured-runtime.js","smoke:engine-write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-write-tools.js","smoke:native-tool-bridge":"node ./tests/smoke-js/native-tool-bridge.js","smoke:provider-preflight":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-preflight.js","smoke:read-only-negative":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-negative.js","smoke:storage-corruption":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-corruption.js","smoke:cli-native-boundaries":"node ./tests/smoke-js/cli-native-boundaries.js","smoke:cli-permission-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permission-picker.js","smoke:config-schema-contract":"node ./tests/smoke-js/config-schema-contract.js","smoke:pack-artifact-contract":"node ./tests/smoke-js/pack-artifact-contract.js","smoke:post-release-readiness":"node ./tests/smoke-js/post-release-readiness.js","smoke:runtime-build-contract":"node ./tests/smoke-js/runtime-build-contract.js","smoke:permission-ux-readiness":"node ./tests/smoke-js/permission-ux-readiness.js","smoke:installed-package-doctor":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/installed-package-doctor.js","smoke:phase1-spec-finalization":"node ./tests/smoke-js/phase1-spec-finalization.js","smoke:publish-package-contract":"node ./tests/smoke-js/publish-package-contract.js","smoke:release-process-contract":"node ./tests/smoke-js/release-process-contract.js","smoke:phase1-contract-readiness":"node ./tests/smoke-js/phase1-contract-readiness.js","smoke:production-no-legacy-deps":"node ./tests/smoke-js/production-no-legacy-deps.js","smoke:resume-prefers-transcript":"node ./tests/smoke-js/resume-prefers-transcript.js","smoke:compat-facade-finalization":"node ./tests/smoke-js/compat-facade-finalization.js","smoke:session-emergency-fallback":"node ./tests/smoke-js/session-emergency-fallback.js","smoke:installed-package-migration":"node ./tests/smoke-js/installed-package-migration.js","smoke:installed-package-readiness":"node ./tests/smoke-js/installed-package-readiness.js","smoke:config-upgrade-compatibility":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/config-upgrade-compatibility.js","smoke:provider-capability-contract":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-capability-contract.js","smoke:config-compatibility-readiness":"node ./tests/smoke-js/config-compatibility-readiness.js","smoke:installed-package-ux-readiness":"node ./tests/smoke-js/installed-package-ux-readiness.js","smoke:provider-capabilities-contract":"node ./tests/smoke-js/provider-capabilities-contract.js","smoke:installed-package-diagnostics-readiness":"node ./tests/smoke-js/installed-package-diagnostics-readiness.js"},"_npmUser":{"name":"camelstime","email":"camelridingrocket@outlook.com"},"_npmVersion":"10.9.4","description":"TS-native CLI coding assistant for MyCC","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-cc_0.2.0_1775111991115_0.2442067197265576","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@camelstime/local-cc","version":"0.3.0","description":"TS-native CLI coding assistant for MyCC","license":"UNLICENSED","private":false,"type":"module","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"exports":{"./bridge":"./src/tsRuntimeBridge.js","./package.json":"./package.json"},"bin":{"mycc":"src/index.js"},"scripts":{"start":"node ./src/index.js","help":"node ./src/index.js --help","build:runtime:artifact":"node ./node_modules/typescript/bin/tsc -p ./tsconfig.runtime.json --outDir ./dist/runtime","check":"node --check ./src/index.js && node --check ./src/cliBootstrap.js && node --check ./src/cliEnvBridge.js && node --check ./src/cliProfileBridge.js && node --check ./src/runtimeProfileResolution.js && node --check ./src/config.js && node --check ./src/providers/openai-compatible.js && node --check ./src/providers/gemini.js && node --check ./src/nativePrompts.js && node --check ./src/utils.js && node --check ./src/tsRuntimeBridge.js && node --check ./src/resumePolicy.js && node --check ./src/sessionMigration.js","pack:dry-run":"npm_config_cache=./.tmp/npm-cache npm pack --dry-run --json","publish:dry-run":"npm_config_cache=./.tmp/npm-cache npm publish --dry-run","prepack":"npm run build:runtime:artifact","release:verify":"npm run check && npm run typecheck && npm run smoke:all && npm run build:runtime:artifact && npm run pack:dry-run && npm run smoke:clean-install","release:assert-env":"node ./scripts/assert-release-env.js","release:assert-tag":"node ./scripts/assert-release-tag.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:read-only":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only.js","smoke:read-only-edge":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-edge.js","smoke:read-only-negative":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-negative.js","smoke:read-only-limits":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/read-only-limits.js","smoke:runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/runtime-and-storage.js","smoke:storage":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-persistence.js","smoke:storage-corruption":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/storage-corruption.js","smoke:compact-summary-artifact":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compact-summary-artifact.js","smoke:compact-summary-contract-readiness":"node ./tests/smoke-js/compact-summary-contract-readiness.js","smoke:artifact-browsing":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/artifact-browsing.js","smoke:artifact-browsing-contract-readiness":"node ./tests/smoke-js/artifact-browsing-contract-readiness.js","smoke:task-ready-storage":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/task-ready-storage.js","smoke:task-ready-storage-contract-readiness":"node ./tests/smoke-js/task-ready-storage-contract-readiness.js","smoke:lsp-diagnostics":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/lsp-diagnostics.js","smoke:lsp-diagnostics-contract-readiness":"node ./tests/smoke-js/lsp-diagnostics-contract-readiness.js","smoke:worktree-diagnostics":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/worktree-diagnostics.js","smoke:worktree-diagnostics-contract-readiness":"node ./tests/smoke-js/worktree-diagnostics-contract-readiness.js","smoke:bridge-integration":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/bridge-integration.js","smoke:bridge-integration-contract-readiness":"node ./tests/smoke-js/bridge-integration-contract-readiness.js","smoke:multi-agent-orchestration":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/multi-agent-orchestration.js","smoke:multi-agent-orchestration-contract-readiness":"node ./tests/smoke-js/multi-agent-orchestration-contract-readiness.js","smoke:mock-provider":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mock-provider.js","smoke:compat-fixtures":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-fixtures.js","smoke:compat-loader":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-loader.js","smoke:compat-command-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-command-runtime.js","smoke:compat-skill-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-skill-runtime.js","smoke:compat-agent-hook-boundary":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/compat-agent-hook-boundary.js","smoke:extensibility-contract":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/extensibility-contract.js","smoke:claude-memory-contract-readiness":"node ./tests/smoke-js/claude-memory-contract-readiness.js","smoke:claude-command-contract-readiness":"node ./tests/smoke-js/claude-command-contract-readiness.js","smoke:claude-skill-contract-readiness":"node ./tests/smoke-js/claude-skill-contract-readiness.js","smoke:claude-agent-hook-contract-readiness":"node ./tests/smoke-js/claude-agent-hook-contract-readiness.js","smoke:claude-compatibility-contract-readiness":"node ./tests/smoke-js/claude-compatibility-contract-readiness.js","smoke:extensibility-contract-readiness":"node ./tests/smoke-js/extensibility-contract-readiness.js","smoke:extensibility-surface-readiness":"node ./tests/smoke-js/extensibility-surface-readiness.js","smoke:mcp-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-runtime.js","smoke:mcp-session-lifecycle":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-session-lifecycle.js","smoke:mcp-auth":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-auth.js","smoke:mcp-auth-provider-metadata":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-auth-provider-metadata.js","smoke:mcp-auth-session":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-auth-session.js","smoke:mcp-auth-account-selection":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-auth-account-selection.js","smoke:mcp-auth-reconciliation":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-auth-reconciliation.js","smoke:mcp-session-resilience":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-session-resilience.js","smoke:mcp-permission-boundary":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/mcp-permission-boundary.js","smoke:mcp-runtime-contract-readiness":"node ./tests/smoke-js/mcp-runtime-contract-readiness.js","smoke:mcp-transport-contract-readiness":"node ./tests/smoke-js/mcp-transport-contract-readiness.js","smoke:mcp-transport-surface-readiness":"node ./tests/smoke-js/mcp-transport-surface-readiness.js","smoke:mcp-auth-contract-readiness":"node ./tests/smoke-js/mcp-auth-contract-readiness.js","smoke:mcp-oidc-discovery-contract-readiness":"node ./tests/smoke-js/mcp-oidc-discovery-contract-readiness.js","smoke:mcp-auth-session-contract-readiness":"node ./tests/smoke-js/mcp-auth-session-contract-readiness.js","smoke:mcp-auth-account-selection-contract-readiness":"node ./tests/smoke-js/mcp-auth-account-selection-contract-readiness.js","smoke:mcp-device-auth-contract-readiness":"node ./tests/smoke-js/mcp-device-auth-contract-readiness.js","smoke:mcp-auth-reconciliation-contract-readiness":"node ./tests/smoke-js/mcp-auth-reconciliation-contract-readiness.js","smoke:mcp-session-resilience-contract-readiness":"node ./tests/smoke-js/mcp-session-resilience-contract-readiness.js","smoke:mcp-prompt-runtime-contract-readiness":"node ./tests/smoke-js/mcp-prompt-runtime-contract-readiness.js","smoke:mcp-session-lifecycle-readiness":"node ./tests/smoke-js/mcp-session-lifecycle-readiness.js","smoke:mcp-runtime-surface-readiness":"node ./tests/smoke-js/mcp-runtime-surface-readiness.js","smoke:mcp-lifecycle-surface-readiness":"node ./tests/smoke-js/mcp-lifecycle-surface-readiness.js","smoke:readme-capability-matrix-readiness":"node ./tests/smoke-js/readme-capability-matrix-readiness.js","smoke:helper-paths":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/helper-paths.js","smoke:permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/permissions.js","smoke:permission-persistence":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/permission-persistence.js","smoke:permission-ux-readiness":"node ./tests/smoke-js/permission-ux-readiness.js","smoke:permission-repair-workflow-readiness":"node ./tests/smoke-js/permission-repair-workflow-readiness.js","smoke:permission-command-audit":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/permission-command-audit.js","smoke:permission-command-audit-contract-readiness":"node ./tests/smoke-js/permission-command-audit-contract-readiness.js","smoke:permission-system-contract-readiness":"node ./tests/smoke-js/permission-system-contract-readiness.js","smoke:provider-adapters":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-adapters.js","smoke:provider-preflight":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-preflight.js","smoke:provider-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-runtime.js","smoke:provider-capability-contract":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/provider-capability-contract.js","smoke:provider-capabilities-contract":"node ./tests/smoke-js/provider-capabilities-contract.js","smoke:project-status-readiness":"node ./tests/smoke-js/project-status-readiness.js","smoke:permission-decision-contract-readiness":"node ./tests/smoke-js/permission-decision-contract-readiness.js","smoke:permission-persistence-contract-readiness":"node ./tests/smoke-js/permission-persistence-contract-readiness.js","smoke:safe-tooling-contract-readiness":"node ./tests/smoke-js/safe-tooling-contract-readiness.js","smoke:phase1-spec-finalization":"node ./tests/smoke-js/phase1-spec-finalization.js","smoke:phase1-contract-readiness":"node ./tests/smoke-js/phase1-contract-readiness.js","smoke:consolidation-readiness":"node ./tests/smoke-js/consolidation-readiness.js","smoke:cli-ux-readiness":"node ./tests/smoke-js/cli-ux-readiness.js","smoke:cli-command-ux":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-command-ux.js","smoke:cli-permissions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permissions.js","smoke:cli-permission-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-permission-picker.js","smoke:cli-profile-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-profile-picker.js","smoke:cli-model-picker":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/cli-model-picker.js","smoke:configured-runtime":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/configured-runtime.js","smoke:engine-loop":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-loop.js","smoke:bash-tool":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/bash-tool.js","smoke:write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/write-tools.js","smoke:engine-write-tools":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/engine-write-tools.js","smoke:legacy-bridge":"node ./tests/smoke-js/legacy-bridge.js","smoke:native-tool-bridge":"node ./tests/smoke-js/native-tool-bridge.js","smoke:cli-turn-bridge":"node ./tests/smoke-js/cli-turn-bridge.js","smoke:cli-rendering":"node ./tests/smoke-js/cli-rendering.js","smoke:cli-native-boundaries":"node ./tests/smoke-js/cli-native-boundaries.js","smoke:legacy-surface":"node ./tests/smoke-js/legacy-surface.js","smoke:legacy-protocol":"node ./tests/smoke-js/legacy-protocol.js","smoke:legacy-retired":"node ./tests/smoke-js/legacy-retired.js","smoke:production-no-legacy-deps":"node ./tests/smoke-js/production-no-legacy-deps.js","smoke:compat-shells":"node ./tests/smoke-js/compat-shells.js","smoke:compat-facade-finalization":"node ./tests/smoke-js/compat-facade-finalization.js","smoke:final-boundaries":"node ./tests/smoke-js/final-boundaries.js","smoke:bridge-stability":"node ./tests/smoke-js/bridge-stability.js","smoke:compat-roster":"node ./tests/smoke-js/compat-roster.js","smoke:release-hygiene":"node ./tests/smoke-js/release-hygiene.js","smoke:release-readiness":"node ./tests/smoke-js/release-readiness.js","smoke:post-release-readiness":"node ./tests/smoke-js/post-release-readiness.js","smoke:runtime-build-contract":"node ./tests/smoke-js/runtime-build-contract.js","smoke:pack-artifact-contract":"node ./tests/smoke-js/pack-artifact-contract.js","smoke:publish-package-contract":"node ./tests/smoke-js/publish-package-contract.js","smoke:release-process-contract":"node ./tests/smoke-js/release-process-contract.js","smoke:clean-install":"node ./scripts/verify-clean-install.js","smoke:clean-install-verification-readiness":"node ./tests/smoke-js/clean-install-verification-readiness.js","smoke:doctor-json":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/doctor-json.js","smoke:doctor-json-contract-readiness":"node ./tests/smoke-js/doctor-json-contract-readiness.js","smoke:support-bundle":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/support-bundle.js","smoke:support-bundle-contract-readiness":"node ./tests/smoke-js/support-bundle-contract-readiness.js","smoke:repo-boundary":"node ./tests/smoke-js/repo-boundary.js","smoke:cli-bootstrap":"node ./tests/smoke-js/cli-bootstrap.js","smoke:cli-profile-bridge":"node ./tests/smoke-js/cli-profile-bridge.js","smoke:config-first-run":"node ./tests/smoke-js/config-first-run.js","smoke:installed-package-diagnostics-readiness":"node ./tests/smoke-js/installed-package-diagnostics-readiness.js","smoke:installed-package-doctor":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/installed-package-doctor.js","smoke:installed-package-migration":"node ./tests/smoke-js/installed-package-migration.js","smoke:installed-package-readiness":"node ./tests/smoke-js/installed-package-readiness.js","smoke:installed-package-ux-readiness":"node ./tests/smoke-js/installed-package-ux-readiness.js","smoke:config-upgrade-compatibility":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/config-upgrade-compatibility.js","smoke:config-schema-contract":"node ./tests/smoke-js/config-schema-contract.js","smoke:config-compatibility-readiness":"node ./tests/smoke-js/config-compatibility-readiness.js","smoke:config-boundaries":"node ./tests/smoke-js/config-boundaries.js","smoke:final-roster":"node ./tests/smoke-js/final-roster.js","smoke:history-sync":"node ./tests/smoke-js/history-sync.js","smoke:session-cache":"node ./tests/smoke-js/session-cache.js","smoke:session-index-durability":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/session-index-durability.js","smoke:session-index-contract-readiness":"node ./tests/smoke-js/session-index-contract-readiness.js","smoke:session-emergency-fallback":"node ./tests/smoke-js/session-emergency-fallback.js","smoke:resume-policy":"node ./tests/smoke-js/resume-policy.js","smoke:resume-prefers-transcript":"node ./tests/smoke-js/resume-prefers-transcript.js","smoke:session-migration":"node ./tests/smoke-js/session-migration.js","smoke:session-display":"node ./tests/smoke-js/session-display.js","smoke:session-metadata":"node ./tests/smoke-js/session-metadata.js","smoke:tool-definitions":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/tool-definitions.js","smoke:all":"npm run smoke:read-only && npm run smoke:read-only-edge && npm run smoke:read-only-negative && npm run smoke:read-only-limits && npm run smoke:runtime && npm run smoke:storage && npm run smoke:storage-corruption && npm run smoke:compact-summary-artifact && npm run smoke:compact-summary-contract-readiness && npm run smoke:artifact-browsing && npm run smoke:artifact-browsing-contract-readiness && npm run smoke:task-ready-storage && npm run smoke:task-ready-storage-contract-readiness && npm run smoke:lsp-diagnostics && npm run smoke:lsp-diagnostics-contract-readiness && npm run smoke:worktree-diagnostics && npm run smoke:worktree-diagnostics-contract-readiness && npm run smoke:bridge-integration && npm run smoke:bridge-integration-contract-readiness && npm run smoke:multi-agent-orchestration && npm run smoke:multi-agent-orchestration-contract-readiness && npm run smoke:mock-provider && npm run smoke:compat-fixtures && npm run smoke:compat-loader && npm run smoke:compat-command-runtime && npm run smoke:compat-skill-runtime && npm run smoke:compat-agent-hook-boundary && npm run smoke:extensibility-contract && npm run smoke:claude-memory-contract-readiness && npm run smoke:claude-command-contract-readiness && npm run smoke:claude-skill-contract-readiness && npm run smoke:claude-agent-hook-contract-readiness && npm run smoke:claude-compatibility-contract-readiness && npm run smoke:extensibility-contract-readiness && npm run smoke:extensibility-surface-readiness && npm run smoke:mcp-runtime && npm run smoke:mcp-session-lifecycle && npm run smoke:mcp-auth && npm run smoke:mcp-auth-provider-metadata && npm run smoke:mcp-auth-session && npm run smoke:mcp-auth-account-selection && npm run smoke:mcp-auth-reconciliation && npm run smoke:mcp-session-resilience && npm run smoke:mcp-permission-boundary && npm run smoke:mcp-runtime-contract-readiness && npm run smoke:mcp-transport-contract-readiness && npm run smoke:mcp-transport-surface-readiness && npm run smoke:mcp-auth-contract-readiness && npm run smoke:mcp-oidc-discovery-contract-readiness && npm run smoke:mcp-auth-session-contract-readiness && npm run smoke:mcp-auth-account-selection-contract-readiness && npm run smoke:mcp-device-auth-contract-readiness && npm run smoke:mcp-auth-reconciliation-contract-readiness && npm run smoke:mcp-session-resilience-contract-readiness && npm run smoke:mcp-prompt-runtime-contract-readiness && npm run smoke:mcp-session-lifecycle-readiness && npm run smoke:mcp-runtime-surface-readiness && npm run smoke:mcp-lifecycle-surface-readiness && npm run smoke:project-status-readiness && npm run smoke:readme-capability-matrix-readiness && npm run smoke:permission-decision-contract-readiness && npm run smoke:permission-persistence-contract-readiness && npm run smoke:safe-tooling-contract-readiness && npm run smoke:helper-paths && npm run smoke:permissions && npm run smoke:permission-persistence && npm run smoke:permission-ux-readiness && npm run smoke:permission-repair-workflow-readiness && npm run smoke:permission-command-audit && npm run smoke:permission-command-audit-contract-readiness && npm run smoke:permission-system-contract-readiness && npm run smoke:provider-adapters && npm run smoke:provider-preflight && npm run smoke:provider-runtime && npm run smoke:provider-capability-contract && npm run smoke:provider-capabilities-contract && npm run smoke:phase1-spec-finalization && npm run smoke:phase1-contract-readiness && npm run smoke:consolidation-readiness && npm run smoke:cli-ux-readiness && npm run smoke:cli-command-ux && npm run smoke:cli-permissions && npm run smoke:cli-permission-picker && npm run smoke:cli-profile-picker && npm run smoke:cli-model-picker && npm run smoke:configured-runtime && npm run smoke:engine-loop && npm run smoke:bash-tool && npm run smoke:write-tools && npm run smoke:engine-write-tools && npm run smoke:legacy-retired && npm run smoke:legacy-bridge && npm run smoke:legacy-surface && npm run smoke:native-tool-bridge && npm run smoke:cli-turn-bridge && npm run smoke:cli-rendering && npm run smoke:cli-native-boundaries && npm run smoke:bridge-stability && npm run smoke:compat-shells && npm run smoke:compat-roster && npm run smoke:compat-facade-finalization && npm run smoke:final-boundaries && npm run smoke:final-roster && npm run smoke:release-hygiene && npm run smoke:release-readiness && npm run smoke:post-release-readiness && npm run smoke:runtime-build-contract && npm run smoke:pack-artifact-contract && npm run smoke:publish-package-contract && npm run smoke:release-process-contract && npm run smoke:doctor-json && npm run smoke:doctor-json-contract-readiness && npm run smoke:support-bundle && npm run smoke:support-bundle-contract-readiness && npm run smoke:repo-boundary && npm run smoke:legacy-protocol && npm run smoke:production-no-legacy-deps && npm run smoke:cli-bootstrap && npm run smoke:cli-profile-bridge && npm run smoke:config-first-run && npm run smoke:installed-package-diagnostics-readiness && npm run smoke:installed-package-doctor && npm run smoke:installed-package-migration && npm run smoke:installed-package-readiness && npm run smoke:installed-package-ux-readiness && npm run smoke:config-upgrade-compatibility && npm run smoke:config-schema-contract && npm run smoke:config-compatibility-readiness && npm run smoke:config-boundaries && npm run smoke:history-sync && npm run smoke:session-cache && npm run smoke:session-index-durability && npm run smoke:session-index-contract-readiness && npm run smoke:session-emergency-fallback && npm run smoke:resume-policy && npm run smoke:resume-prefers-transcript && npm run smoke:session-migration && npm run smoke:session-display && npm run smoke:session-metadata && npm run smoke:tool-definitions && npm run smoke:guards","smoke:guards":"tsc -p tsconfig.smoke.json && node ./.tmp/smoke/tests/smoke/registry-guards.js"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.8.0"},"engines":{"node":">=18"},"_id":"@camelstime/local-cc@0.3.0","gitHead":"8edeb49cc44b5987e963dab9248f44ec12b455cb","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-1Un4A0v5TMdEJFSO7AYbTYKS1hbFNHzAY+fXlLkvEKIjGsbJonuYjjquW8TWYRAYBlKFaLS0uGjRo6CxiY7e1w==","shasum":"c5d66414cbdce982f1a08ac57e7ec52dbb821ddf","tarball":"https://registry.npmjs.org/@camelstime/local-cc/-/local-cc-0.3.0.tgz","fileCount":83,"unpackedSize":764424,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCqNsGj0Yhs8ARVEwzUAPOz/NmiIALm+JuPG2m52QSGkgIhAIW4A8zyj645OAbBAhQTEGg3p6XGUVnTZ938gTg0I1PH"}]},"_npmUser":{"name":"camelstime","email":"camelridingrocket@outlook.com"},"directories":{},"maintainers":[{"name":"camelstime","email":"camelridingrocket@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/local-cc_0.3.0_1777074248586_0.6502997267563666"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-02T02:46:34.096Z","modified":"2026-04-24T23:44:08.898Z","0.1.5":"2026-04-02T02:46:34.841Z","0.2.0":"2026-04-02T06:39:51.258Z","0.3.0":"2026-04-24T23:44:08.787Z"},"license":"UNLICENSED","description":"TS-native CLI coding assistant for MyCC","maintainers":[{"name":"camelstime","email":"camelridingrocket@outlook.com"}],"readme":"# Local CC\n\nA lightweight, provider-agnostic coding assistant inspired by Claude Code.\n\nIt supports:\n\n- OpenAI-compatible APIs, including local LLM servers and API gateways\n- Gemini REST API\n- interactive terminal chat\n- basic tools for `read`, `glob`, `grep`, `list`, `edit`, `apply_patch`, `write`, and `bash`\n\n## Quick start\n\n### Installed package\n\n1. Install the published package from npm, or run it directly with `npx @camelstime/local-cc`.\n2. Put secrets in `.env`, `.mycc/.env`, or `~/.mycc/.env`.\n3. Run:\n\n```bash\nnpx @camelstime/local-cc --help\nmycc --profile local\nmycc doctor\n```\n\n- Registry target: `https://registry.npmjs.org/`\n- Package name: `@camelstime/local-cc`\n- Published consumer surface: the `mycc` bin and `@camelstime/local-cc/bridge`\n- Installed package diagnostics: `mycc doctor` or `mycc --doctor`\n- Machine-readable diagnostics: `mycc doctor --json`\n- Redacted support bundle: `mycc doctor --support-bundle ./mycc-support-bundle.json`\n- Installed package first-run guidance: [`docs/installed-package-quickstart.md`](docs/installed-package-quickstart.md)\n- Installed package migration contract: [`docs/installed-package-migration.md`](docs/installed-package-migration.md)\n- Repository release secret: `NPM_TOKEN`\n\n### Published package\n\nThe published package is `@camelstime/local-cc`.\nThe current release candidate is tracked by the release tag `local-cc-v0.3.0` and the release notes in [`docs/releases/v0.3.0.md`](docs/releases/v0.3.0.md).\nThe previous public npm release remains `local-cc-v0.2.0` with release notes in [`docs/releases/v0.2.0.md`](docs/releases/v0.2.0.md).\nThe published package ships `mycc.config.example.json` and keeps the published consumer surface intentionally small: only the `mycc` bin plus `@camelstime/local-cc/bridge`.\n\nInstalled package note:\nUse the published help examples first, then run `mycc doctor` for the repair steps if the first run cannot find a usable profile or if you are moving from the source checkout to the published package.\n\n## Capability Matrix\n\n| Area | Status | Activation | Boundary |\n|---|---|---|---|\n| CLI chat | Live | `mycc` | provider/profile config required |\n| OpenAI-compatible provider | Live | profile config | provider capability contract |\n| Gemini provider | Live | profile config | provider capability contract |\n| Built-in read tools | Live | built-in | read-only boundary |\n| Built-in write tools | Live | tool call plus permission | permission boundary |\n| Bash tool | Live | tool call plus permission | command audit plus permission boundary |\n| Permission rules | Live | prompt or `/permissions` | persisted session/project rules |\n| MCP `stdio` | Live | `profiles.<name>.mcp.enabledServers` | explicit activation path |\n| MCP `http` | Live | `profiles.<name>.mcp.enabledServers` | explicit activation plus auth boundary |\n| MCP `sse` | Live, bounded | `profiles.<name>.mcp.enabledServers` | bounded reconnect, no infinite loop |\n| MCP tools | Live | enabled MCP server | shared tool registry plus permission boundary |\n| MCP resources | Live | enabled MCP server | helper surface plus permission boundary |\n| MCP prompts | Live helper surface | enabled MCP server | no automatic system prompt injection |\n| MCP OAuth/auth | Live, bounded | `mycc auth setup` | no discovery-time secret activation |\n| Claude memory | Live context loading | `CLAUDE.md` / `.claude` | documented layering |\n| Claude commands | Live prompt expansion | explicit slash command | `allowed-tools` narrows only |\n| Claude skills | Live prompt expansion | explicit `/skill` | context only, permissions unchanged |\n| Agents/hooks | Metadata-only | discovery | no live delegation or hook execution |\n| LSP | Diagnostics-only | profile metadata | no language server process |\n| Worktree | Diagnostics-only | `mycc doctor` | read-only Git metadata only |\n| Bridge export | Live | `@camelstime/local-cc/bridge` | no hidden provider, MCP, LSP, worktree, or tool execution |\n\n### 0.3.0 stabilized contracts\n\nThe `0.3.0` release candidate is the Phase 8.0 product hardening baseline built on the completed Phase 7 runtime and diagnostics surface.\nIf you are coming into the project for the first time, start with the current status in [`docs/project-status.md`](docs/project-status.md), then read the finalized contract set in [`docs/architecture.md`](docs/architecture.md), [`docs/compat-spec.md`](docs/compat-spec.md), and [`docs/tool-permission-spec.md`](docs/tool-permission-spec.md), then read [`docs/source-matrix.md`](docs/source-matrix.md) and [`docs/releases/v0.3.0.md`](docs/releases/v0.3.0.md).\n\n### Phase 2 extensibility contract\n\nFor the current commands / skills / plugin / agent / hook / MCP surface, read [`docs/extensibility-contract.md`](docs/extensibility-contract.md).\nThis finalized Phase 2 contract freezes discovery, namespacing, diagnostics, and permission boundaries without promising automatic MCP connection or hook execution.\nAgents and hooks stay manifest-only metadata in Phase 2, and MCP manifests stay discovery-only metadata until the explicit Phase 2.14 MCP runtime activation path is enabled.\nFor the Phase 2.13 MCP runtime contract, explicit activation path, and repair steps, read [`docs/mcp-runtime-contract.md`](docs/mcp-runtime-contract.md).\nFor the Phase 2.13 MCP transport contract that defines shipped `stdio`/`http`/`sse`, bounded SSE reconnect behavior, auth/header handling, and network repair steps, read [`docs/mcp-transport-contract.md`](docs/mcp-transport-contract.md).\nFor the Phase 2.13 MCP session lifecycle contract that defines session creation, reuse, disposal, bounded reconnect behavior, and doctor health reporting, read [`docs/mcp-session-lifecycle-contract.md`](docs/mcp-session-lifecycle-contract.md).\nFor the Phase 2.13 MCP session resilience contract that defines bounded live auth refresh, auth-aware SSE reconnect/rebind, retry budgets, and repair steps, read [`docs/mcp-session-resilience-contract.md`](docs/mcp-session-resilience-contract.md).\nFor the Phase 2.13 MCP prompt runtime contract that defines live prompt helpers and prompt/runtime boundaries across shipped transports, read [`docs/mcp-prompt-runtime-contract.md`](docs/mcp-prompt-runtime-contract.md).\nFor the Phase 2.14 MCP auth contract that defines discovery-only auth metadata, `profiles.<name>.mcp.auth.servers`, shipped `oauth-client-credentials`, shipped `oauth-authorization-code-pkce`, shipped `oauth-device-code`, and repair steps without leaking secrets, read [`docs/mcp-auth-contract.md`](docs/mcp-auth-contract.md).\nFor the Phase 2.13 MCP OIDC discovery contract that defines discovery-only `auth.dynamic.issuer`, shipped auth-provider metadata resolution, provider metadata cache rules, and repair steps, read [`docs/mcp-oidc-discovery-contract.md`](docs/mcp-oidc-discovery-contract.md).\nFor the Phase 2.14 MCP auth-session contract that defines `mycc auth setup`, `mycc auth inspect`, `mycc auth reset`, `mycc auth clear`, and explicit revoke behavior, read [`docs/mcp-auth-session-contract.md`](docs/mcp-auth-session-contract.md).\nFor the Phase 2.14 MCP auth account-selection contract that defines `mycc auth list`, `mycc auth select`, `no-active-account`, and active account repair steps, read [`docs/mcp-auth-account-selection-contract.md`](docs/mcp-auth-account-selection-contract.md).\nFor the Phase 2.13 MCP device auth contract that defines explicit headless `oauth-device-code` setup, `awaiting-user-action` truth, bounded polling, and repair steps, read [`docs/mcp-device-auth-contract.md`](docs/mcp-device-auth-contract.md).\nFor the Phase 2.13 MCP auth reconciliation contract that defines upstream revoke, `revoked` / `out-of-sync` truth, and repair steps, read [`docs/mcp-auth-reconciliation-contract.md`](docs/mcp-auth-reconciliation-contract.md).\nUse `mycc auth reset` or `mycc auth clear` when you only want local cleanup. Use `mycc auth revoke` only when the shipped upstream revoke path is supported for that server.\nIf a shipped auth-code server drifts out of sync with upstream state, run `mycc auth inspect --profile <name> --server plugin:server`, then `mycc auth revoke --profile <name> --server plugin:server` or `mycc auth reset --profile <name> --server plugin:server` before running `mycc auth setup` again.\nEnable live MCP tools, live MCP resources, and live MCP prompt helpers with `profiles.<name>.mcp.enabledServers`, then configure any required live HTTP or SSE auth under `profiles.<name>.mcp.auth.servers`. If a server uses shipped auth-code or device-code setup, run `mycc auth inspect --profile <name> --server plugin:server`, then `mycc auth setup --profile <name> --server plugin:server --account <id>` before you use `mycc doctor` or live activation to confirm the discovered server became an active live surface. If multiple cached accounts exist for one server, run `mycc auth list --profile <name> --server plugin:server`, then `mycc auth select --profile <name> --server plugin:server --account <id>` before live activation. When a server relies on shipped auth-provider metadata resolution, keep discovery-only `auth.dynamic.issuer` or explicit profile overrides repairable, and let Local-CC resolve provider metadata only through the shipped auth/setup or activation path. Once a live session is running, only the shipped bounded refresh, reconnect, and auth reconciliation paths in the Phase 2.14 contracts may keep it healthy.\nWhat discovery-only metadata does not do:\n- discovery alone does not open MCP sessions\n- discovery alone does not open MCP network connections\n- discovery alone does not create live MCP tools\n- discovery alone does not create live MCP resources\n- discovery alone does not create live MCP prompts\n- discovery alone does not carry live auth secrets\n- discovery alone does not bypass the permission boundary\nUse `CLAUDE_CONFIG_DIR` if you need to move the user-level compatibility root away from `~/.claude`.\n\n### Development checkout\n\n1. Edit `mycc.config.json` if you want to change the default profile or models.\n2. Put secrets in `local-cc/.env` or export them in your shell.\n3. Run:\n\n```bash\nnode ./local-cc/src/index.js\n```\n\nStart with this smallest `mycc.config.json` if you only need one local profile:\n\n```json\n{\n  \"version\": 1,\n  \"profiles\": {\n    \"local\": {\n      \"provider\": \"openai-compatible\",\n      \"baseUrl\": \"http://localhost:11434/v1\",\n      \"model\": \"qwen2.5-coder:7b\"\n    }\n  }\n}\n```\n\nProfile selection order in both the published CLI and the source checkout is:\n\n1. `--profile <name>`\n2. `MYCC_PROFILE`\n3. `defaultProfile` from config\n4. the first configured profile\n\nIf your config defines exactly one profile, `mycc` will use it even when `defaultProfile` is omitted.\n\nFor copy-paste examples and first-run guidance, see [`docs/configuration-quickstart.md`](docs/configuration-quickstart.md).\nFor the frozen config schema, stable fields, deprecated aliases, and default precedence, see [`docs/config-schema-contract.md`](docs/config-schema-contract.md).\nFor installed package diagnostics and source-checkout migration, see [`docs/installed-package-quickstart.md`](docs/installed-package-quickstart.md) and [`docs/installed-package-migration.md`](docs/installed-package-migration.md).\nFor the finalized Phase 1 architecture, Claude compatibility boundary, and tool/permission contract, see [`docs/architecture.md`](docs/architecture.md), [`docs/compat-spec.md`](docs/compat-spec.md), and [`docs/tool-permission-spec.md`](docs/tool-permission-spec.md).\nFor the reconciled project roadmap and current implementation status, see [`docs/project-status.md`](docs/project-status.md).\nFor the finalized Phase 2 extensibility contract, doctor visibility, and plugin/MCP surface, see [`docs/extensibility-contract.md`](docs/extensibility-contract.md).\nFor the finalized Phase 3 safe tooling contract, including the new-file-only `write(new)` tool, read [`docs/safe-tooling-contract.md`](docs/safe-tooling-contract.md).\nFor the finalized Phase 4 permission system contract, including the completed decision, persistence, UX, repair, and command audit contract set, read [`docs/permission-system-contract.md`](docs/permission-system-contract.md).\nFor the finalized Phase 4.1 permission decision contract, including structural deny, bypass, remembered decisions, persisted rule precedence, read-only auto approval, prompt decisions, and safe default deny, read [`docs/permission-decision-contract.md`](docs/permission-decision-contract.md).\nFor the finalized Phase 4.2 permission persistence contract, including versioned rule stores, corruption recovery, migration, and audit durability, read [`docs/permission-persistence-contract.md`](docs/permission-persistence-contract.md).\nFor the finalized Phase 4.3 permission UX contract, including the `/permissions` panel, remove/clear feedback, doctor repair workflow, migrated stores, and recovered stores, read [`docs/permission-ux-contract.md`](docs/permission-ux-contract.md).\nFor the finalized Phase 4.4 command audit contract, including `bash` risk tags, permission prompt visibility, and permission decision event audit metadata, read [`docs/permission-command-audit-contract.md`](docs/permission-command-audit-contract.md).\nFor the finalized Phase 2.14 MCP auth contract, keep discovery-only auth metadata in `.mcp.json`, keep live HTTP/SSE auth setup under `profiles.<name>.mcp.auth.servers`, and keep cached access/refresh tokens plus bounded auth session state under the local Local-CC storage root instead of discovery metadata.\nFor the finalized Phase 2.13 MCP OIDC discovery contract, keep `auth.dynamic.issuer` and explicit provider endpoints discovery-only, let profile-scoped auth-provider metadata overrides live under `profiles.<name>.mcp.auth.servers[\"plugin:server\"].dynamic`, and let Local-CC resolve and cache provider metadata only through the shipped auth/setup or activation path.\nFor the finalized Phase 2.13 MCP session resilience contract, long-lived HTTP/SSE sessions may only use the shipped bounded refresh and reconnect budgets; they do not fall back across transports or run unbounded background loops.\nFor explicit auth-session setup, inspect, reset, clear, and revoke commands, see [`docs/mcp-auth-session-contract.md`](docs/mcp-auth-session-contract.md). `reset`/`clear` stay local-only; `revoke` is the shipped upstream revoke path when that server declares the required revocation metadata.\nFor explicit auth account listing and active account selection, see [`docs/mcp-auth-account-selection-contract.md`](docs/mcp-auth-account-selection-contract.md). Local-CC may cache multiple accounts for one server, but runtime still consumes only the explicitly selected account.\nFor the finalized Phase 2.13 MCP device auth contract, explicit headless `oauth-device-code` setup stays behind `mycc auth setup`; runtime only consumes prepared auth state, and pending verification stays visible as `awaiting-user-action` instead of being auto-started during activation.\nFor the finalized Phase 2.13 auth reconciliation boundary, including upstream revoke and `revoked` / `out-of-sync` truth, see [`docs/mcp-auth-reconciliation-contract.md`](docs/mcp-auth-reconciliation-contract.md).\nFor the finalized source matrix contract and extraction priorities, see [`docs/source-matrix.md`](docs/source-matrix.md).\nFor the finalized Phase 5.1 Claude memory contract, including `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/**/*.md`, layering order, doctor visibility, and permission boundaries, see [`docs/claude-memory-contract.md`](docs/claude-memory-contract.md).\nFor the finalized Phase 5.2 Claude command contract, including `.claude/commands/**/*.md`, slash-command prompt expansion, `allowed-tools` narrowing, and hidden/unsupported command boundaries, see [`docs/claude-command-contract.md`](docs/claude-command-contract.md).\nFor the finalized Phase 5.3 Claude skill contract, including `.claude/skills/**/SKILL.md`, explicit `/skill <name>` activation, skill context blocks, and permission boundaries, see [`docs/claude-skill-contract.md`](docs/claude-skill-contract.md).\nFor the finalized Phase 5.4 Claude agent/hook contract, including `.claude/agents/**/*`, `.claude/hooks/**/*`, plugin declarations, doctor metadata, and the non-execution boundary, see [`docs/claude-agent-hook-contract.md`](docs/claude-agent-hook-contract.md).\nFor the completed Phase 5 Claude compatibility contract, including memory, commands, skills, agent/hook metadata, plugin declarations, doctor visibility, and permission boundaries, see [`docs/claude-compatibility-contract.md`](docs/claude-compatibility-contract.md).\nFor the finalized Phase 6.1 session index contract, including `.mycc/sessions/*.json`, resume selection, corrupt record handling, doctor diagnostics, and repair steps, see [`docs/session-index-contract.md`](docs/session-index-contract.md).\nFor the finalized Phase 6.2 compact summary contract, including `lastCompactRef`, `compact-summary` transcript artifact references, and artifact reference listing, see [`docs/compact-summary-contract.md`](docs/compact-summary-contract.md).\nFor the finalized Phase 6.3 artifact browsing contract, including `/artifacts [kind]`, reference-only listing, and the no-content-preview boundary, see [`docs/artifact-browsing-contract.md`](docs/artifact-browsing-contract.md).\nFor the finalized Phase 6.4 task-ready storage contract, including `/session`, readiness states, transcript/artifact counts, compact summary refs, and the no-content-preview boundary, see [`docs/task-ready-storage-contract.md`](docs/task-ready-storage-contract.md).\nFor the finalized Phase 7.1 LSP diagnostics contract, including profile-scoped `lsp` metadata, `enabledServers`, doctor reporting, and the diagnostics-only no-execution boundary, see [`docs/lsp-diagnostics-contract.md`](docs/lsp-diagnostics-contract.md).\nFor the finalized Phase 7.2 worktree diagnostics contract, including read-only Git metadata, dirty/detached reporting, additional worktree discovery, and the no-destructive-git boundary, see [`docs/worktree-diagnostics-contract.md`](docs/worktree-diagnostics-contract.md).\nFor the finalized Phase 7.3 bridge integration contract, including the `mycc` and `@camelstime/local-cc/bridge` consumer surfaces, stable bridge exports, runtime load modes, and no-hidden-execution boundary, see [`docs/bridge-integration-contract.md`](docs/bridge-integration-contract.md).\nFor the finalized Phase 7.4 multi-agent orchestration contract, including agent/hook metadata discovery, doctor reporting, and the no-live-delegation boundary, see [`docs/multi-agent-orchestration-contract.md`](docs/multi-agent-orchestration-contract.md).\n\n### Phase 1 contracts\n\nThese are the finalized Phase 1 contracts that keep the runtime, compatibility layer, and permission system aligned:\n\n- [`docs/architecture.md`](docs/architecture.md)\n- [`docs/compat-spec.md`](docs/compat-spec.md)\n- [`docs/tool-permission-spec.md`](docs/tool-permission-spec.md)\n\nWhen to use `/check`:\n\n- run it after you change a profile, model, endpoint, or API key\n- run it when the status panel says the provider check has not run yet\n- run it when a recovery card tells you to confirm the provider target again\n\n### Distributable artifact\n\n- `npm run build:runtime:artifact` builds the published runtime artifact into `dist/runtime`.\n- `npm pack` creates a distributable tarball that keeps the minimal JS entry shells and the precompiled runtime artifact.\n- `npm run publish:dry-run` validates the public package publish contract without pushing a release; real registry credentials are still required in the release environment.\n- `npm run release:verify` runs the release verification stack before tagging a version.\n- `npm run smoke:clean-install` installs the packed tarball into an isolated temporary project and runs installed `mycc --help` plus `mycc doctor`.\n- `npm run release:assert-env` verifies that `NODE_AUTH_TOKEN` or `NPM_TOKEN` is present before publish steps.\n- Operator checklist: [`docs/release-preflight-checklist.md`](docs/release-preflight-checklist.md)\n- Release runbook: [`docs/release-runbook.md`](docs/release-runbook.md)\n- Latest release notes: [`docs/releases/v0.3.0.md`](docs/releases/v0.3.0.md)\n- Clean install verification contract: [`docs/clean-install-verification-contract.md`](docs/clean-install-verification-contract.md)\n- Doctor JSON contract: [`docs/doctor-json-contract.md`](docs/doctor-json-contract.md)\n- Support bundle contract: [`docs/support-bundle-contract.md`](docs/support-bundle-contract.md)\n- The source checkout may still build `.tmp/runtime` on demand, but published artifacts are expected to load `dist/runtime` first.\n\n## Example profiles\n\n### Local LLM\n\nUse any OpenAI-compatible local server such as Ollama, LM Studio, or vLLM:\n\n- `provider`: `openai-compatible`\n- `baseUrl`: `http://localhost:11434/v1`\n- `model`: your local model id\n\n### OpenAI-compatible gateway\n\nFor an API relay or gateway:\n\n- `provider`: `openai-compatible`\n- `baseUrl`: `https://cn2us02.opapi.win/v1`\n- `apiKey`: `env:MYCC_OPENAI_API_KEY`\n- `model`: the model name exposed by the gateway\n\n### Gemini\n\nFor Google Gemini:\n\n- `provider`: `gemini`\n- `apiKey`: `env:MYCC_GEMINI_API_KEY`\n- `model`: the Gemini model id you want to use\n\n## CLI commands\n\n- `/help` show built-in commands\n- `/resume` open the visual session picker\n- `/resume [id|latest]` resume a saved session from `.mycc/sessions`\n- `/session` show task-ready storage metadata for the current session without printing transcript or artifact contents\n- `/artifacts [kind]` list current-session transcript artifact references without opening artifact contents\n- `/profile` open the profile selector\n- `/profile <name>` switch profile directly and refresh status\n- `/model` open the model selector, including provider capability summaries\n- `/model <id>` switch model directly and refresh status\n- `/check` rerun provider connectivity, show a recovery card, and refresh the status panel\n- `/permissions` open the permission rules panel for remembered session and project permission rules\n- `/permissions clear session|project` clear remembered permission rules for that scope\n- `/permissions remove [session|project]` open the rule selector, optionally pre-filtered by scope\n- `/permissions remove session|project <rule-id>` remove one remembered rule\n- `/clear` clear conversation history\n- `/exit` leave the session\n\nThe status panel includes the active profile, provider, model, temperature, max output tokens, endpoint summary, stream mode, auto-approve mode, working directory, config source, and the latest provider connectivity result.\n\n### Session picker controls\n\n- type to filter sessions by title, id, provider, or model\n- up/down arrows move the selection\n- enter resumes the highlighted session\n- escape cancels\n\n`/profile` and `/model` open selector UIs in a TTY. If you are not in a TTY, they fall back to numbered text prompts.\n\n## Notes\n\n- Shell commands and file writes require confirmation unless `--auto-approve` is enabled.\n- Secrets are resolved from environment variables when a config value starts with `env:`.\n- The app auto-loads `.env` and `mycc.config.json` from both the current working directory and the `local-cc/` app directory.\n- If you ask for an unknown profile, the CLI now reports the available profile names instead of silently falling back.\n- Common config errors now point back to `mycc.config.json` fields and matching CLI overrides such as `--base-url`, `--model`, and `env:MYCC_GEMINI_API_KEY`.\n- First provider connection failures now print a short hint for auth, base URL, model, quota, or network reachability.\n- Interactive sessions now run a tiny provider preflight before the first prompt. If it fails, fix the profile or environment and rerun `/check`.\n- `/check` now prints a more explicit recovery card with `Result`, `Why`, and `Next steps` before the status panel refreshes.\n- Permission denials, cancellations, and tool execution failures now print matching recovery cards with rule recovery hints so the next action is clearer.\n- Permission prompts can now remember allow or deny rules for either the current session or the current project.\n- `bash` permission prompts and permission decision output now show command risk tags such as `destructive-filesystem`, `network-or-installer`, or `privilege-escalation` when detected.\n- `/permissions` now shows a permission rules panel with rule audit metadata (`rule id`, `hit count`, `last used`) so remembered rules are easier to audit.\n- `/permissions` and `mycc doctor` now share a permission repair workflow for missing, migrated, and recovered rule stores.\n- `/permissions remove` opens the rule selector in TTY mode and falls back to a numbered text prompt outside a TTY.\n- The status panel now keeps a short `Recovery` summary so you can see the latest recommended next step without scrolling back to the last card.\n- Session transcripts are saved under `.mycc/sessions` in the active working directory.\n- This project is intentionally small and dependency-free so you can extend it quickly.\n","readmeFilename":"README.md"}