@tinycloud/courier 0.2.0-beta.41 → 0.2.0-beta.42

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intake.js","sourceRoot":"","sources":["../../src/intake/intake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type Tier = 'trusted' | 'strict';
2
+ export interface PeerPolicy {
3
+ tier: Tier;
4
+ ratePerHour: number;
5
+ outPerHour: number;
6
+ }
7
+ export type Peers = Record<string, PeerPolicy>;
8
+ /** Default inbound cap per sender per hour, for a peer present without `ratePerHour` and for a peer absent from peers.json. */
9
+ export declare const DEFAULT_IN_PER_HOUR = 100;
10
+ /** Default outbound cap per peer per hour, for any peer without an explicit `outPerHour`. */
11
+ export declare const DEFAULT_OUT_PER_HOUR = 100;
12
+ /**
13
+ * Loads peers.json. An absent file means no peer is listed, so every peer is strict with the absent cap. The file is
14
+ * opened without following links, checked, and read through that same descriptor, so the bytes parsed are the bytes
15
+ * checked. Refuses a symlink, a non-regular file, a file owned by another uid, and a file that is group- or
16
+ * other-writable, because the box owner alone decides who is trusted. An invalid entry refuses the whole file: a typo
17
+ * must not widen a peer's caps, so the caller keeps its last good policy.
18
+ */
19
+ export declare function loadPeers(path: string, ownerUid?: number | undefined): Peers;
20
+ /** The tier for a peer. Absent from the file means strict. */
21
+ export declare function tierOf(peers: Peers, peerId: string): Tier;
22
+ /** Full policy for a peer. Absent peers get the strict default with the absent inbound cap. */
23
+ export declare function policyOf(peers: Peers, peerId: string): PeerPolicy;
@@ -0,0 +1,87 @@
1
+ import fs from 'node:fs';
2
+ import { CourierError } from '../errors.js';
3
+ import { isRecord } from '../a2a.js';
4
+ /** Default inbound cap per sender per hour, for a peer present without `ratePerHour` and for a peer absent from peers.json. */
5
+ export const DEFAULT_IN_PER_HOUR = 100;
6
+ /** Default outbound cap per peer per hour, for any peer without an explicit `outPerHour`. */
7
+ export const DEFAULT_OUT_PER_HOUR = 100;
8
+ const KEYS = { tier: true, ratePerHour: true, outPerHour: true };
9
+ const TIERS = { trusted: true, strict: true };
10
+ /** The policy for an absent peer. Invalid entries are read as this too, so a typo never widens trust. */
11
+ const ABSENT = { tier: 'strict', ratePerHour: DEFAULT_IN_PER_HOUR, outPerHour: DEFAULT_OUT_PER_HOUR };
12
+ /** A per-hour override is a whole number from 1 up to the default, so an entry can only lower a cap. */
13
+ function cap(value, fallback) {
14
+ if (value === undefined)
15
+ return fallback;
16
+ if (!Number.isInteger(value) || value < 1 || value > fallback)
17
+ return undefined;
18
+ return value;
19
+ }
20
+ function parseEntry(value) {
21
+ if (!isRecord(value))
22
+ return undefined;
23
+ if (Object.keys(value).some((key) => !Object.hasOwn(KEYS, key)))
24
+ return undefined;
25
+ const tier = value.tier ?? 'strict';
26
+ if (typeof tier !== 'string' || !Object.hasOwn(TIERS, tier))
27
+ return undefined;
28
+ const ratePerHour = cap(value.ratePerHour, DEFAULT_IN_PER_HOUR);
29
+ const outPerHour = cap(value.outPerHour, DEFAULT_OUT_PER_HOUR);
30
+ if (ratePerHour === undefined || outPerHour === undefined)
31
+ return undefined;
32
+ return { tier: tier, ratePerHour, outPerHour };
33
+ }
34
+ /**
35
+ * Loads peers.json. An absent file means no peer is listed, so every peer is strict with the absent cap. The file is
36
+ * opened without following links, checked, and read through that same descriptor, so the bytes parsed are the bytes
37
+ * checked. Refuses a symlink, a non-regular file, a file owned by another uid, and a file that is group- or
38
+ * other-writable, because the box owner alone decides who is trusted. An invalid entry refuses the whole file: a typo
39
+ * must not widen a peer's caps, so the caller keeps its last good policy.
40
+ */
41
+ export function loadPeers(path, ownerUid = process.getuid?.()) {
42
+ let fd;
43
+ try {
44
+ fd = fs.openSync(path, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
45
+ }
46
+ catch (error) {
47
+ const code = error.code;
48
+ if (code === 'ENOENT')
49
+ return Object.create(null);
50
+ if (code === 'ELOOP')
51
+ throw new CourierError('insecure-peers', `${path} is a symbolic link; point the flag at the file itself.`);
52
+ throw error;
53
+ }
54
+ try {
55
+ const stat = fs.fstatSync(fd);
56
+ if (!stat.isFile())
57
+ throw new CourierError('insecure-peers', `${path} is not a regular file.`);
58
+ if (ownerUid !== undefined && stat.uid !== ownerUid)
59
+ throw new CourierError('insecure-peers', `${path} is not owned by the courier user.`);
60
+ if ((stat.mode & 0o022) !== 0) {
61
+ throw new CourierError('insecure-peers', `${path} is writable by group or others; restrict it to the owner (chmod 600).`);
62
+ }
63
+ const parsed = JSON.parse(fs.readFileSync(fd, 'utf8'));
64
+ if (!isRecord(parsed))
65
+ throw new CourierError('bad-peers', `${path} must be a JSON object keyed by peer id.`);
66
+ const peers = Object.create(null);
67
+ for (const [peerId, value] of Object.entries(parsed)) {
68
+ const policy = parseEntry(value);
69
+ if (!policy)
70
+ throw new CourierError('bad-peers', `${path} has an invalid policy for peer "${peerId}"; fix the entry. Nothing was loaded.`);
71
+ peers[peerId] = policy;
72
+ }
73
+ return peers;
74
+ }
75
+ finally {
76
+ fs.closeSync(fd);
77
+ }
78
+ }
79
+ /** The tier for a peer. Absent from the file means strict. */
80
+ export function tierOf(peers, peerId) {
81
+ return Object.hasOwn(peers, peerId) ? peers[peerId].tier : 'strict';
82
+ }
83
+ /** Full policy for a peer. Absent peers get the strict default with the absent inbound cap. */
84
+ export function policyOf(peers, peerId) {
85
+ return Object.hasOwn(peers, peerId) ? peers[peerId] : { ...ABSENT };
86
+ }
87
+ //# sourceMappingURL=peers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/intake/peers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Creates a directory and refuses anything that is not a real directory (a symlink in its place is refused). `mode`
3
+ * applies only to a directory this call creates; an existing directory keeps its mode, so a provisioned root (for
4
+ * example setgid 2750) is never rewritten.
5
+ */
6
+ export declare function ensureRealDir(dir: string, mode: number): void;
7
+ /**
8
+ * Creates `dir/name` only if nothing is there yet (hard link of the temp file, which fails if the target exists, symlinks
9
+ * included). Returns false when the target already exists, so a queued message is never overwritten.
10
+ */
11
+ export declare function writeNew(dir: string, name: string, body: string, mode: number): boolean;
12
+ /** Replaces `dir/name` atomically (temp file plus rename). Refuses to replace anything that is not a regular file. */
13
+ export declare function writeReplace(dir: string, name: string, body: string, mode: number): void;
14
+ export interface LockOptions {
15
+ /** Pid recorded in this contender's lock. Default: this process. */
16
+ pid?: number;
17
+ /** Liveness probe for a recorded pid. Default: a signal-0 probe. */
18
+ alive?: (pid: number) => boolean;
19
+ /** Test seam: runs after a dead holder is observed, before any break guard is claimed. */
20
+ afterObserve?: () => void;
21
+ }
22
+ /**
23
+ * Takes the intake lock. A live holder always refuses, however old its files are; only a holder whose pid is dead is
24
+ * broken. The lock is created whole (never empty) and carries a nonce, so a release or a break removes only the lock
25
+ * it actually observed.
26
+ */
27
+ export declare function acquireLock(file: string, opts?: LockOptions): () => void;
28
+ /** One admitted arrival: the mirror msgId and its local receive time. Identity is the msgId, so equal times stay distinct. */
29
+ export interface Receipt {
30
+ id: string;
31
+ at: number;
32
+ }
33
+ /**
34
+ * Per-peer intake progress. `receipts` holds this peer's admitted arrivals for the inbound rate cap.
35
+ * `cursor` is the last mirror msgId examined; the next cycle resumes after it. Older builds also wrote `highWater`; the key is ignored.
36
+ */
37
+ export interface PeerState {
38
+ receipts: Receipt[];
39
+ cursor?: string;
40
+ }
41
+ export interface IntakeState {
42
+ v: 1;
43
+ peers: Record<string, PeerState>;
44
+ }
45
+ export declare function emptyState(): IntakeState;
46
+ /** Reads the intake state. A missing file is an empty state; a corrupt one refuses to start, so nothing is re-queued. */
47
+ export declare function readState(file: string): IntakeState;
48
+ export declare function writeState(dir: string, file: string, state: IntakeState): void;
@@ -0,0 +1,267 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { randomBytes } from 'node:crypto';
4
+ import { CourierError } from '../errors.js';
5
+ import { isRecord } from '../a2a.js';
6
+ /**
7
+ * Creates a directory and refuses anything that is not a real directory (a symlink in its place is refused). `mode`
8
+ * applies only to a directory this call creates; an existing directory keeps its mode, so a provisioned root (for
9
+ * example setgid 2750) is never rewritten.
10
+ */
11
+ export function ensureRealDir(dir, mode) {
12
+ let existed = true;
13
+ try {
14
+ fs.lstatSync(dir);
15
+ }
16
+ catch (error) {
17
+ if (error.code !== 'ENOENT')
18
+ throw error;
19
+ existed = false;
20
+ }
21
+ fs.mkdirSync(dir, { recursive: true, mode });
22
+ const stat = fs.lstatSync(dir);
23
+ if (stat.isSymbolicLink() || !stat.isDirectory()) {
24
+ throw new CourierError('unsafe-dir', 'queue or state path is not a real directory');
25
+ }
26
+ if (!existed && stat.uid === process.getuid?.() && (stat.mode & 0o7777) !== mode)
27
+ fs.chmodSync(dir, mode);
28
+ }
29
+ /** Makes a link or rename in `dir` durable: the directory entry is fsynced, not only the file contents. */
30
+ function fsyncDir(dir) {
31
+ const fd = fs.openSync(dir, 'r');
32
+ try {
33
+ fs.fsyncSync(fd);
34
+ }
35
+ finally {
36
+ fs.closeSync(fd);
37
+ }
38
+ }
39
+ /** Writes the full body to a same-directory temp file with the given mode, fsynced, and returns its path. */
40
+ function writeTemp(dir, name, body, mode) {
41
+ const temp = path.join(dir, `.${name}.${randomBytes(6).toString('hex')}.tmp`);
42
+ const fd = fs.openSync(temp, 'wx', mode);
43
+ try {
44
+ fs.writeFileSync(fd, body);
45
+ fs.fchmodSync(fd, mode);
46
+ fs.fsyncSync(fd);
47
+ }
48
+ catch (error) {
49
+ fs.closeSync(fd);
50
+ fs.rmSync(temp, { force: true });
51
+ throw error;
52
+ }
53
+ fs.closeSync(fd);
54
+ return temp;
55
+ }
56
+ /**
57
+ * Creates `dir/name` only if nothing is there yet (hard link of the temp file, which fails if the target exists, symlinks
58
+ * included). Returns false when the target already exists, so a queued message is never overwritten.
59
+ */
60
+ export function writeNew(dir, name, body, mode) {
61
+ const temp = writeTemp(dir, name, body, mode);
62
+ try {
63
+ fs.linkSync(temp, path.join(dir, name));
64
+ fsyncDir(dir);
65
+ return true;
66
+ }
67
+ catch (error) {
68
+ if (error.code === 'EEXIST')
69
+ return false;
70
+ throw error;
71
+ }
72
+ finally {
73
+ fs.rmSync(temp, { force: true });
74
+ }
75
+ }
76
+ /** Replaces `dir/name` atomically (temp file plus rename). Refuses to replace anything that is not a regular file. */
77
+ export function writeReplace(dir, name, body, mode) {
78
+ const target = path.join(dir, name);
79
+ try {
80
+ if (!fs.lstatSync(target).isFile())
81
+ throw new CourierError('unsafe-target', 'refusing to replace a non-regular file');
82
+ }
83
+ catch (error) {
84
+ if (error.code !== 'ENOENT')
85
+ throw error;
86
+ }
87
+ const temp = writeTemp(dir, name, body, mode);
88
+ try {
89
+ fs.renameSync(temp, target);
90
+ fsyncDir(dir);
91
+ }
92
+ catch (error) {
93
+ fs.rmSync(temp, { force: true });
94
+ throw error;
95
+ }
96
+ }
97
+ /** Parses `{"pid":N,"nonce":"..."}`. A legacy `pid\n` lock parses with its own text as the nonce. */
98
+ function parseRecord(text) {
99
+ if (/^\d+\n?$/.test(text)) {
100
+ const pid = Number(text);
101
+ return Number.isInteger(pid) && pid > 0 ? { pid, nonce: text } : undefined;
102
+ }
103
+ try {
104
+ const value = JSON.parse(text);
105
+ if (typeof value !== 'object' || value === null)
106
+ return undefined;
107
+ const { pid, nonce } = value;
108
+ if (typeof pid !== 'number' || !Number.isInteger(pid) || pid <= 0)
109
+ return undefined;
110
+ if (typeof nonce !== 'string' || nonce.length === 0)
111
+ return undefined;
112
+ return { pid, nonce };
113
+ }
114
+ catch {
115
+ return undefined;
116
+ }
117
+ }
118
+ function recordBody(record) {
119
+ return `${JSON.stringify({ pid: record.pid, nonce: record.nonce })}\n`;
120
+ }
121
+ function readRecordFile(file) {
122
+ try {
123
+ return parseRecord(fs.readFileSync(file, 'utf8'));
124
+ }
125
+ catch {
126
+ return undefined;
127
+ }
128
+ }
129
+ /** Reads the lock. An unparseable lock is never broken: it refuses, as a live one would. */
130
+ function readLock(file) {
131
+ let text;
132
+ try {
133
+ text = fs.readFileSync(file, 'utf8');
134
+ }
135
+ catch (error) {
136
+ if (error.code === 'ENOENT')
137
+ return { kind: 'missing' };
138
+ throw error;
139
+ }
140
+ const record = parseRecord(text);
141
+ return record ? { kind: 'held', record } : { kind: 'corrupt' };
142
+ }
143
+ function pidAlive(pid) {
144
+ try {
145
+ process.kill(pid, 0);
146
+ return true;
147
+ }
148
+ catch (error) {
149
+ return error.code === 'EPERM';
150
+ }
151
+ }
152
+ /** Guard slots per dead lock. The bound stops a corrupt directory from looping forever. */
153
+ const MAX_BREAK_GUARDS = 8;
154
+ /**
155
+ * Takes the intake lock. A live holder always refuses, however old its files are; only a holder whose pid is dead is
156
+ * broken. The lock is created whole (never empty) and carries a nonce, so a release or a break removes only the lock
157
+ * it actually observed.
158
+ */
159
+ export function acquireLock(file, opts = {}) {
160
+ const dir = path.dirname(file);
161
+ const name = path.basename(file);
162
+ const alive = opts.alive ?? pidAlive;
163
+ const self = { pid: opts.pid ?? process.pid, nonce: randomBytes(6).toString('hex') };
164
+ for (let attempt = 0; attempt < 3; attempt++) {
165
+ if (writeNew(dir, name, recordBody(self), 0o600)) {
166
+ return () => {
167
+ const current = readLock(file);
168
+ if (current.kind === 'held' && current.record.nonce === self.nonce)
169
+ fs.rmSync(file, { force: true });
170
+ };
171
+ }
172
+ const seen = readLock(file);
173
+ if (seen.kind === 'missing')
174
+ continue;
175
+ if (seen.kind === 'corrupt' || alive(seen.record.pid)) {
176
+ throw new CourierError('locked', 'another courier intake is running');
177
+ }
178
+ opts.afterObserve?.();
179
+ if (!breakDead(file, seen.record, self, alive)) {
180
+ throw new CourierError('locked', 'another courier intake is running');
181
+ }
182
+ }
183
+ throw new CourierError('locked', 'another courier intake is running');
184
+ }
185
+ /**
186
+ * Breaks the dead lock `stale`. Breakers serialize on numbered guard files `<lock>.break.<nonce>.<k>`: guard k is
187
+ * claimed exclusively; a guard whose holder is alive refuses the break, and one whose holder is dead is passed over.
188
+ * Under the guard the lock is re-read and unlinked only if it is still exactly `stale`. Returns false when a live
189
+ * contender holds the break, and true when the caller should retry creating its own lock.
190
+ */
191
+ function breakDead(file, stale, self, alive) {
192
+ const dir = path.dirname(file);
193
+ const tag = `${path.basename(file)}.break.${stale.nonce.trim().replace(/[^A-Za-z0-9_-]/g, '_')}.`;
194
+ const body = recordBody(self);
195
+ let claimed = false;
196
+ for (let k = 1; k <= MAX_BREAK_GUARDS && !claimed; k++) {
197
+ const candidate = `${tag}${k}`;
198
+ if (writeNew(dir, candidate, body, 0o600)) {
199
+ claimed = true;
200
+ break;
201
+ }
202
+ const holder = readRecordFile(path.join(dir, candidate));
203
+ if (holder && alive(holder.pid))
204
+ return false;
205
+ }
206
+ if (!claimed)
207
+ return false;
208
+ try {
209
+ const now = readLock(file);
210
+ if (now.kind === 'held' && now.record.nonce === stale.nonce)
211
+ fs.rmSync(file, { force: true });
212
+ return true;
213
+ }
214
+ finally {
215
+ for (const entry of fs.readdirSync(dir)) {
216
+ if (entry.startsWith(tag))
217
+ fs.rmSync(path.join(dir, entry), { force: true });
218
+ }
219
+ }
220
+ }
221
+ export function emptyState() {
222
+ return { v: 1, peers: Object.create(null) };
223
+ }
224
+ /** Reads the intake state. A missing file is an empty state; a corrupt one refuses to start, so nothing is re-queued. */
225
+ export function readState(file) {
226
+ let raw;
227
+ try {
228
+ raw = fs.readFileSync(file, 'utf8');
229
+ }
230
+ catch (error) {
231
+ if (error.code === 'ENOENT')
232
+ return emptyState();
233
+ throw error;
234
+ }
235
+ let parsed;
236
+ try {
237
+ parsed = JSON.parse(raw);
238
+ }
239
+ catch {
240
+ throw new CourierError('bad-state', 'intake state is not valid JSON');
241
+ }
242
+ if (!isRecord(parsed) || parsed.v !== 1 || !isRecord(parsed.peers))
243
+ throw new CourierError('bad-state', 'intake state has an unknown shape');
244
+ const peers = Object.create(null);
245
+ for (const [peerId, entry] of Object.entries(parsed.peers)) {
246
+ if (!isRecord(entry) || !Array.isArray(entry.receipts) || (entry.cursor !== undefined && typeof entry.cursor !== 'string')) {
247
+ throw new CourierError('bad-state', 'intake state has an unknown shape');
248
+ }
249
+ const peer = { receipts: entry.receipts.map(readReceipt) };
250
+ if (typeof entry.cursor === 'string')
251
+ peer.cursor = entry.cursor;
252
+ peers[peerId] = peer;
253
+ }
254
+ return { v: 1, peers };
255
+ }
256
+ /** Older builds wrote bare receive times; they get positional ids so they still count against the cap. */
257
+ function readReceipt(raw, index) {
258
+ if (typeof raw === 'number')
259
+ return { id: `legacy-${index}`, at: raw };
260
+ if (isRecord(raw) && typeof raw.id === 'string' && typeof raw.at === 'number')
261
+ return { id: raw.id, at: raw.at };
262
+ throw new CourierError('bad-state', 'intake state has an unknown shape');
263
+ }
264
+ export function writeState(dir, file, state) {
265
+ writeReplace(dir, path.basename(file), `${JSON.stringify(state)}\n`, 0o600);
266
+ }
267
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/intake/queue.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -3,6 +3,7 @@ import { CourierError, errInfo } from './errors.js';
3
3
  import { requestHelp, cmdInit, cmdManifest, cmdPair, cmdRevoke, cmdSend, cmdInbox, cmdRead, cmdTask, cmdRequest, cmdOrders, } from './commands.js';
4
4
  import { cmd, programName, setProgramName } from './program.js';
5
5
  import { cmdWatch } from './watch-cmd.js';
6
+ import { cmdIntake } from './intake/intake.js';
6
7
  import { cmdApproval } from './approval.js';
7
8
  import { cmdPause, cmdResume } from './pause.js';
8
9
  import { cmdGuard } from './guard/command.js';
@@ -93,6 +94,9 @@ Delivery (one watcher per person per machine; never calls a model):
93
94
  watch … --install-launchd | --install-systemd [--dry-run] [--name n]
94
95
  Install the same watch command as a macOS launchd agent or a Linux
95
96
  systemd --user unit. --dry-run prints the exact file and commands.
97
+ intake [--queue-dir d] [--peers-file f] [--state-dir d] [--interval 60] [--once]
98
+ Intake reader: copy paired peers' mirrored messages into the local queue
99
+ (one <msgId>.json per message) with cheap checks. Never calls a model.
96
100
 
97
101
  pause <peer> <threadId> [--reason "…"] Humans: stop waking your agent for a thread; tells the peer
98
102
  resume <peer> <threadId> Humans: wake it again (the wake budget starts over)
@@ -131,6 +135,7 @@ export async function run(argv) {
131
135
  case 'request': return cmdRequest(sub);
132
136
  case 'orders': return cmdOrders(sub);
133
137
  case 'watch': return cmdWatch(sub);
138
+ case 'intake': return cmdIntake(sub);
134
139
  case 'approval': return cmdApproval(sub);
135
140
  case 'pause': return cmdPause(sub);
136
141
  case 'resume': return cmdResume(sub);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/text.d.ts CHANGED
@@ -14,8 +14,10 @@ export declare const MAX_REASON = 2000;
14
14
  export declare const MAX_RISK = 2000;
15
15
  /** Character eligibility only; the full-string verdict additionally checks NFC, length and trimming. */
16
16
  export declare function textCodePointAllowed(cp: number, field: TextField): boolean;
17
- /** Stable cross-runtime API. Limits are UTF-16 units: summary/target 200, multiline 2000. */
18
- export declare function textVerdict(value: unknown, field: TextField): TextVerdict;
17
+ /**
18
+ * Stable cross-runtime API. Limits are UTF-16 units: summary/target 200, multiline 2000 unless `maxUnits` overrides it.
19
+ */
20
+ export declare function textVerdict(value: unknown, field: TextField, maxUnits?: number): TextVerdict;
19
21
  /** Sweep nested schema strings without imposing a particular field's length/empty rules. */
20
22
  export declare function hiddenTextProblem(value: string, multiline?: boolean): string | undefined;
21
23
  /** Generic schema line (e.g. a timestamp); summary and target use their narrower field verdicts. */
package/dist/text.js CHANGED
@@ -40,14 +40,16 @@ function contentReason(value, field) {
40
40
  return 'not-nfc';
41
41
  return undefined;
42
42
  }
43
- /** Stable cross-runtime API. Limits are UTF-16 units: summary/target 200, multiline 2000. */
44
- export function textVerdict(value, field) {
43
+ /**
44
+ * Stable cross-runtime API. Limits are UTF-16 units: summary/target 200, multiline 2000 unless `maxUnits` overrides it.
45
+ */
46
+ export function textVerdict(value, field, maxUnits) {
45
47
  let reason;
46
48
  if (typeof value !== 'string')
47
49
  reason = 'not-string';
48
50
  else if (value.length === 0)
49
51
  reason = 'empty';
50
- else if (value.length > (field === 'multiline' ? MAX_ACTION : MAX_SUMMARY))
52
+ else if (value.length > (maxUnits ?? (field === 'multiline' ? MAX_ACTION : MAX_SUMMARY)))
51
53
  reason = 'too-long';
52
54
  else if (field !== 'multiline' && (value.startsWith(' ') || value.endsWith(' ')))
53
55
  reason = 'edge-whitespace';
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,wGAAwG;AACxG,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,KAAgB;IAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,KAAK,WAAW,CAAC;IAC5C,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;YACvC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;YACtF,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAE,CAAC;QAC/C,IAAI,EAAE,GAAG,KAAK;YAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;aAC1B,IAAI,EAAE,GAAG,GAAG;YAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;YAC5B,OAAO,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAgB;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;IACjH,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,KAAgB;IAC1D,IAAI,MAA8B,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,GAAG,YAAY,CAAC;SAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,GAAG,OAAO,CAAC;SACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QAAE,MAAM,GAAG,UAAU,CAAC;SAC3F,IAAI,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,GAAG,iBAAiB,CAAC;;QACxG,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,SAAS,GAAG,KAAK;IAChE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,uBAAuB,CAAC;IACvE,OAAO,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,GAAW;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,UAAU,CAAC;IAC1C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC3E,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,GAAW;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,UAAU,CAAC;IACvE,OAAO,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;AAC1D,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QACrF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sCAAsC,CAAC;AACzD,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QACrG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,MAAM;QACxF,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,mLAAmL,CAAC;IAC7L,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qHAAqH;AACrH,MAAM,aAAa,GAA2B;IAC5C,KAAK,EAAE,kEAAkE;IACzE,OAAO,EAAE,0CAA0C;IACnD,MAAM,EAAE,yCAAyC;IACjD,KAAK,EAAE,kCAAkC;IACzC,KAAK,EAAE,mBAAmB;CAC3B,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAc;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,IAAI,oBAAoB,CAAC;AAC5G,CAAC;AAED,oHAAoH;AACpH,MAAM,SAAS,CAAC,CAAC,UAAU,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IACnD,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,KAAK,CAAC;SACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SACvF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,CAAC;YACV,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinycloud/courier",
3
- "version": "0.2.0-beta.41",
3
+ "version": "0.2.0-beta.42",
4
4
  "description": "Courier: agent-to-agent threads over TinyCloud (CLI, library and agent skill)",
5
5
  "author": "TinyCloud, Inc.",
6
6
  "type": "module",