@intutic/shared-types 3.1.2 → 3.1.4
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/dist/gateRuleRecord.d.ts +21 -7
- package/dist/gateRuleRecord.d.ts.map +1 -1
- package/dist/gateRuleRecord.js +61 -8
- package/dist/gateRuleRecord.js.map +1 -1
- package/dist/guardrailRender.d.ts +2 -0
- package/dist/guardrailRender.d.ts.map +1 -1
- package/dist/guardrailRender.js +2 -0
- package/dist/guardrailRender.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/responses/rules.d.ts +21 -0
- package/dist/responses/rules.d.ts.map +1 -1
- package/dist/responses/rules.js +7 -3
- package/dist/responses/rules.js.map +1 -1
- package/dist/scopeMatch.d.ts +4 -0
- package/dist/scopeMatch.d.ts.map +1 -1
- package/dist/scopeMatch.js +2 -0
- package/dist/scopeMatch.js.map +1 -1
- package/dist/shellParse.d.ts +42 -0
- package/dist/shellParse.d.ts.map +1 -0
- package/dist/shellParse.js +242 -0
- package/dist/shellParse.js.map +1 -0
- package/dist/sopKeySince.d.ts +2 -0
- package/dist/sopKeySince.d.ts.map +1 -1
- package/dist/sopKeySince.js +4 -1
- package/dist/sopKeySince.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A shell command, read as the commands it runs, or not at all.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately a small subset of shell: words, quotes, escapes, comments and
|
|
6
|
+
* the operators `;`, `&`, `&&`, `|`, `|&`, `||` and newline. Anything else (a
|
|
7
|
+
* redirect, subshell, group, substitution, heredoc, control word) returns
|
|
8
|
+
* `null`, and so does anything malformed, because `null` is the answer that
|
|
9
|
+
* fails safe: every caller keeps its old behaviour on it.
|
|
10
|
+
*
|
|
11
|
+
* A port of the proxy's `shell_parse.rs`; intutic-clawde `gate/shell_parse.py`
|
|
12
|
+
* is another. All three run `fixtures/shell-parse-vectors.json`. Self-contained,
|
|
13
|
+
* because `@intutic/gate` keeps a byte-identical copy and the hook gates embed
|
|
14
|
+
* {@link SHELL_PARSE_JS_SOURCE}.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.SHELL_PARSE_JS_SOURCE = void 0;
|
|
20
|
+
exports.parseShell = parseShell;
|
|
21
|
+
exports.dropCarriedText = dropCarriedText;
|
|
22
|
+
exports.isAllowEntry = isAllowEntry;
|
|
23
|
+
exports.commandsOutsideAllow = commandsOutsideAllow;
|
|
24
|
+
/** Words that open a construct this parser does not model. `alias` is here because it changes what the next word means. */
|
|
25
|
+
const SHELL_CONTROL_WORDS = [
|
|
26
|
+
'if', 'then', 'else', 'elif', 'fi', 'for', 'while', 'until', 'do', 'done', 'case', 'esac',
|
|
27
|
+
'select', 'function', 'coproc', 'alias',
|
|
28
|
+
];
|
|
29
|
+
/** `NAME=` at `i`: the word sets a variable for the command after it. */
|
|
30
|
+
function shellIsAssignment(text, i) {
|
|
31
|
+
let j = i;
|
|
32
|
+
while (j < text.length && /[A-Za-z0-9_]/.test(text[j]))
|
|
33
|
+
j++;
|
|
34
|
+
return j > i && !/[0-9]/.test(text[i]) && text[j] === '=';
|
|
35
|
+
}
|
|
36
|
+
/** `text` as pipelines of simple commands, or `null` when not understood. */
|
|
37
|
+
function parseShell(text) {
|
|
38
|
+
const pipelines = [];
|
|
39
|
+
let pipeline = [];
|
|
40
|
+
let command = null;
|
|
41
|
+
let word = null;
|
|
42
|
+
let pipeOpen = false;
|
|
43
|
+
let i = 0;
|
|
44
|
+
const startWord = (at) => {
|
|
45
|
+
word ??= [];
|
|
46
|
+
command ??= { argv: [], literal: true, start: at, end: at };
|
|
47
|
+
};
|
|
48
|
+
const endWord = (at) => {
|
|
49
|
+
if (word !== null && command !== null) {
|
|
50
|
+
command.argv.push(word.join(''));
|
|
51
|
+
command.end = at;
|
|
52
|
+
}
|
|
53
|
+
word = null;
|
|
54
|
+
};
|
|
55
|
+
while (i < text.length) {
|
|
56
|
+
const c = text[i];
|
|
57
|
+
if (c === ' ' || c === '\t') {
|
|
58
|
+
endWord(i);
|
|
59
|
+
i++;
|
|
60
|
+
}
|
|
61
|
+
else if (c === '\\' && text[i + 1] === '\n') {
|
|
62
|
+
i += 2;
|
|
63
|
+
}
|
|
64
|
+
else if (c === '\\') {
|
|
65
|
+
if (i + 1 >= text.length)
|
|
66
|
+
return null;
|
|
67
|
+
startWord(i);
|
|
68
|
+
word.push(text[i + 1]);
|
|
69
|
+
i += 2;
|
|
70
|
+
}
|
|
71
|
+
else if (c === "'") {
|
|
72
|
+
startWord(i);
|
|
73
|
+
const close = text.indexOf("'", i + 1);
|
|
74
|
+
if (close === -1)
|
|
75
|
+
return null;
|
|
76
|
+
word.push(text.slice(i + 1, close));
|
|
77
|
+
i = close + 1;
|
|
78
|
+
}
|
|
79
|
+
else if (c === '"') {
|
|
80
|
+
startWord(i);
|
|
81
|
+
i++;
|
|
82
|
+
for (;;) {
|
|
83
|
+
if (i >= text.length)
|
|
84
|
+
return null;
|
|
85
|
+
const q = text[i];
|
|
86
|
+
if (q === '"')
|
|
87
|
+
break;
|
|
88
|
+
if (q === '`')
|
|
89
|
+
return null;
|
|
90
|
+
if (q === '$') {
|
|
91
|
+
if (text[i + 1] === '(')
|
|
92
|
+
return null;
|
|
93
|
+
command.literal = false;
|
|
94
|
+
}
|
|
95
|
+
if (q === '\\') {
|
|
96
|
+
if (i + 1 >= text.length)
|
|
97
|
+
return null;
|
|
98
|
+
const next = text[i + 1];
|
|
99
|
+
if (!'$"\\`\n'.includes(next))
|
|
100
|
+
word.push('\\');
|
|
101
|
+
if (next !== '\n')
|
|
102
|
+
word.push(next);
|
|
103
|
+
i += 2;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
word.push(q);
|
|
107
|
+
i++;
|
|
108
|
+
}
|
|
109
|
+
i++;
|
|
110
|
+
}
|
|
111
|
+
else if (c === '#' && word === null) {
|
|
112
|
+
while (i < text.length && text[i] !== '\n')
|
|
113
|
+
i++;
|
|
114
|
+
}
|
|
115
|
+
else if ('<>(){}`'.includes(c)) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
else if (c === '\n' || c === ';' || c === '&' || c === '|') {
|
|
119
|
+
endWord(i);
|
|
120
|
+
const doubled = (c === '&' || c === '|') && text[i + 1] === c;
|
|
121
|
+
if (command !== null) {
|
|
122
|
+
const done = command;
|
|
123
|
+
if (SHELL_CONTROL_WORDS.indexOf(done.argv[0]) !== -1)
|
|
124
|
+
return null;
|
|
125
|
+
pipeline.push(done);
|
|
126
|
+
command = null;
|
|
127
|
+
}
|
|
128
|
+
else if (c === '\n') {
|
|
129
|
+
// A newline may follow an operator or stand alone.
|
|
130
|
+
i++;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Any other operator here has nothing to its left.
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
pipeOpen = c === '|' && !doubled;
|
|
138
|
+
if (pipeOpen) {
|
|
139
|
+
if (text[i + 1] === '&')
|
|
140
|
+
i++;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
pipelines.push(pipeline);
|
|
144
|
+
pipeline = [];
|
|
145
|
+
}
|
|
146
|
+
i += doubled ? 2 : 1;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
if ('$*?[~'.includes(c) || (word === null && shellIsAssignment(text, i))) {
|
|
150
|
+
startWord(i);
|
|
151
|
+
command.literal = false;
|
|
152
|
+
}
|
|
153
|
+
startWord(i);
|
|
154
|
+
word.push(c);
|
|
155
|
+
i++;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
endWord(text.length);
|
|
159
|
+
if (command !== null) {
|
|
160
|
+
const done = command;
|
|
161
|
+
if (SHELL_CONTROL_WORDS.indexOf(done.argv[0]) !== -1)
|
|
162
|
+
return null;
|
|
163
|
+
pipeline.push(done);
|
|
164
|
+
}
|
|
165
|
+
else if (pipeOpen) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
if (pipeline.length > 0)
|
|
169
|
+
pipelines.push(pipeline);
|
|
170
|
+
return pipelines;
|
|
171
|
+
}
|
|
172
|
+
/** `text` without the text no command consumes: a lone `echo`, `printf` or `git commit`. Unchanged unless the whole of it parsed. */
|
|
173
|
+
function dropCarriedText(text) {
|
|
174
|
+
const pipelines = parseShell(text);
|
|
175
|
+
if (pipelines === null)
|
|
176
|
+
return text;
|
|
177
|
+
let out = '';
|
|
178
|
+
let kept = 0;
|
|
179
|
+
for (const pipeline of pipelines) {
|
|
180
|
+
if (pipeline.length !== 1)
|
|
181
|
+
continue;
|
|
182
|
+
const only = pipeline[0];
|
|
183
|
+
// `printf -v` keeps the text for whatever reads the variable.
|
|
184
|
+
const carries = only.argv[0] === 'echo' || (only.argv[0] === 'printf' && only.argv[1] !== '-v') || (only.argv[0] === 'git' && only.argv[1] === 'commit');
|
|
185
|
+
if (carries) {
|
|
186
|
+
out += text.slice(kept, only.start);
|
|
187
|
+
kept = only.end;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return out + text.slice(kept);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* An `allow_commands:` entry, or null when it is not one plain command: `git
|
|
194
|
+
* status`, or `npm test *` for any further arguments. A word that could
|
|
195
|
+
* expand matches nothing exactly, so an entry may not hold one.
|
|
196
|
+
*/
|
|
197
|
+
function allowEntry(entry) {
|
|
198
|
+
const open = entry.endsWith(' *');
|
|
199
|
+
const parsed = parseShell(open ? entry.slice(0, -2) : entry);
|
|
200
|
+
if (parsed === null || parsed.length !== 1 || parsed[0].length !== 1)
|
|
201
|
+
return null;
|
|
202
|
+
const only = parsed[0][0];
|
|
203
|
+
if (!only.literal || only.argv.some((w) => /[$*?[~]/.test(w)))
|
|
204
|
+
return null;
|
|
205
|
+
return { argv: only.argv, open };
|
|
206
|
+
}
|
|
207
|
+
/** Whether `entry` is one `allow_commands:` can use. */
|
|
208
|
+
function isAllowEntry(entry) {
|
|
209
|
+
return allowEntry(entry) !== null;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* The commands in `text` that `allow` does not allow, as written, in order.
|
|
213
|
+
* All of `text` when it did not parse, or when an entry cannot be read: an
|
|
214
|
+
* allow list that reaches no verdict allows nothing, the opposite of
|
|
215
|
+
* {@link dropCarriedText}, which keeps its old behaviour on the same input.
|
|
216
|
+
*/
|
|
217
|
+
function commandsOutsideAllow(text, allow) {
|
|
218
|
+
const parsed = parseShell(text);
|
|
219
|
+
const entries = allow.map(allowEntry);
|
|
220
|
+
if (parsed === null || entries.some((e) => e === null))
|
|
221
|
+
return [text];
|
|
222
|
+
const out = [];
|
|
223
|
+
for (const pipeline of parsed) {
|
|
224
|
+
for (const c of pipeline) {
|
|
225
|
+
const allowed = entries.some((e) => {
|
|
226
|
+
const n = e.argv.length;
|
|
227
|
+
if (e.open ? c.argv.length < n : !c.literal || c.argv.length !== n)
|
|
228
|
+
return false;
|
|
229
|
+
return e.argv.every((w, i) => w === c.argv[i]);
|
|
230
|
+
});
|
|
231
|
+
if (!allowed)
|
|
232
|
+
out.push(text.slice(c.start, c.end));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return out;
|
|
236
|
+
}
|
|
237
|
+
/** The parser and the allow list as JavaScript source, for the hook gates to embed. */
|
|
238
|
+
exports.SHELL_PARSE_JS_SOURCE = [
|
|
239
|
+
`const SHELL_CONTROL_WORDS = ${JSON.stringify(SHELL_CONTROL_WORDS)};`,
|
|
240
|
+
...[shellIsAssignment, parseShell, dropCarriedText, allowEntry, isAllowEntry, commandsOutsideAllow].map((fn) => fn.toString()),
|
|
241
|
+
].join('\n');
|
|
242
|
+
//# sourceMappingURL=shellParse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellParse.js","sourceRoot":"","sources":["../src/shellParse.ts"],"names":[],"mappings":"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"}
|
package/dist/sopKeySince.d.ts
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
/** The proxy release that first reads the newer keys. */
|
|
18
18
|
export declare const LOOP_GRAPH_GATE_PROXY_VERSION = "3.0.0";
|
|
19
|
+
/** The proxy release that first reads `allow_commands:`. */
|
|
20
|
+
export declare const ALLOW_COMMANDS_PROXY_VERSION = "3.1.4";
|
|
19
21
|
/**
|
|
20
22
|
* Each key, as written at the start of its line, and the proxy version that
|
|
21
23
|
* reads it. `requires_before:[ok]` stands for a qualified `requires_before:`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sopKeySince.d.ts","sourceRoot":"","sources":["../src/sopKeySince.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"sopKeySince.d.ts","sourceRoot":"","sources":["../src/sopKeySince.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,UAAU,CAAA;AACpD,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,UAAU,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAYjE,CAAA;AAED,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAGrG;AAED,6IAA6I;AAC7I,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAMnG;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAatI"}
|
package/dist/sopKeySince.js
CHANGED
|
@@ -16,12 +16,14 @@
|
|
|
16
16
|
* @module
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.SOP_KEY_SINCE = exports.LOOP_GRAPH_GATE_PROXY_VERSION = void 0;
|
|
19
|
+
exports.SOP_KEY_SINCE = exports.ALLOW_COMMANDS_PROXY_VERSION = exports.LOOP_GRAPH_GATE_PROXY_VERSION = void 0;
|
|
20
20
|
exports.parseProxyVersion = parseProxyVersion;
|
|
21
21
|
exports.proxyVersionOlder = proxyVersionOlder;
|
|
22
22
|
exports.sopKeysNeedingNewerProxy = sopKeysNeedingNewerProxy;
|
|
23
23
|
/** The proxy release that first reads the newer keys. */
|
|
24
24
|
exports.LOOP_GRAPH_GATE_PROXY_VERSION = '3.0.0';
|
|
25
|
+
/** The proxy release that first reads `allow_commands:`. */
|
|
26
|
+
exports.ALLOW_COMMANDS_PROXY_VERSION = '3.1.4';
|
|
25
27
|
/**
|
|
26
28
|
* Each key, as written at the start of its line, and the proxy version that
|
|
27
29
|
* reads it. `requires_before:[ok]` stands for a qualified `requires_before:`
|
|
@@ -39,6 +41,7 @@ exports.SOP_KEY_SINCE = {
|
|
|
39
41
|
'context_isolation:': exports.LOOP_GRAPH_GATE_PROXY_VERSION,
|
|
40
42
|
'node_kind:': exports.LOOP_GRAPH_GATE_PROXY_VERSION,
|
|
41
43
|
'node_kind_allow:': exports.LOOP_GRAPH_GATE_PROXY_VERSION,
|
|
44
|
+
'allow_commands:': exports.ALLOW_COMMANDS_PROXY_VERSION,
|
|
42
45
|
};
|
|
43
46
|
/** `major.minor.patch` (a `v` prefix and any `-pre` or `+build` suffix ignored) as three numbers, or null. */
|
|
44
47
|
function parseProxyVersion(version) {
|
package/dist/sopKeySince.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sopKeySince.js","sourceRoot":"","sources":["../src/sopKeySince.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;
|
|
1
|
+
{"version":3,"file":"sopKeySince.js","sourceRoot":"","sources":["../src/sopKeySince.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intutic/shared-types",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.4",
|
|
4
4
|
"description": "Shared TypeScript types, schemas and gate semantics for the Intutic CLI, SDKs and proxy",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"zod": "^4.6.6",
|
|
21
|
-
"@intutic/anomaly-taxonomy": "3.1.
|
|
21
|
+
"@intutic/anomaly-taxonomy": "3.1.4"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"typescript": "^5.5",
|