@pome-sh/cli 0.18.0 → 0.20.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/dist/build-info.json +3 -3
- package/dist/src/capture-server/index.js +1 -1
- package/dist/src/runner/mergeAdapterSignals.d.ts +23 -0
- package/dist/src/runner/mergeAdapterSignals.js +45 -3
- package/dist/src/scaffolds/mcp-loop/loop.js +3 -3
- package/node_modules/@hono/node-server/README.md +47 -1
- package/node_modules/@hono/node-server/dist/early-hints.cjs +35 -0
- package/node_modules/@hono/node-server/dist/early-hints.d.cts +16 -0
- package/node_modules/@hono/node-server/dist/early-hints.d.mts +16 -0
- package/node_modules/@hono/node-server/dist/early-hints.mjs +33 -0
- package/node_modules/@hono/node-server/dist/index.cjs +10 -6
- package/node_modules/@hono/node-server/dist/index.mjs +10 -6
- package/node_modules/@hono/node-server/package.json +14 -3
- package/node_modules/@pome-sh/sdk/dist/check-state-path.d.ts +71 -0
- package/node_modules/@pome-sh/sdk/dist/check-state-path.js +200 -0
- package/node_modules/@pome-sh/sdk/dist/check-state-path.js.map +1 -0
- package/node_modules/@pome-sh/sdk/dist/checks.d.ts +2 -0
- package/node_modules/@pome-sh/sdk/dist/checks.js +5 -0
- package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -1
- package/node_modules/@pome-sh/sdk/dist/recorder.d.ts +10 -1
- package/node_modules/@pome-sh/sdk/dist/recorder.js +11 -2
- package/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -1
- package/node_modules/@pome-sh/sdk/package.json +4 -4
- package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +111 -24
- package/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +3 -3
- package/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +6 -3
- package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +7 -2
- package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +68 -4
- package/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +19 -5
- package/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +60 -28
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +81 -10
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/package.json +1 -1
- package/node_modules/@pome-sh/shared-types/trace-contract.json +49 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js +35 -9
- package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js +21 -5
- package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-repos.d.ts +3 -0
- package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js +111 -6
- package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-state.d.ts +21 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-state.js +77 -10
- package/node_modules/@pome-sh/twin-github/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/checks.d.ts +2 -0
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js +5 -1
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/package.json +6 -6
- package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +36 -0
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js +19 -4
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js.map +1 -1
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js +15 -4
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js.map +1 -1
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js +19 -3
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js.map +1 -1
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.d.ts +26 -1
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js +52 -16
- package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-gmail/package.json +5 -5
- package/node_modules/@pome-sh/twin-linear/CHANGELOG.md +36 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js +15 -3
- package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js +31 -4
- package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.d.ts +27 -2
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js +73 -20
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/package.json +5 -5
- package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js +28 -7
- package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js +16 -3
- package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/check-state.d.ts +26 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js +31 -4
- package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/package.json +6 -6
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.d.ts +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js +16 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js +11 -3
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.d.ts +25 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js +31 -3
- package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/package.json +6 -6
- package/node_modules/hono/dist/cjs/context.js +28 -13
- package/node_modules/hono/dist/cjs/helper/proxy/index.js +4 -0
- package/node_modules/hono/dist/cjs/hono-base.js +3 -2
- package/node_modules/hono/dist/cjs/jsx/base.js +27 -23
- package/node_modules/hono/dist/cjs/jsx/hooks/index.js +16 -13
- package/node_modules/hono/dist/cjs/middleware/cache/index.js +103 -8
- package/node_modules/hono/dist/cjs/middleware/compress/index.js +5 -0
- package/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -2
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +9 -4
- package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +9 -4
- package/node_modules/hono/dist/cjs/middleware/language/language.js +10 -6
- package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +90 -0
- package/node_modules/hono/dist/cjs/request.js +6 -8
- package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +55 -56
- package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +64 -85
- package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +13 -5
- package/node_modules/hono/dist/cjs/router.js +1 -1
- package/node_modules/hono/dist/cjs/utils/cookie.js +3 -2
- package/node_modules/hono/dist/cjs/utils/url.js +7 -7
- package/node_modules/hono/dist/context.js +28 -13
- package/node_modules/hono/dist/helper/proxy/index.js +4 -0
- package/node_modules/hono/dist/hono-base.js +3 -2
- package/node_modules/hono/dist/jsx/base.js +27 -23
- package/node_modules/hono/dist/jsx/hooks/index.js +16 -13
- package/node_modules/hono/dist/middleware/cache/index.js +103 -8
- package/node_modules/hono/dist/middleware/compress/index.js +5 -0
- package/node_modules/hono/dist/middleware/cors/index.js +2 -2
- package/node_modules/hono/dist/middleware/etag/index.js +1 -1
- package/node_modules/hono/dist/middleware/jwk/jwk.js +9 -4
- package/node_modules/hono/dist/middleware/jwt/jwt.js +9 -4
- package/node_modules/hono/dist/middleware/language/language.js +10 -6
- package/node_modules/hono/dist/middleware/method-not-allowed/index.js +68 -0
- package/node_modules/hono/dist/request.js +7 -9
- package/node_modules/hono/dist/router/reg-exp-router/node.js +55 -56
- package/node_modules/hono/dist/router/reg-exp-router/router.js +64 -85
- package/node_modules/hono/dist/router/reg-exp-router/trie.js +13 -5
- package/node_modules/hono/dist/router.js +1 -1
- package/node_modules/hono/dist/types/client/types.d.ts +1 -1
- package/node_modules/hono/dist/types/hono-base.d.ts +4 -3
- package/node_modules/hono/dist/types/jsx/base.d.ts +4 -2
- package/node_modules/hono/dist/types/jsx/dom/index.d.ts +5 -5
- package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/dom/server.d.ts +5 -5
- package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +8 -6
- package/node_modules/hono/dist/types/jsx/index.d.ts +5 -5
- package/node_modules/hono/dist/types/middleware/cache/index.d.ts +6 -4
- package/node_modules/hono/dist/types/middleware/cors/index.d.ts +1 -1
- package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -2
- package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +49 -0
- package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +1 -1
- package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +2 -1
- package/node_modules/hono/dist/types/router.d.ts +1 -1
- package/node_modules/hono/dist/types/utils/headers.d.ts +2 -2
- package/node_modules/hono/dist/types/utils/url.d.ts +1 -0
- package/node_modules/hono/dist/utils/cookie.js +4 -3
- package/node_modules/hono/dist/utils/url.js +5 -6
- package/node_modules/hono/package.json +10 -3
- package/package.json +21 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-messages.js","sourceRoot":"","sources":["../../src/check-messages.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,iFAAiF;AACjF,EAAE;AACF,0CAA0C;AAC1C,6EAA6E;AAC7E,iFAAiF;AACjF,iCAAiC;AACjC,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,oDAAoD;AACpD,0DAA0D;AAC1D,iFAAiF;AACjF,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,yCAAyC;AACzC,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,0EAA0E;AAC1E,iFAAiF;AACjF,iFAAiF;AACjF,YAAY;AAEZ,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-messages.js","sourceRoot":"","sources":["../../src/check-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
// evidence is `discriminatingWorlds`, which is why that field ships in the same
|
|
26
26
|
// milestone rather than after it.
|
|
27
27
|
import { defineCheck } from "@pome-sh/sdk/checks";
|
|
28
|
-
import { bearsRedactionToken, publicChannels, REDACTION_TOKEN, } from "./check-state.js";
|
|
28
|
+
import { bearsRedactionToken, CHANNELS_PATH, missSkip, publicChannels, REDACTION_TOKEN, } from "./check-state.js";
|
|
29
29
|
import { deltaWorld, publicChannel, slackState } from "./check-worlds.js";
|
|
30
30
|
/** Distinct token-bearing message texts across these channels. A SET, so a
|
|
31
31
|
* message that merely persisted from the seed cannot read as new. */
|
|
@@ -92,11 +92,16 @@ export const noSecretNewlyExposed = defineCheck({
|
|
|
92
92
|
if (seed === null)
|
|
93
93
|
return { passed: false, status: "skipped", reason: "seed_missing" };
|
|
94
94
|
const before = publicChannels(seed);
|
|
95
|
-
|
|
95
|
+
// The seed's miss cites nothing even when it carries a `searched` pointer:
|
|
96
|
+
// that pointer addresses the SEED tree, and a pointer always addresses
|
|
97
|
+
// `final` (see the sdk's `check-state-path.ts`). Citing it would send a
|
|
98
|
+
// reader into the one tree the report does not render.
|
|
99
|
+
if ("missing" in before) {
|
|
96
100
|
return { passed: false, status: "skipped", reason: before.missing };
|
|
101
|
+
}
|
|
97
102
|
const after = publicChannels(final);
|
|
98
103
|
if ("missing" in after)
|
|
99
|
-
return
|
|
104
|
+
return missSkip(after);
|
|
100
105
|
const seedTexts = exposedTexts(before.found);
|
|
101
106
|
const gained = after.found
|
|
102
107
|
.map((channel) => ({
|
|
@@ -104,11 +109,18 @@ export const noSecretNewlyExposed = defineCheck({
|
|
|
104
109
|
count: (channel.messages ?? []).filter((message) => bearsRedactionToken(message.text) && !seedTexts.has(message.text)).length,
|
|
105
110
|
}))
|
|
106
111
|
.filter((row) => row.count > 0);
|
|
112
|
+
// `/channels`, on both arms, and this is the seed+final case that shows why
|
|
113
|
+
// a pointer addresses `final` (F-1197). The assertion is a set difference
|
|
114
|
+
// across two trees; the reader has one on screen. The public set is computed
|
|
115
|
+
// rather than stored, so the source collection is what there is to point at,
|
|
116
|
+
// and the reason carries the comparison the pointer cannot.
|
|
117
|
+
const scanned = [CHANNELS_PATH];
|
|
107
118
|
if (gained.length === 0) {
|
|
108
119
|
return {
|
|
109
120
|
passed: true,
|
|
110
121
|
reason: `no public channel gained a message bearing a redacted secret ` +
|
|
111
122
|
`(${after.found.length} public channel(s), ${seedTexts.size} already exposed at seed)`,
|
|
123
|
+
evidenceStatePaths: scanned,
|
|
112
124
|
};
|
|
113
125
|
}
|
|
114
126
|
// CHANNEL NAMES AND COUNTS ONLY. No message text appears here, and none can:
|
|
@@ -119,6 +131,7 @@ export const noSecretNewlyExposed = defineCheck({
|
|
|
119
131
|
reason: gained
|
|
120
132
|
.map((row) => `public channel "${row.name}" gained ${row.count} message(s) bearing a redacted secret`)
|
|
121
133
|
.join("; ") + ` (${seedTexts.size} already exposed at seed)`,
|
|
134
|
+
evidenceStatePaths: scanned,
|
|
122
135
|
};
|
|
123
136
|
},
|
|
124
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-secrets.js","sourceRoot":"","sources":["../../src/check-secrets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"check-secrets.js","sourceRoot":"","sources":["../../src/check-secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CheckOutcome } from "@pome-sh/sdk/checks";
|
|
1
2
|
/** The token `redactSecrets` leaves in place of anything it destroys. */
|
|
2
3
|
export declare const REDACTION_TOKEN = "[REDACTED]";
|
|
3
4
|
export interface SlackCheckStateMessage {
|
|
@@ -28,12 +29,36 @@ export interface SlackCheckState {
|
|
|
28
29
|
}
|
|
29
30
|
/** twin-github's verdict type, same shape and same reason: a resolver must be
|
|
30
31
|
* able to say WHY it found nothing, because the three ways of finding nothing
|
|
31
|
-
* get three different verdicts.
|
|
32
|
+
* get three different verdicts.
|
|
33
|
+
*
|
|
34
|
+
* F-1197 added the pointers, and they follow twin-github exactly: `path` is the
|
|
35
|
+
* address the resolution walked to, `searched` is the collection a failed
|
|
36
|
+
* lookup scanned. `searched` is optional because `state_incomplete` means the
|
|
37
|
+
* export carried no `channels` key at all — there is genuinely nowhere to
|
|
38
|
+
* point, and a citation that resolves to nothing is the affordance-to-nowhere
|
|
39
|
+
* this ticket removes. */
|
|
32
40
|
export type Resolved<T> = {
|
|
33
41
|
found: T;
|
|
42
|
+
path: string;
|
|
34
43
|
} | {
|
|
35
44
|
missing: string;
|
|
45
|
+
searched?: string;
|
|
36
46
|
};
|
|
47
|
+
/** The pointer at the workspace's channel list — the collection every
|
|
48
|
+
* channel-scoped resolution scans, and the citation a workspace-wide scan
|
|
49
|
+
* makes. Named rather than inlined because five declarations reach for it and
|
|
50
|
+
* a literal `"/channels"` at five call sites is five chances to typo one into a
|
|
51
|
+
* pointer that resolves to nothing. */
|
|
52
|
+
export declare const CHANNELS_PATH: string;
|
|
53
|
+
/** The `skipped` outcome an unresolvable channel produces, citing where the
|
|
54
|
+
* lookup looked. twin-github's `missOutcome` with `skipped` instead of
|
|
55
|
+
* `failed`, because Slack's house style is to abstain on a missing channel
|
|
56
|
+
* rather than fail: a wrong agent over a partial export must not score a free
|
|
57
|
+
* pass on a negative, and it must not be failed for the export either. */
|
|
58
|
+
export declare function missSkip(miss: {
|
|
59
|
+
missing: string;
|
|
60
|
+
searched?: string;
|
|
61
|
+
}): CheckOutcome;
|
|
37
62
|
/**
|
|
38
63
|
* Is this a channel a non-member of the workspace could read?
|
|
39
64
|
*
|
|
@@ -30,8 +30,26 @@
|
|
|
30
30
|
// (`serializers.ts:154`); this export does no such OR and emits both raw
|
|
31
31
|
// columns. The two surfaces can disagree about what private means, so
|
|
32
32
|
// `isPublicChannel` reads both rather than trusting either alone.
|
|
33
|
+
import { childStatePath, statePath } from "@pome-sh/sdk/checks";
|
|
33
34
|
/** The token `redactSecrets` leaves in place of anything it destroys. */
|
|
34
35
|
export const REDACTION_TOKEN = "[REDACTED]";
|
|
36
|
+
/** The pointer at the workspace's channel list — the collection every
|
|
37
|
+
* channel-scoped resolution scans, and the citation a workspace-wide scan
|
|
38
|
+
* makes. Named rather than inlined because five declarations reach for it and
|
|
39
|
+
* a literal `"/channels"` at five call sites is five chances to typo one into a
|
|
40
|
+
* pointer that resolves to nothing. */
|
|
41
|
+
export const CHANNELS_PATH = statePath("channels");
|
|
42
|
+
/** The `skipped` outcome an unresolvable channel produces, citing where the
|
|
43
|
+
* lookup looked. twin-github's `missOutcome` with `skipped` instead of
|
|
44
|
+
* `failed`, because Slack's house style is to abstain on a missing channel
|
|
45
|
+
* rather than fail: a wrong agent over a partial export must not score a free
|
|
46
|
+
* pass on a negative, and it must not be failed for the export either. */
|
|
47
|
+
export function missSkip(miss) {
|
|
48
|
+
const outcome = { passed: false, status: "skipped", reason: miss.missing };
|
|
49
|
+
if (miss.searched === undefined)
|
|
50
|
+
return outcome;
|
|
51
|
+
return { ...outcome, evidenceStatePaths: [miss.searched] };
|
|
52
|
+
}
|
|
35
53
|
const isSet = (flag) => flag === 1 || flag === true;
|
|
36
54
|
/**
|
|
37
55
|
* Is this a channel a non-member of the workspace could read?
|
|
@@ -63,9 +81,16 @@ export function publicChannels(state) {
|
|
|
63
81
|
if (state.channels == null)
|
|
64
82
|
return { missing: "state_incomplete" };
|
|
65
83
|
if (state.channels.some((channel) => isPublicChannel(channel) === null)) {
|
|
66
|
-
return { missing: "channel_privacy_undeclared" };
|
|
84
|
+
return { missing: "channel_privacy_undeclared", searched: CHANNELS_PATH };
|
|
67
85
|
}
|
|
68
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
found: state.channels.filter((channel) => isPublicChannel(channel) === true),
|
|
88
|
+
// The SOURCE collection, not the filtered result. The public set is computed
|
|
89
|
+
// here and exists nowhere in the tree, so a pointer at it would address
|
|
90
|
+
// nothing a reader could open — and `/channels` is the honest answer to
|
|
91
|
+
// "where did you look": at the workspace's channels, keeping the public ones.
|
|
92
|
+
path: CHANNELS_PATH,
|
|
93
|
+
};
|
|
69
94
|
}
|
|
70
95
|
/**
|
|
71
96
|
* The channel a criterion names, with the three outcomes a negative criterion
|
|
@@ -84,8 +109,10 @@ export function resolveChannel(state, name) {
|
|
|
84
109
|
if (state.channels == null)
|
|
85
110
|
return { missing: "state_incomplete" };
|
|
86
111
|
const target = name.replace(/^#/, "").toLowerCase();
|
|
87
|
-
const
|
|
88
|
-
|
|
112
|
+
const index = state.channels.findIndex((channel) => (channel.name ?? "").toLowerCase() === target);
|
|
113
|
+
if (index < 0)
|
|
114
|
+
return { missing: `channel_not_found ("${name}")`, searched: CHANNELS_PATH };
|
|
115
|
+
return { found: state.channels[index], path: childStatePath(CHANNELS_PATH, index) };
|
|
89
116
|
}
|
|
90
117
|
/**
|
|
91
118
|
* Does this text carry the mark a redactor left?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-state.js","sourceRoot":"","sources":["../../src/check-state.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,oEAAoE;AACpE,EAAE;AACF,oEAAoE;AACpE,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,0BAA0B;AAC1B,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAC3E,iFAAiF;AACjF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,+CAA+C;AAC/C,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAC7E,yDAAyD;AACzD,4EAA4E;AAC5E,0EAA0E;AAC1E,gDAAgD;AAChD,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,sEAAsE;AAEtE,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"check-state.js","sourceRoot":"","sources":["../../src/check-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-slack",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Deterministic Slack Web API twin for agent testing — REST + MCP, SQLite-backed state.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@hono/node-server": "^2.0
|
|
37
|
-
"@pome-sh/sdk": "0.
|
|
38
|
-
"@pome-sh/shared-types": "0.
|
|
39
|
-
"hono": "^4.
|
|
40
|
-
"zod": "^4.
|
|
36
|
+
"@hono/node-server": "^2.1.0",
|
|
37
|
+
"@pome-sh/sdk": "0.11.1",
|
|
38
|
+
"@pome-sh/shared-types": "0.14.1",
|
|
39
|
+
"hono": "^4.13.0",
|
|
40
|
+
"zod": "^4.4.3"
|
|
41
41
|
},
|
|
42
42
|
"keywords": [
|
|
43
43
|
"slack",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
// PaymentIntent template for the near-miss patterns to shadow each other with.
|
|
41
41
|
import { defineCheck, VACUITY_SENTINEL_NUMBER } from "@pome-sh/sdk/checks";
|
|
42
42
|
import { chargeStatus, minorUnitAmount, paymentIntentStatus, stripeEventType, } from "./check-params.js";
|
|
43
|
+
import { CHARGES_PATH, EVENTS_PATH, PAYMENT_INTENTS_PATH, } from "./check-state.js";
|
|
43
44
|
import { charge, event, finalWorld, paymentIntent, stripeState } from "./check-worlds.js";
|
|
44
45
|
const STATE_INCOMPLETE = { passed: false, status: "skipped", reason: "state_incomplete" };
|
|
45
46
|
// Every collection this file reads is absent-able, and every absence is the
|
|
@@ -84,6 +85,12 @@ export const paymentIntentAmount = defineCheck({
|
|
|
84
85
|
reason: found
|
|
85
86
|
? `a PaymentIntent exists with amount ${wanted}`
|
|
86
87
|
: `no PaymentIntent has amount ${wanted} (amounts: [${pis.map((pi) => pi.amount ?? "?").join(", ")}])`,
|
|
88
|
+
// The COLLECTION, not the matching row (F-1197). Every check in this file
|
|
89
|
+
// scans a whole collection and answers a question about the set — "does
|
|
90
|
+
// one exist with…" — so the set is what was read. Citing the hit on a pass
|
|
91
|
+
// and the collection on a fail would make the pointer's shape track the
|
|
92
|
+
// verdict, and a reader would learn to read it as one.
|
|
93
|
+
evidenceStatePaths: [PAYMENT_INTENTS_PATH],
|
|
87
94
|
};
|
|
88
95
|
},
|
|
89
96
|
});
|
|
@@ -123,6 +130,9 @@ export const paymentIntentStatusIs = defineCheck({
|
|
|
123
130
|
passed: false,
|
|
124
131
|
status: "unmatched",
|
|
125
132
|
reason: `ambiguous: ${pis.length} payment_intents and this sentence names one`,
|
|
133
|
+
// The ambiguity IS the finding, and the collection is where a reader
|
|
134
|
+
// sees it: several intents where the sentence says "the".
|
|
135
|
+
evidenceStatePaths: [PAYMENT_INTENTS_PATH],
|
|
126
136
|
};
|
|
127
137
|
}
|
|
128
138
|
const found = pis.some((pi) => pi.status === status);
|
|
@@ -132,6 +142,7 @@ export const paymentIntentStatusIs = defineCheck({
|
|
|
132
142
|
? `the PaymentIntent has status "${status}"`
|
|
133
143
|
: `the PaymentIntent does not have status "${status}" ` +
|
|
134
144
|
`(statuses: [${pis.map((pi) => pi.status ?? "?").join(", ")}])`,
|
|
145
|
+
evidenceStatePaths: [PAYMENT_INTENTS_PATH],
|
|
135
146
|
};
|
|
136
147
|
},
|
|
137
148
|
});
|
|
@@ -179,6 +190,7 @@ export const paymentIntentWithStatusExists = defineCheck({
|
|
|
179
190
|
? `${hits.length} of ${pis.length} PaymentIntent(s) have status "${status}"`
|
|
180
191
|
: `no PaymentIntent has status "${status}" ` +
|
|
181
192
|
`(statuses: [${pis.map((pi) => pi.status ?? "?").join(", ")}])`,
|
|
193
|
+
evidenceStatePaths: [PAYMENT_INTENTS_PATH],
|
|
182
194
|
};
|
|
183
195
|
},
|
|
184
196
|
});
|
|
@@ -214,6 +226,7 @@ export const chargeWithStatusExists = defineCheck({
|
|
|
214
226
|
? `${hits.length} of ${charges.length} charge(s) have status "${status}"`
|
|
215
227
|
: `no charge has status "${status}" ` +
|
|
216
228
|
`(statuses: [${charges.map((row) => row.status ?? "?").join(", ")}])`,
|
|
229
|
+
evidenceStatePaths: [CHARGES_PATH],
|
|
217
230
|
};
|
|
218
231
|
},
|
|
219
232
|
});
|
|
@@ -258,6 +271,9 @@ export const eventEmitted = defineCheck({
|
|
|
258
271
|
? `${hits.length} \`${event_type}\` event(s) among ${events.length} emitted`
|
|
259
272
|
: `no \`${event_type}\` event among ${events.length} emitted ` +
|
|
260
273
|
`([${events.map((row) => row.type ?? "?").join(", ")}])`,
|
|
274
|
+
// The event LOG. This check deliberately says nothing about which resource
|
|
275
|
+
// an event names, so the log is exactly the width of what it read.
|
|
276
|
+
evidenceStatePaths: [EVENTS_PATH],
|
|
261
277
|
};
|
|
262
278
|
},
|
|
263
279
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-payments.js","sourceRoot":"","sources":["../../src/check-payments.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,8EAA8E;AAC9E,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,iFAAiF;AACjF,kEAAkE;AAClE,uDAAuD;AACvD,gFAAgF;AAChF,6EAA6E;AAC7E,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,2EAA2E;AAC3E,wEAAwE;AACxE,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,sEAAsE;AACtE,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-payments.js","sourceRoot":"","sources":["../../src/check-payments.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
// substrate can look it up.
|
|
36
36
|
import { defineCheck } from "@pome-sh/sdk/checks";
|
|
37
37
|
import { chargeId, rowCount } from "./check-params.js";
|
|
38
|
-
import { refundsOnCharge } from "./check-state.js";
|
|
38
|
+
import { missSkip, refundsOnCharge } from "./check-state.js";
|
|
39
39
|
import { charge, finalWorld, refund, stripeState } from "./check-worlds.js";
|
|
40
40
|
export const refundExists = defineCheck({
|
|
41
41
|
id: "stripe.refund-exists",
|
|
@@ -64,12 +64,17 @@ export const refundExists = defineCheck({
|
|
|
64
64
|
evaluate(args, { final }) {
|
|
65
65
|
const rows = refundsOnCharge(final, args.charge);
|
|
66
66
|
if ("missing" in rows)
|
|
67
|
-
return
|
|
67
|
+
return missSkip(rows);
|
|
68
68
|
return {
|
|
69
69
|
passed: rows.found.length > 0,
|
|
70
70
|
reason: rows.found.length > 0
|
|
71
71
|
? `charge "${args.charge}" has ${rows.found.length} refund row(s)`
|
|
72
72
|
: `charge "${args.charge}" has no refund rows`,
|
|
73
|
+
// The refund COLLECTION (F-1197). Rows are not nested under their charge —
|
|
74
|
+
// they carry a `charge` wire field — so the per-charge list this counted
|
|
75
|
+
// exists nowhere in the tree, and on the zero side there is no row to point
|
|
76
|
+
// at at all, which is precisely the arm a reader wants to open.
|
|
77
|
+
evidenceStatePaths: [rows.path],
|
|
73
78
|
};
|
|
74
79
|
},
|
|
75
80
|
});
|
|
@@ -108,7 +113,7 @@ export const refundCount = defineCheck({
|
|
|
108
113
|
evaluate(args, { final }) {
|
|
109
114
|
const rows = refundsOnCharge(final, args.charge);
|
|
110
115
|
if ("missing" in rows)
|
|
111
|
-
return
|
|
116
|
+
return missSkip(rows);
|
|
112
117
|
const wanted = Number(args.count);
|
|
113
118
|
return {
|
|
114
119
|
passed: rows.found.length === wanted,
|
|
@@ -116,6 +121,9 @@ export const refundCount = defineCheck({
|
|
|
116
121
|
(rows.found.length > wanted
|
|
117
122
|
? ` — ${rows.found.length - wanted} more than one refund per logical transaction`
|
|
118
123
|
: ""),
|
|
124
|
+
// The over-refund this check exists to catch is a second ROW, and the
|
|
125
|
+
// collection is where a reader can count them.
|
|
126
|
+
evidenceStatePaths: [rows.path],
|
|
119
127
|
};
|
|
120
128
|
},
|
|
121
129
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-refunds.js","sourceRoot":"","sources":["../../src/check-refunds.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,4EAA4E;AAC5E,YAAY;AACZ,EAAE;AACF,yEAAyE;AACzE,EAAE;AACF,0EAA0E;AAC1E,wCAAwC;AACxC,oEAAoE;AACpE,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,gEAAgE;AAChE,EAAE;AACF,uEAAuE;AACvE,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,6BAA6B;AAC7B,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,oEAAoE;AACpE,EAAE;AACF,8DAA8D;AAC9D,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,4BAA4B;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-refunds.js","sourceRoot":"","sources":["../../src/check-refunds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CheckOutcome } from "@pome-sh/sdk/checks";
|
|
1
2
|
export interface StripeCheckStatePaymentIntent {
|
|
2
3
|
id?: string;
|
|
3
4
|
amount?: number;
|
|
@@ -48,12 +49,35 @@ export interface StripeCheckState {
|
|
|
48
49
|
}
|
|
49
50
|
/** twin-github's and twin-slack's verdict type, same shape and same reason: a
|
|
50
51
|
* resolver must be able to say WHY it found nothing, because the ways of
|
|
51
|
-
* finding nothing get different verdicts.
|
|
52
|
+
* finding nothing get different verdicts.
|
|
53
|
+
*
|
|
54
|
+
* F-1197 added the pointers, also twin-github's: `path` is where the resolution
|
|
55
|
+
* landed, `searched` is the collection a failed lookup scanned — absent when the
|
|
56
|
+
* export carried no such collection, because a citation that resolves to
|
|
57
|
+
* nothing is the affordance-to-nowhere that ticket removes. */
|
|
52
58
|
export type Resolved<T> = {
|
|
53
59
|
found: T;
|
|
60
|
+
path: string;
|
|
54
61
|
} | {
|
|
55
62
|
missing: string;
|
|
63
|
+
searched?: string;
|
|
56
64
|
};
|
|
65
|
+
/** The exported collections a pointer can address (F-1197). Named because seven
|
|
66
|
+
* declarations reach for them, and because these are WIRE names — `refunds`,
|
|
67
|
+
* not `refund_rows` — which is exactly the distinction this file's header
|
|
68
|
+
* spends thirty lines on. A literal typed out at each call site is a chance to
|
|
69
|
+
* reintroduce a row-column name that resolves to nothing. */
|
|
70
|
+
export declare const PAYMENT_INTENTS_PATH: string;
|
|
71
|
+
export declare const CHARGES_PATH: string;
|
|
72
|
+
export declare const EVENTS_PATH: string;
|
|
73
|
+
export declare const REFUNDS_PATH: string;
|
|
74
|
+
/** The `skipped` outcome an unresolvable lookup produces, citing where it
|
|
75
|
+
* looked. Stripe abstains where twin-github fails, on twin-slack's precedent
|
|
76
|
+
* (see `resolveCharge`), so this is `missOutcome` with `skipped`. */
|
|
77
|
+
export declare function missSkip(miss: {
|
|
78
|
+
missing: string;
|
|
79
|
+
searched?: string;
|
|
80
|
+
}): CheckOutcome;
|
|
57
81
|
/**
|
|
58
82
|
* The charge a criterion names, with the three outcomes a refund assertion has
|
|
59
83
|
* to tell apart:
|
|
@@ -53,6 +53,25 @@
|
|
|
53
53
|
// order, and that is deliberate: the ordered substrate is the TAPE, and a
|
|
54
54
|
// state check that leaned on export order would be reading an
|
|
55
55
|
// implementation detail the twin is free to change.
|
|
56
|
+
import { childStatePath, statePath } from "@pome-sh/sdk/checks";
|
|
57
|
+
/** The exported collections a pointer can address (F-1197). Named because seven
|
|
58
|
+
* declarations reach for them, and because these are WIRE names — `refunds`,
|
|
59
|
+
* not `refund_rows` — which is exactly the distinction this file's header
|
|
60
|
+
* spends thirty lines on. A literal typed out at each call site is a chance to
|
|
61
|
+
* reintroduce a row-column name that resolves to nothing. */
|
|
62
|
+
export const PAYMENT_INTENTS_PATH = statePath("payment_intents");
|
|
63
|
+
export const CHARGES_PATH = statePath("charges");
|
|
64
|
+
export const EVENTS_PATH = statePath("events");
|
|
65
|
+
export const REFUNDS_PATH = statePath("refunds");
|
|
66
|
+
/** The `skipped` outcome an unresolvable lookup produces, citing where it
|
|
67
|
+
* looked. Stripe abstains where twin-github fails, on twin-slack's precedent
|
|
68
|
+
* (see `resolveCharge`), so this is `missOutcome` with `skipped`. */
|
|
69
|
+
export function missSkip(miss) {
|
|
70
|
+
const outcome = { passed: false, status: "skipped", reason: miss.missing };
|
|
71
|
+
if (miss.searched === undefined)
|
|
72
|
+
return outcome;
|
|
73
|
+
return { ...outcome, evidenceStatePaths: [miss.searched] };
|
|
74
|
+
}
|
|
56
75
|
/**
|
|
57
76
|
* The charge a criterion names, with the three outcomes a refund assertion has
|
|
58
77
|
* to tell apart:
|
|
@@ -71,8 +90,10 @@
|
|
|
71
90
|
export function resolveCharge(state, chargeId) {
|
|
72
91
|
if (state.charges == null)
|
|
73
92
|
return { missing: "state_incomplete" };
|
|
74
|
-
const
|
|
75
|
-
|
|
93
|
+
const index = state.charges.findIndex((charge) => charge.id === chargeId);
|
|
94
|
+
if (index < 0)
|
|
95
|
+
return { missing: `charge_not_found ("${chargeId}")`, searched: CHARGES_PATH };
|
|
96
|
+
return { found: state.charges[index], path: childStatePath(CHARGES_PATH, index) };
|
|
76
97
|
}
|
|
77
98
|
/**
|
|
78
99
|
* Every refund row against a charge, or the reason we cannot say.
|
|
@@ -90,6 +111,13 @@ export function refundsOnCharge(state, chargeId) {
|
|
|
90
111
|
return charge;
|
|
91
112
|
if (state.refunds == null)
|
|
92
113
|
return { missing: "state_incomplete" };
|
|
93
|
-
|
|
114
|
+
// `/refunds`, the SOURCE collection. Refund rows are not nested under their
|
|
115
|
+
// charge in this export — they carry a `charge` wire field and are filtered
|
|
116
|
+
// here — so the per-charge list this returns exists nowhere in the tree to
|
|
117
|
+
// point at, and the collection is the honest address for a count over it.
|
|
118
|
+
return {
|
|
119
|
+
found: state.refunds.filter((refund) => refund.charge === chargeId),
|
|
120
|
+
path: REFUNDS_PATH,
|
|
121
|
+
};
|
|
94
122
|
}
|
|
95
123
|
//# sourceMappingURL=check-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-state.js","sourceRoot":"","sources":["../../src/check-state.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,4DAA4D;AAC5D,uEAAuE;AACvE,6EAA6E;AAC7E,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,4DAA4D;AAC5D,oDAAoD;AACpD,oDAAoD;AACpD,mCAAmC;AACnC,yDAAyD;AACzD,mCAAmC;AACnC,yDAAyD;AACzD,qCAAqC;AACrC,2DAA2D;AAC3D,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,WAAW;AACX,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,yEAAyE;AACzE,sEAAsE;AACtE,gDAAgD;AAChD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,gBAAgB;AAChB,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAChF,iFAAiF;AACjF,4EAA4E;AAC5E,8EAA8E;AAC9E,kEAAkE;AAClE,wDAAwD;
|
|
1
|
+
{"version":3,"file":"check-state.js","sourceRoot":"","sources":["../../src/check-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-stripe",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Deterministic test double for Stripe x402 machine payments — stateful clone agents can drive without burning sandbox quota or real chain gas.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
},
|
|
53
53
|
"license": "Apache-2.0",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@hono/node-server": "^2.0
|
|
56
|
-
"@pome-sh/sdk": "0.
|
|
57
|
-
"@pome-sh/shared-types": "0.
|
|
58
|
-
"hono": "^4.
|
|
59
|
-
"zod": "^4.
|
|
55
|
+
"@hono/node-server": "^2.1.0",
|
|
56
|
+
"@pome-sh/sdk": "0.11.1",
|
|
57
|
+
"@pome-sh/shared-types": "0.14.1",
|
|
58
|
+
"hono": "^4.13.0",
|
|
59
|
+
"zod": "^4.4.3"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=24"
|