@intentic/base 1.232.0 → 1.234.0
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/README.md +13 -5
- package/dist/async.d.ts +1 -1
- package/dist/async.d.ts.map +1 -1
- package/dist/outside-text.d.ts +8 -0
- package/dist/outside-text.d.ts.map +1 -0
- package/dist/outside-text.js +133 -0
- package/dist/outside-text.js.map +1 -0
- package/package.json +15 -4
package/README.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# @intentic/base
|
|
2
2
|
|
|
3
|
-
The runtime primitives every tier shares: the `when` condition language, disposal,
|
|
3
|
+
The runtime primitives every tier shares: the `when` condition language, disposal, the async schedulers, and
|
|
4
|
+
the outside-text neutralizer.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Almost nothing in here knows what this product is. That is the point: each module replaced a decision
|
|
6
7
|
that had been made independently, and differently, in the daemon and in the web app, where the copies could
|
|
7
|
-
only ever drift apart.
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
only ever drift apart. `outside-text` is the one deliberate exception — it IS product vocabulary (the
|
|
9
|
+
untrusted-content envelope), and it sits here precisely because three separate writers (the daemon's seams,
|
|
10
|
+
webq's saved pages, fileq's sidecars) must speak it byte-identically. There is no barrel export: a consumer
|
|
11
|
+
imports the module it needs (`@intentic/base/when`), because these modules have nothing to do with each other
|
|
12
|
+
and a package that offers them as one thing invites being treated as a junk drawer.
|
|
10
13
|
|
|
11
14
|
## Responsibilities
|
|
12
15
|
|
|
@@ -17,6 +20,11 @@ as one thing invites being treated as a junk drawer.
|
|
|
17
20
|
- **`lifecycle`**: teardown as structure rather than as a list somebody maintains. A store is registered into
|
|
18
21
|
where things are created and disposed once; it keeps going past a member that throws and reports the failures
|
|
19
22
|
together, so one bad stop cannot strand the ports and child processes queued behind it.
|
|
23
|
+
- **`outside-text`**: the untrusted-content envelope (`wrapOutsideContent`) and the marker neutralizer
|
|
24
|
+
(`neutralizeOutsideText`) that makes it trustworthy: envelope forgeries, harness control tags and model
|
|
25
|
+
reserved tokens are folded (homoglyphs, zero-width characters) and replaced before content is sealed or
|
|
26
|
+
written to disk. Shared because the daemon's seams, webq's saved pages and fileq's derived sidecars must all
|
|
27
|
+
neutralize identically — a drifted copy is a working forgery.
|
|
20
28
|
- **`async`**: the four shapes of "don't do that again yet", named so the choice between them is visible:
|
|
21
29
|
`Delayer` restarts its clock on every call, `Coalescer` opens a window on the first call and lets later ones
|
|
22
30
|
join it, `SingleFlight` shares one run per key among concurrent callers, and `retry` is the loop with the
|
package/dist/async.d.ts
CHANGED
package/dist/async.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA6BlD,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,WAAW;IAO9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IANlC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,OAAO,CAEC;IAChB,OAAO,CAAC,IAAI,CAAqC;IAEjD,YAA6B,KAAK,EAAE,MAAM,EAAI;IAE9C,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyB9C;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAMD,MAAM,IAAI,IAAI,CAOb;IAED,OAAO,IAAI,IAAI,CAEd;CACJ;AAMD,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,WAAW;IAKxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAL1B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,KAAK,CAAW;IAExB,YACqB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,EACrD;IAKJ,QAAQ,CAAC,GAAG,aAAc,SAAS,CAAC,EAAE,KAAG,IAAI,CAU3C;IAEF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAID,QAAQ,IAAI,IAAI,CAWf;IAED,OAAO,IAAI,IAAI,CAMd;CACJ;AAUD,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAU9C;IAMD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAErC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,IAAI,IAAI,CAEd;CACJ;AAID,eAAO,MAAM,KAAK,GAAU,CAAC,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,CAAC,CAejG,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface OutsideMeta {
|
|
2
|
+
readonly source: string;
|
|
3
|
+
readonly from?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const NEUTRALIZED = "[marker removed]";
|
|
6
|
+
export declare const neutralizeOutsideText: (body: string) => string;
|
|
7
|
+
export declare const wrapOutsideContent: (body: string, meta: OutsideMeta) => string;
|
|
8
|
+
//# sourceMappingURL=outside-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outside-text.d.ts","sourceRoot":"","sources":["../src/outside-text.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,WAAW;IAGxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6ED,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAmE9C,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,MA2BpD,CAAC;AAYF,eAAO,MAAM,kBAAkB,SAAU,MAAM,QAAQ,WAAW,KAAG,MAMpE,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const TAG = "untrusted-content";
|
|
2
|
+
const IGNORABLE = new Set([0x200b, 0x200c, 0x200d, 0x2060, 0xfeff, 0x00ad]);
|
|
3
|
+
const ANGLE = {
|
|
4
|
+
0xff1c: "<",
|
|
5
|
+
0xff1e: ">",
|
|
6
|
+
0x2329: "<",
|
|
7
|
+
0x232a: ">",
|
|
8
|
+
0x3008: "<",
|
|
9
|
+
0x3009: ">",
|
|
10
|
+
0x2039: "<",
|
|
11
|
+
0x203a: ">",
|
|
12
|
+
0x27e8: "<",
|
|
13
|
+
0x27e9: ">",
|
|
14
|
+
0xfe64: "<",
|
|
15
|
+
0xfe65: ">",
|
|
16
|
+
0x00ab: "<",
|
|
17
|
+
0x00bb: ">",
|
|
18
|
+
0x300a: "<",
|
|
19
|
+
0x300b: ">",
|
|
20
|
+
0x27ea: "<",
|
|
21
|
+
0x27eb: ">",
|
|
22
|
+
0x27ec: "<",
|
|
23
|
+
0x27ed: ">",
|
|
24
|
+
0x27ee: "<",
|
|
25
|
+
0x27ef: ">",
|
|
26
|
+
0x276c: "<",
|
|
27
|
+
0x276d: ">",
|
|
28
|
+
0x276e: "<",
|
|
29
|
+
0x276f: ">",
|
|
30
|
+
0x02c2: "<",
|
|
31
|
+
0x02c3: ">",
|
|
32
|
+
};
|
|
33
|
+
const FULLWIDTH_OFFSET = 0xfee0;
|
|
34
|
+
const foldChar = (code) => {
|
|
35
|
+
if ((code >= 0xff21 && code <= 0xff3a) || (code >= 0xff41 && code <= 0xff5a)) {
|
|
36
|
+
return String.fromCharCode(code - FULLWIDTH_OFFSET);
|
|
37
|
+
}
|
|
38
|
+
return ANGLE[code];
|
|
39
|
+
};
|
|
40
|
+
const fold = (input) => {
|
|
41
|
+
let text = "";
|
|
42
|
+
const starts = [];
|
|
43
|
+
const ends = [];
|
|
44
|
+
for (let i = 0; i < input.length; i++) {
|
|
45
|
+
const code = input.charCodeAt(i);
|
|
46
|
+
if (IGNORABLE.has(code)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
text += foldChar(code) ?? input[i];
|
|
50
|
+
starts.push(i);
|
|
51
|
+
ends.push(i + 1);
|
|
52
|
+
}
|
|
53
|
+
return { text, starts, ends };
|
|
54
|
+
};
|
|
55
|
+
export const NEUTRALIZED = "[marker removed]";
|
|
56
|
+
const MARKER = /<\s*\/?\s*untrusted[\s_-]+content\b[^>]*>/gi;
|
|
57
|
+
const MARKER_TAIL = /<\s*\/?\s*untrusted[\s_-]+content\b[^>]*$/i;
|
|
58
|
+
const CONTROL_TAGS = ["system-reminder", "task-notification", "command-name", "command-message", "command-args", "local-command-stdout"];
|
|
59
|
+
const CONTROL = new RegExp(String.raw `<\s*/?\s*(?:${CONTROL_TAGS.join("|")})\b[^>]*>`, "gi");
|
|
60
|
+
const SPECIAL_TOKENS = [
|
|
61
|
+
"<|im_start|>",
|
|
62
|
+
"<|im_end|>",
|
|
63
|
+
"<|endoftext|>",
|
|
64
|
+
"<|begin_of_text|>",
|
|
65
|
+
"<|end_of_text|>",
|
|
66
|
+
"<|start_header_id|>",
|
|
67
|
+
"<|end_header_id|>",
|
|
68
|
+
"<|eot_id|>",
|
|
69
|
+
"<|python_tag|>",
|
|
70
|
+
"<|eom_id|>",
|
|
71
|
+
"[INST]",
|
|
72
|
+
"[/INST]",
|
|
73
|
+
"<<SYS>>",
|
|
74
|
+
"<</SYS>>",
|
|
75
|
+
"<s>",
|
|
76
|
+
"</s>",
|
|
77
|
+
"<|channel|>",
|
|
78
|
+
"<|message|>",
|
|
79
|
+
"<|return|>",
|
|
80
|
+
"<|call|>",
|
|
81
|
+
"<start_of_turn>",
|
|
82
|
+
"<end_of_turn>",
|
|
83
|
+
];
|
|
84
|
+
const RESERVED_TOKEN = /<\|reserved_special_token_\d+\|>/g;
|
|
85
|
+
const replaceFolded = (original, folded, pattern) => {
|
|
86
|
+
pattern.lastIndex = 0;
|
|
87
|
+
let out = "";
|
|
88
|
+
let cursor = 0;
|
|
89
|
+
for (const match of folded.text.matchAll(pattern)) {
|
|
90
|
+
const start = folded.starts[match.index] ?? match.index;
|
|
91
|
+
const last = match.index + match[0].length - 1;
|
|
92
|
+
const end = folded.ends[last] ?? last + 1;
|
|
93
|
+
if (start < cursor) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
out += original.slice(cursor, start) + NEUTRALIZED;
|
|
97
|
+
cursor = end;
|
|
98
|
+
}
|
|
99
|
+
return out + original.slice(cursor);
|
|
100
|
+
};
|
|
101
|
+
export const neutralizeOutsideText = (body) => {
|
|
102
|
+
let text = body;
|
|
103
|
+
for (const pattern of [MARKER, CONTROL]) {
|
|
104
|
+
const folded = fold(text);
|
|
105
|
+
pattern.lastIndex = 0;
|
|
106
|
+
if (pattern.test(folded.text)) {
|
|
107
|
+
text = replaceFolded(text, folded, pattern);
|
|
108
|
+
}
|
|
109
|
+
pattern.lastIndex = 0;
|
|
110
|
+
}
|
|
111
|
+
{
|
|
112
|
+
const folded = fold(text);
|
|
113
|
+
const tail = MARKER_TAIL.exec(folded.text);
|
|
114
|
+
if (tail !== null) {
|
|
115
|
+
text = text.slice(0, folded.starts[tail.index] ?? tail.index) + NEUTRALIZED;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
for (const token of SPECIAL_TOKENS) {
|
|
119
|
+
if (text.includes(token)) {
|
|
120
|
+
text = text.split(token).join(NEUTRALIZED);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return text.replace(RESERVED_TOKEN, NEUTRALIZED);
|
|
124
|
+
};
|
|
125
|
+
const attribute = (value) => neutralizeOutsideText(value)
|
|
126
|
+
.replaceAll(/["<>\r\n]+/g, " ")
|
|
127
|
+
.trim();
|
|
128
|
+
export const wrapOutsideContent = (body, meta) => {
|
|
129
|
+
const id = [...globalThis.crypto.getRandomValues(new Uint8Array(8))].map((byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
130
|
+
const from = meta.from === undefined || meta.from.trim() === "" ? "" : ` from="${attribute(meta.from)}"`;
|
|
131
|
+
return `<${TAG} source="${attribute(meta.source)}"${from} id="${id}">\n${neutralizeOutsideText(body)}\n</${TAG} id="${id}">`;
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=outside-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outside-text.js","sourceRoot":"","sources":["../src/outside-text.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/base",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.234.0",
|
|
4
4
|
"description": "Runtime primitives every tier shares, when-expressions, disposal, and the async schedulers",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,6 +39,17 @@
|
|
|
39
39
|
"default": "./dist/lifecycle.js"
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
|
+
"./outside-text": {
|
|
43
|
+
"types": "./dist/outside-text.d.ts",
|
|
44
|
+
"import": {
|
|
45
|
+
"@intentic/src": "./src/outside-text.ts",
|
|
46
|
+
"default": "./dist/outside-text.js"
|
|
47
|
+
},
|
|
48
|
+
"require": {
|
|
49
|
+
"@intentic/src": "./src/outside-text.ts",
|
|
50
|
+
"default": "./dist/outside-text.js"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
42
53
|
"./async": {
|
|
43
54
|
"types": "./dist/async.d.ts",
|
|
44
55
|
"import": {
|
|
@@ -55,11 +66,11 @@
|
|
|
55
66
|
"tslib": "2.8.1"
|
|
56
67
|
},
|
|
57
68
|
"devDependencies": {
|
|
69
|
+
"@intentic/testing": "0.0.0",
|
|
70
|
+
"@intentic/tsconfig": "0.0.0",
|
|
58
71
|
"@types/node": "24.13.2",
|
|
59
72
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
60
|
-
"vitest": "4.1.10"
|
|
61
|
-
"@intentic/testing": "0.0.0",
|
|
62
|
-
"@intentic/tsconfig": "0.0.0"
|
|
73
|
+
"vitest": "4.1.10"
|
|
63
74
|
},
|
|
64
75
|
"scripts": {
|
|
65
76
|
"build": "tsgo",
|