@tinycloud/courier 0.2.0-beta.33 → 0.2.0-beta.35

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,139 @@
1
+ import { CourierError } from './errors.js';
2
+ import { canonicalTarget, VERBS } from './guard/target.js';
3
+ import { asciiTargetProblem, baseBranchProblem, headShaProblem, summaryProblem, MAX_ACTION, MAX_REASON, MAX_RISK, MAX_SUMMARY, MAX_TARGET, plainTextProblem, targetShapeProblem, } from './text.js';
4
+ export { MAX_SUMMARY, MAX_TARGET };
5
+ function refuse(field, problem) {
6
+ throw new CourierError('usage', `--${field} is refused: ${problem}.`);
7
+ }
8
+ /** Validates the structured flags of `courier request`: canonicalises the target, refuses (never repairs) bad text. */
9
+ export function requestFields(input) {
10
+ const { verb, target, summary } = input;
11
+ if (!verb || !VERBS.includes(verb)) {
12
+ throw new CourierError('usage', `--verb is required and must be one of: ${VERBS.join(', ')}.`);
13
+ }
14
+ if (!target)
15
+ throw new CourierError('usage', '--target is required (what is being merged, deployed, published, spent or changed).');
16
+ if (!summary)
17
+ throw new CourierError('usage', '--summary is required: one line for your owner on what this approves.');
18
+ const canonical = canonicalTarget(verb, target);
19
+ const targetProblem = asciiTargetProblem(canonical) ?? targetShapeProblem(verb, canonical);
20
+ if (targetProblem)
21
+ refuse('target', targetProblem);
22
+ const summaryIssue = summaryProblem(summary);
23
+ if (summaryIssue)
24
+ refuse('summary', summaryIssue);
25
+ if (verb === 'merge') {
26
+ const shaProblem = headShaProblem(input.headSha);
27
+ if (shaProblem)
28
+ refuse('head-sha', shaProblem);
29
+ const baseProblem = baseBranchProblem(input.base);
30
+ if (baseProblem)
31
+ refuse('base', baseProblem);
32
+ return { verb, target: canonical, summary, headSha: input.headSha, base: input.base };
33
+ }
34
+ if (input.headSha !== undefined || input.base !== undefined) {
35
+ throw new CourierError('usage', '--head-sha and --base are only allowed for --verb merge.');
36
+ }
37
+ return { verb: verb, target: canonical, summary };
38
+ }
39
+ /** A ULID: 26 Crockford base32 characters (no I, L, O, U), upper case. Thread, task and request ids all are. */
40
+ export const ULID = /^[0-9A-HJKMNP-TV-Z]{26}$/;
41
+ /** A peer handle as pairing stores it. */
42
+ export const HANDLE = /^[A-Za-z0-9_-]{1,64}$/;
43
+ /** `threadId` and `taskId` are written into the request (and so shown and hashed): ULIDs only, the one form the view shows. */
44
+ export function requestIds(ids) {
45
+ for (const [name, value] of Object.entries(ids)) {
46
+ if (!ULID.test(value))
47
+ throw new CourierError('usage', `${name === 'taskId' ? '--task' : 'the thread id'} must be a ULID (26 characters, digits and capital letters except I L O U; got ${JSON.stringify(value.slice(0, 40))}).`);
48
+ }
49
+ }
50
+ /**
51
+ * The closed key set of `me/requests/<id>.json` (what `courier request` writes and the view accepts): any other key,
52
+ * a missing one, or a value of the wrong type makes the request unreviewable. Returns the problem, or undefined.
53
+ */
54
+ export const REQUEST_KEYS = [
55
+ 'id', 'peer', 'threadId', 'taskId', 'verb', 'target', 'summary', 'action', 'reason', 'risk',
56
+ 'requestedBy', 'createdAt', 'expiresAt', 'status',
57
+ ];
58
+ /** `courier request` always writes these three; a reader treats them as optional (but well-formed when present). */
59
+ const OPTIONAL_KEYS = ['action', 'reason', 'risk'];
60
+ export const MERGE_REQUEST_KEYS = [...REQUEST_KEYS, 'headSha', 'base'];
61
+ export function requestShapeProblem(request) {
62
+ const allowedKeys = request.verb === 'merge' ? MERGE_REQUEST_KEYS : REQUEST_KEYS;
63
+ const keys = Object.keys(request);
64
+ const unknown = keys.filter((key) => !allowedKeys.includes(key));
65
+ if (unknown.length)
66
+ return `unknown key ${JSON.stringify(unknown[0])}`;
67
+ if (request.verb === 'merge' && (!('headSha' in request) || !('base' in request)))
68
+ return 'merge request lacks headSha/base: re-request';
69
+ const missing = allowedKeys.filter((key) => !OPTIONAL_KEYS.includes(key) && !(key in request));
70
+ if (missing.length)
71
+ return `missing key "${missing[0]}"`;
72
+ for (const key of allowedKeys) {
73
+ if (key === 'requestedBy' || !(key in request))
74
+ continue;
75
+ if (typeof request[key] !== 'string')
76
+ return `"${key}" is not a string`;
77
+ }
78
+ const by = request.requestedBy;
79
+ if (by === null || typeof by !== 'object' || Array.isArray(by))
80
+ return '"requestedBy" is not an object';
81
+ const byKeys = Object.keys(by);
82
+ if (byKeys.length !== 2 || !byKeys.includes('owner') || !byKeys.includes('agent'))
83
+ return '"requestedBy" must have exactly owner and agent';
84
+ if (typeof by.owner !== 'string' || typeof by.agent !== 'string')
85
+ return '"requestedBy" values are not strings';
86
+ if (request.status !== 'pending')
87
+ return '"status" must be "pending"';
88
+ for (const key of ['id', 'threadId', 'taskId'])
89
+ if (!ULID.test(request[key]))
90
+ return `"${key}" is not a ULID`;
91
+ if (!HANDLE.test(request.peer))
92
+ return '"peer" is not a peer handle';
93
+ return undefined;
94
+ }
95
+ /** The free-text fields of a request, refused (not repaired) if they break the shared text rules. */
96
+ export function requestText(input, summary) {
97
+ const action = input.action ?? summary;
98
+ const risk = input.risk ?? 'unspecified';
99
+ const problems = [
100
+ ['action', plainTextProblem(action, MAX_ACTION)],
101
+ ['why', plainTextProblem(input.reason, MAX_REASON)],
102
+ ['risk', plainTextProblem(risk, MAX_RISK)],
103
+ ];
104
+ for (const [field, problem] of problems)
105
+ if (problem)
106
+ refuse(field, problem);
107
+ return { action, reason: input.reason, risk };
108
+ }
109
+ /**
110
+ * The structured fields of a stored request, or undefined if any is missing, mistyped, out of range, not canonical for
111
+ * its verb, or breaks the text rules. A request without them cannot be approved: file a new one.
112
+ */
113
+ export function storedRequestFields(request) {
114
+ const { verb, target, summary } = request;
115
+ if (typeof verb !== 'string' || !VERBS.includes(verb))
116
+ return undefined;
117
+ if (typeof target !== 'string' || asciiTargetProblem(target) || targetShapeProblem(verb, target))
118
+ return undefined;
119
+ if (summaryProblem(summary))
120
+ return undefined;
121
+ try {
122
+ // The stored target must already be the one canonical spelling for its verb: a hand-written variant is not what
123
+ // the guard would match, and not what `courier request` writes.
124
+ if (canonicalTarget(verb, target) !== target)
125
+ return undefined;
126
+ }
127
+ catch {
128
+ return undefined;
129
+ }
130
+ if (verb === 'merge') {
131
+ if (headShaProblem(request.headSha) || baseBranchProblem(request.base))
132
+ return undefined;
133
+ return { verb, target, summary: summary, headSha: request.headSha, base: request.base };
134
+ }
135
+ if ('headSha' in request || 'base' in request)
136
+ return undefined;
137
+ return { verb: verb, target, summary: summary };
138
+ }
139
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -31,6 +31,8 @@ export function launchdPlist(spec) {
31
31
  ' <dict>',
32
32
  ...env.flatMap(([key, value]) => [` <key>${xml(key)}</key>`, ` <string>${xml(value)}</string>`]),
33
33
  ' </dict>',
34
+ ' <key>AbandonProcessGroup</key>',
35
+ ' <false/>',
34
36
  ' <key>RunAtLoad</key>',
35
37
  ' <true/>',
36
38
  ' <key>KeepAlive</key>',
@@ -83,6 +85,11 @@ export function systemdUnitFile(spec) {
83
85
  `WorkingDirectory=${spec.cwd.replace(/%/g, '%%')}`,
84
86
  ...env.map(([key, value]) => `Environment=${envAssignment(`${key}=${value}`)}`),
85
87
  `ExecStart=${spec.argv.map(execArg).join(' ')}`,
88
+ // Every process the watcher started (agents run in their own process groups) belongs to this cgroup, so a stop,
89
+ // a crash or a restart takes them all down.
90
+ 'KillMode=control-group',
91
+ 'SendSIGKILL=yes',
92
+ 'TimeoutStopSec=15',
86
93
  'Restart=always',
87
94
  'RestartSec=30',
88
95
  `StandardOutput=append:${spec.logFile}`,
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const TEXT_UNICODE_VERSION = "15.0.0";
2
+ export declare const TEXT_ALLOWED_RANGES: readonly (readonly [number, number])[];