@pome-sh/checks 0.3.0 → 0.3.2
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @pome-sh/checks
|
|
2
2
|
|
|
3
|
+
## 0.3.2 — 2026-08-22
|
|
4
|
+
|
|
5
|
+
**No consumer-visible change.** The nine per-workspace `vitest.config.ts` files
|
|
6
|
+
were replaced by one root config declaring every workspace as a vitest project,
|
|
7
|
+
and the per-workspace `"test": "vitest run"` scripts were removed in favour of a
|
|
8
|
+
single root `test`. Test selection is byte-identical -- 3,748 cases before and
|
|
9
|
+
after, same names. Nothing about this package's source, exports, or shipped
|
|
10
|
+
artifact moved. Listed only because a manifest changed, which the next release
|
|
11
|
+
of this package carries.
|
|
12
|
+
|
|
13
|
+
## 0.3.1 — 2026-08-18
|
|
14
|
+
|
|
15
|
+
**`slackSeedSchema` accepts a `files` key** (F-1509). This package re-exports
|
|
16
|
+
twin-slack's seed schema (`slackSeedSchema` / `parseSlackSeed` /
|
|
17
|
+
`defaultSlackSeed`), and that schema gained
|
|
18
|
+
`files: [{id?, name, title?, filetype?, user?, channels?, content?}]` so a Slack
|
|
19
|
+
world can be seeded with files rather than only acquiring them through a
|
|
20
|
+
`files.upload` mutation.
|
|
21
|
+
|
|
22
|
+
**No check changed.** `SLACK_CHECKS` is the same tuple, every compiled pattern is
|
|
23
|
+
byte-identical, and `checksDigest` does not move — so a cloud pin does NOT have to
|
|
24
|
+
catch up for this release, unlike 0.3.0 above. The seed schema is a separate export
|
|
25
|
+
from the check vocabulary and only the former widened.
|
|
26
|
+
|
|
27
|
+
**Patch, not minor.** `files` defaults to `[]`, so every seed that parsed before
|
|
28
|
+
parses to the same value, and no consumer must act. It is a widening of an INPUT
|
|
29
|
+
schema, which is the direction that cannot break a caller.
|
|
30
|
+
|
|
3
31
|
## 0.3.0 — 2026-08-14
|
|
4
32
|
|
|
5
33
|
**`` `add_issue_comment` was called `` binds, and the github tape slot widens
|
|
@@ -35,6 +35,15 @@ export declare const seedSchema: z.ZodObject<{
|
|
|
35
35
|
}, z.core.$strip>>>;
|
|
36
36
|
}, z.core.$strip>>>;
|
|
37
37
|
}, z.core.$strip>>>;
|
|
38
|
+
files: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
39
|
+
id: z.ZodOptional<z.ZodString>;
|
|
40
|
+
name: z.ZodString;
|
|
41
|
+
title: z.ZodOptional<z.ZodString>;
|
|
42
|
+
filetype: z.ZodDefault<z.ZodString>;
|
|
43
|
+
user: z.ZodOptional<z.ZodString>;
|
|
44
|
+
channels: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
45
|
+
content: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$strip>>>;
|
|
38
47
|
emoji: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
39
48
|
name: z.ZodString;
|
|
40
49
|
url: z.ZodOptional<z.ZodString>;
|
|
@@ -44,10 +44,40 @@ export type SeedEmoji = {
|
|
|
44
44
|
/** Alias target name → stored as `alias:<name>`. */
|
|
45
45
|
alias?: string;
|
|
46
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* A file present in the world before the agent touches it (F-1509).
|
|
49
|
+
*
|
|
50
|
+
* Until this existed the `files` table had exactly ONE writer — `filesUpload`,
|
|
51
|
+
* a mutation — so every read of `files.list` / `files.info` against a freshly
|
|
52
|
+
* seeded world answered on an empty table. That is not a serializer gap and it
|
|
53
|
+
* was not a deliberate ruling; it is simply a hole in the seed vocabulary, and
|
|
54
|
+
* it made `files.list` a surface no read-only comparison could measure.
|
|
55
|
+
*
|
|
56
|
+
* `user` and `channels` carry SEED HANDLES (a user `name` / channel `name`), the
|
|
57
|
+
* same currency `SeedMessage.user` and `SeedChannel.members` use, so a seed never
|
|
58
|
+
* has to know a minted id. Both also accept an explicit id.
|
|
59
|
+
*/
|
|
60
|
+
export type SeedFile = {
|
|
61
|
+
/** Explicit stable id (`F…`). Minted from the workspace counter when absent. */
|
|
62
|
+
id?: string;
|
|
63
|
+
/** Filename, e.g. `runbook.md`. */
|
|
64
|
+
name: string;
|
|
65
|
+
/** Display title. Defaults to `name`, matching `files.upload`. */
|
|
66
|
+
title?: string;
|
|
67
|
+
/** Slack filetype (`text`, `markdown`, `javascript`, …). Drives `mimetype`. */
|
|
68
|
+
filetype?: string;
|
|
69
|
+
/** Uploader — a seed user handle or id. Defaults to the seed's agent user. */
|
|
70
|
+
user?: string;
|
|
71
|
+
/** Channels the file is shared into — seed channel handles or ids. */
|
|
72
|
+
channels?: string[];
|
|
73
|
+
/** File body. `size` is derived from it, as `files.upload` derives it. */
|
|
74
|
+
content?: string;
|
|
75
|
+
};
|
|
47
76
|
export type SlackStateSeed = {
|
|
48
77
|
team?: SeedTeam;
|
|
49
78
|
users?: SeedUser[];
|
|
50
79
|
channels?: SeedChannel[];
|
|
80
|
+
files?: SeedFile[];
|
|
51
81
|
emoji?: SeedEmoji[];
|
|
52
82
|
};
|
|
53
83
|
export type WorkspaceRow = {
|
|
@@ -380,6 +380,18 @@ var seedSchema = z.object({
|
|
|
380
380
|
reactions: z.array(z.object({ name: z.string(), user: z.string() })).default([])
|
|
381
381
|
})).default([])
|
|
382
382
|
})).default([]),
|
|
383
|
+
// F-1509. Files present in the world before the agent runs. `user` and
|
|
384
|
+
// `channels` are seed HANDLES (a user/channel `name`) or ids — the same
|
|
385
|
+
// currency `channels[].members` and `channels[].messages[].user` already use.
|
|
386
|
+
files: z.array(z.object({
|
|
387
|
+
id: z.string().regex(/^F[A-Z0-9_]+$/).optional(),
|
|
388
|
+
name: z.string().min(1),
|
|
389
|
+
title: z.string().optional(),
|
|
390
|
+
filetype: z.string().min(1).default("text"),
|
|
391
|
+
user: z.string().optional(),
|
|
392
|
+
channels: z.array(z.string()).default([]),
|
|
393
|
+
content: z.string().optional()
|
|
394
|
+
})).default([]),
|
|
383
395
|
emoji: z.array(z.object({
|
|
384
396
|
name: z.string().regex(/^[a-z0-9_+-]{1,100}$/),
|
|
385
397
|
url: z.string().url().optional(),
|
package/dist/index.js
CHANGED
|
@@ -5,8 +5,8 @@ import { GMAIL_CHECKS } from './chunk-KTTJCEDH.js';
|
|
|
5
5
|
export { GMAIL_CHECKS, defaultSeedState as defaultGmailSeed, gmailSeedSchema, parseSeed as parseGmailSeed } from './chunk-KTTJCEDH.js';
|
|
6
6
|
import { LINEAR_CHECKS } from './chunk-THOSO63W.js';
|
|
7
7
|
export { LINEAR_CHECKS, defaultSeedState as defaultLinearSeed, linearSeedSchema, parseSeed as parseLinearSeed } from './chunk-THOSO63W.js';
|
|
8
|
-
import { SLACK_CHECKS } from './chunk-
|
|
9
|
-
export { SLACK_CHECKS, defaultSeedState as defaultSlackSeed, parseSeed as parseSlackSeed, seedSchema as slackSeedSchema } from './chunk-
|
|
8
|
+
import { SLACK_CHECKS } from './chunk-ZXS3NTSQ.js';
|
|
9
|
+
export { SLACK_CHECKS, defaultSeedState as defaultSlackSeed, parseSeed as parseSlackSeed, seedSchema as slackSeedSchema } from './chunk-ZXS3NTSQ.js';
|
|
10
10
|
import { STRIPE_CHECKS } from './chunk-XOUAZPNB.js';
|
|
11
11
|
export { STRIPE_CHECKS, defaultSeed as defaultStripeSeed, parseSeed as parseStripeSeed, seedSchema as stripeSeedSchema } from './chunk-XOUAZPNB.js';
|
|
12
12
|
export { REDACTION_PLACEHOLDER, VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER, VACUITY_SENTINEL_SNAKE, checkNearMissPattern, checkPattern, checksDigest, childStatePath, defineCheck, isRedacted, oneOf, parseCheck, probeDiscrimination, probeRedactionSurvival, probeStateCitation, renderCheck, repoRef, resolveStatePath, statePath, templateSlots } from './chunk-W2JNYULF.js';
|
package/dist/slack.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { SLACK_CHECKS, defaultSeedState, parseSeed, seedSchema } from './chunk-
|
|
1
|
+
export { SLACK_CHECKS, defaultSeedState, parseSeed, seedSchema } from './chunk-ZXS3NTSQ.js';
|
|
2
2
|
import './chunk-W2JNYULF.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/checks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Pome's grading vocabulary — the check declarations, seed schemas and default seeds of all five digital twins, plus the check DSL they are written in. Declarations only: no twin server, no database, no routes, no tools.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -67,7 +67,6 @@
|
|
|
67
67
|
],
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsup && node ../../scripts/bundle-declarations.mjs .",
|
|
70
|
-
"test": "vitest run",
|
|
71
70
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
72
71
|
"prepublishOnly": "npm run build"
|
|
73
72
|
},
|