trimprompt 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -0
- package/README.md +1 -8
- package/aicg-spec/README.md +55 -0
- package/aicg-spec/architecture.md +263 -0
- package/aicg-spec/dsl-spec.md +109 -0
- package/aicg-spec/insights/cargo.md +46 -0
- package/aicg-spec/insights/cloud_cli.md +38 -0
- package/aicg-spec/insights/docker_k8s.md +45 -0
- package/aicg-spec/insights/generic.md +62 -0
- package/aicg-spec/insights/git.md +85 -0
- package/aicg-spec/insights/js.md +74 -0
- package/aicg-spec/insights/python.md +86 -0
- package/aicg-spec/integrations/claude.md +57 -0
- package/aicg-spec/integrations/copilot.md +69 -0
- package/aicg-spec/integrations/cursor.md +59 -0
- package/aicg-spec/rules.yaml +555 -0
- package/aicg-spec/schema.md +93 -0
- package/aicg-spec/ui-spec.md +135 -0
- package/client/dist/cli.js +256 -0
- package/client/dist/dashboard.js +102 -0
- package/client/dist/executor.js +80 -0
- package/client/dist/filters/generic.js +58 -0
- package/client/dist/filters/git.js +157 -0
- package/client/dist/filters/index.js +83 -0
- package/client/dist/filters/js.js +78 -0
- package/client/dist/filters/python.js +130 -0
- package/client/dist/mcp.js +90 -0
- package/client/dist/redactor.js +42 -0
- package/client/dist/seed.js +11 -0
- package/client/dist/shims.js +169 -0
- package/client/dist/simulate.js +76 -0
- package/client/dist/sync.js +237 -0
- package/client/dist/tracker.js +247 -0
- package/client/node_modules/.bin/is-docker +16 -0
- package/client/node_modules/.bin/is-docker.cmd +17 -0
- package/client/node_modules/.bin/is-docker.ps1 +28 -0
- package/client/node_modules/.bin/mime +16 -0
- package/client/node_modules/.bin/mime.cmd +17 -0
- package/client/node_modules/.bin/mime.ps1 +28 -0
- package/client/node_modules/.bin/tsc +16 -0
- package/client/node_modules/.bin/tsc.cmd +17 -0
- package/client/node_modules/.bin/tsc.ps1 +28 -0
- package/client/node_modules/.bin/tsserver +16 -0
- package/client/node_modules/.bin/tsserver.cmd +17 -0
- package/client/node_modules/.bin/tsserver.ps1 +28 -0
- package/client/node_modules/.package-lock.json +934 -0
- package/client/node_modules/@types/body-parser/LICENSE +21 -0
- package/client/node_modules/@types/body-parser/README.md +15 -0
- package/client/node_modules/@types/body-parser/index.d.ts +95 -0
- package/client/node_modules/@types/body-parser/package.json +64 -0
- package/client/node_modules/@types/connect/LICENSE +21 -0
- package/client/node_modules/@types/connect/README.md +15 -0
- package/client/node_modules/@types/connect/index.d.ts +91 -0
- package/client/node_modules/@types/connect/package.json +32 -0
- package/client/node_modules/@types/express/LICENSE +21 -0
- package/client/node_modules/@types/express/README.md +15 -0
- package/client/node_modules/@types/express/index.d.ts +128 -0
- package/client/node_modules/@types/express/package.json +46 -0
- package/client/node_modules/@types/express-serve-static-core/LICENSE +21 -0
- package/client/node_modules/@types/express-serve-static-core/README.md +15 -0
- package/client/node_modules/@types/express-serve-static-core/index.d.ts +1281 -0
- package/client/node_modules/@types/express-serve-static-core/package.json +51 -0
- package/client/node_modules/@types/http-errors/LICENSE +21 -0
- package/client/node_modules/@types/http-errors/README.md +15 -0
- package/client/node_modules/@types/http-errors/index.d.ts +77 -0
- package/client/node_modules/@types/http-errors/package.json +36 -0
- package/client/node_modules/@types/mime/LICENSE +21 -0
- package/client/node_modules/@types/mime/Mime.d.ts +10 -0
- package/client/node_modules/@types/mime/README.md +15 -0
- package/client/node_modules/@types/mime/index.d.ts +31 -0
- package/client/node_modules/@types/mime/lite.d.ts +7 -0
- package/client/node_modules/@types/mime/package.json +30 -0
- package/client/node_modules/@types/node/LICENSE +21 -0
- package/client/node_modules/@types/node/README.md +15 -0
- package/client/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/client/node_modules/@types/node/assert.d.ts +1062 -0
- package/client/node_modules/@types/node/async_hooks.d.ts +605 -0
- package/client/node_modules/@types/node/buffer.buffer.d.ts +471 -0
- package/client/node_modules/@types/node/buffer.d.ts +1936 -0
- package/client/node_modules/@types/node/child_process.d.ts +1475 -0
- package/client/node_modules/@types/node/cluster.d.ts +577 -0
- package/client/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
- package/client/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/client/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/client/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
- package/client/node_modules/@types/node/console.d.ts +452 -0
- package/client/node_modules/@types/node/constants.d.ts +21 -0
- package/client/node_modules/@types/node/crypto.d.ts +4590 -0
- package/client/node_modules/@types/node/dgram.d.ts +597 -0
- package/client/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
- package/client/node_modules/@types/node/dns/promises.d.ts +479 -0
- package/client/node_modules/@types/node/dns.d.ts +871 -0
- package/client/node_modules/@types/node/domain.d.ts +170 -0
- package/client/node_modules/@types/node/events.d.ts +977 -0
- package/client/node_modules/@types/node/fs/promises.d.ts +1270 -0
- package/client/node_modules/@types/node/fs.d.ts +4375 -0
- package/client/node_modules/@types/node/globals.d.ts +172 -0
- package/client/node_modules/@types/node/globals.typedarray.d.ts +38 -0
- package/client/node_modules/@types/node/http.d.ts +2049 -0
- package/client/node_modules/@types/node/http2.d.ts +2712 -0
- package/client/node_modules/@types/node/https.d.ts +578 -0
- package/client/node_modules/@types/node/index.d.ts +93 -0
- package/client/node_modules/@types/node/inspector.generated.d.ts +3966 -0
- package/client/node_modules/@types/node/module.d.ts +539 -0
- package/client/node_modules/@types/node/net.d.ts +1031 -0
- package/client/node_modules/@types/node/os.d.ts +506 -0
- package/client/node_modules/@types/node/package.json +140 -0
- package/client/node_modules/@types/node/path.d.ts +200 -0
- package/client/node_modules/@types/node/perf_hooks.d.ts +961 -0
- package/client/node_modules/@types/node/process.d.ts +1961 -0
- package/client/node_modules/@types/node/punycode.d.ts +117 -0
- package/client/node_modules/@types/node/querystring.d.ts +152 -0
- package/client/node_modules/@types/node/readline/promises.d.ts +162 -0
- package/client/node_modules/@types/node/readline.d.ts +589 -0
- package/client/node_modules/@types/node/repl.d.ts +430 -0
- package/client/node_modules/@types/node/sea.d.ts +153 -0
- package/client/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/client/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/client/node_modules/@types/node/stream/web.d.ts +533 -0
- package/client/node_modules/@types/node/stream.d.ts +1698 -0
- package/client/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/client/node_modules/@types/node/test.d.ts +1787 -0
- package/client/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/client/node_modules/@types/node/timers.d.ts +286 -0
- package/client/node_modules/@types/node/tls.d.ts +1259 -0
- package/client/node_modules/@types/node/trace_events.d.ts +197 -0
- package/client/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
- package/client/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
- package/client/node_modules/@types/node/ts5.6/index.d.ts +93 -0
- package/client/node_modules/@types/node/tty.d.ts +208 -0
- package/client/node_modules/@types/node/url.d.ts +964 -0
- package/client/node_modules/@types/node/util.d.ts +2331 -0
- package/client/node_modules/@types/node/v8.d.ts +809 -0
- package/client/node_modules/@types/node/vm.d.ts +1001 -0
- package/client/node_modules/@types/node/wasi.d.ts +181 -0
- package/client/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
- package/client/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/client/node_modules/@types/node/web-globals/events.d.ts +97 -0
- package/client/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
- package/client/node_modules/@types/node/worker_threads.d.ts +715 -0
- package/client/node_modules/@types/node/zlib.d.ts +598 -0
- package/client/node_modules/@types/qs/LICENSE +21 -0
- package/client/node_modules/@types/qs/README.md +15 -0
- package/client/node_modules/@types/qs/index.d.ts +83 -0
- package/client/node_modules/@types/qs/package.json +66 -0
- package/client/node_modules/@types/range-parser/LICENSE +21 -0
- package/client/node_modules/@types/range-parser/README.md +53 -0
- package/client/node_modules/@types/range-parser/index.d.ts +34 -0
- package/client/node_modules/@types/range-parser/package.json +25 -0
- package/client/node_modules/@types/send/LICENSE +21 -0
- package/client/node_modules/@types/send/README.md +15 -0
- package/client/node_modules/@types/send/index.d.ts +187 -0
- package/client/node_modules/@types/send/package.json +38 -0
- package/client/node_modules/@types/serve-static/LICENSE +21 -0
- package/client/node_modules/@types/serve-static/README.md +15 -0
- package/client/node_modules/@types/serve-static/index.d.ts +107 -0
- package/client/node_modules/@types/serve-static/node_modules/@types/send/LICENSE +21 -0
- package/client/node_modules/@types/serve-static/node_modules/@types/send/README.md +15 -0
- package/client/node_modules/@types/serve-static/node_modules/@types/send/index.d.ts +225 -0
- package/client/node_modules/@types/serve-static/node_modules/@types/send/package.json +39 -0
- package/client/node_modules/@types/serve-static/package.json +45 -0
- package/client/node_modules/accepts/HISTORY.md +243 -0
- package/client/node_modules/accepts/LICENSE +23 -0
- package/client/node_modules/accepts/README.md +140 -0
- package/client/node_modules/accepts/index.js +238 -0
- package/client/node_modules/accepts/package.json +47 -0
- package/client/node_modules/array-flatten/LICENSE +21 -0
- package/client/node_modules/array-flatten/README.md +43 -0
- package/client/node_modules/array-flatten/array-flatten.js +64 -0
- package/client/node_modules/array-flatten/package.json +39 -0
- package/client/node_modules/body-parser/HISTORY.md +686 -0
- package/client/node_modules/body-parser/LICENSE +23 -0
- package/client/node_modules/body-parser/README.md +476 -0
- package/client/node_modules/body-parser/index.js +156 -0
- package/client/node_modules/body-parser/lib/read.js +205 -0
- package/client/node_modules/body-parser/lib/types/json.js +243 -0
- package/client/node_modules/body-parser/lib/types/raw.js +101 -0
- package/client/node_modules/body-parser/lib/types/text.js +121 -0
- package/client/node_modules/body-parser/lib/types/urlencoded.js +299 -0
- package/client/node_modules/body-parser/package.json +55 -0
- package/client/node_modules/bytes/History.md +97 -0
- package/client/node_modules/bytes/LICENSE +23 -0
- package/client/node_modules/bytes/Readme.md +152 -0
- package/client/node_modules/bytes/index.js +170 -0
- package/client/node_modules/bytes/package.json +42 -0
- package/client/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/client/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/client/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/client/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/client/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/client/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/client/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/client/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/client/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/client/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/client/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/client/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/client/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/client/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/client/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/client/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/client/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/client/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/client/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/client/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/client/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/client/node_modules/call-bound/.eslintrc +13 -0
- package/client/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/client/node_modules/call-bound/.nycrc +9 -0
- package/client/node_modules/call-bound/CHANGELOG.md +42 -0
- package/client/node_modules/call-bound/LICENSE +21 -0
- package/client/node_modules/call-bound/README.md +53 -0
- package/client/node_modules/call-bound/index.d.ts +94 -0
- package/client/node_modules/call-bound/index.js +19 -0
- package/client/node_modules/call-bound/package.json +99 -0
- package/client/node_modules/call-bound/test/index.js +61 -0
- package/client/node_modules/call-bound/tsconfig.json +10 -0
- package/client/node_modules/commander/LICENSE +22 -0
- package/client/node_modules/commander/Readme.md +1148 -0
- package/client/node_modules/commander/esm.mjs +16 -0
- package/client/node_modules/commander/index.js +26 -0
- package/client/node_modules/commander/lib/argument.js +145 -0
- package/client/node_modules/commander/lib/command.js +2179 -0
- package/client/node_modules/commander/lib/error.js +43 -0
- package/client/node_modules/commander/lib/help.js +462 -0
- package/client/node_modules/commander/lib/option.js +329 -0
- package/client/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/client/node_modules/commander/package-support.json +16 -0
- package/client/node_modules/commander/package.json +80 -0
- package/client/node_modules/commander/typings/esm.d.mts +3 -0
- package/client/node_modules/commander/typings/index.d.ts +884 -0
- package/client/node_modules/content-disposition/HISTORY.md +60 -0
- package/client/node_modules/content-disposition/LICENSE +22 -0
- package/client/node_modules/content-disposition/README.md +142 -0
- package/client/node_modules/content-disposition/index.js +458 -0
- package/client/node_modules/content-disposition/package.json +44 -0
- package/client/node_modules/content-type/HISTORY.md +29 -0
- package/client/node_modules/content-type/LICENSE +22 -0
- package/client/node_modules/content-type/README.md +94 -0
- package/client/node_modules/content-type/index.js +225 -0
- package/client/node_modules/content-type/package.json +42 -0
- package/client/node_modules/cookie/LICENSE +24 -0
- package/client/node_modules/cookie/README.md +317 -0
- package/client/node_modules/cookie/SECURITY.md +25 -0
- package/client/node_modules/cookie/index.js +335 -0
- package/client/node_modules/cookie/package.json +44 -0
- package/client/node_modules/cookie-signature/History.md +42 -0
- package/client/node_modules/cookie-signature/Readme.md +42 -0
- package/client/node_modules/cookie-signature/index.js +51 -0
- package/client/node_modules/cookie-signature/package.json +18 -0
- package/client/node_modules/debug/.coveralls.yml +1 -0
- package/client/node_modules/debug/.eslintrc +11 -0
- package/client/node_modules/debug/.travis.yml +14 -0
- package/client/node_modules/debug/CHANGELOG.md +362 -0
- package/client/node_modules/debug/LICENSE +19 -0
- package/client/node_modules/debug/Makefile +50 -0
- package/client/node_modules/debug/README.md +312 -0
- package/client/node_modules/debug/component.json +19 -0
- package/client/node_modules/debug/karma.conf.js +70 -0
- package/client/node_modules/debug/node.js +1 -0
- package/client/node_modules/debug/package.json +49 -0
- package/client/node_modules/debug/src/browser.js +185 -0
- package/client/node_modules/debug/src/debug.js +202 -0
- package/client/node_modules/debug/src/index.js +10 -0
- package/client/node_modules/debug/src/inspector-log.js +15 -0
- package/client/node_modules/debug/src/node.js +248 -0
- package/client/node_modules/define-lazy-prop/index.d.ts +33 -0
- package/client/node_modules/define-lazy-prop/index.js +19 -0
- package/client/node_modules/define-lazy-prop/license +9 -0
- package/client/node_modules/define-lazy-prop/package.json +48 -0
- package/client/node_modules/define-lazy-prop/readme.md +64 -0
- package/client/node_modules/depd/History.md +103 -0
- package/client/node_modules/depd/LICENSE +22 -0
- package/client/node_modules/depd/Readme.md +280 -0
- package/client/node_modules/depd/index.js +538 -0
- package/client/node_modules/depd/lib/browser/index.js +77 -0
- package/client/node_modules/depd/package.json +45 -0
- package/client/node_modules/destroy/LICENSE +23 -0
- package/client/node_modules/destroy/README.md +63 -0
- package/client/node_modules/destroy/index.js +209 -0
- package/client/node_modules/destroy/package.json +48 -0
- package/client/node_modules/dunder-proto/.eslintrc +5 -0
- package/client/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/client/node_modules/dunder-proto/.nycrc +13 -0
- package/client/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/client/node_modules/dunder-proto/LICENSE +21 -0
- package/client/node_modules/dunder-proto/README.md +54 -0
- package/client/node_modules/dunder-proto/get.d.ts +5 -0
- package/client/node_modules/dunder-proto/get.js +30 -0
- package/client/node_modules/dunder-proto/package.json +76 -0
- package/client/node_modules/dunder-proto/set.d.ts +5 -0
- package/client/node_modules/dunder-proto/set.js +35 -0
- package/client/node_modules/dunder-proto/test/get.js +34 -0
- package/client/node_modules/dunder-proto/test/index.js +4 -0
- package/client/node_modules/dunder-proto/test/set.js +50 -0
- package/client/node_modules/dunder-proto/tsconfig.json +9 -0
- package/client/node_modules/ee-first/LICENSE +22 -0
- package/client/node_modules/ee-first/README.md +80 -0
- package/client/node_modules/ee-first/index.js +95 -0
- package/client/node_modules/ee-first/package.json +29 -0
- package/client/node_modules/encodeurl/LICENSE +22 -0
- package/client/node_modules/encodeurl/README.md +109 -0
- package/client/node_modules/encodeurl/index.js +60 -0
- package/client/node_modules/encodeurl/package.json +40 -0
- package/client/node_modules/es-define-property/.eslintrc +13 -0
- package/client/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/client/node_modules/es-define-property/.nycrc +9 -0
- package/client/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/client/node_modules/es-define-property/LICENSE +21 -0
- package/client/node_modules/es-define-property/README.md +49 -0
- package/client/node_modules/es-define-property/index.d.ts +3 -0
- package/client/node_modules/es-define-property/index.js +14 -0
- package/client/node_modules/es-define-property/package.json +81 -0
- package/client/node_modules/es-define-property/test/index.js +56 -0
- package/client/node_modules/es-define-property/tsconfig.json +10 -0
- package/client/node_modules/es-errors/.eslintrc +5 -0
- package/client/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/client/node_modules/es-errors/CHANGELOG.md +40 -0
- package/client/node_modules/es-errors/LICENSE +21 -0
- package/client/node_modules/es-errors/README.md +55 -0
- package/client/node_modules/es-errors/eval.d.ts +3 -0
- package/client/node_modules/es-errors/eval.js +4 -0
- package/client/node_modules/es-errors/index.d.ts +3 -0
- package/client/node_modules/es-errors/index.js +4 -0
- package/client/node_modules/es-errors/package.json +80 -0
- package/client/node_modules/es-errors/range.d.ts +3 -0
- package/client/node_modules/es-errors/range.js +4 -0
- package/client/node_modules/es-errors/ref.d.ts +3 -0
- package/client/node_modules/es-errors/ref.js +4 -0
- package/client/node_modules/es-errors/syntax.d.ts +3 -0
- package/client/node_modules/es-errors/syntax.js +4 -0
- package/client/node_modules/es-errors/test/index.js +19 -0
- package/client/node_modules/es-errors/tsconfig.json +49 -0
- package/client/node_modules/es-errors/type.d.ts +3 -0
- package/client/node_modules/es-errors/type.js +4 -0
- package/client/node_modules/es-errors/uri.d.ts +3 -0
- package/client/node_modules/es-errors/uri.js +4 -0
- package/client/node_modules/es-object-atoms/.eslintrc +16 -0
- package/client/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/client/node_modules/es-object-atoms/CHANGELOG.md +44 -0
- package/client/node_modules/es-object-atoms/LICENSE +21 -0
- package/client/node_modules/es-object-atoms/README.md +63 -0
- package/client/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/client/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/client/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/client/node_modules/es-object-atoms/ToObject.js +10 -0
- package/client/node_modules/es-object-atoms/index.d.ts +3 -0
- package/client/node_modules/es-object-atoms/index.js +4 -0
- package/client/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/client/node_modules/es-object-atoms/isObject.js +6 -0
- package/client/node_modules/es-object-atoms/package.json +79 -0
- package/client/node_modules/es-object-atoms/test/index.js +38 -0
- package/client/node_modules/es-object-atoms/tsconfig.json +7 -0
- package/client/node_modules/escape-html/LICENSE +24 -0
- package/client/node_modules/escape-html/Readme.md +43 -0
- package/client/node_modules/escape-html/index.js +78 -0
- package/client/node_modules/escape-html/package.json +24 -0
- package/client/node_modules/etag/HISTORY.md +83 -0
- package/client/node_modules/etag/LICENSE +22 -0
- package/client/node_modules/etag/README.md +159 -0
- package/client/node_modules/etag/index.js +131 -0
- package/client/node_modules/etag/package.json +47 -0
- package/client/node_modules/express/History.md +3676 -0
- package/client/node_modules/express/LICENSE +24 -0
- package/client/node_modules/express/Readme.md +260 -0
- package/client/node_modules/express/index.js +11 -0
- package/client/node_modules/express/lib/application.js +661 -0
- package/client/node_modules/express/lib/express.js +116 -0
- package/client/node_modules/express/lib/middleware/init.js +43 -0
- package/client/node_modules/express/lib/middleware/query.js +47 -0
- package/client/node_modules/express/lib/request.js +525 -0
- package/client/node_modules/express/lib/response.js +1179 -0
- package/client/node_modules/express/lib/router/index.js +673 -0
- package/client/node_modules/express/lib/router/layer.js +181 -0
- package/client/node_modules/express/lib/router/route.js +230 -0
- package/client/node_modules/express/lib/utils.js +304 -0
- package/client/node_modules/express/lib/view.js +182 -0
- package/client/node_modules/express/package.json +102 -0
- package/client/node_modules/finalhandler/HISTORY.md +216 -0
- package/client/node_modules/finalhandler/LICENSE +22 -0
- package/client/node_modules/finalhandler/README.md +147 -0
- package/client/node_modules/finalhandler/SECURITY.md +25 -0
- package/client/node_modules/finalhandler/index.js +341 -0
- package/client/node_modules/finalhandler/package.json +47 -0
- package/client/node_modules/forwarded/HISTORY.md +21 -0
- package/client/node_modules/forwarded/LICENSE +22 -0
- package/client/node_modules/forwarded/README.md +57 -0
- package/client/node_modules/forwarded/index.js +90 -0
- package/client/node_modules/forwarded/package.json +45 -0
- package/client/node_modules/fresh/HISTORY.md +70 -0
- package/client/node_modules/fresh/LICENSE +23 -0
- package/client/node_modules/fresh/README.md +119 -0
- package/client/node_modules/fresh/index.js +137 -0
- package/client/node_modules/fresh/package.json +46 -0
- package/client/node_modules/function-bind/.eslintrc +21 -0
- package/client/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/client/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/client/node_modules/function-bind/.nycrc +13 -0
- package/client/node_modules/function-bind/CHANGELOG.md +136 -0
- package/client/node_modules/function-bind/LICENSE +20 -0
- package/client/node_modules/function-bind/README.md +46 -0
- package/client/node_modules/function-bind/implementation.js +84 -0
- package/client/node_modules/function-bind/index.js +5 -0
- package/client/node_modules/function-bind/package.json +87 -0
- package/client/node_modules/function-bind/test/.eslintrc +9 -0
- package/client/node_modules/function-bind/test/index.js +252 -0
- package/client/node_modules/get-intrinsic/.eslintrc +42 -0
- package/client/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/client/node_modules/get-intrinsic/.nycrc +9 -0
- package/client/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- package/client/node_modules/get-intrinsic/LICENSE +21 -0
- package/client/node_modules/get-intrinsic/README.md +71 -0
- package/client/node_modules/get-intrinsic/index.js +378 -0
- package/client/node_modules/get-intrinsic/package.json +97 -0
- package/client/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- package/client/node_modules/get-proto/.eslintrc +10 -0
- package/client/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/client/node_modules/get-proto/.nycrc +9 -0
- package/client/node_modules/get-proto/CHANGELOG.md +21 -0
- package/client/node_modules/get-proto/LICENSE +21 -0
- package/client/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/client/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/client/node_modules/get-proto/README.md +50 -0
- package/client/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/client/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/client/node_modules/get-proto/index.d.ts +5 -0
- package/client/node_modules/get-proto/index.js +27 -0
- package/client/node_modules/get-proto/package.json +81 -0
- package/client/node_modules/get-proto/test/index.js +68 -0
- package/client/node_modules/get-proto/tsconfig.json +9 -0
- package/client/node_modules/gopd/.eslintrc +16 -0
- package/client/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/client/node_modules/gopd/CHANGELOG.md +45 -0
- package/client/node_modules/gopd/LICENSE +21 -0
- package/client/node_modules/gopd/README.md +40 -0
- package/client/node_modules/gopd/gOPD.d.ts +1 -0
- package/client/node_modules/gopd/gOPD.js +4 -0
- package/client/node_modules/gopd/index.d.ts +5 -0
- package/client/node_modules/gopd/index.js +15 -0
- package/client/node_modules/gopd/package.json +77 -0
- package/client/node_modules/gopd/test/index.js +36 -0
- package/client/node_modules/gopd/tsconfig.json +9 -0
- package/client/node_modules/has-symbols/.eslintrc +11 -0
- package/client/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/client/node_modules/has-symbols/.nycrc +9 -0
- package/client/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/client/node_modules/has-symbols/LICENSE +21 -0
- package/client/node_modules/has-symbols/README.md +46 -0
- package/client/node_modules/has-symbols/index.d.ts +3 -0
- package/client/node_modules/has-symbols/index.js +14 -0
- package/client/node_modules/has-symbols/package.json +111 -0
- package/client/node_modules/has-symbols/shams.d.ts +3 -0
- package/client/node_modules/has-symbols/shams.js +45 -0
- package/client/node_modules/has-symbols/test/index.js +22 -0
- package/client/node_modules/has-symbols/test/shams/core-js.js +29 -0
- package/client/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- package/client/node_modules/has-symbols/test/tests.js +58 -0
- package/client/node_modules/has-symbols/tsconfig.json +10 -0
- package/client/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/client/node_modules/hasown/.nycrc +13 -0
- package/client/node_modules/hasown/CHANGELOG.md +58 -0
- package/client/node_modules/hasown/LICENSE +21 -0
- package/client/node_modules/hasown/README.md +40 -0
- package/client/node_modules/hasown/eslint.config.mjs +6 -0
- package/client/node_modules/hasown/index.d.ts +3 -0
- package/client/node_modules/hasown/index.js +8 -0
- package/client/node_modules/hasown/package.json +91 -0
- package/client/node_modules/hasown/tsconfig.json +6 -0
- package/client/node_modules/http-errors/HISTORY.md +186 -0
- package/client/node_modules/http-errors/LICENSE +23 -0
- package/client/node_modules/http-errors/README.md +169 -0
- package/client/node_modules/http-errors/index.js +290 -0
- package/client/node_modules/http-errors/package.json +54 -0
- package/client/node_modules/iconv-lite/Changelog.md +162 -0
- package/client/node_modules/iconv-lite/LICENSE +21 -0
- package/client/node_modules/iconv-lite/README.md +156 -0
- package/client/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- package/client/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- package/client/node_modules/iconv-lite/encodings/index.js +22 -0
- package/client/node_modules/iconv-lite/encodings/internal.js +188 -0
- package/client/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- package/client/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/client/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- package/client/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/client/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/client/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/client/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/client/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/client/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/client/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- package/client/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/client/node_modules/iconv-lite/encodings/utf16.js +177 -0
- package/client/node_modules/iconv-lite/encodings/utf7.js +290 -0
- package/client/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- package/client/node_modules/iconv-lite/lib/extend-node.js +217 -0
- package/client/node_modules/iconv-lite/lib/index.d.ts +24 -0
- package/client/node_modules/iconv-lite/lib/index.js +153 -0
- package/client/node_modules/iconv-lite/lib/streams.js +121 -0
- package/client/node_modules/iconv-lite/package.json +46 -0
- package/client/node_modules/inherits/LICENSE +16 -0
- package/client/node_modules/inherits/README.md +42 -0
- package/client/node_modules/inherits/inherits.js +9 -0
- package/client/node_modules/inherits/inherits_browser.js +27 -0
- package/client/node_modules/inherits/package.json +29 -0
- package/client/node_modules/ipaddr.js/LICENSE +19 -0
- package/client/node_modules/ipaddr.js/README.md +233 -0
- package/client/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- package/client/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- package/client/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- package/client/node_modules/ipaddr.js/package.json +35 -0
- package/client/node_modules/is-docker/cli.js +5 -0
- package/client/node_modules/is-docker/index.d.ts +15 -0
- package/client/node_modules/is-docker/index.js +29 -0
- package/client/node_modules/is-docker/license +9 -0
- package/client/node_modules/is-docker/package.json +42 -0
- package/client/node_modules/is-docker/readme.md +27 -0
- package/client/node_modules/is-wsl/index.d.ts +15 -0
- package/client/node_modules/is-wsl/index.js +31 -0
- package/client/node_modules/is-wsl/license +9 -0
- package/client/node_modules/is-wsl/package.json +45 -0
- package/client/node_modules/is-wsl/readme.md +36 -0
- package/client/node_modules/math-intrinsics/.eslintrc +16 -0
- package/client/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/client/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/client/node_modules/math-intrinsics/LICENSE +21 -0
- package/client/node_modules/math-intrinsics/README.md +50 -0
- package/client/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/client/node_modules/math-intrinsics/abs.js +4 -0
- package/client/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/client/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/client/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/client/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/client/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/client/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/client/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/client/node_modules/math-intrinsics/floor.js +4 -0
- package/client/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/client/node_modules/math-intrinsics/isFinite.js +12 -0
- package/client/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/client/node_modules/math-intrinsics/isInteger.js +16 -0
- package/client/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/client/node_modules/math-intrinsics/isNaN.js +6 -0
- package/client/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/client/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/client/node_modules/math-intrinsics/max.d.ts +1 -0
- package/client/node_modules/math-intrinsics/max.js +4 -0
- package/client/node_modules/math-intrinsics/min.d.ts +1 -0
- package/client/node_modules/math-intrinsics/min.js +4 -0
- package/client/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/client/node_modules/math-intrinsics/mod.js +9 -0
- package/client/node_modules/math-intrinsics/package.json +86 -0
- package/client/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/client/node_modules/math-intrinsics/pow.js +4 -0
- package/client/node_modules/math-intrinsics/round.d.ts +1 -0
- package/client/node_modules/math-intrinsics/round.js +4 -0
- package/client/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/client/node_modules/math-intrinsics/sign.js +11 -0
- package/client/node_modules/math-intrinsics/test/index.js +192 -0
- package/client/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/client/node_modules/media-typer/HISTORY.md +22 -0
- package/client/node_modules/media-typer/LICENSE +22 -0
- package/client/node_modules/media-typer/README.md +81 -0
- package/client/node_modules/media-typer/index.js +270 -0
- package/client/node_modules/media-typer/package.json +26 -0
- package/client/node_modules/merge-descriptors/HISTORY.md +21 -0
- package/client/node_modules/merge-descriptors/LICENSE +23 -0
- package/client/node_modules/merge-descriptors/README.md +49 -0
- package/client/node_modules/merge-descriptors/index.js +60 -0
- package/client/node_modules/merge-descriptors/package.json +39 -0
- package/client/node_modules/methods/HISTORY.md +29 -0
- package/client/node_modules/methods/LICENSE +24 -0
- package/client/node_modules/methods/README.md +51 -0
- package/client/node_modules/methods/index.js +69 -0
- package/client/node_modules/methods/package.json +36 -0
- package/client/node_modules/mime/CHANGELOG.md +164 -0
- package/client/node_modules/mime/LICENSE +21 -0
- package/client/node_modules/mime/README.md +90 -0
- package/client/node_modules/mime/cli.js +8 -0
- package/client/node_modules/mime/mime.js +108 -0
- package/client/node_modules/mime/package.json +44 -0
- package/client/node_modules/mime/src/build.js +53 -0
- package/client/node_modules/mime/src/test.js +60 -0
- package/client/node_modules/mime/types.json +1 -0
- package/client/node_modules/mime-db/HISTORY.md +507 -0
- package/client/node_modules/mime-db/LICENSE +23 -0
- package/client/node_modules/mime-db/README.md +100 -0
- package/client/node_modules/mime-db/db.json +8519 -0
- package/client/node_modules/mime-db/index.js +12 -0
- package/client/node_modules/mime-db/package.json +60 -0
- package/client/node_modules/mime-types/HISTORY.md +397 -0
- package/client/node_modules/mime-types/LICENSE +23 -0
- package/client/node_modules/mime-types/README.md +113 -0
- package/client/node_modules/mime-types/index.js +188 -0
- package/client/node_modules/mime-types/package.json +44 -0
- package/client/node_modules/ms/index.js +152 -0
- package/client/node_modules/ms/license.md +21 -0
- package/client/node_modules/ms/package.json +37 -0
- package/client/node_modules/ms/readme.md +51 -0
- package/client/node_modules/negotiator/HISTORY.md +108 -0
- package/client/node_modules/negotiator/LICENSE +24 -0
- package/client/node_modules/negotiator/README.md +203 -0
- package/client/node_modules/negotiator/index.js +82 -0
- package/client/node_modules/negotiator/lib/charset.js +169 -0
- package/client/node_modules/negotiator/lib/encoding.js +184 -0
- package/client/node_modules/negotiator/lib/language.js +179 -0
- package/client/node_modules/negotiator/lib/mediaType.js +294 -0
- package/client/node_modules/negotiator/package.json +42 -0
- package/client/node_modules/object-inspect/.eslintrc +53 -0
- package/client/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- package/client/node_modules/object-inspect/.nycrc +13 -0
- package/client/node_modules/object-inspect/CHANGELOG.md +424 -0
- package/client/node_modules/object-inspect/LICENSE +21 -0
- package/client/node_modules/object-inspect/example/all.js +23 -0
- package/client/node_modules/object-inspect/example/circular.js +6 -0
- package/client/node_modules/object-inspect/example/fn.js +5 -0
- package/client/node_modules/object-inspect/example/inspect.js +10 -0
- package/client/node_modules/object-inspect/index.js +544 -0
- package/client/node_modules/object-inspect/package-support.json +20 -0
- package/client/node_modules/object-inspect/package.json +105 -0
- package/client/node_modules/object-inspect/readme.markdown +84 -0
- package/client/node_modules/object-inspect/test/bigint.js +58 -0
- package/client/node_modules/object-inspect/test/browser/dom.js +15 -0
- package/client/node_modules/object-inspect/test/circular.js +16 -0
- package/client/node_modules/object-inspect/test/deep.js +12 -0
- package/client/node_modules/object-inspect/test/element.js +53 -0
- package/client/node_modules/object-inspect/test/err.js +48 -0
- package/client/node_modules/object-inspect/test/fakes.js +29 -0
- package/client/node_modules/object-inspect/test/fn.js +76 -0
- package/client/node_modules/object-inspect/test/global.js +17 -0
- package/client/node_modules/object-inspect/test/has.js +15 -0
- package/client/node_modules/object-inspect/test/holes.js +15 -0
- package/client/node_modules/object-inspect/test/indent-option.js +271 -0
- package/client/node_modules/object-inspect/test/inspect.js +139 -0
- package/client/node_modules/object-inspect/test/lowbyte.js +12 -0
- package/client/node_modules/object-inspect/test/number.js +58 -0
- package/client/node_modules/object-inspect/test/quoteStyle.js +26 -0
- package/client/node_modules/object-inspect/test/toStringTag.js +40 -0
- package/client/node_modules/object-inspect/test/undef.js +12 -0
- package/client/node_modules/object-inspect/test/values.js +261 -0
- package/client/node_modules/object-inspect/test-core-js.js +26 -0
- package/client/node_modules/object-inspect/util.inspect.js +1 -0
- package/client/node_modules/on-finished/HISTORY.md +98 -0
- package/client/node_modules/on-finished/LICENSE +23 -0
- package/client/node_modules/on-finished/README.md +162 -0
- package/client/node_modules/on-finished/index.js +234 -0
- package/client/node_modules/on-finished/package.json +39 -0
- package/client/node_modules/open/index.d.ts +153 -0
- package/client/node_modules/open/index.js +334 -0
- package/client/node_modules/open/license +9 -0
- package/client/node_modules/open/package.json +61 -0
- package/client/node_modules/open/readme.md +171 -0
- package/client/node_modules/open/xdg-open +1066 -0
- package/client/node_modules/parseurl/HISTORY.md +58 -0
- package/client/node_modules/parseurl/LICENSE +24 -0
- package/client/node_modules/parseurl/README.md +133 -0
- package/client/node_modules/parseurl/index.js +158 -0
- package/client/node_modules/parseurl/package.json +40 -0
- package/client/node_modules/path-to-regexp/LICENSE +21 -0
- package/client/node_modules/path-to-regexp/Readme.md +35 -0
- package/client/node_modules/path-to-regexp/index.js +158 -0
- package/client/node_modules/path-to-regexp/package.json +30 -0
- package/client/node_modules/proxy-addr/HISTORY.md +161 -0
- package/client/node_modules/proxy-addr/LICENSE +22 -0
- package/client/node_modules/proxy-addr/README.md +139 -0
- package/client/node_modules/proxy-addr/index.js +327 -0
- package/client/node_modules/proxy-addr/package.json +47 -0
- package/client/node_modules/qs/.editorconfig +46 -0
- package/client/node_modules/qs/.github/FUNDING.yml +12 -0
- package/client/node_modules/qs/.github/SECURITY.md +11 -0
- package/client/node_modules/qs/.github/THREAT_MODEL.md +78 -0
- package/client/node_modules/qs/.nycrc +13 -0
- package/client/node_modules/qs/CHANGELOG.md +822 -0
- package/client/node_modules/qs/LICENSE.md +29 -0
- package/client/node_modules/qs/README.md +758 -0
- package/client/node_modules/qs/dist/qs.js +141 -0
- package/client/node_modules/qs/eslint.config.mjs +57 -0
- package/client/node_modules/qs/lib/formats.js +23 -0
- package/client/node_modules/qs/lib/index.js +11 -0
- package/client/node_modules/qs/lib/parse.js +403 -0
- package/client/node_modules/qs/lib/stringify.js +363 -0
- package/client/node_modules/qs/lib/utils.js +342 -0
- package/client/node_modules/qs/package.json +94 -0
- package/client/node_modules/qs/test/empty-keys-cases.js +267 -0
- package/client/node_modules/qs/test/parse.js +1703 -0
- package/client/node_modules/qs/test/stringify.js +1448 -0
- package/client/node_modules/qs/test/utils.js +432 -0
- package/client/node_modules/range-parser/HISTORY.md +56 -0
- package/client/node_modules/range-parser/LICENSE +23 -0
- package/client/node_modules/range-parser/README.md +84 -0
- package/client/node_modules/range-parser/index.js +162 -0
- package/client/node_modules/range-parser/package.json +44 -0
- package/client/node_modules/raw-body/LICENSE +22 -0
- package/client/node_modules/raw-body/README.md +223 -0
- package/client/node_modules/raw-body/index.d.ts +87 -0
- package/client/node_modules/raw-body/index.js +336 -0
- package/client/node_modules/raw-body/package.json +47 -0
- package/client/node_modules/safe-buffer/LICENSE +21 -0
- package/client/node_modules/safe-buffer/README.md +584 -0
- package/client/node_modules/safe-buffer/index.d.ts +187 -0
- package/client/node_modules/safe-buffer/index.js +65 -0
- package/client/node_modules/safe-buffer/package.json +51 -0
- package/client/node_modules/safer-buffer/LICENSE +21 -0
- package/client/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/client/node_modules/safer-buffer/Readme.md +156 -0
- package/client/node_modules/safer-buffer/dangerous.js +58 -0
- package/client/node_modules/safer-buffer/package.json +34 -0
- package/client/node_modules/safer-buffer/safer.js +77 -0
- package/client/node_modules/safer-buffer/tests.js +406 -0
- package/client/node_modules/send/HISTORY.md +538 -0
- package/client/node_modules/send/LICENSE +23 -0
- package/client/node_modules/send/README.md +327 -0
- package/client/node_modules/send/SECURITY.md +24 -0
- package/client/node_modules/send/index.js +1142 -0
- package/client/node_modules/send/node_modules/ms/index.js +162 -0
- package/client/node_modules/send/node_modules/ms/license.md +21 -0
- package/client/node_modules/send/node_modules/ms/package.json +38 -0
- package/client/node_modules/send/node_modules/ms/readme.md +59 -0
- package/client/node_modules/send/package.json +62 -0
- package/client/node_modules/serve-static/HISTORY.md +493 -0
- package/client/node_modules/serve-static/LICENSE +25 -0
- package/client/node_modules/serve-static/README.md +257 -0
- package/client/node_modules/serve-static/index.js +209 -0
- package/client/node_modules/serve-static/package.json +42 -0
- package/client/node_modules/setprototypeof/LICENSE +13 -0
- package/client/node_modules/setprototypeof/README.md +31 -0
- package/client/node_modules/setprototypeof/index.d.ts +2 -0
- package/client/node_modules/setprototypeof/index.js +17 -0
- package/client/node_modules/setprototypeof/package.json +38 -0
- package/client/node_modules/setprototypeof/test/index.js +24 -0
- package/client/node_modules/side-channel/.editorconfig +9 -0
- package/client/node_modules/side-channel/.eslintrc +12 -0
- package/client/node_modules/side-channel/.github/FUNDING.yml +12 -0
- package/client/node_modules/side-channel/.nycrc +13 -0
- package/client/node_modules/side-channel/CHANGELOG.md +120 -0
- package/client/node_modules/side-channel/LICENSE +21 -0
- package/client/node_modules/side-channel/README.md +61 -0
- package/client/node_modules/side-channel/index.d.ts +14 -0
- package/client/node_modules/side-channel/index.js +46 -0
- package/client/node_modules/side-channel/package.json +85 -0
- package/client/node_modules/side-channel/test/index.js +120 -0
- package/client/node_modules/side-channel/tsconfig.json +9 -0
- package/client/node_modules/side-channel-list/.editorconfig +9 -0
- package/client/node_modules/side-channel-list/.eslintrc +11 -0
- package/client/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/client/node_modules/side-channel-list/.nycrc +13 -0
- package/client/node_modules/side-channel-list/CHANGELOG.md +36 -0
- package/client/node_modules/side-channel-list/LICENSE +21 -0
- package/client/node_modules/side-channel-list/README.md +62 -0
- package/client/node_modules/side-channel-list/index.d.ts +13 -0
- package/client/node_modules/side-channel-list/index.js +111 -0
- package/client/node_modules/side-channel-list/list.d.ts +14 -0
- package/client/node_modules/side-channel-list/package.json +77 -0
- package/client/node_modules/side-channel-list/test/index.js +154 -0
- package/client/node_modules/side-channel-list/tsconfig.json +9 -0
- package/client/node_modules/side-channel-map/.editorconfig +9 -0
- package/client/node_modules/side-channel-map/.eslintrc +11 -0
- package/client/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/client/node_modules/side-channel-map/.nycrc +13 -0
- package/client/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/client/node_modules/side-channel-map/LICENSE +21 -0
- package/client/node_modules/side-channel-map/README.md +62 -0
- package/client/node_modules/side-channel-map/index.d.ts +15 -0
- package/client/node_modules/side-channel-map/index.js +68 -0
- package/client/node_modules/side-channel-map/package.json +80 -0
- package/client/node_modules/side-channel-map/test/index.js +114 -0
- package/client/node_modules/side-channel-map/tsconfig.json +9 -0
- package/client/node_modules/side-channel-weakmap/.editorconfig +9 -0
- package/client/node_modules/side-channel-weakmap/.eslintrc +12 -0
- package/client/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/client/node_modules/side-channel-weakmap/.nycrc +13 -0
- package/client/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/client/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/client/node_modules/side-channel-weakmap/README.md +62 -0
- package/client/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/client/node_modules/side-channel-weakmap/index.js +84 -0
- package/client/node_modules/side-channel-weakmap/package.json +87 -0
- package/client/node_modules/side-channel-weakmap/test/index.js +114 -0
- package/client/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/client/node_modules/statuses/HISTORY.md +87 -0
- package/client/node_modules/statuses/LICENSE +23 -0
- package/client/node_modules/statuses/README.md +139 -0
- package/client/node_modules/statuses/codes.json +65 -0
- package/client/node_modules/statuses/index.js +146 -0
- package/client/node_modules/statuses/package.json +49 -0
- package/client/node_modules/toidentifier/HISTORY.md +9 -0
- package/client/node_modules/toidentifier/LICENSE +21 -0
- package/client/node_modules/toidentifier/README.md +61 -0
- package/client/node_modules/toidentifier/index.js +32 -0
- package/client/node_modules/toidentifier/package.json +38 -0
- package/client/node_modules/type-is/HISTORY.md +259 -0
- package/client/node_modules/type-is/LICENSE +23 -0
- package/client/node_modules/type-is/README.md +170 -0
- package/client/node_modules/type-is/index.js +266 -0
- package/client/node_modules/type-is/package.json +45 -0
- package/client/node_modules/typescript/LICENSE.txt +55 -0
- package/client/node_modules/typescript/README.md +50 -0
- package/client/node_modules/typescript/SECURITY.md +41 -0
- package/client/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- package/client/node_modules/typescript/bin/tsc +2 -0
- package/client/node_modules/typescript/bin/tsserver +2 -0
- package/client/node_modules/typescript/lib/_tsc.js +133818 -0
- package/client/node_modules/typescript/lib/_tsserver.js +659 -0
- package/client/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- package/client/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/lib.d.ts +22 -0
- package/client/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/client/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/client/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/client/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/client/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/client/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/client/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/client/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/client/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/client/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/client/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/client/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/client/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/client/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/client/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/client/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/client/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/client/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/client/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/client/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/client/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/client/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/client/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/client/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/client/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/client/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/client/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/client/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/client/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/client/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/client/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/client/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/client/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/client/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/client/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/client/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/client/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/client/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/client/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/client/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/client/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/client/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/client/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/client/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/client/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/client/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/client/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/client/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/client/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/client/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/client/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/client/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/client/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/client/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/client/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/client/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/client/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/client/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/client/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/client/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/client/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/client/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/client/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/client/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/client/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/client/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/client/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/client/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/client/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/client/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/client/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/client/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/client/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- package/client/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/client/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/client/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/client/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/client/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/client/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/client/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/client/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/client/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/client/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/client/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/tsc.js +8 -0
- package/client/node_modules/typescript/lib/tsserver.js +8 -0
- package/client/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/client/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/client/node_modules/typescript/lib/typesMap.json +497 -0
- package/client/node_modules/typescript/lib/typescript.d.ts +11437 -0
- package/client/node_modules/typescript/lib/typescript.js +200276 -0
- package/client/node_modules/typescript/lib/typingsInstaller.js +8 -0
- package/client/node_modules/typescript/lib/watchGuard.js +53 -0
- package/client/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- package/client/node_modules/typescript/package.json +120 -0
- package/client/node_modules/undici-types/LICENSE +21 -0
- package/client/node_modules/undici-types/README.md +6 -0
- package/client/node_modules/undici-types/agent.d.ts +31 -0
- package/client/node_modules/undici-types/api.d.ts +43 -0
- package/client/node_modules/undici-types/balanced-pool.d.ts +29 -0
- package/client/node_modules/undici-types/cache.d.ts +36 -0
- package/client/node_modules/undici-types/client.d.ts +108 -0
- package/client/node_modules/undici-types/connector.d.ts +34 -0
- package/client/node_modules/undici-types/content-type.d.ts +21 -0
- package/client/node_modules/undici-types/cookies.d.ts +28 -0
- package/client/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
- package/client/node_modules/undici-types/dispatcher.d.ts +256 -0
- package/client/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
- package/client/node_modules/undici-types/errors.d.ts +149 -0
- package/client/node_modules/undici-types/eventsource.d.ts +61 -0
- package/client/node_modules/undici-types/fetch.d.ts +209 -0
- package/client/node_modules/undici-types/file.d.ts +39 -0
- package/client/node_modules/undici-types/filereader.d.ts +54 -0
- package/client/node_modules/undici-types/formdata.d.ts +108 -0
- package/client/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/client/node_modules/undici-types/global-origin.d.ts +7 -0
- package/client/node_modules/undici-types/handlers.d.ts +15 -0
- package/client/node_modules/undici-types/header.d.ts +4 -0
- package/client/node_modules/undici-types/index.d.ts +71 -0
- package/client/node_modules/undici-types/interceptors.d.ts +17 -0
- package/client/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/client/node_modules/undici-types/mock-client.d.ts +25 -0
- package/client/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/client/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/client/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/client/node_modules/undici-types/package.json +55 -0
- package/client/node_modules/undici-types/patch.d.ts +33 -0
- package/client/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/client/node_modules/undici-types/pool.d.ts +39 -0
- package/client/node_modules/undici-types/proxy-agent.d.ts +28 -0
- package/client/node_modules/undici-types/readable.d.ts +65 -0
- package/client/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/client/node_modules/undici-types/retry-handler.d.ts +116 -0
- package/client/node_modules/undici-types/util.d.ts +18 -0
- package/client/node_modules/undici-types/webidl.d.ts +228 -0
- package/client/node_modules/undici-types/websocket.d.ts +150 -0
- package/client/node_modules/unpipe/HISTORY.md +4 -0
- package/client/node_modules/unpipe/LICENSE +22 -0
- package/client/node_modules/unpipe/README.md +43 -0
- package/client/node_modules/unpipe/index.js +69 -0
- package/client/node_modules/unpipe/package.json +27 -0
- package/client/node_modules/utils-merge/LICENSE +20 -0
- package/client/node_modules/utils-merge/README.md +34 -0
- package/client/node_modules/utils-merge/index.js +23 -0
- package/client/node_modules/utils-merge/package.json +40 -0
- package/client/node_modules/vary/HISTORY.md +39 -0
- package/client/node_modules/vary/LICENSE +22 -0
- package/client/node_modules/vary/README.md +101 -0
- package/client/node_modules/vary/index.js +149 -0
- package/client/node_modules/vary/package.json +43 -0
- package/client/obfuscate.js +132 -0
- package/client/package-lock.json +956 -0
- package/client/package.json +32 -0
- package/client/src/cli.ts +273 -0
- package/client/src/dashboard.ts +85 -0
- package/client/src/executor.ts +65 -0
- package/client/src/filters/generic.ts +60 -0
- package/client/src/filters/git.ts +150 -0
- package/client/src/filters/index.ts +113 -0
- package/client/src/filters/js.ts +102 -0
- package/client/src/filters/python.ts +152 -0
- package/client/src/index.html +779 -0
- package/client/src/mcp.ts +88 -0
- package/client/src/redactor.ts +54 -0
- package/client/src/seed.ts +35 -0
- package/client/src/shims.ts +142 -0
- package/client/src/simulate.ts +98 -0
- package/client/src/sync.ts +252 -0
- package/client/src/tracker.ts +269 -0
- package/client/tsconfig.json +14 -0
- package/install.bat +48 -0
- package/package.json +29 -18
- package/test_e2e.js +156 -0
- package/tsconfig.json +15 -0
- package/cli.js +0 -2
- package/dashboard.js +0 -1
- package/executor.js +0 -1
- package/filters/generic.js +0 -1
- package/filters/git.js +0 -1
- package/filters/index.js +0 -1
- package/filters/js.js +0 -1
- package/filters/python.js +0 -1
- package/mcp.js +0 -1
- package/redactor.js +0 -1
- package/seed.js +0 -1
- package/shims.js +0 -1
- package/simulate.js +0 -1
- package/sync.js +0 -1
- package/tracker.js +0 -1
- /package/{index.html → client/dist/index.html} +0 -0
package/README.md
CHANGED
|
@@ -22,15 +22,8 @@ Install the package globally via NPM:
|
|
|
22
22
|
npm install -g trimprompt
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
After global installation, run the initialization command to setup system shims:
|
|
26
|
-
```bash
|
|
27
|
-
trim shims install
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
This creates command wrapper shims (e.g. `git.cmd`, `ls.cmd`, `pytest.cmd`, etc.) inside `~/.trimprompt/shims/` and appends this folder to the beginning of your system `PATH` variable.
|
|
31
|
-
|
|
32
25
|
> [!IMPORTANT]
|
|
33
|
-
> Restart your active terminal window or AI editor (Cursor/Claude Code) after
|
|
26
|
+
> Restart your active terminal window or AI editor (Cursor/Claude Code) after installation for the changes to take effect.
|
|
34
27
|
|
|
35
28
|
---
|
|
36
29
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# TrimPrompt.ai - Specification
|
|
2
|
+
|
|
3
|
+
This specification defines the architecture, data schemas, filtering logic, and integration patterns for **TrimPrompt.ai**.
|
|
4
|
+
|
|
5
|
+
TrimPrompt.ai is a language-agnostic CLI proxy designed to reduce input token consumption for AI coding assistants (like Cursor, Claude Code, and Copilot) by **60–90%**. It intercepts shell commands, applies smart compression, redacts sensitive PII/secrets, tracks metrics locally, and optionally syncs telemetry to a central enterprise server.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## System Architecture
|
|
10
|
+
|
|
11
|
+
TrimPrompt.ai operates in two primary tiers:
|
|
12
|
+
1. **Local CLI & Developer Dashboard (Local-First, Zero-Config)**
|
|
13
|
+
2. **Central Telemetry Server (Enterprise Hub)**
|
|
14
|
+
|
|
15
|
+
### Tier 1: Local Developer Environment (Zero-Config)
|
|
16
|
+
* **Installation:** Installed via npm (`npm install -g trimprompt`).
|
|
17
|
+
* **Zero Configuration:** Works out of the box. Automatically initializes local database and shims on first run.
|
|
18
|
+
* **Storage:** Telemetry is written to a local file (`~/.trimprompt/stats.json`) and raw/compressed logs are kept in (`~/.trimprompt/logs/`).
|
|
19
|
+
* **Developer UI:** Running `trim ui` starts a local web server (default port `4000`) serving a Single Page Application (SPA). This dashboard allows developers to select their LLM model, visualize token savings, view cost metrics in USD, and inspect exact raw vs. compressed output diffs.
|
|
20
|
+
|
|
21
|
+
### Tier 2: Enterprise Telemetry & Management (One-Line Config)
|
|
22
|
+
* **Activation:** Enabled by configuring the `telemetry_url` parameter in `~/.trimprompt/config.json` or setting the `TRIMPROMPT_TELEMETRY_URL` environment variable.
|
|
23
|
+
* **Asynchronous Syncing:** Local metrics are pushed to the central server in background batches. This ensures zero latency overhead for developer workflows. If the sync fails (e.g., offline mode), records are cached locally and retried.
|
|
24
|
+
* **DLP (Data Loss Prevention):** The sync payload is stripped of sensitive information (arguments, usernames, specific filenames) to ensure strict data privacy before telemetry is transmitted.
|
|
25
|
+
* **Manager's Dashboard:** Web-based UI displaying aggregated token reduction percentage, dollar-value savings, user adoption statistics, and cost hotspots.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Command Interface
|
|
30
|
+
|
|
31
|
+
The CLI executable (`trim`) supports the following commands:
|
|
32
|
+
|
|
33
|
+
| Command | Description |
|
|
34
|
+
| :--- | :--- |
|
|
35
|
+
| `trim <command> [args...]` | Proxies and compresses the specified command (e.g., `trim git diff`). |
|
|
36
|
+
| `trim ui` / `trim dashboard` | Launches the local developer dashboard web server. |
|
|
37
|
+
| `trim stats` | Prints a summary of token savings to the terminal. |
|
|
38
|
+
| `trim config <get\|set> <key> [value]` | Reads or writes client configuration parameters. |
|
|
39
|
+
| `trim shims install` | Installs system shell shims to intercept commands automatically. |
|
|
40
|
+
| `trim shims uninstall` | Removes shell shims. |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Configuration Schema (`config.json`)
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
// Local Config Location: ~/.trimprompt/config.json
|
|
48
|
+
{
|
|
49
|
+
"version": "1.0",
|
|
50
|
+
"telemetry_url": "", // URL of the Enterprise Hub (e.g. http://your-company-hub:5000/api/telemetry)
|
|
51
|
+
"max_output_tokens": 5000, // Soft token limit per command output
|
|
52
|
+
"redaction_enabled": true, // Toggle PII/Secret redaction
|
|
53
|
+
"default_model": "claude-3-5-sonnet"
|
|
54
|
+
}
|
|
55
|
+
```
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# PromptShave.ai - Architecture Specification
|
|
2
|
+
|
|
3
|
+
This document describes the technical architecture and component layout of the **PromptShave.ai** system.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Component Topology
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
+---------------------------------------------------------------------------------------------------+
|
|
11
|
+
| DEVELOPER MACHINE (Local-First) |
|
|
12
|
+
| |
|
|
13
|
+
| +------------------------+ Command +-----------------------+ |
|
|
14
|
+
| | AI Coding Assistant | -----------------> | PromptShave Shims | |
|
|
15
|
+
| | (Cursor, Claude, etc.)| <----------------- | (git, npm, kubectl) | |
|
|
16
|
+
| +------------------------+ Filtered Output +-----------------------+ |
|
|
17
|
+
| | |
|
|
18
|
+
| v |
|
|
19
|
+
| +------------------------+ +-----------------------+ |
|
|
20
|
+
| | Developer UI | | PromptShave CLI | |
|
|
21
|
+
| | (Browser SPA @4000) | | (TypeScript) | |
|
|
22
|
+
| +------------------------+ +-----------------------+ |
|
|
23
|
+
| | / \ |
|
|
24
|
+
| | Read / Writes \ Redacts |
|
|
25
|
+
| v v v |
|
|
26
|
+
| +------------------------+ +--------------+ +--------------+ |
|
|
27
|
+
| |~/.promptshave/stats.db | <----------- | Telemetry DB | | PII / Secret | |
|
|
28
|
+
| | (SQLite) | | Manager | | Redactor | |
|
|
29
|
+
| +------------------------+ +--------------+ +--------------+ |
|
|
30
|
+
| | | |
|
|
31
|
+
| | Read/Write v |
|
|
32
|
+
| | +-----------------------+ |
|
|
33
|
+
| +------------------------- | Background Sync daemon| |
|
|
34
|
+
| +-----------------------+ |
|
|
35
|
+
+------------------------------------------------------|--------------------------------------------+
|
|
36
|
+
|
|
|
37
|
+
| HTTP POST (Redacted logs)
|
|
38
|
+
v
|
|
39
|
+
+---------------------------------------------------------------------------------------------------+
|
|
40
|
+
| ENTERPRISE HUB (Centralized Server) |
|
|
41
|
+
| |
|
|
42
|
+
| +------------------------+ +-----------------------+ |
|
|
43
|
+
| | Manager Dashboard UI | ------------ | Telemetry API | |
|
|
44
|
+
| | (HTML/React Web) | | (Node.js / Go) | |
|
|
45
|
+
| +------------------------+ +-----------------------+ |
|
|
46
|
+
| | |
|
|
47
|
+
| v |
|
|
48
|
+
| +-----------------------+ |
|
|
49
|
+
| | Central Database | |
|
|
50
|
+
| | (PostgreSQL / SQLite) | |
|
|
51
|
+
| +-----------------------+ |
|
|
52
|
+
+---------------------------------------------------------------------------------------------------+
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 2. Telemetry & Background Sync Mechanism
|
|
58
|
+
|
|
59
|
+
To avoid blockages or latency overhead in developer terminals, telemetry logging must never block the CLI's main thread.
|
|
60
|
+
|
|
61
|
+
### Event Logging Sequence:
|
|
62
|
+
1. **Execution:** The developer (or AI) runs a proxied command.
|
|
63
|
+
2. **Compression & Print:** PromptShave intercepts, filters, and prints the compressed output to standard output immediately.
|
|
64
|
+
3. **Local Write:** PromptShave opens a connection to `~/.promptshave/stats.db` and writes a new execution record. This SQLite write is extremely fast (<1ms).
|
|
65
|
+
4. **Subprocess Termination:** The CLI process terminates and returns control to the shell immediately.
|
|
66
|
+
|
|
67
|
+
### Background Sync Engine:
|
|
68
|
+
1. When a new row is added, if `telemetry_url` is configured, PromptShave spawns a detached background process (a daemon script) that runs independently:
|
|
69
|
+
```js
|
|
70
|
+
const { spawn } = require('child_process');
|
|
71
|
+
const out = fs.openSync('/dev/null', 'a');
|
|
72
|
+
const err = fs.openSync('/dev/null', 'a');
|
|
73
|
+
|
|
74
|
+
const child = spawn('node', ['path/to/sync-daemon.js'], {
|
|
75
|
+
detached: true,
|
|
76
|
+
stdio: ['ignore', out, err]
|
|
77
|
+
});
|
|
78
|
+
child.unref();
|
|
79
|
+
```
|
|
80
|
+
2. The `sync-daemon.js` reads unsynced logs from SQLite, sends them in a single batch request to `telemetry_url`, and marks them as synced.
|
|
81
|
+
3. If the network is down, the daemon terminates and will retry on the next command execution.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 3. Telemetry Event Schema
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"developer_id": "sha256_hash_of_local_username",
|
|
90
|
+
"os": "windows",
|
|
91
|
+
"command": "git diff",
|
|
92
|
+
"subcommand": "diff",
|
|
93
|
+
"raw_chars": 28400,
|
|
94
|
+
"compressed_chars": 1200,
|
|
95
|
+
"estimated_raw_tokens": 7100,
|
|
96
|
+
"estimated_compressed_tokens": 300,
|
|
97
|
+
"tokens_saved": 6800,
|
|
98
|
+
"model_used": "claude-3-5-sonnet",
|
|
99
|
+
"timestamp": "2026-06-16T08:30:00Z"
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
*Note: The actual command arguments and output text are never sent to the Hub to guarantee enterprise data compliance.*
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 4. Cost Savings Calculation Engine
|
|
107
|
+
|
|
108
|
+
The savings are calculated dynamically by both the Local Developer UI and the Enterprise Hub UI.
|
|
109
|
+
|
|
110
|
+
### Formula:
|
|
111
|
+
$$\text{Cost Saved (USD)} = (\text{Estimated Raw Tokens} - \text{Estimated Compressed Tokens}) \times \frac{\text{Model Input Token Price (USD)}}{1,000,000}$$
|
|
112
|
+
|
|
113
|
+
### Default LLM Pricing Directory (updated dynamically):
|
|
114
|
+
|
|
115
|
+
| Model Key | Model Name | Input Price Per 1M Tokens (USD) | Output Price Per 1M Tokens (USD) |
|
|
116
|
+
| :--- | :--- | :---: | :---: |
|
|
117
|
+
| `claude-3-5-sonnet` | Claude 3.5 Sonnet | $3.00 | $15.00 |
|
|
118
|
+
| `claude-3-opus` | Claude 3 Opus | $15.00 | $75.00 |
|
|
119
|
+
| `claude-3-haiku` | Claude 3 Haiku | $0.25 | $1.25 |
|
|
120
|
+
| `gpt-4o` | GPT-4o | $5.00 | $15.00 |
|
|
121
|
+
| `gpt-4o-mini` | GPT-4o Mini | $0.150 | $0.600 |
|
|
122
|
+
| `gemini-1-5-pro` | Gemini 1.5 Pro | $1.25 | $5.00 |
|
|
123
|
+
| `gemini-1-5-flash` | Gemini 1.5 Flash | $0.075 | $0.30 |
|
|
124
|
+
|
|
125
|
+
*Note: For the input savings calculation, we use the Input Token Price since PromptShave filters command outputs that are fed into the LLM's prompt context (input).*
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 5. Enterprise Deployment & Configuration Methods
|
|
130
|
+
|
|
131
|
+
To deploy PromptShave across an entire enterprise with minimal friction, IT administrators can configure the central Hub URL globally using one of the following methods, sorted by priority:
|
|
132
|
+
|
|
133
|
+
### Method A: Global Environment Variable (Recommended for MDM / GPO)
|
|
134
|
+
IT managers use Mobile Device Management (MDM) tools like Jamf (macOS), Microsoft Intune (Windows), or Group Policy Objects (GPO) to set a system-wide environment variable on all developer machines:
|
|
135
|
+
```bash
|
|
136
|
+
PROMPTSHAVE_TELEMETRY_URL="https://shave-hub.mycompany.com/api/telemetry"
|
|
137
|
+
```
|
|
138
|
+
* **How it works:** When the `pshave` CLI runs, it checks for `process.env.PROMPTSHAVE_TELEMETRY_URL`. If present, it automatically routes telemetry to the central Hub. No developer action or configuration file is required.
|
|
139
|
+
|
|
140
|
+
### Method B: System-Wide Configuration File (Best for Bootstrapping Scripts)
|
|
141
|
+
During automated laptop provisioning, the IT administrator writes a global, read-only configuration file to a system folder:
|
|
142
|
+
* **macOS / Linux:** `/etc/promptshave/config.yaml`
|
|
143
|
+
* **Windows:** `C:\ProgramData\promptshave\config.yaml`
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
# System-wide configuration file (Read-Only)
|
|
147
|
+
telemetry_url: "https://shave-hub.mycompany.com/api/telemetry"
|
|
148
|
+
```
|
|
149
|
+
* **How it works:** The `pshave` CLI reads this file first to establish base policies and the Hub endpoint. It then merges it with the developer's local file (`~/.promptshave/config.yaml`), prioritizing the system-wide URL.
|
|
150
|
+
|
|
151
|
+
### Method C: Custom Enterprise NPM Package Wrapper
|
|
152
|
+
If the enterprise uses an internal package registry (e.g., Artifactory, Verdaccio, or private NPM organizations):
|
|
153
|
+
1. The IT team publishes a private package named `@mycompany/pshave`.
|
|
154
|
+
2. The package contains a post-installation script that automatically runs:
|
|
155
|
+
```bash
|
|
156
|
+
pshave config set telemetry_url https://shave-hub.mycompany.com/api/telemetry
|
|
157
|
+
pshave shims install
|
|
158
|
+
```
|
|
159
|
+
3. Developers simply run: `npm install -g @mycompany/pshave` to get a fully configured version.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 6. Developer Local UI (Local-First Access)
|
|
164
|
+
|
|
165
|
+
Regardless of whether telemetry is synced to the Enterprise Hub, every developer has direct access to their own local stats:
|
|
166
|
+
* Running `pshave ui` starts a local Node process serving the dashboard from the npm package globally.
|
|
167
|
+
* The local web page (`http://localhost:4000`) queries the local SQLite DB (`~/.promptshave/stats.db`).
|
|
168
|
+
* Developers see their personal savings chart, list of commands, and exact compression logs, ensuring transparency.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 7. Enterprise Rapid Distribution (Frictionless Rollout)
|
|
173
|
+
|
|
174
|
+
To achieve 100% adoption across all developer machines quickly, PromptShave supports three automated distribution channels, catering to both Node and non-Node environments:
|
|
175
|
+
|
|
176
|
+
### Channel A: One-Command Bootstrap Script (Self-Service & provisioning)
|
|
177
|
+
The IT team hosts a simple installation script on their internal Hub server. Developers run a single command in their terminal, which automatically detects their OS, downloads the correct pre-compiled binary, installs it, configures the telemetry URL, and sets up the shims.
|
|
178
|
+
* **macOS / Linux:**
|
|
179
|
+
```bash
|
|
180
|
+
curl -fsSL https://shave-hub.mycompany.com/install.sh | sh
|
|
181
|
+
```
|
|
182
|
+
* **Windows (PowerShell):**
|
|
183
|
+
```powershell
|
|
184
|
+
irm https://shave-hub.mycompany.com/install.ps1 | iex
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Channel B: Silent MDM / Active Directory Push (Zero-Touch IT Deployment)
|
|
188
|
+
For a forced or silent rollout, the IT manager packages pre-compiled standalone binaries using their Mobile Device Management (MDM) software (Microsoft Intune, Jamf, or SCCM) or **Active Directory (AD) Group Policy Objects (GPO)**:
|
|
189
|
+
|
|
190
|
+
1. **Standalone Binaries / MSI Package:** The Node.js codebase is compiled into single-binary executables (`pshave.exe` for Windows, `pshave` for macOS/Linux) using Node's Single Executable Applications (SEA) or PKG. For Windows AD environments, the binary is wrapped inside a standard `.msi` (Microsoft Installer) package.
|
|
191
|
+
2. **AD GPO Software Installation:** The IT administrator configures a Group Policy Object under `Computer Configuration > Policies > Software Settings > Software installation` to assign the `pshave.msi` package to all domain-joined computers. Windows installs it silently at the next system startup.
|
|
192
|
+
3. **AD GPO Environment Variables:** To configure the telemetry endpoint system-wide, the administrator creates a GPO Preference under `Computer Configuration > Preferences > Windows Settings > Environment` to set the system variable:
|
|
193
|
+
* **Name:** `PROMPTSHAVE_TELEMETRY_URL`
|
|
194
|
+
* **Value:** `https://shave-hub.mycompany.com/api/telemetry`
|
|
195
|
+
4. **AD GPO Startup Script:** To register the shims system-wide, the administrator configures a GPO Startup Script (`Computer Configuration > Policies > Windows Settings > Scripts (Startup)`) that executes:
|
|
196
|
+
```powershell
|
|
197
|
+
& "C:\Program Files\promptshave\pshave.exe" shims install --silent
|
|
198
|
+
```
|
|
199
|
+
This ensures command interception is automatically activated for all users on the domain computers.
|
|
200
|
+
|
|
201
|
+
### Channel C: Private NPM Registry Proxy
|
|
202
|
+
For organizations where developers mainly use JavaScript/TypeScript:
|
|
203
|
+
* The IT admin publishes `@mycompany/pshave` to the corporate private NPM registry.
|
|
204
|
+
* Developers are instructed to run: `npm install -g @mycompany/pshave`
|
|
205
|
+
* A `postinstall` script in the package runs the shim installation and registers the telemetry URL automatically.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 8. Enterprise Hub Server Deployment Specification
|
|
210
|
+
|
|
211
|
+
To make the central telemetry dashboard easy for IT administrators to deploy and maintain, the **PromptShave Hub** is distributed as a lightweight Dockerized application.
|
|
212
|
+
|
|
213
|
+
### Deployment Method A: Docker Compose (On-Premise / Single VM)
|
|
214
|
+
IT managers can spin up the PromptShave Hub and a PostgreSQL database on any Linux/Windows server with a single command.
|
|
215
|
+
|
|
216
|
+
#### `docker-compose.yml`
|
|
217
|
+
```yaml
|
|
218
|
+
version: '3.8'
|
|
219
|
+
|
|
220
|
+
services:
|
|
221
|
+
postgres:
|
|
222
|
+
image: postgres:15-alpine
|
|
223
|
+
container_name: promptshave-db
|
|
224
|
+
environment:
|
|
225
|
+
POSTGRES_DB: promptshave
|
|
226
|
+
POSTGRES_USER: shave_admin
|
|
227
|
+
POSTGRES_PASSWORD: secure_db_password_123
|
|
228
|
+
volumes:
|
|
229
|
+
- pgdata:/var/lib/postgresql/data
|
|
230
|
+
restart: always
|
|
231
|
+
|
|
232
|
+
hub:
|
|
233
|
+
image: promptshave/hub:latest
|
|
234
|
+
container_name: promptshave-hub
|
|
235
|
+
ports:
|
|
236
|
+
- "80:80"
|
|
237
|
+
environment:
|
|
238
|
+
- PORT=80
|
|
239
|
+
- DATABASE_URL=postgres://shave_admin:secure_db_password_123@postgres:5432/promptshave
|
|
240
|
+
- JWT_SECRET=random_jwt_signing_key_456
|
|
241
|
+
- INITIAL_ADMIN_PASSWORD=admin_setup_password
|
|
242
|
+
- TOKEN_PRICING_AUTO_UPDATE=true # Auto-fetch official Claude/Gemini/GPT prices
|
|
243
|
+
depends_on:
|
|
244
|
+
- postgres
|
|
245
|
+
restart: always
|
|
246
|
+
|
|
247
|
+
volumes:
|
|
248
|
+
pgdata:
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Deployment Method B: Kubernetes (Helm Chart)
|
|
252
|
+
For large-scale enterprise environments running on AWS EKS, Google GKE, or Azure AKS:
|
|
253
|
+
* We provide a standard **Helm Chart** (`promptshave-hub`) containing deployments for the API services, Horizontal Pod Autoscalers (HPA), ingress definitions, and secret management.
|
|
254
|
+
* PromptsShave Hub scales stateless pods behind a load balancer, storing persistent logs in an external managed database (e.g., AWS RDS PostgreSQL).
|
|
255
|
+
|
|
256
|
+
### Server Initial Setup & Configuration Sequence:
|
|
257
|
+
1. **DNS & SSL:** The administrator configures a DNS record pointing to the server (e.g. `shave-hub.mycompany.com`) and installs a TLS/SSL certificate (e.g. Let's Encrypt or corporate proxy certificate).
|
|
258
|
+
2. **First-Time Login:** The admin logs into `https://shave-hub.mycompany.com` using the temporary `INITIAL_ADMIN_PASSWORD` defined in the environment variables and sets a secure custom password.
|
|
259
|
+
3. **Price Setup:** The admin reviews the token pricing page. If the company has custom volume pricing or an Enterprise Agreement with OpenAI or Anthropic, they can customize the cost-per-million-tokens values.
|
|
260
|
+
4. **Endpoint URL:** The telemetry endpoint is now live at:
|
|
261
|
+
`https://shave-hub.mycompany.com/api/telemetry`
|
|
262
|
+
This is the exact URL distributed via Active Directory GPO (`PROMPTSHAVE_TELEMETRY_URL`).
|
|
263
|
+
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# PromptShave.ai - Declarative Filter DSL Specification
|
|
2
|
+
|
|
3
|
+
This document defines the schema, pipeline stages, and execution flow of the **PromptShave.ai Declarative Filter DSL**.
|
|
4
|
+
|
|
5
|
+
The DSL is written in YAML (or TOML) and allows defining lightweight filters for commands that do not require deep AST or structural parsing. In addition to basic noise reduction, our DSL includes **Enterprise Compliance & DLP (Data Loss Prevention)** extensions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. DSL Schema
|
|
10
|
+
|
|
11
|
+
Each filter is declared in a YAML configuration structure:
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
# Example: c:\pshave\aicg-spec\filters\df.yaml
|
|
15
|
+
filter:
|
|
16
|
+
name: "df"
|
|
17
|
+
description: "Filters disk free space output to show only essential device rows."
|
|
18
|
+
match_command: "^df(\\s|$)"
|
|
19
|
+
strip_ansi: true
|
|
20
|
+
filter_stderr: false
|
|
21
|
+
|
|
22
|
+
# Noise Reduction
|
|
23
|
+
strip_lines_matching:
|
|
24
|
+
- "^Filesystem\\s+Size\\s+Used" # Strip headers
|
|
25
|
+
- "^tmpfs" # Strip temp filesystems
|
|
26
|
+
- "^devtmpfs"
|
|
27
|
+
- "^overlay"
|
|
28
|
+
|
|
29
|
+
keep_lines_matching: [] # If populated, only keep lines matching these regexes
|
|
30
|
+
|
|
31
|
+
replace: # Regex substitutions
|
|
32
|
+
- pattern: "\\s{2,}"
|
|
33
|
+
replacement: " " # Collapse multiple spaces to a single space
|
|
34
|
+
|
|
35
|
+
truncate_lines_at: 120 # Max character width per line
|
|
36
|
+
max_lines: 30 # Keep only the first N lines
|
|
37
|
+
tail_lines: 0 # Keep only the last N lines (applied last)
|
|
38
|
+
on_empty: "df: no physical filesystems found"
|
|
39
|
+
|
|
40
|
+
# Enterprise Security & Compliance Extensions
|
|
41
|
+
compliance:
|
|
42
|
+
redact_pii: true # Apply global API key / IP redaction profiles
|
|
43
|
+
redaction_profiles: # Domain-specific redaction profiles
|
|
44
|
+
- "credentials"
|
|
45
|
+
- "internal_hosts"
|
|
46
|
+
block_if_contains: # Hard block if output leaks extremely sensitive keywords
|
|
47
|
+
- "(?i)CONFIDENTIAL_INTERNAL_KEY_[A-Z0-9]{10,}"
|
|
48
|
+
telemetry_sync: true # Set to false to disable telemetry reporting for this sensitive command
|
|
49
|
+
allow_raw_via_env: "PSHAVE_BYPASS_DF" # Enable a custom bypass env var
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 2. Execution Pipeline Stages
|
|
55
|
+
|
|
56
|
+
When a command output is captured, it is processed through an **8-stage synchronous pipeline**:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
[Raw Command stdout/stderr]
|
|
60
|
+
|
|
|
61
|
+
v
|
|
62
|
+
Stage 1: Merge Stderr (if filter_stderr: true)
|
|
63
|
+
|
|
|
64
|
+
v
|
|
65
|
+
Stage 2: Strip ANSI Escape Sequences (if strip_ansi: true)
|
|
66
|
+
|
|
|
67
|
+
v
|
|
68
|
+
Stage 3: DLP Leak Blocker (check compliance.block_if_contains) ---> [Abort & Return Error]
|
|
69
|
+
|
|
|
70
|
+
v
|
|
71
|
+
Stage 4: Redaction Engine (apply global/profile regexes)
|
|
72
|
+
|
|
|
73
|
+
v
|
|
74
|
+
Stage 5: Regex Replacements (apply replace rules)
|
|
75
|
+
|
|
|
76
|
+
v
|
|
77
|
+
Stage 6: Line Filtering (apply strip_lines_matching and keep_lines_matching)
|
|
78
|
+
|
|
|
79
|
+
v
|
|
80
|
+
Stage 7: Truncation (apply truncate_lines_at, tail_lines, and max_lines)
|
|
81
|
+
|
|
|
82
|
+
v
|
|
83
|
+
Stage 8: Empty Check (if output is empty, return on_empty)
|
|
84
|
+
|
|
|
85
|
+
v
|
|
86
|
+
[Compressed Output]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. Core Enterprise DSL Properties
|
|
92
|
+
|
|
93
|
+
| Parameter | Type | Required | Description |
|
|
94
|
+
| :--- | :--- | :---: | :--- |
|
|
95
|
+
| `name` | string | Yes | Unique identifier for the filter. |
|
|
96
|
+
| `description` | string | Yes | Human-readable explanation. |
|
|
97
|
+
| `match_command` | regex | Yes | Regex pattern matching the command string (e.g. `^ps\s+aux`). |
|
|
98
|
+
| `strip_ansi` | boolean | No | Default `true`. Removes color codes before matching regexes. |
|
|
99
|
+
| `filter_stderr` | boolean | No | Default `false`. If true, captures stderr and merges it with stdout before processing. |
|
|
100
|
+
| `strip_lines_matching` | string[] | No | List of regex patterns. Lines matching any pattern are dropped. |
|
|
101
|
+
| `keep_lines_matching` | string[] | No | List of regex patterns. If set, only lines matching at least one pattern are kept. |
|
|
102
|
+
| `replace` | object[] | No | Array of `{ pattern: regex, replacement: string }` rules. |
|
|
103
|
+
| `truncate_lines_at` | integer | No | Maximum characters allowed per line. Longer lines are truncated with `...`. |
|
|
104
|
+
| `max_lines` | integer | No | Maximum output lines kept from the top. |
|
|
105
|
+
| `tail_lines` | integer | No | Maximum output lines kept from the bottom. |
|
|
106
|
+
| `on_empty` | string | No | String to return if output is entirely empty. |
|
|
107
|
+
| `compliance.redact_pii` | boolean | No | Default `true`. Integrates global credential/secret scanning. |
|
|
108
|
+
| `compliance.block_if_contains`| string[] | No | List of regexes that trigger a hard execution abort to prevent leaks. |
|
|
109
|
+
| `compliance.telemetry_sync` | boolean | No | Default `true`. If `false`, prevents token savings from being logged to the Hub. |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# PromptShave.ai - Cargo Toolchain Insights Specification
|
|
2
|
+
|
|
3
|
+
This document details the command optimizations, filtering criteria, and output formatting applied to **Rust/Cargo** developer tools.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. `cargo test` (Test Runner)
|
|
8
|
+
|
|
9
|
+
### Output Filtering
|
|
10
|
+
1. **Clean Test Pass Case:** If the test suite compiles and all tests pass with no failures, collapse the output to:
|
|
11
|
+
```text
|
|
12
|
+
Cargo: N tests passed (all suites clean)
|
|
13
|
+
```
|
|
14
|
+
2. **Compilation Failure:** If compilation fails, do not attempt to parse test results. Pass the compiler errors through but truncate to the first **10 compiler errors**.
|
|
15
|
+
3. **Test Failures:**
|
|
16
|
+
* Parse the output.
|
|
17
|
+
* If there are test failures, list the summary count (e.g. `Cargo: X passed, Y failed`).
|
|
18
|
+
* Extract the failed tests section (delimited by `failures:`).
|
|
19
|
+
* Limit the failures displayed to a maximum of **3 failed tests**.
|
|
20
|
+
* For each failed test, display the test path/name and the assertion message (e.g. `thread 'test_name' panicked at 'assertion failed: left == right'`). Strip CPU stack trace listings unless debug mode is explicitly set.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. `cargo clippy` & `cargo check` (Linter & Compiler Check)
|
|
25
|
+
|
|
26
|
+
### Output Filtering
|
|
27
|
+
* **Clean Code:** If clippy or check returns no warnings or errors, print:
|
|
28
|
+
```text
|
|
29
|
+
clippy: code is clean (0 warnings, 0 errors)
|
|
30
|
+
```
|
|
31
|
+
* **Lint Warnings & Compiler Errors:**
|
|
32
|
+
* Cargo compiler messages contain rich ANSI markup and multiline warnings pointing to code context.
|
|
33
|
+
* **Noise Reduction:** Strip verbose notes (`help: for further information...`, `warning: ... on by default`).
|
|
34
|
+
* Group findings by file name. For each finding, keep the file name, line/column number, error code, warning title, and the suggested fix.
|
|
35
|
+
* Limit warnings displayed to **10 warnings**. If there are more, summarize:
|
|
36
|
+
```text
|
|
37
|
+
... +N clippy warnings truncated.
|
|
38
|
+
```
|
|
39
|
+
This prevents the AI agent from getting stuck in long warning-resolution loops.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. `cargo fmt` (Formatter)
|
|
44
|
+
|
|
45
|
+
### Output Filtering
|
|
46
|
+
* **Status:** Marked as `Passthrough` in the rewrite registry. The CLI bypasses format filtering entirely and prints the raw formatter output (which is already extremely minimal).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# PromptShave.ai - Cloud Provider CLI Insights Specification
|
|
2
|
+
|
|
3
|
+
This document details the command optimizations, filtering criteria, and output formatting applied to **AWS** and **Google Cloud** CLI tools.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. `aws` CLI
|
|
8
|
+
|
|
9
|
+
### Output Filtering
|
|
10
|
+
AWS commands frequently output massive JSON structures with nested details. PromptShave parses and simplifies these outputs.
|
|
11
|
+
|
|
12
|
+
* **`aws ec2 describe-instances`:**
|
|
13
|
+
* Raw output is a massive JSON object listing networking, security group, and disk configurations for every VM.
|
|
14
|
+
* **Table Simplification:** Extract key fields and output a clean, compact markdown table:
|
|
15
|
+
| Instance ID | Type | State | Public IP | Private IP | Name Tag |
|
|
16
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
17
|
+
* Drop all security group lists, IAM profile blocks, and block device mapping objects.
|
|
18
|
+
* **`aws ecs list-tasks` / `describe-tasks`:**
|
|
19
|
+
* Simplify output to show only task ARN, status (Running/Pending/Stopped), and container definitions.
|
|
20
|
+
* **`aws s3 ls`:**
|
|
21
|
+
* Clean up double spacing and display directories/files in a compact list. Limit lists to **50 items**. If there are more, summarize the remainder (e.g., `... +142 other objects`).
|
|
22
|
+
* **`aws logs get-log-events`:**
|
|
23
|
+
* Strip verbose event metadata (`ingestionTime`, `eventNumber`).
|
|
24
|
+
* Format each event as: `[Timestamp] Message`.
|
|
25
|
+
* Collapse repeated duplicate lines and enforce a default limit of 50 log events.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. `gcloud` CLI
|
|
30
|
+
|
|
31
|
+
### Output Filtering
|
|
32
|
+
Google Cloud commands output tables or JSON objects summarizing compute resources.
|
|
33
|
+
|
|
34
|
+
* **`gcloud compute instances list`:**
|
|
35
|
+
* Parse table output. Remove internal platform flags and wide metadata columns.
|
|
36
|
+
* Output a condensed table showing: `NAME`, `ZONE`, `MACHINE_TYPE`, `PREEMPTIBLE`, `INTERNAL_IP`, `EXTERNAL_IP`, `STATUS`.
|
|
37
|
+
* **JSON Outputs:**
|
|
38
|
+
* If the user passes `--format=json`, PromptShave parses the JSON and strips nested system config parameters (like metadata keys, service accounts, license lists), returning only the key resource identifiers and state properties.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# PromptShave.ai - Docker & Kubernetes Insights Specification
|
|
2
|
+
|
|
3
|
+
This document details the command optimizations, filtering criteria, and output formatting applied to **Docker** and **Kubernetes** CLI tools.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. `docker` & `docker compose`
|
|
8
|
+
|
|
9
|
+
### Output Filtering
|
|
10
|
+
* **`docker ps` / `docker compose ps`:**
|
|
11
|
+
* Raw container lists contain extremely wide tables with columns like `PORTS`, `NAMES`, and `CREATED` that bloat token count.
|
|
12
|
+
* **Column Stripping:** Parse the table, remove the `PORTS`, `CREATED`, and `SIZE` columns.
|
|
13
|
+
* Keep only: `CONTAINER ID`, `IMAGE`, `COMMAND` (truncated to 20 chars), `STATUS`, and `NAMES`.
|
|
14
|
+
* **`docker images`:**
|
|
15
|
+
* Strip columns `IMAGE ID`, `CREATED`. Keep only `REPOSITORY`, `TAG`, and `SIZE`.
|
|
16
|
+
* **`docker logs`:**
|
|
17
|
+
* Compress log dumps. Collapse repeated consecutive logs: if a server prints `Connection refused` 200 times, collapse it to `Connection refused [x200]`.
|
|
18
|
+
* If logs exceed 100 lines, truncate the middle, displaying only the first 15 lines and the last 35 lines, with a warning: `... (X lines of logs truncated)`.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. `kubectl` (Kubernetes CLI)
|
|
23
|
+
|
|
24
|
+
### Output Filtering
|
|
25
|
+
* **`kubectl get pods` / `get services`:**
|
|
26
|
+
* Scan Pod status. If there are 50 pods running, instead of listing all 50 running pods (which are identical in status), group them:
|
|
27
|
+
```text
|
|
28
|
+
Running Pods: 48 pods (all status: Running, restarts: 0)
|
|
29
|
+
Failing Pods:
|
|
30
|
+
- pod-auth-service-xyz: Status: CrashLoopBackOff, Restarts: 14
|
|
31
|
+
- pod-payment-service-abc: Status: Pending
|
|
32
|
+
```
|
|
33
|
+
* This reduces the output by 95% while highlighting the pods that actually need the AI's attention!
|
|
34
|
+
* **`kubectl logs`:**
|
|
35
|
+
* Apply log-compression rules: strip color codes, collapse duplicate lines, and truncate to the last 50 lines unless a specific tail limit was passed by the user.
|
|
36
|
+
* **`kubectl describe <resource>`:**
|
|
37
|
+
* `kubectl describe` prints huge amounts of configuration data.
|
|
38
|
+
* **Selective Parsing:** Filter the output to preserve only key metadata fields:
|
|
39
|
+
* `Name`, `Namespace`, `Status`, `IP`, `Controlled By`.
|
|
40
|
+
* **Events Section:** Always keep the `Events` table at the bottom in full, as it contains error logs, pull failures, and scheduling warnings that explain *why* a resource is failing. Strip intermediate scheduling status checks.
|
|
41
|
+
* **`kubectl apply`:**
|
|
42
|
+
* Strip `configured` / `unchanged` lines if there are many (>5). Show only modified/created resources:
|
|
43
|
+
```text
|
|
44
|
+
kubectl: 12 resources unchanged, 1 resource created (deployment.apps/auth-service)
|
|
45
|
+
```
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# PromptShave.ai - Generic Fallback & Security Filters Specification
|
|
2
|
+
|
|
3
|
+
This document details the global filters, redaction systems, and safety thresholds applied to **all** command outputs processed by PromptShave.ai.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. ANSI Escape Code Stripping
|
|
8
|
+
Terminal outputs often contain ANSI escape sequences (e.g. `\x1B[31m` for red text, cursor repositioning codes, bold markers).
|
|
9
|
+
* **Action:** PromptShave automatically strips all ANSI escape codes from stdout and stderr before evaluating regex rules or returning the output to the AI agent.
|
|
10
|
+
* **Benefit:** Saves token budget and prevents formatting artifacts from confusing LLM parsers.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 2. PII & Secret Redaction (Data Loss Prevention)
|
|
15
|
+
To prevent accidental data leaks to external LLMs, PromptShave scans all command outputs for sensitive credentials and patterns.
|
|
16
|
+
|
|
17
|
+
### Default Redaction Targets & Regex Rules:
|
|
18
|
+
1. **API Keys / Secrets / Passwords:**
|
|
19
|
+
* **Regex:** `(?i)(api[_-]?key|secret|password|passwd|auth|token|private[_-]?key)[\s:=]+[a-zA-Z0-9_-]{16,}`
|
|
20
|
+
* **Replacement:** `[REDACTED_CREDENTIAL]`
|
|
21
|
+
2. **IPv4 Addresses:**
|
|
22
|
+
* **Regex:** `\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b`
|
|
23
|
+
* **Replacement:** `[REDACTED_IP]` (ignores standard loopback `127.0.0.1` and broad subnet masks `255.255.255.0`).
|
|
24
|
+
3. **Email Addresses:**
|
|
25
|
+
* **Regex:** `\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b`
|
|
26
|
+
* **Replacement:** `[REDACTED_EMAIL]`
|
|
27
|
+
4. **Database Connection Strings:**
|
|
28
|
+
* **Regex:** `(?i)(mongodb|postgres|postgresql|mysql|redis|sqlite):\/\/[a-zA-Z0-9_]+:[^@\s]+@[^\s]+`
|
|
29
|
+
* **Replacement:** `[REDACTED_DB_CONNECTION_STRING]`
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. Duplicate Line Collapsing (Deduplication)
|
|
34
|
+
If a script or application malfunctions (e.g., infinite loop, database reconnect failures), it may print the same error message thousands of times, crashing the LLM's context.
|
|
35
|
+
* **Mechanism:** Scan adjacent lines. If a line matches the previous line exactly:
|
|
36
|
+
* Increment a duplicate counter.
|
|
37
|
+
* Omit the duplicate line from the output.
|
|
38
|
+
* When a new line is encountered (or at the end of output), print the first occurrence of the duplicate line appended with `[xN]` (where N is the total count of occurrences).
|
|
39
|
+
* **Example:**
|
|
40
|
+
```text
|
|
41
|
+
Error: Database connection failed (timeout)
|
|
42
|
+
Error: Database connection failed (timeout)
|
|
43
|
+
... [150 times]
|
|
44
|
+
```
|
|
45
|
+
is compressed to:
|
|
46
|
+
```text
|
|
47
|
+
Error: Database connection failed (timeout) [x150]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 4. Soft and Hard Output Truncation
|
|
53
|
+
If a command produces an extremely large output that is not matched by any specialized command filter:
|
|
54
|
+
* **Soft Character Limit:** 20,000 characters (approx. 5,000 tokens).
|
|
55
|
+
* **Truncation Action:** If the output exceeds the character limit:
|
|
56
|
+
* Extract the first **50 lines** of the output (to preserve headers/initial outcomes).
|
|
57
|
+
* Extract the last **150 lines** of the output (to preserve stack traces/final outcomes).
|
|
58
|
+
* Join them with a clear, machine-parseable marker:
|
|
59
|
+
```text
|
|
60
|
+
... [PromptShave: Truncated X characters of output] ...
|
|
61
|
+
```
|
|
62
|
+
* **Exit Code Integrity:** Truncation must never alter the exit code returned by the shell command.
|