@getmarrow/mcp 3.9.101 → 3.9.103

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.
Files changed (127) hide show
  1. package/README.md +63 -29
  2. package/dist/cli.js +64 -1005
  3. package/dist/cli.js.map +1 -1
  4. package/dist/codex-plugin-pins.d.ts +19 -0
  5. package/dist/codex-plugin-pins.d.ts.map +1 -0
  6. package/dist/codex-plugin-pins.js +43 -0
  7. package/dist/codex-plugin-pins.js.map +1 -0
  8. package/dist/codex-plugins.d.ts +34 -0
  9. package/dist/codex-plugins.d.ts.map +1 -0
  10. package/dist/codex-plugins.js +240 -0
  11. package/dist/codex-plugins.js.map +1 -0
  12. package/dist/env.d.ts +2 -0
  13. package/dist/env.d.ts.map +1 -1
  14. package/dist/env.js +229 -39
  15. package/dist/env.js.map +1 -1
  16. package/dist/hook-contract.d.ts +41 -3
  17. package/dist/hook-contract.d.ts.map +1 -1
  18. package/dist/hook-contract.js +126 -18
  19. package/dist/hook-contract.js.map +1 -1
  20. package/dist/hook-pre-action.d.ts +48 -2
  21. package/dist/hook-pre-action.d.ts.map +1 -1
  22. package/dist/hook-pre-action.js +199 -23
  23. package/dist/hook-pre-action.js.map +1 -1
  24. package/dist/hook-tool-policy.d.ts +3 -3
  25. package/dist/hook-tool-policy.d.ts.map +1 -1
  26. package/dist/hook-tool-policy.js +6 -22
  27. package/dist/hook-tool-policy.js.map +1 -1
  28. package/dist/hook.d.ts +2 -2
  29. package/dist/hook.d.ts.map +1 -1
  30. package/dist/hook.js +13 -6
  31. package/dist/hook.js.map +1 -1
  32. package/dist/host-approval-state.d.ts +9 -0
  33. package/dist/host-approval-state.d.ts.map +1 -1
  34. package/dist/host-approval-state.js +4 -0
  35. package/dist/host-approval-state.js.map +1 -1
  36. package/dist/host-approval.d.ts +6 -0
  37. package/dist/host-approval.d.ts.map +1 -1
  38. package/dist/host-approval.js +3 -1
  39. package/dist/host-approval.js.map +1 -1
  40. package/dist/host-session.d.ts +11 -0
  41. package/dist/host-session.d.ts.map +1 -1
  42. package/dist/host-session.js +49 -0
  43. package/dist/host-session.js.map +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +27 -19
  46. package/dist/index.js.map +1 -1
  47. package/dist/normalized-action.d.ts +29 -6
  48. package/dist/normalized-action.d.ts.map +1 -1
  49. package/dist/normalized-action.js +497 -103
  50. package/dist/normalized-action.js.map +1 -1
  51. package/dist/own-server-identity.d.ts +123 -0
  52. package/dist/own-server-identity.d.ts.map +1 -0
  53. package/dist/own-server-identity.js +1052 -0
  54. package/dist/own-server-identity.js.map +1 -0
  55. package/dist/own-tool.d.ts +87 -0
  56. package/dist/own-tool.d.ts.map +1 -0
  57. package/dist/own-tool.js +169 -0
  58. package/dist/own-tool.js.map +1 -0
  59. package/dist/redact.d.ts +23 -0
  60. package/dist/redact.d.ts.map +1 -1
  61. package/dist/redact.js +181 -8
  62. package/dist/redact.js.map +1 -1
  63. package/dist/seatbelt/classifier-pin.d.ts +15 -0
  64. package/dist/seatbelt/classifier-pin.d.ts.map +1 -0
  65. package/dist/seatbelt/classifier-pin.js +26 -0
  66. package/dist/seatbelt/classifier-pin.js.map +1 -0
  67. package/dist/seatbelt/guards.d.ts +10 -0
  68. package/dist/seatbelt/guards.d.ts.map +1 -0
  69. package/dist/seatbelt/guards.js +509 -0
  70. package/dist/seatbelt/guards.js.map +1 -0
  71. package/dist/seatbelt/hook.d.ts +72 -0
  72. package/dist/seatbelt/hook.d.ts.map +1 -0
  73. package/dist/seatbelt/hook.js +362 -0
  74. package/dist/seatbelt/hook.js.map +1 -0
  75. package/dist/seatbelt/longopts.d.ts +68 -0
  76. package/dist/seatbelt/longopts.d.ts.map +1 -0
  77. package/dist/seatbelt/longopts.js +377 -0
  78. package/dist/seatbelt/longopts.js.map +1 -0
  79. package/dist/seatbelt/mapper.d.ts +83 -0
  80. package/dist/seatbelt/mapper.d.ts.map +1 -0
  81. package/dist/seatbelt/mapper.js +10248 -0
  82. package/dist/seatbelt/mapper.js.map +1 -0
  83. package/dist/seatbelt/record.d.ts +94 -0
  84. package/dist/seatbelt/record.d.ts.map +1 -0
  85. package/dist/seatbelt/record.js +776 -0
  86. package/dist/seatbelt/record.js.map +1 -0
  87. package/dist/seatbelt/tables.d.ts +82 -0
  88. package/dist/seatbelt/tables.d.ts.map +1 -0
  89. package/dist/seatbelt/tables.js +359 -0
  90. package/dist/seatbelt/tables.js.map +1 -0
  91. package/dist/seatbelt-deploy.d.ts +100 -0
  92. package/dist/seatbelt-deploy.d.ts.map +1 -0
  93. package/dist/seatbelt-deploy.js +393 -0
  94. package/dist/seatbelt-deploy.js.map +1 -0
  95. package/dist/seatbelt-fs.d.ts +30 -0
  96. package/dist/seatbelt-fs.d.ts.map +1 -0
  97. package/dist/seatbelt-fs.js +94 -0
  98. package/dist/seatbelt-fs.js.map +1 -0
  99. package/dist/seatbelt-git.d.ts +212 -0
  100. package/dist/seatbelt-git.d.ts.map +1 -0
  101. package/dist/seatbelt-git.js +844 -0
  102. package/dist/seatbelt-git.js.map +1 -0
  103. package/dist/seatbelt-mode.d.ts +77 -0
  104. package/dist/seatbelt-mode.d.ts.map +1 -0
  105. package/dist/seatbelt-mode.js +496 -0
  106. package/dist/seatbelt-mode.js.map +1 -0
  107. package/dist/seatbelt-path.d.ts +123 -0
  108. package/dist/seatbelt-path.d.ts.map +1 -0
  109. package/dist/seatbelt-path.js +482 -0
  110. package/dist/seatbelt-path.js.map +1 -0
  111. package/dist/seatbelt-scripts.d.ts +109 -0
  112. package/dist/seatbelt-scripts.d.ts.map +1 -0
  113. package/dist/seatbelt-scripts.js +1060 -0
  114. package/dist/seatbelt-scripts.js.map +1 -0
  115. package/dist/tool-catalog.d.ts +6852 -0
  116. package/dist/tool-catalog.d.ts.map +1 -0
  117. package/dist/tool-catalog.js +999 -0
  118. package/dist/tool-catalog.js.map +1 -0
  119. package/dist/types.d.ts +2 -1
  120. package/dist/types.d.ts.map +1 -1
  121. package/package.json +2 -1
  122. package/server.json +10 -3
  123. package/vendor/classifier/MANIFEST.json +25 -0
  124. package/vendor/classifier/classifier.js +1356 -0
  125. package/vendor/classifier/policy-baseline.js +187 -0
  126. package/vendor/classifier/redact.js +59 -0
  127. package/vendor/classifier/shell-parse.js +455 -0
@@ -0,0 +1,377 @@
1
+ "use strict";
2
+ // Fixed lists of the long options that the seatbelt parsers understand, in full spelling (patch round 3).
3
+ //
4
+ // Why: GNU tools (and git, curl and wget) accept a long option shortened to any unique prefix, so a parser that
5
+ // only knows the full spelling can misread what a command writes: `cp --target=<dir> src` writes into <dir>,
6
+ // `git reset --har` resets the working tree, `git grep --open-f=<cmd>` runs <cmd>. The parsers therefore never
7
+ // read a long option by prefix. Each parser has a list below; a long option counts as one of them only on an exact
8
+ // match (with `=value` only where the option takes one). Any other long option (shortened, unknown, ambiguous)
9
+ // makes that parser give its strictest answer: a writer treats every operand as a destination, a reader is not a
10
+ // reader (the operand rule applies), a git read-only or index-only check says "not read-only", and an option that
11
+ // would loosen an answer never counts unless it is spelled exactly.
12
+ //
13
+ // The lists were generated once from the tools' own --help output on a GNU/Linux machine (GNU coreutils 9.4,
14
+ // tar 1.35, sed 4.9, grep 3.11, diffutils, curl 8.5, wget 1.21, rsync 3.2.7, jq, ripgrep 15, git 2.43), then
15
+ // reviewed by hand: an option that writes or runs something is not on a reader's list (less --log-file,
16
+ // rg --pre, bat --pager, yq --inplace, file --compile, prettier --write). Nothing is read from the machine at
17
+ // run time. Options a list does not hold stay strict, which only matters when a command also names a protected
18
+ // path.
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.FIND_LONG = exports.GIT_RESTORE_LONG = exports.GIT_RM_LONG = exports.GIT_RESET_LONG = exports.GIT_GLOBAL_LONG = exports.GIT_READ_LONG = exports.DOAS_LONG = exports.SUDO_LONG = exports.ENV_LONG = exports.ZIP_LONG = exports.PRETTIER_LONG = exports.TREE_LONG = exports.RG_LONG = exports.MORE_LONG = exports.LESS_LONG = exports.BAT_LONG = exports.YQ_LONG = exports.JQ_LONG = exports.CHECKSUM_LONG = exports.GREP_LONG = exports.FILE_LONG = exports.CMP_LONG = exports.DIFF_LONG = exports.DU_LONG = exports.LS_LONG = exports.STAT_LONG = exports.WC_LONG = exports.TAIL_LONG = exports.HEAD_LONG = exports.CAT_LONG = exports.SCP_LONG = exports.RSYNC_LONG = exports.WGET_LONG = exports.CURL_LONG = exports.SED_LONG = exports.TAR_LONG = exports.INSTALL_LONG = exports.LN_LONG = exports.MV_LONG = exports.CP_LONG = exports.NO_LONG = void 0;
21
+ exports.longList = longList;
22
+ exports.unknownLongAll = unknownLongAll;
23
+ exports.unknownLong = unknownLong;
24
+ exports.takesNextWord = takesNextWord;
25
+ exports.longValue = longValue;
26
+ /**
27
+ * Builds a list from text. Tokens are separated by spaces: `name` (no value), `name=` (a value), `name[=]` (an
28
+ * optional value), `name~` (any form). A leading `[no-]` adds the `no-name` form (no value).
29
+ */
30
+ function longList(text) {
31
+ const map = new Map();
32
+ for (const raw of text.split(/\s+/)) {
33
+ if (raw === '')
34
+ continue;
35
+ let token = raw;
36
+ const negated = token.startsWith('[no-]');
37
+ if (negated)
38
+ token = token.slice(5);
39
+ let mode = 'n';
40
+ if (token.endsWith('[=]')) {
41
+ mode = 'o';
42
+ token = token.slice(0, -3);
43
+ }
44
+ else if (token.endsWith('=')) {
45
+ mode = 'v';
46
+ token = token.slice(0, -1);
47
+ }
48
+ else if (token.endsWith('~')) {
49
+ mode = 'a';
50
+ token = token.slice(0, -1);
51
+ }
52
+ map.set(token, mode);
53
+ if (negated)
54
+ map.set(`no-${token}`, 'n');
55
+ }
56
+ return map;
57
+ }
58
+ /**
59
+ * The indexes of the long options in `words` that are not on `list` (exact name; `=value` only where the option
60
+ * takes one); empty when every long option is on it. A bare `--` ends the options when `honourEnd` is set. A value
61
+ * word that belongs to a listed option (`--name value`) is skipped. `dashes` is 2 for `--name`; find writes its
62
+ * options as `-name` (1), where `=` is never part of an option. A word with no readable text is not a long option here
63
+ * (each parser already treats it on its own).
64
+ */
65
+ function unknownLongAll(words, list, dashes = 2, honourEnd = true) {
66
+ const lead = '-'.repeat(dashes);
67
+ const found = [];
68
+ for (let i = 0; i < words.length; i += 1) {
69
+ const t = words[i].text;
70
+ if (t === null)
71
+ continue;
72
+ if (honourEnd && t === '--')
73
+ break;
74
+ if (!t.startsWith(lead) || t.length <= dashes)
75
+ continue;
76
+ const eq = dashes === 2 ? t.indexOf('=') : -1;
77
+ const name = eq === -1 ? t.slice(dashes) : t.slice(dashes, eq);
78
+ const mode = list.get(name);
79
+ if (mode === undefined || (eq !== -1 && mode === 'n')) {
80
+ found.push(i);
81
+ continue;
82
+ }
83
+ if (eq === -1 && mode === 'v')
84
+ i += 1;
85
+ }
86
+ return found;
87
+ }
88
+ /** The index of the first long option that is not on `list` (see unknownLongAll), or -1. */
89
+ function unknownLong(words, list, dashes = 2, honourEnd = true) {
90
+ const found = unknownLongAll(words, list, dashes, honourEnd);
91
+ return found.length === 0 ? -1 : found[0];
92
+ }
93
+ /** True for a word that is exactly `--name` of a listed option that takes its value as the next word. */
94
+ function takesNextWord(text, list) {
95
+ return text.startsWith('--') && !text.includes('=') && list.get(text.slice(2)) === 'v';
96
+ }
97
+ /** The text after `=` of a `--name=value` word, or null when there is none. */
98
+ function longValue(text) {
99
+ const eq = text.indexOf('=');
100
+ return text.startsWith('--') && eq !== -1 ? text.slice(eq + 1) : null;
101
+ }
102
+ exports.NO_LONG = longList('');
103
+ exports.CP_LONG = longList('archive attributes-only backup[=] context[=] copy-contents debug dereference force help interactive link ' +
104
+ 'no-clobber no-dereference no-preserve= no-target-directory one-file-system parents preserve[=] recursive ' +
105
+ 'reflink[=] remove-destination sparse= strip-trailing-slashes suffix= symbolic-link target-directory= ' +
106
+ 'update[=] verbose version');
107
+ exports.MV_LONG = longList('backup[=] context debug force help interactive no-clobber no-copy no-target-directory strip-trailing-slashes ' +
108
+ 'suffix= target-directory= update[=] verbose version');
109
+ exports.LN_LONG = longList('backup[=] directory force help interactive logical no-dereference no-target-directory physical relative ' +
110
+ 'suffix= symbolic target-directory= verbose version');
111
+ exports.INSTALL_LONG = longList('backup[=] compare context[=] debug directory group= help mode= no-target-directory owner= preserve-context ' +
112
+ 'preserve-timestamps strip strip-program= suffix= target-directory= verbose version');
113
+ exports.TAR_LONG = longList('absolute-names acls add-file= after-date= anchored append atime-preserve[=] auto-compress backup[=] ' +
114
+ 'block-number blocking-factor= bzip2 catenate check-device check-links checkpoint[=] checkpoint-action= ' +
115
+ 'clamp-mtime compare compress concatenate confirmation create delay-directory-restore delete dereference diff ' +
116
+ 'directory= exclude= exclude-backups exclude-caches exclude-caches-all exclude-caches-under exclude-from= ' +
117
+ 'exclude-ignore= exclude-ignore-recursive= exclude-tag= exclude-tag-all= exclude-tag-under= exclude-vcs ' +
118
+ 'exclude-vcs-ignores extract file= files-from= force-local format= full-time get group= group-map= gunzip ' +
119
+ 'gzip hard-dereference help hole-detection= ignore-case ignore-command-error ignore-failed-read ignore-zeros ' +
120
+ 'incremental index-file= info-script= interactive keep-directory-symlink keep-newer-files keep-old-files ' +
121
+ 'label= level= list listed-incremental= lzip lzma lzop mode= mtime= multi-volume new-volume-script= newer= ' +
122
+ 'newer-mtime= no-acls no-anchored no-auto-compress no-check-device no-delay-directory-restore no-ignore-case ' +
123
+ 'no-ignore-command-error no-null no-overwrite-dir no-quote-chars= no-recursion no-same-owner ' +
124
+ 'no-same-permissions no-seek no-selinux no-unquote no-verbatim-files-from no-wildcards ' +
125
+ 'no-wildcards-match-slash no-xattrs null numeric-owner occurrence[=] old-archive one-file-system ' +
126
+ 'one-top-level[=] overwrite overwrite-dir owner= owner-map= pax-option= portability posix preserve-order ' +
127
+ 'preserve-permissions quote-chars= quoting-style= read-full-records record-size= recursion recursive-unlink ' +
128
+ 'remove-files restrict rmt-command= rsh-command= same-order same-owner same-permissions seek selinux ' +
129
+ 'show-defaults show-omitted-dirs show-snapshot-field-ranges show-stored-names show-transformed-names ' +
130
+ 'skip-old-files sort= sparse sparse-version= starting-file= strip-components= suffix= tape-length= test-label ' +
131
+ 'to-command= to-stdout totals[=] touch transform= uncompress ungzip unlink-first unquote update usage ' +
132
+ 'use-compress-program= utc verbatim-files-from verbose verify version volno-file= warning= wildcards ' +
133
+ 'wildcards-match-slash xattrs xattrs-exclude= xattrs-include= xform= xz zstd');
134
+ exports.SED_LONG = longList('debug expression= file= follow-symlinks help in-place[=] line-length= null-data posix quiet regexp-extended ' +
135
+ 'sandbox separate silent unbuffered version');
136
+ exports.CURL_LONG = longList('abstract-unix-socket~ alt-svc~ anyauth~ append~ aws-sigv4~ basic~ ca-native~ cacert~ capath~ cert~ ' +
137
+ 'cert-status~ cert-type~ ciphers~ compressed~ compressed-ssh~ config~ connect-timeout~ connect-to~ ' +
138
+ 'continue-at~ cookie~ cookie-jar~ create-dirs~ create-file-mode~ crlf~ crlfile~ curves~ data~ data-ascii~ ' +
139
+ 'data-binary~ data-raw~ data-urlencode~ delegation~ digest~ disable~ disable-eprt~ disable-epsv~ ' +
140
+ 'disallow-username-in-url~ dns-interface~ dns-ipv4-addr~ dns-ipv6-addr~ dns-servers~ doh-cert-status~ ' +
141
+ 'doh-insecure~ doh-url~ dump-header~ egd-file~ engine~ etag-compare~ etag-save~ expect100-timeout~ fail~ ' +
142
+ 'fail-early~ fail-with-body~ false-start~ form~ form-escape~ form-string~ ftp-account~ ' +
143
+ 'ftp-alternative-to-user~ ftp-create-dirs~ ftp-method~ ftp-pasv~ ftp-port~ ftp-pret~ ftp-skip-pasv-ip~ ' +
144
+ 'ftp-ssl-ccc~ ftp-ssl-ccc-mode~ ftp-ssl-control~ get~ globoff~ happy-eyeballs-timeout-ms~ haproxy-clientip~ ' +
145
+ 'haproxy-protocol~ head~ header~ help~ hostpubmd5~ hostpubsha256~ hsts~ http0.9~ http1.0~ http1.1~ http2~ ' +
146
+ 'http2-prior-knowledge~ http3~ http3-only~ ignore-content-length~ include~ insecure~ interface~ ipfs-gateway~ ' +
147
+ 'ipv4~ ipv6~ json~ junk-session-cookies~ keepalive-time~ key~ key-type~ krb~ libcurl~ limit-rate~ list-only~ ' +
148
+ 'local-port~ location~ location-trusted~ login-options~ mail-auth~ mail-from~ mail-rcpt~ ' +
149
+ 'mail-rcpt-allowfails~ manual~ max-filesize~ max-redirs~ max-time~ metalink~ negotiate~ netrc~ netrc-file~ ' +
150
+ 'netrc-optional~ next~ no-alpn~ no-buffer~ no-clobber~ no-keepalive~ no-npn~ no-progress-meter~ no-sessionid~ ' +
151
+ 'noproxy~ ntlm~ ntlm-wb~ oauth2-bearer~ output~ output-dir~ parallel~ parallel-immediate~ parallel-max~ pass~ ' +
152
+ 'path-as-is~ pinnedpubkey~ post301~ post302~ post303~ preproxy~ progress-bar~ proto~ proto-default~ ' +
153
+ 'proto-redir~ proxy~ proxy-anyauth~ proxy-basic~ proxy-ca-native~ proxy-cacert~ proxy-capath~ proxy-cert~ ' +
154
+ 'proxy-cert-type~ proxy-ciphers~ proxy-crlfile~ proxy-digest~ proxy-header~ proxy-http2~ proxy-insecure~ ' +
155
+ 'proxy-key~ proxy-key-type~ proxy-negotiate~ proxy-ntlm~ proxy-pass~ proxy-pinnedpubkey~ proxy-service-name~ ' +
156
+ 'proxy-ssl-allow-beast~ proxy-ssl-auto-client-cert~ proxy-tls13-ciphers~ proxy-tlsauthtype~ ' +
157
+ 'proxy-tlspassword~ proxy-tlsuser~ proxy-tlsv1~ proxy-user~ proxy1.0~ proxytunnel~ pubkey~ quote~ ' +
158
+ 'random-file~ range~ rate~ raw~ referer~ remote-header-name~ remote-name~ remote-name-all~ remote-time~ ' +
159
+ 'remove-on-error~ request~ request-target~ resolve~ retry~ retry-all-errors~ retry-connrefused~ retry-delay~ ' +
160
+ 'retry-max-time~ sasl-authzid~ sasl-ir~ service-name~ show-error~ silent~ socks4~ socks4a~ socks5~ ' +
161
+ 'socks5-basic~ socks5-gssapi~ socks5-gssapi-nec~ socks5-gssapi-service~ socks5-hostname~ speed-limit~ ' +
162
+ 'speed-time~ ssl~ ssl-allow-beast~ ssl-auto-client-cert~ ssl-no-revoke~ ssl-reqd~ ssl-revoke-best-effort~ ' +
163
+ 'sslv2~ sslv3~ stderr~ styled-output~ suppress-connect-headers~ tcp-fastopen~ tcp-nodelay~ telnet-option~ ' +
164
+ 'tftp-blksize~ tftp-no-options~ time-cond~ tls-max~ tls13-ciphers~ tlsauthtype~ tlspassword~ tlsuser~ tlsv1~ ' +
165
+ 'tlsv1.0~ tlsv1.1~ tlsv1.2~ tlsv1.3~ tr-encoding~ trace~ trace-ascii~ trace-config~ trace-ids~ trace-time~ ' +
166
+ 'unix-socket~ upload-file~ url~ url-query~ use-ascii~ user~ user-agent~ variable~ verbose~ version~ ' +
167
+ 'write-out~ xattr~');
168
+ exports.WGET_LONG = longList('accept~ accept-regex~ adjust-extension~ append-output~ ask-password~ auth-no-challenge~ background~ ' +
169
+ 'backup-converted~ backups~ base~ bind-address~ body-data~ body-file~ ca-certificate~ ca-directory~ ' +
170
+ 'certificate~ certificate-type~ ciphers~ compression~ config~ connect-timeout~ content-disposition~ ' +
171
+ 'content-on-error~ continue~ convert-file-only~ convert-links~ crl-file~ cut-dirs~ debug~ default-page~ ' +
172
+ 'delete-after~ directory-prefix~ dns-timeout~ domains~ exclude-directories~ exclude-domains~ execute~ ' +
173
+ 'follow-ftp~ follow-tags~ force-directories~ force-html~ ftp-password~ ftp-user~ ftps-clear-data-connection~ ' +
174
+ 'ftps-fallback-to-ftp~ ftps-implicit~ ftps-resume-ssl~ header~ help~ hsts-file~ http-password~ http-user~ ' +
175
+ 'https-only~ ignore-case~ ignore-length~ ignore-tags~ include-directories~ inet4-only~ inet6-only~ ' +
176
+ 'input-file~ keep-session-cookies~ level~ limit-rate~ load-cookies~ local-encoding~ max-redirect~ method~ ' +
177
+ 'mirror~ no-cache~ no-check-certificate~ no-clobber~ no-config~ no-cookies~ no-directories~ no-dns-cache~ ' +
178
+ 'no-glob~ no-host-directories~ no-hsts~ no-http-keep-alive~ no-if-modified-since~ no-iri~ no-netrc~ ' +
179
+ 'no-parent~ no-passive-ftp~ no-proxy~ no-remove-listing~ no-use-server-timestamps~ no-verbose~ ' +
180
+ 'no-warc-compression~ no-warc-digests~ no-warc-keep-log~ output-document~ output-file~ page-requisites~ ' +
181
+ 'password~ pinnedpubkey~ post-data~ post-file~ prefer-family~ preserve-permissions~ private-key~ ' +
182
+ 'private-key-type~ progress~ protocol-directories~ proxy-password~ proxy-user~ quiet~ quota~ random-file~ ' +
183
+ 'random-wait~ read-timeout~ recursive~ referer~ regex-type~ reject~ reject-regex~ rejected-log~ relative~ ' +
184
+ 'remote-encoding~ report-speed~ restrict-file-names~ retr-symlinks~ retry-connrefused~ retry-on-host-error~ ' +
185
+ 'retry-on-http-error~ save-cookies~ save-headers~ secure-protocol~ server-response~ show-progress~ ' +
186
+ 'span-hosts~ spider~ start-pos~ strict-comments~ timeout~ timestamping~ tries~ trust-server-names~ unlink~ ' +
187
+ 'use-askpass~ user~ user-agent~ verbose~ version~ wait~ waitretry~ warc-cdx~ warc-dedup~ warc-file~ ' +
188
+ 'warc-header~ warc-max-size~ warc-tempdir~ xattr~');
189
+ exports.RSYNC_LONG = longList('8-bit-output~ acls~ address~ append~ append-verify~ archive~ atimes~ backup~ backup-dir~ block-size~ ' +
190
+ 'blocking-io~ bwlimit~ checksum~ checksum-choice~ checksum-seed~ chmod~ chown~ compare-dest~ compress~ ' +
191
+ 'compress-choice~ compress-level~ contimeout~ copy-as~ copy-dest~ copy-devices~ copy-dirlinks~ copy-links~ ' +
192
+ 'copy-unsafe-links~ crtimes~ cvs-exclude~ debug~ del~ delay-updates~ delete~ delete-after~ delete-before~ ' +
193
+ 'delete-delay~ delete-during~ delete-excluded~ delete-missing-args~ devices~ dirs~ dry-run~ early-input~ ' +
194
+ 'exclude~ exclude-from~ executability~ existing~ fake-super~ files-from~ filter~ force~ from0~ fsync~ fuzzy~ ' +
195
+ 'group~ groupmap~ hard-links~ help~ human-readable~ iconv~ ignore-errors~ ignore-existing~ ' +
196
+ 'ignore-missing-args~ ignore-times~ include~ include-from~ info~ inplace~ ipv4~ ipv6~ itemize-changes~ ' +
197
+ 'keep-dirlinks~ link-dest~ links~ list-only~ log-file~ log-file-format~ max-alloc~ max-delete~ max-size~ ' +
198
+ 'min-size~ mkpath~ modify-window~ munge-links~ no-implied-dirs~ no-motd~ numeric-ids~ old-args~ old-d~ ' +
199
+ 'old-dirs~ omit-dir-times~ omit-link-times~ one-file-system~ only-write-batch~ open-noatime~ out-format~ ' +
200
+ 'outbuf~ owner~ partial~ partial-dir~ password-file~ perms~ port~ preallocate~ progress~ protocol~ ' +
201
+ 'prune-empty-dirs~ quiet~ read-batch~ recursive~ relative~ remote-option~ remove-source-files~ rsh~ ' +
202
+ 'rsync-path~ safe-links~ secluded-args~ size-only~ skip-compress~ sockopts~ sparse~ specials~ stats~ stderr~ ' +
203
+ 'stop-after~ stop-at~ suffix~ super~ temp-dir~ timeout~ times~ trust-sender~ update~ usermap~ verbose~ ' +
204
+ 'version~ whole-file~ write-batch~ write-devices~ xattrs~');
205
+ exports.SCP_LONG = longList('');
206
+ exports.CAT_LONG = longList('help number number-nonblank show-all show-ends show-nonprinting show-tabs squeeze-blank version');
207
+ exports.HEAD_LONG = longList('bytes= help lines= quiet silent verbose version zero-terminated');
208
+ exports.TAIL_LONG = longList('bytes= follow[=] help lines= max-unchanged-stats= pid= quiet retry silent sleep-interval= verbose version ' +
209
+ 'zero-terminated');
210
+ exports.WC_LONG = longList('bytes chars files0-from= help lines max-line-length total= version words');
211
+ exports.STAT_LONG = longList('cached= dereference file-system format= help printf= terse version');
212
+ exports.LS_LONG = longList('all almost-all author block-size= classify[=] color[=] context dereference dereference-command-line ' +
213
+ 'dereference-command-line-symlink-to-dir directory dired escape file-type format= full-time ' +
214
+ 'group-directories-first help hide= hide-control-chars human-readable hyperlink[=] ignore= ignore-backups ' +
215
+ 'indicator-style= inode kibibytes literal no-group numeric-uid-gid quote-name quoting-style= recursive ' +
216
+ 'reverse show-control-chars si size sort= tabsize= time= time-style= version width= zero');
217
+ exports.DU_LONG = longList('all apparent-size block-size= bytes count-links dereference dereference-args exclude= exclude-from= ' +
218
+ 'files0-from= help human-readable inodes max-depth= no-dereference null one-file-system separate-dirs si ' +
219
+ 'summarize threshold= time= time-style= total version');
220
+ exports.DIFF_LONG = longList('brief changed-group-format= color[=] context[=] ed exclude= exclude-from= expand-tabs from-file= help ' +
221
+ 'horizon-lines= ifdef= ignore-all-space ignore-blank-lines ignore-case ignore-file-name-case ' +
222
+ 'ignore-matching-lines= ignore-space-change ignore-tab-expansion ignore-trailing-space initial-tab label= ' +
223
+ 'left-column line-format= minimal new-file new-group-format= new-line-format= no-dereference ' +
224
+ 'no-ignore-file-name-case normal old-group-format= old-line-format= paginate palette= rcs recursive ' +
225
+ 'report-identical-files show-c-function show-function-line= side-by-side speed-large-files starting-file= ' +
226
+ 'strip-trailing-cr suppress-blank-empty suppress-common-lines tabsize= text to-file= unchanged-group-format= ' +
227
+ 'unchanged-line-format= unidirectional-new-file unified[=] version width=');
228
+ exports.CMP_LONG = longList('bytes= help ignore-initial= print-bytes quiet silent verbose version');
229
+ exports.FILE_LONG = longList('apple brief checking-printout debug dereference exclude= exclude-quiet= extension files-from= help ' +
230
+ 'keep-going list magic-file= mime mime-encoding mime-type no-buffer no-dereference no-pad no-sandbox ' +
231
+ 'parameter preserve-date print0 raw separator= special-files uncompress uncompress-noreport version');
232
+ exports.GREP_LONG = longList('after-context= basic-regexp before-context= binary binary-files= byte-offset color[=] colour[=] context= ' +
233
+ 'count dereference-recursive devices= directories= exclude= exclude-dir= exclude-from= extended-regexp file= ' +
234
+ 'files-with-matches files-without-match fixed-strings group-separator= help ignore-case include= initial-tab ' +
235
+ 'invert-match label= line-buffered line-number line-regexp max-count= no-filename no-group-separator ' +
236
+ 'no-ignore-case no-messages null null-data only-matching perl-regexp quiet recursive regexp= silent text ' +
237
+ 'version with-filename word-regexp');
238
+ exports.CHECKSUM_LONG = longList('algorithm= base64 binary check debug help ignore-missing length= portable quiet raw status strict tag text ' +
239
+ 'untagged version warn zero');
240
+ exports.JQ_LONG = longList('arg argjson args ascii-output build-configuration color-output compact-output exit-status from-file help ' +
241
+ 'indent join-output jsonargs library-path= monochrome-output null-input raw-input raw-output raw-output0 ' +
242
+ 'rawfile seq slurp slurpfile sort-keys stream stream-errors tab unbuffered version');
243
+ exports.YQ_LONG = longList('output-format= input-format= indent= prettyPrint colors no-colors unwrapScalar no-doc null-input exit-status ' +
244
+ 'verbose version help nul-output yaml-output yaml-roundtrip xml-output toml-output width= compact-output ' +
245
+ 'raw-output join-output slurp sort-keys tab arg= argjson= raw-input ascii-output csv-auto-parse ' +
246
+ 'tsv-auto-parse csv-separator=');
247
+ exports.BAT_LONG = longList('language= style= theme= color= decorations= paging= plain number show-all line-range= highlight-line= tabs= ' +
248
+ 'wrap= terminal-width= italic-text= force-colorization file-name= diff diff-context= list-languages ' +
249
+ 'list-themes map-syntax= ignored-suffix= nonprintable-notation= unbuffered strip-ansi= squeeze-blank ' +
250
+ 'squeeze-limit= binary= no-config no-custom-assets help version');
251
+ exports.LESS_LONG = longList('quit-at-eof QUIT-AT-EOF quit-if-one-screen quiet silent QUIET SILENT raw-control-chars RAW-CONTROL-CHARS ' +
252
+ 'chop-long-lines line-numbers LINE-NUMBERS ignore-case IGNORE-CASE no-init no-keypad squeeze-blank-lines ' +
253
+ 'hilite-search HILITE-SEARCH long-prompt LONG-PROMPT status-column tilde incsearch use-color jump-target= ' +
254
+ 'tabs= shift= pattern= prompt= tag= follow-name redraw-on-quit mouse MOUSE wheel-lines= version help');
255
+ exports.MORE_LONG = longList('silent logical no-pause print-over clean-print squeeze plain lines= number= help version');
256
+ exports.RG_LONG = longList('after-context= auto-hybrid-regex before-context= binary block-buffered byte-offset case-sensitive color= ' +
257
+ 'colors= column context= context-separator= count count-matches crlf debug dfa-size-limit= encoding= engine= ' +
258
+ 'field-context-separator= field-match-separator= file= files files-with-matches files-without-match ' +
259
+ 'fixed-strings follow generate= glob= glob-case-insensitive heading help hidden hyperlink-format= iglob= ' +
260
+ 'ignore-case ignore-file= ignore-file-case-insensitive include-zero invert-match json line-buffered ' +
261
+ 'line-number line-regexp max-columns= max-columns-preview max-count= max-depth= max-filesize= mmap multiline ' +
262
+ 'multiline-dotall no-config no-filename no-ignore no-ignore-dot no-ignore-exclude no-ignore-files ' +
263
+ 'no-ignore-global no-ignore-messages no-ignore-parent no-ignore-vcs no-line-number no-messages ' +
264
+ 'no-pcre2-unicode no-require-git no-unicode null null-data one-file-system only-matching passthru ' +
265
+ 'path-separator= pcre2 pcre2-version pretty quiet regex-size-limit= regexp= replace= search-zip smart-case ' +
266
+ 'sort= sort-files sortr= stats stop-on-nonmatch text threads= trace trim type= type-add= type-clear= ' +
267
+ 'type-list type-not= unrestricted version vimgrep with-filename word-regexp no-heading no-hidden no-follow ' +
268
+ 'no-mmap no-multiline no-stats no-trim no-column no-json no-search-zip no-binary no-crlf no-fixed-strings ' +
269
+ 'no-invert-match no-line-buffered no-one-file-system no-sort-files no-text no-block-buffered no-byte-offset ' +
270
+ 'no-context-separator no-encoding no-include-zero no-ignore-file-case-insensitive no-glob-case-insensitive ' +
271
+ 'no-max-columns-preview no-auto-hybrid-regex no-multiline-dotall no-pcre2 messages unicode ignore-vcs ' +
272
+ 'ignore-dot ignore-exclude ignore-files ignore-global ignore-messages ignore-parent require-git pcre2-unicode ' +
273
+ 'print0 maxdepth ignore passthrough');
274
+ exports.TREE_LONG = longList('help version inodes device noreport nolinks dirsfirst filesfirst charset= filelimit= timefmt= sort= fromfile ' +
275
+ 'fromtabfile info gitignore gitfile= ignore-case matchdirs metafirst prune du si hintro= houtro= opt-toggle');
276
+ exports.PRETTIER_LONG = longList('check list-different help version ignore-unknown no-color color no-editorconfig no-config ' +
277
+ 'no-error-on-unmatched-pattern ignore-path= log-level= stdin-filepath= parser= print-width= tab-width= ' +
278
+ 'use-tabs no-use-tabs semi no-semi single-quote no-single-quote jsx-single-quote no-jsx-single-quote ' +
279
+ 'quote-props= trailing-comma= bracket-spacing no-bracket-spacing bracket-same-line no-bracket-same-line ' +
280
+ 'arrow-parens= prose-wrap= html-whitespace-sensitivity= vue-indent-script-and-style ' +
281
+ 'no-vue-indent-script-and-style end-of-line= embedded-language-formatting= single-attribute-per-line ' +
282
+ 'no-single-attribute-per-line insert-pragma require-pragma range-start= range-end= cache no-cache ' +
283
+ 'cache-strategy= with-node-modules experimental-ternaries object-wrap= experimental-operator-position=');
284
+ exports.ZIP_LONG = longList('recurse-paths quiet verbose junk-paths no-dir-entries symlinks exclude= include= freshen update grow ' +
285
+ 'filesync display-counts display-dots output-file= temp-path= help version');
286
+ // The wrappers that can change the working folder of the command they run (patch round 4). Full spellings from each
287
+ // tool's own documentation: GNU env 9.4 (`env --help`), sudo 1.9 (`sudo --help` and the manual), OpenBSD doas (it has
288
+ // no long option at all). A long option that is not on a list could be a chdir option (GNU tools read a unique
289
+ // prefix, `env --chd=DIR`), so the working folder is unknown then.
290
+ exports.ENV_LONG = longList('ignore-environment null unset= chdir= split-string= block-signal[=] default-signal[=] ignore-signal[=] list-signal-handling debug help version');
291
+ exports.SUDO_LONG = longList('askpass bell preserve-env[=] set-home remove-timestamp no-update preserve-groups stdin version background edit help login reset-timestamp ' +
292
+ 'list non-interactive shell validate close-from= chdir= chroot= command-timeout= other-user= group= host= prompt= role= type= user=');
293
+ exports.DOAS_LONG = longList('');
294
+ exports.GIT_READ_LONG = longList('abbrev~ abbrev-commit~ abbrev-ref~ absolute-git-dir~ after~ after-context~ ahead-behind~ aliases~ all~ ' +
295
+ 'all-match~ allow-unknown-type~ alternate-refs~ always~ amend~ ancestry-path~ anchored~ and~ annotate-stdin~ ' +
296
+ 'author~ author-date-order~ base~ basic-regexp~ batch~ batch-all-objects~ batch-check~ batch-command~ before~ ' +
297
+ 'before-context~ binary~ bisect~ bisect-all~ bisect-vars~ boundary~ branch~ branches~ break~ break-rewrites~ ' +
298
+ 'broken~ buffer~ cached~ candidates~ cc~ check~ cherry~ cherry-mark~ cherry-pick~ children~ chmod~ cleanup~ ' +
299
+ 'clear-decorations~ color~ color-by-age~ color-lines~ color-moved~ color-moved-ws~ color-words~ column~ ' +
300
+ 'combined~ combined-all-paths~ commit-header~ committer~ compact-summary~ config~ contains~ contents~ ' +
301
+ 'context~ count~ cumulative~ date~ date-order~ dd~ debug~ decorate~ decorate-refs~ decorate-refs-exclude~ ' +
302
+ 'deduplicate~ default~ default-prefix~ deleted~ dense~ developer-interfaces~ diff-algorithm~ diff-filter~ ' +
303
+ 'diff-merges~ directory~ dirstat~ dirstat-by-file~ dirty~ disk-usage~ do-walk~ dry-run~ dst-prefix~ edit~ ' +
304
+ 'email~ empty-directory~ encoding~ end-of-options~ eol~ error-unmatch~ exact-match~ exclude~ ' +
305
+ 'exclude-first-parent-only~ exclude-from~ exclude-hidden~ exclude-per-directory~ exclude-promisor-objects~ ' +
306
+ 'exclude-standard~ exit-code~ expand-tabs~ ext-diff~ ext-grep~ extended-regexp~ external-commands~ file~ ' +
307
+ 'files-with-matches~ files-without-match~ filter~ filters~ find-copies~ find-copies-harder~ find-object~ ' +
308
+ 'find-renames~ first-parent~ fixed-strings~ fixup~ flags~ follow~ follow-symlinks~ force~ format~ full-diff~ ' +
309
+ 'full-history~ full-index~ full-name~ full-tree~ function-context~ git-common-dir~ git-dir~ git-path~ glob~ ' +
310
+ 'gpg-sign~ graph~ grep~ grep-reflog~ group~ guides~ header~ heading~ help~ help-all~ histogram~ ' +
311
+ 'human-readable~ ignore-all-space~ ignore-blank-lines~ ignore-case~ ignore-cr-at-eol~ ignore-errors~ ' +
312
+ 'ignore-matching-lines~ ignore-missing~ ignore-removal~ ignore-rev~ ignore-revs-file~ ignore-space-at-eol~ ' +
313
+ 'ignore-space-change~ ignore-submodules~ ignored~ in-commit-order~ include~ incremental~ indent-heuristic~ ' +
314
+ 'index~ indexed-objects~ info~ intent-to-add~ inter-hunk-context~ interactive~ invert-grep~ invert-match~ ' +
315
+ 'irreversible-delete~ is-bare-repository~ is-inside-git-dir~ is-inside-work-tree~ is-shallow-repository~ ' +
316
+ 'ita-invisible-in-index~ ita-visible-in-index~ killed~ left-only~ left-right~ line-number~ line-porcelain~ ' +
317
+ 'line-prefix~ log-size~ long~ mailmap~ man~ match~ max-age~ max-count~ max-depth~ max-parents~ merge~ ' +
318
+ 'merge-base~ merges~ message~ min-age~ min-parents~ minimal~ missing~ modified~ name-only~ name-status~ ' +
319
+ 'no-abbrev~ no-abbrev-commit~ no-after-context~ no-ahead-behind~ no-aliases~ no-all~ no-all-match~ ' +
320
+ 'no-allow-unknown-type~ no-always~ no-amend~ no-annotate-stdin~ no-author~ no-basic-regexp~ ' +
321
+ 'no-before-context~ no-branch~ no-break~ no-broken~ no-buffer~ no-cached~ no-candidates~ no-chmod~ ' +
322
+ 'no-cleanup~ no-color~ no-color-by-age~ no-color-lines~ no-color-moved~ no-color-moved-ws~ no-column~ ' +
323
+ 'no-commit-header~ no-commit-id~ no-committer~ no-compact-summary~ no-contains~ no-contents~ no-context~ ' +
324
+ 'no-count~ no-date~ no-debug~ no-decorate~ no-decorate-refs~ no-decorate-refs-exclude~ no-deduplicate~ ' +
325
+ 'no-deleted~ no-diff-merges~ no-directory~ no-dirty~ no-dry-run~ no-edit~ no-email~ no-empty-directory~ ' +
326
+ 'no-eol~ no-error-unmatch~ no-exact-match~ no-exclude~ no-exclude-per-directory~ no-exclude-standard~ ' +
327
+ 'no-exit-code~ no-ext-diff~ no-ext-grep~ no-extended-regexp~ no-external-commands~ no-file~ ' +
328
+ 'no-files-with-matches~ no-files-without-match~ no-find-copies-harder~ no-first-parent~ no-fixed-strings~ ' +
329
+ 'no-fixup~ no-flags~ no-follow~ no-follow-symlinks~ no-force~ no-full-index~ no-full-name~ no-full-tree~ ' +
330
+ 'no-function-context~ no-gpg-sign~ no-group~ no-heading~ no-human-readable~ no-ignore-case~ no-ignore-errors~ ' +
331
+ 'no-ignore-matching-lines~ no-ignore-missing~ no-ignore-removal~ no-ignore-rev~ no-ignore-revs-file~ ' +
332
+ 'no-ignore-submodules~ no-ignored~ no-include~ no-incremental~ no-indent-heuristic~ no-index~ no-info~ ' +
333
+ 'no-intent-to-add~ no-interactive~ no-invert-match~ no-killed~ no-line-number~ no-line-porcelain~ no-long~ ' +
334
+ 'no-mailmap~ no-man~ no-match~ no-max-count~ no-max-parents~ no-merges~ no-message~ no-min-parents~ ' +
335
+ 'no-minimal~ no-modified~ no-name-only~ no-non-matching~ no-notes~ no-null~ no-numbered~ no-object-names~ ' +
336
+ 'no-only~ no-only-matching~ no-open-files-in-pager~ no-others~ no-patch~ no-path~ no-pathspec-file-nul~ ' +
337
+ 'no-pathspec-from-file~ no-perl-regexp~ no-porcelain~ no-post-rewrite~ no-prefix~ no-progress~ no-quiet~ ' +
338
+ 'no-recurse-submodules~ no-recursive~ no-reedit-message~ no-refresh~ no-refs~ no-relative~ no-rename-empty~ ' +
339
+ 'no-renames~ no-renormalize~ no-reset-author~ no-resolve-undo~ no-reuse-message~ no-revs~ no-root~ ' +
340
+ 'no-score-debug~ no-short~ no-show-email~ no-show-function~ no-show-name~ no-show-number~ no-show-stash~ ' +
341
+ 'no-show-stats~ no-signoff~ no-source~ no-sparse~ no-squash~ no-stage~ no-status~ no-stdin~ no-summary~ ' +
342
+ 'no-tags~ no-template~ no-text~ no-textconv~ no-threads~ no-undefined~ no-unmerged~ no-unordered~ ' +
343
+ 'no-untracked~ no-untracked-files~ no-update~ no-use-mailmap~ no-verbose~ no-verify~ no-walk~ no-web~ ' +
344
+ 'no-with-tree~ no-word-regexp~ non-matching~ not~ notes~ null~ numbered~ numstat~ object-names~ object-only~ ' +
345
+ 'objects~ objects-edge~ objects-edge-aggressive~ oneline~ only~ only-matching~ open-files-in-pager~ or~ ' +
346
+ 'orderfile~ others~ ours~ output~ output-indicator-context~ output-indicator-new~ output-indicator-old~ ' +
347
+ 'parents~ patch~ patch-with-raw~ patch-with-stat~ path~ pathspec-file-nul~ pathspec-from-file~ patience~ ' +
348
+ 'perl-regexp~ pickaxe-all~ pickaxe-regex~ porcelain~ post-rewrite~ prefix~ pretty~ progress~ quiet~ raw~ ' +
349
+ 'recurse-submodules~ recursive~ reedit-message~ reflog~ refresh~ refs~ regexp-ignore-case~ relative~ ' +
350
+ 'relative-date~ remerge-diff~ remotes~ remove-empty~ rename-empty~ renames~ renormalize~ reset-author~ ' +
351
+ 'resolve-git-dir~ resolve-undo~ reuse-message~ reverse~ revs-only~ right-only~ root~ rotate-to~ score-debug~ ' +
352
+ 'shared-index-path~ short~ shortstat~ show-cdup~ show-email~ show-function~ show-linear-break~ show-name~ ' +
353
+ 'show-notes~ show-notes-by-default~ show-number~ show-object-format~ show-prefix~ show-pulls~ show-signature~ ' +
354
+ 'show-stash~ show-stats~ show-superproject-working-tree~ show-toplevel~ signoff~ simplify-by-decoration~ ' +
355
+ 'simplify-merges~ since~ since-as-filter~ single-worktree~ skip~ skip-to~ source~ sparse~ sq-quote~ squash~ ' +
356
+ 'src-prefix~ stage~ staged~ standard-notes~ stat~ stat-count~ stat-graph-width~ stat-name-width~ stat-width~ ' +
357
+ 'status~ stdin~ submodule~ summary~ symbolic~ symbolic-full-name~ tags~ template~ text~ textconv~ theirs~ ' +
358
+ 'threads~ timestamp~ topo-order~ trailer~ undefined~ unified~ unmerged~ unordered~ unpacked~ until~ ' +
359
+ 'untracked~ untracked-files~ update~ use-bitmap-index~ use-mailmap~ user-interfaces~ verbose~ verify~ ' +
360
+ 'walk-reflogs~ web~ with-tree~ word-diff~ word-diff-regex~ word-regexp~ ws-error-highlight~');
361
+ exports.GIT_GLOBAL_LONG = longList('git-dir= work-tree= namespace= exec-path[=] super-prefix= config-env= attr-source= list-cmds= no-pager ' +
362
+ 'paginate bare no-replace-objects literal-pathspecs glob-pathspecs noglob-pathspecs icase-pathspecs ' +
363
+ 'no-optional-locks no-lazy-fetch no-advice html-path man-path info-path version help');
364
+ exports.GIT_RESET_LONG = longList('mixed soft quiet no-quiet patch no-patch intent-to-add no-intent-to-add pathspec-from-file= ' +
365
+ 'no-pathspec-from-file pathspec-file-nul no-pathspec-file-nul refresh no-refresh');
366
+ exports.GIT_RM_LONG = longList('cached no-cached dry-run no-dry-run force no-force ignore-unmatch no-ignore-unmatch quiet no-quiet sparse ' +
367
+ 'no-sparse pathspec-from-file= no-pathspec-from-file pathspec-file-nul no-pathspec-file-nul');
368
+ exports.GIT_RESTORE_LONG = longList('staged no-staged source= patch no-patch quiet no-quiet progress no-progress pathspec-from-file= ' +
369
+ 'no-pathspec-from-file pathspec-file-nul no-pathspec-file-nul ignore-unmerged no-ignore-unmerged');
370
+ exports.FIND_LONG = longList('H L P D= O0 O1 O2 O3 - help version daystart depth follow ignore_readdir_race maxdepth= mindepth= mount ' +
371
+ 'noignore_readdir_race noleaf regextype= warn nowarn xdev amin= anewer= atime= cmin= cnewer= ctime= empty ' +
372
+ 'executable false fstype= gid= group= ilname= iname= inum= ipath= iregex= iwholename= links= lname= mmin= ' +
373
+ 'mtime= name= newer= nogroup nouser path= perm= readable regex= samefile= size= true type= uid= used= user= ' +
374
+ 'wholename= writable xtype= context= print print0 prune quit ls printf= not and or a o d E s x X f= acl ' +
375
+ 'flags= mnewer= sparse neweraa= neweraB= newerac= neweram= newerat= newerBa= newerBB= newerBc= newerBm= ' +
376
+ 'newerBt= newerca= newercB= newercc= newercm= newerct= newerma= newermB= newermc= newermm= newermt=');
377
+ //# sourceMappingURL=longopts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longopts.js","sourceRoot":"","sources":["../../src/seatbelt/longopts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ export type SeatbeltCategory = 'none' | 'S0' | 'S1' | 'S2' | 'S3' | 'S4' | 'S5' | 'Sx';
2
+ export type SeatbeltParse = 'ok' | 'dynamic' | 'unparsed' | 'too_large';
3
+ export interface SeatbeltFs {
4
+ /** File content as text, or null when missing, unreadable, not a regular file or larger than maxBytes. */
5
+ readFile(absPath: string, maxBytes: number): string | null;
6
+ /** realpath(3) of an existing path, or null when it does not exist. */
7
+ realpath(absPath: string): string | null;
8
+ /**
9
+ * Entry names of a directory (no `.` or `..`), or null when it is missing or unreadable. Optional:
10
+ * without it a glob that could reach a symlink cannot be expanded and stops (audit F9).
11
+ */
12
+ readdir?(absPath: string): string[] | null;
13
+ }
14
+ export interface SeatbeltGit {
15
+ /** Work-tree top level for cwd, or null when cwd is not in a repository. */
16
+ toplevel(cwd: string): string | null;
17
+ /** All values of a config key in git order (system, global, includes, repo); key in git's canonical case. */
18
+ getAll(cwd: string, key: string): string[];
19
+ /** Current branch name, or null when detached or unknown. */
20
+ currentBranch(cwd: string): string | null;
21
+ /** Branch that refs/remotes/<remote>/HEAD points at, or null. */
22
+ remoteHead(cwd: string, remote: string): string | null;
23
+ }
24
+ export interface SeatbeltEnv {
25
+ /** Event cwd from the harness. Missing or relative means the workspace is unknown. */
26
+ cwd: string | null | undefined;
27
+ /** Home from passwd or the hook's baked --home, never $HOME from the agent env. */
28
+ home: string;
29
+ tmpdir?: string;
30
+ platform?: string;
31
+ fs: SeatbeltFs;
32
+ git: SeatbeltGit;
33
+ /** The classifier's class for the same action. Recorded only; it never decides an S category. */
34
+ classifierClass?: string;
35
+ /** Wall-clock budget for one classification in ms (default LIMITS.timeBudgetMs). Over it: stop. */
36
+ budgetMs?: number;
37
+ }
38
+ export interface SeatbeltHit {
39
+ category: Exclude<SeatbeltCategory, 'none'>;
40
+ reason: string;
41
+ }
42
+ export interface SeatbeltDecision {
43
+ decision: 'pass' | 'stop';
44
+ category: SeatbeltCategory;
45
+ rule: string;
46
+ reasons: string[];
47
+ hits: SeatbeltHit[];
48
+ flags: string[];
49
+ parse: SeatbeltParse;
50
+ engine: {
51
+ rules: string;
52
+ classifier_contract: string;
53
+ classifier_source_commit: string;
54
+ };
55
+ /**
56
+ * The mapper positively recognised the tool (audit H1): a shell invocation, a known file, search,
57
+ * list, edit or delete tool, a known tool that acts on nothing on disk, or an MCP call whose
58
+ * arguments it read. A pass of an unrecognised tool is not the seatbelt's to give: the keyless
59
+ * hook gives master's answer for it. Not recorded in receipts.
60
+ */
61
+ recognized: boolean;
62
+ /** The event ran a shell command (a shell tool, or a command field the mapper read). */
63
+ shell: boolean;
64
+ /**
65
+ * Programs that change something outside this machine (I3 outage list: `git_push`, `deploy`,
66
+ * `publish`, `remote_delete`, ...), or `unknown` when a subcommand word is dynamic. Used only to
67
+ * hold an action while Marrow cannot be reached; never a stop. Not recorded in receipts.
68
+ */
69
+ risk: string[];
70
+ /**
71
+ * T-3: every hit and outage-list program came from a command that only prints its help or version
72
+ * (`git push --help`, `npm publish --help`, `wrangler deploy --version`): the outage hold lets it run.
73
+ * Never changes a stop. Not recorded in receipts.
74
+ */
75
+ outageHelpOnly?: boolean;
76
+ }
77
+ export interface SeatbeltEvent {
78
+ tool_name: string;
79
+ tool_input?: unknown;
80
+ }
81
+ export declare function evaluateSeatbeltShell(command: string, env: SeatbeltEnv): SeatbeltDecision;
82
+ export declare function evaluateSeatbelt(event: SeatbeltEvent, env: SeatbeltEnv): SeatbeltDecision;
83
+ //# sourceMappingURL=mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/seatbelt/mapper.ts"],"names":[],"mappings":"AA2EA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACvF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,0GAA0G;IAC1G,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3D,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5C;AACD,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,6GAA6G;IAC7G,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3C,6DAA6D;IAC7D,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,iEAAiE;IACjE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACxD;AACD,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,UAAU,CAAC;IACf,GAAG,EAAE,WAAW,CAAC;IACjB,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,WAAW;IAAG,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,wBAAwB,EAAE,MAAM,CAAA;KAAE,CAAC;IACzF;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,aAAa;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AAqJ1E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,gBAAgB,CASzF;AAYD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,gBAAgB,CAMzF"}