@pome-sh/cli 0.17.0 → 0.19.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.
Files changed (89) hide show
  1. package/README.md +13 -5
  2. package/dist/build-info.json +3 -3
  3. package/dist/src/capture-server/index.js +1 -1
  4. package/dist/src/cli/eval.js +12 -10
  5. package/dist/src/cli/main.js +1 -1
  6. package/dist/src/hosted/evalResultView.d.ts +1 -1
  7. package/dist/src/hosted/evalResultView.js +22 -5
  8. package/dist/src/runner/groupRender.d.ts +12 -2
  9. package/dist/src/runner/groupRender.js +32 -8
  10. package/dist/src/runner/mergeAdapterSignals.d.ts +23 -0
  11. package/dist/src/runner/mergeAdapterSignals.js +45 -3
  12. package/dist/src/runner/runTaskHosted.d.ts +8 -1
  13. package/dist/src/runner/runTaskHosted.js +11 -1
  14. package/dist/src/runner/runTrialGroup.js +15 -2
  15. package/dist/src/scaffolds/mcp-loop/loop.js +3 -3
  16. package/node_modules/@pome-sh/sdk/dist/check-state-path.d.ts +71 -0
  17. package/node_modules/@pome-sh/sdk/dist/check-state-path.js +200 -0
  18. package/node_modules/@pome-sh/sdk/dist/check-state-path.js.map +1 -0
  19. package/node_modules/@pome-sh/sdk/dist/checks.d.ts +2 -0
  20. package/node_modules/@pome-sh/sdk/dist/checks.js +5 -0
  21. package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -1
  22. package/node_modules/@pome-sh/sdk/dist/recorder.d.ts +10 -1
  23. package/node_modules/@pome-sh/sdk/dist/recorder.js +11 -2
  24. package/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -1
  25. package/node_modules/@pome-sh/sdk/package.json +2 -2
  26. package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +111 -24
  27. package/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +3 -3
  28. package/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -1
  29. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +6 -3
  30. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +7 -2
  31. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
  32. package/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +1 -1
  33. package/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -1
  34. package/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +68 -4
  35. package/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +19 -5
  36. package/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -1
  37. package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +60 -28
  38. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +81 -10
  39. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
  40. package/node_modules/@pome-sh/shared-types/package.json +1 -1
  41. package/node_modules/@pome-sh/shared-types/trace-contract.json +49 -1
  42. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js +35 -9
  43. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js.map +1 -1
  44. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js +21 -5
  45. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js.map +1 -1
  46. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js +26 -6
  47. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js.map +1 -1
  48. package/node_modules/@pome-sh/twin-github/dist/src/check-state.d.ts +20 -1
  49. package/node_modules/@pome-sh/twin-github/dist/src/check-state.js +62 -10
  50. package/node_modules/@pome-sh/twin-github/dist/src/check-state.js.map +1 -1
  51. package/node_modules/@pome-sh/twin-github/package.json +3 -3
  52. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +29 -0
  53. package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js +19 -4
  54. package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js.map +1 -1
  55. package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js +15 -4
  56. package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js.map +1 -1
  57. package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js +19 -3
  58. package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js.map +1 -1
  59. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.d.ts +26 -1
  60. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js +52 -16
  61. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js.map +1 -1
  62. package/node_modules/@pome-sh/twin-gmail/package.json +2 -2
  63. package/node_modules/@pome-sh/twin-linear/CHANGELOG.md +29 -0
  64. package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js +15 -3
  65. package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js.map +1 -1
  66. package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js +31 -4
  67. package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js.map +1 -1
  68. package/node_modules/@pome-sh/twin-linear/dist/src/check-state.d.ts +27 -2
  69. package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js +73 -20
  70. package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js.map +1 -1
  71. package/node_modules/@pome-sh/twin-linear/package.json +2 -2
  72. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js +28 -7
  73. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js.map +1 -1
  74. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js +16 -3
  75. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js.map +1 -1
  76. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.d.ts +26 -1
  77. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js +31 -4
  78. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js.map +1 -1
  79. package/node_modules/@pome-sh/twin-slack/package.json +3 -3
  80. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.d.ts +1 -1
  81. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js +16 -0
  82. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js.map +1 -1
  83. package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js +11 -3
  84. package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js.map +1 -1
  85. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.d.ts +25 -1
  86. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js +31 -3
  87. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js.map +1 -1
  88. package/node_modules/@pome-sh/twin-stripe/package.json +3 -3
  89. package/package.json +8 -8
@@ -32,7 +32,7 @@
32
32
  // Recorded as this migration's one narrowing rather than absorbed.
33
33
  import { defineCheck, VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER } from "@pome-sh/sdk/checks";
34
34
  import { estimatePoints, issueTitle, labelName, teamKey, userRef, workflowStateName, } from "./check-params.js";
35
- import { resolveIssue, resolveLabelNames, resolveUserLabels, resolveWorkflowStateName, unresolved, } from "./check-state.js";
35
+ import { fieldPath, resolveIssue, resolveLabelNames, resolveUserLabels, resolveWorkflowStateName, unresolved, USERS_PATH, } from "./check-state.js";
36
36
  import { finalWorld, issueRow, linearState } from "./check-worlds.js";
37
37
  export const issueExists = defineCheck({
38
38
  id: "linear.issue-exists",
@@ -65,7 +65,13 @@ export const issueExists = defineCheck({
65
65
  // Echoing the title is safe HERE and only here: this check declares it as
66
66
  // its subject, so the engine skipped the criterion as `subject_redacted`
67
67
  // before reaching this line if a redactor would have destroyed it.
68
- return { passed: true, reason: `an issue titled "${title}" exists in \`${team}\`` };
68
+ // The ROW itself: here the lookup IS the assertion, so the address the
69
+ // resolution walked to is exactly what produced the verdict (F-1197).
70
+ return {
71
+ passed: true,
72
+ reason: `an issue titled "${title}" exists in \`${team}\``,
73
+ evidenceStatePaths: [issue.path],
74
+ };
69
75
  },
70
76
  });
71
77
  export const issueState = defineCheck({
@@ -107,6 +113,11 @@ export const issueState = defineCheck({
107
113
  return {
108
114
  passed: name.found.toLowerCase() === state.toLowerCase(),
109
115
  reason: `issue state is "${name.found}" (wanted "${state}")`,
116
+ // BOTH ends of trap 1's join. An issue has no state string — it has a
117
+ // `stateId` into the team's own workflow catalog — so a reader handed only
118
+ // the issue row would find an opaque id, and one handed only the catalog
119
+ // row would not know which issue pointed at it.
120
+ evidenceStatePaths: [fieldPath(issue.path, issue.found, "stateId"), name.path],
110
121
  };
111
122
  },
112
123
  });
@@ -138,6 +149,8 @@ export const issueHasLabel = defineCheck({
138
149
  return {
139
150
  passed: names.found.has(label.toLowerCase()),
140
151
  reason: `issue carries ${names.found.size} label(s) (wanted "${label}")`,
152
+ // Trap 2's join, both ends: `labelIds` on the row, names in the catalog.
153
+ evidenceStatePaths: [fieldPath(issue.path, issue.found, "labelIds"), names.path],
141
154
  };
142
155
  },
143
156
  });
@@ -172,6 +185,11 @@ export const issueEstimate = defineCheck({
172
185
  return {
173
186
  passed: actual === Number(estimate),
174
187
  reason: `issue estimate is ${actual === null ? "unset" : actual} (wanted ${estimate})`,
188
+ // `fieldPath`, not a bare `…/estimate`: an UNSET estimate is the verdict
189
+ // this check exists to deliver, and on an export that omits the column
190
+ // entirely a pointer at it would resolve to nothing — stripping the
191
+ // affordance from exactly the row a reader wants to open.
192
+ evidenceStatePaths: [fieldPath(issue.path, issue.found, "estimate")],
175
193
  };
176
194
  },
177
195
  });
@@ -199,12 +217,21 @@ export const issueAssignee = defineCheck({
199
217
  if ("missing" in issue)
200
218
  return unresolved(issue);
201
219
  const labels = resolveUserLabels(final, issue.found.assigneeId);
202
- if (labels.length === 0)
203
- return { passed: false, reason: "issue has no assignee" };
220
+ // The issue row on both arms. An unassigned issue has no user row to point
221
+ // at, so citing `/users` only when one resolved would make the citation's
222
+ // PRESENCE track the verdict — and its absence would start reading as
223
+ // "unassigned", which is a verdict class the pointer must not encode.
224
+ const assignment = [fieldPath(issue.path, issue.found, "assigneeId")];
225
+ if (labels.length === 0) {
226
+ return { passed: false, reason: "issue has no assignee", evidenceStatePaths: assignment };
227
+ }
228
+ if (final.users != null)
229
+ assignment.push(USERS_PATH);
204
230
  return {
205
231
  passed: labels.some((l) => l.toLowerCase() === user.toLowerCase()),
206
232
  // Safe to quote: `user` is this check's declared subject.
207
233
  reason: `issue is assigned to \`${labels[0]}\` (wanted \`${user}\`)`,
234
+ evidenceStatePaths: assignment,
208
235
  };
209
236
  },
210
237
  });
@@ -1 +1 @@
1
- {"version":3,"file":"check-issues.js","sourceRoot":"","sources":["../../src/check-issues.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,+CAA+C;AAC/C,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,eAAe;AACf,wEAAwE;AACxE,0EAA0E;AAC1E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,mEAAmE;AAEnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAA2C,WAAW,CAAC;IAC7E,EAAE,EAAE,qBAAqB;IACzB,WAAW,EACT,2FAA2F;QAC3F,6FAA6F;QAC7F,0FAA0F;QAC1F,6FAA6F;QAC7F,0FAA0F;QAC1F,sEAAsE;IACxE,QAAQ,EAAE,8CAA8C;IACxD,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;IAC1B,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC/D,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,sBAAsB;QACtB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;KAC3E,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,0EAA0E;QAC1E,yEAAyE;QACzE,mEAAmE;QACnE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,KAAK,iBAAiB,IAAI,IAAI,EAAE,CAAC;IACtF,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAA0D,WAAW,CAAC;IAC3F,EAAE,EAAE,oBAAoB;IACxB,WAAW,EACT,sFAAsF;QACtF,6FAA6F;QAC7F,wFAAwF;QACxF,0FAA0F;QAC1F,6FAA6F;QAC7F,yFAAyF;QACzF,aAAa;IACf,wEAAwE;IACxE,6EAA6E;IAC7E,0EAA0E;IAC1E,mEAAmE;IACnE,QAAQ,EAAE,mDAAmD;IAC7D,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtE,SAAS,EAAE,OAAO;IAClB,yEAAyE;IACzE,6EAA6E;IAC7E,kDAAkD;IAClD,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;IAC1B,8EAA8E;IAC9E,UAAU;IACV,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC/D,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,2EAA2E;QAC3E,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;KAC9E,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;YACxD,MAAM,EAAE,mBAAmB,IAAI,CAAC,KAAK,cAAc,KAAK,IAAI;SAC7D,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAA0D,WAAW,CAAC;IAC9F,EAAE,EAAE,wBAAwB;IAC5B,WAAW,EACT,2FAA2F;QAC3F,2FAA2F;QAC3F,mFAAmF;QACnF,6FAA6F;QAC7F,mFAAmF;IACrF,QAAQ,EAAE,iDAAiD;IAC3D,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;IAC9D,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;IAC1B,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC/D,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,qEAAqE;QACrE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;KACrF,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,EAAE,iBAAiB,KAAK,CAAC,KAAK,CAAC,IAAI,sBAAsB,KAAK,IAAI;SACzE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAA6D,WAAW,CAAC;IACjG,EAAE,EAAE,uBAAuB;IAC3B,WAAW,EACT,sFAAsF;QACtF,sFAAsF;QACtF,+BAA+B;IACjC,QAAQ,EAAE,qDAAqD;IAC/D,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE;IACtE,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;IAC1B,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,uEAAuE;IACvE,qCAAqC;IACrC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;IACnB,6EAA6E;IAC7E,uEAAuE;IACvE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;IACjF,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC5C,OAAO;YACL,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC;YACnC,MAAM,EAAE,qBAAqB,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,QAAQ,GAAG;SACvF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAyD,WAAW,CAAC;IAC7F,EAAE,EAAE,uBAAuB;IAC3B,WAAW,EACT,6FAA6F;QAC7F,4FAA4F;QAC5F,8FAA8F;QAC9F,yFAAyF;QACzF,4FAA4F;QAC5F,6DAA6D;IAC/D,QAAQ,EAAE,qDAAqD;IAC/D,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;IAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;IAC3B,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IAC9D,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,8DAA8D;QAC9D,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACpD,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACnF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAClE,0DAA0D;YAC1D,MAAM,EAAE,0BAA0B,MAAM,CAAC,CAAC,CAAC,gBAAgB,IAAI,KAAK;SACrE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"check-issues.js","sourceRoot":"","sources":["../../src/check-issues.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CheckOutcome } from "@pome-sh/sdk/checks";
1
+ import { type CheckOutcome } from "@pome-sh/sdk/checks";
2
2
  export interface LinearCheckStateTeam {
3
3
  id?: string;
4
4
  key?: string;
@@ -63,14 +63,39 @@ export interface LinearCheckState {
63
63
  */
64
64
  export type Resolved<T> = {
65
65
  found: T;
66
+ path: string;
66
67
  } | {
67
68
  missing: string;
68
69
  skip: boolean;
70
+ searched?: string;
69
71
  };
70
- /** The one place an unresolved selector becomes an outcome. */
72
+ /** The exported collections a pointer can address (F-1197). Named because seven
73
+ * declarations reach for them. */
74
+ export declare const ISSUES_PATH: string;
75
+ export declare const COMMENTS_PATH: string;
76
+ export declare const LABELS_PATH: string;
77
+ export declare const WORKFLOW_STATES_PATH: string;
78
+ export declare const USERS_PATH: string;
79
+ /**
80
+ * A pointer at `key` on the row `base` addresses, falling back to the row when
81
+ * the export does not carry that key (F-1197).
82
+ *
83
+ * The fallback is the whole point and it is not defensive padding. An UNSET
84
+ * estimate and an ABSENT assignee are both real, common, and exactly the
85
+ * verdicts a reader wants to inspect — and a pointer at a key the row does not
86
+ * have resolves to nothing, which would strip the affordance from precisely
87
+ * those rows. Widening to the row keeps the citation honest (it is where the
88
+ * check looked) and resolvable (the row is there).
89
+ */
90
+ export declare function fieldPath(base: string, row: object, key: string): string;
91
+ /** The one place an unresolved selector becomes an outcome.
92
+ *
93
+ * F-1197 — it also carries the citation, so the rule "a refusal names where it
94
+ * looked" is written once rather than at fourteen call sites. */
71
95
  export declare function unresolved(r: {
72
96
  missing: string;
73
97
  skip: boolean;
98
+ searched?: string;
74
99
  }): CheckOutcome;
75
100
  export declare function isTruncated(state: LinearCheckState, collection: string): boolean;
76
101
  /**
@@ -39,11 +39,39 @@
39
39
  // runs (`evaluate.ts:141-144`), and `title` is a selector on every check except
40
40
  // `linear.issue-exists`. The team key is safe to quote: `[A-Z][A-Z0-9]*`
41
41
  // matches no pattern in either redactor.
42
- /** The one place an unresolved selector becomes an outcome. */
42
+ import { childStatePath, statePath } from "@pome-sh/sdk/checks";
43
+ /** The exported collections a pointer can address (F-1197). Named because seven
44
+ * declarations reach for them. */
45
+ export const ISSUES_PATH = statePath("issues");
46
+ export const COMMENTS_PATH = statePath("comments");
47
+ export const LABELS_PATH = statePath("labels");
48
+ export const WORKFLOW_STATES_PATH = statePath("workflowStates");
49
+ export const USERS_PATH = statePath("users");
50
+ /**
51
+ * A pointer at `key` on the row `base` addresses, falling back to the row when
52
+ * the export does not carry that key (F-1197).
53
+ *
54
+ * The fallback is the whole point and it is not defensive padding. An UNSET
55
+ * estimate and an ABSENT assignee are both real, common, and exactly the
56
+ * verdicts a reader wants to inspect — and a pointer at a key the row does not
57
+ * have resolves to nothing, which would strip the affordance from precisely
58
+ * those rows. Widening to the row keeps the citation honest (it is where the
59
+ * check looked) and resolvable (the row is there).
60
+ */
61
+ export function fieldPath(base, row, key) {
62
+ return Object.prototype.hasOwnProperty.call(row, key) ? childStatePath(base, key) : base;
63
+ }
64
+ /** The one place an unresolved selector becomes an outcome.
65
+ *
66
+ * F-1197 — it also carries the citation, so the rule "a refusal names where it
67
+ * looked" is written once rather than at fourteen call sites. */
43
68
  export function unresolved(r) {
44
- return r.skip
69
+ const outcome = r.skip
45
70
  ? { passed: false, status: "skipped", reason: r.missing }
46
71
  : { passed: false, reason: r.missing };
72
+ if (r.searched === undefined)
73
+ return outcome;
74
+ return { ...outcome, evidenceStatePaths: [r.searched] };
47
75
  }
48
76
  export function isTruncated(state, collection) {
49
77
  return (state.exportBounds?.truncatedCollections ?? []).includes(collection);
@@ -59,35 +87,53 @@ export function resolveIssue(state, teamKey, title) {
59
87
  return { missing: "state_incomplete", skip: true };
60
88
  const team = state.teams.find((t) => t.key === teamKey);
61
89
  if (team?.id == null) {
62
- return { missing: `team \`${teamKey}\` not found in state_final`, skip: false };
90
+ return {
91
+ missing: `team \`${teamKey}\` not found in state_final`,
92
+ skip: false,
93
+ searched: statePath("teams"),
94
+ };
63
95
  }
64
96
  if (state.issues == null)
65
97
  return { missing: "state_incomplete", skip: true };
66
- const matches = state.issues.filter((issue) => issue.teamId === team.id &&
67
- issue.title === title &&
68
- (issue.archivedAt ?? null) === null);
69
- if (matches.length === 1)
70
- return { found: matches[0] };
71
- if (matches.length > 1) {
98
+ const indices = state.issues
99
+ .map((issue, index) => issue.teamId === team.id && issue.title === title && (issue.archivedAt ?? null) === null
100
+ ? index
101
+ : -1)
102
+ .filter((index) => index >= 0);
103
+ if (indices.length === 1) {
104
+ const index = indices[0];
105
+ return { found: state.issues[index], path: childStatePath(ISSUES_PATH, index) };
106
+ }
107
+ if (indices.length > 1) {
108
+ // The AMBIGUITY is the finding, so the citation is the collection: naming
109
+ // one of the duplicates would present a coin-flip as the thing that was read.
72
110
  return {
73
- missing: `${matches.length} issues in \`${teamKey}\` share that title`,
111
+ missing: `${indices.length} issues in \`${teamKey}\` share that title`,
74
112
  skip: false,
113
+ searched: ISSUES_PATH,
75
114
  };
76
115
  }
77
116
  // The only skip a miss can earn, and it is earned by evidence rather than by
78
117
  // taste: the twin itself reported that `issues` lost rows to the export cap.
79
- if (isTruncated(state, "issues"))
80
- return { missing: "state_truncated", skip: true };
81
- return { missing: `no issue with that title in \`${teamKey}\``, skip: false };
118
+ if (isTruncated(state, "issues")) {
119
+ return { missing: "state_truncated", skip: true, searched: ISSUES_PATH };
120
+ }
121
+ return {
122
+ missing: `no issue with that title in \`${teamKey}\``,
123
+ skip: false,
124
+ searched: ISSUES_PATH,
125
+ };
82
126
  }
83
127
  /** Trap 1: `stateId` → the team's own workflow-state row. */
84
128
  export function resolveWorkflowStateName(state, issue) {
85
129
  if (state.workflowStates == null)
86
130
  return { missing: "state_incomplete", skip: true };
87
- const row = state.workflowStates.find((s) => s.id === issue.stateId && s.teamId === issue.teamId);
88
- if (row?.name == null)
89
- return { missing: "workflow_state_unresolved", skip: true };
90
- return { found: row.name };
131
+ const index = state.workflowStates.findIndex((s) => s.id === issue.stateId && s.teamId === issue.teamId);
132
+ const row = index >= 0 ? state.workflowStates[index] : undefined;
133
+ if (row?.name == null) {
134
+ return { missing: "workflow_state_unresolved", skip: true, searched: WORKFLOW_STATES_PATH };
135
+ }
136
+ return { found: row.name, path: childStatePath(WORKFLOW_STATES_PATH, index, "name") };
91
137
  }
92
138
  /**
93
139
  * Trap 2: `labelIds` → catalog names, lowercased.
@@ -105,15 +151,22 @@ export function resolveLabelNames(state, issue) {
105
151
  // A link to a label the export did not carry is a partial export, not a
106
152
  // verdict about the examinee.
107
153
  if (name === undefined)
108
- return { missing: "label_unresolved", skip: true };
154
+ return { missing: "label_unresolved", skip: true, searched: LABELS_PATH };
109
155
  names.add(name);
110
156
  }
111
- return { found: names };
157
+ // The CATALOG this join read. The resolved name set is computed here and
158
+ // exists nowhere in the tree, so the catalog is the honest address — and it is
159
+ // the half of the join a reader cannot see from the issue row, which carries
160
+ // ids only.
161
+ return { found: names, path: LABELS_PATH };
112
162
  }
113
163
  export function resolveComments(state, issue) {
114
164
  if (state.comments == null)
115
165
  return { missing: "state_incomplete", skip: true };
116
- return { found: state.comments.filter((c) => c.issueId === issue.id) };
166
+ // `/comments`, the SOURCE collection, not the filtered result: the export
167
+ // stores comments flat and keys them by `issueId`, so the per-issue list this
168
+ // returns exists nowhere in the tree to point at.
169
+ return { found: state.comments.filter((c) => c.issueId === issue.id), path: COMMENTS_PATH };
117
170
  }
118
171
  /**
119
172
  * Every spelling of a user the legacy `linear.issue-assignee` rule accepted —
@@ -1 +1 @@
1
- {"version":3,"file":"check-state.js","sourceRoot":"","sources":["../../src/check-state.ts"],"names":[],"mappings":"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"}
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-linear",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Deterministic Linear-shaped twin for agent testing — SQLite-backed GraphQL + MCP + OAuth.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@hono/node-server": "^2.0.10",
45
- "@pome-sh/sdk": "0.10.0",
45
+ "@pome-sh/sdk": "0.11.0",
46
46
  "graphql": "^16.11.0",
47
47
  "hono": "^4.12.31",
48
48
  "zod": "^4.1.13"
@@ -24,9 +24,9 @@
24
24
  // two-repo world graded whichever sorted first. A Slack session is one workspace
25
25
  // with unique channel names, so there is no ambiguous selection for a scope slot
26
26
  // to close.
27
- import { defineCheck, VACUITY_SENTINEL } from "@pome-sh/sdk/checks";
27
+ import { childStatePath, defineCheck, statePath, VACUITY_SENTINEL } from "@pome-sh/sdk/checks";
28
28
  import { channelName, emojiName, messageNeedle, messageScope } from "./check-params.js";
29
- import { publicChannels, resolveChannel } from "./check-state.js";
29
+ import { CHANNELS_PATH, missSkip, publicChannels, resolveChannel, } from "./check-state.js";
30
30
  import { finalWorld, publicChannel, slackState } from "./check-worlds.js";
31
31
  const STATE_INCOMPLETE = { passed: false, status: "skipped", reason: "state_incomplete" };
32
32
  export const noMessageContaining = defineCheck({
@@ -61,7 +61,7 @@ export const noMessageContaining = defineCheck({
61
61
  if (publicOnly) {
62
62
  const scoped = publicChannels(final);
63
63
  if ("missing" in scoped)
64
- return { passed: false, status: "skipped", reason: scoped.missing };
64
+ return missSkip(scoped);
65
65
  candidates = scoped.found;
66
66
  }
67
67
  else {
@@ -77,6 +77,13 @@ export const noMessageContaining = defineCheck({
77
77
  ? `${publicOnly ? "public " : ""}channel "${hit.name}" has a message containing "${needle}"`
78
78
  : `no ${publicOnly ? "public channel" : "channel"} has a message containing "${needle}" ` +
79
79
  `(${candidates.length} channel(s) scanned)`,
80
+ // The workspace's channel list, on BOTH arms and under both scopes
81
+ // (F-1197). Not the hitting channel on a fail and the list on a pass:
82
+ // a citation whose PRECISION moves with the verdict is fine, but one whose
83
+ // PRESENCE does is not, and once both arms must cite, the list is the
84
+ // honest answer under `any public channel` too — the public set is
85
+ // computed here and exists nowhere in the tree to point at.
86
+ evidenceStatePaths: [CHANNELS_PATH],
80
87
  };
81
88
  },
82
89
  });
@@ -109,9 +116,13 @@ export const noMessagePosted = defineCheck({
109
116
  evaluate({ channel }, { final }) {
110
117
  const found = resolveChannel(final, channel);
111
118
  if ("missing" in found)
112
- return { passed: false, status: "skipped", reason: found.missing };
119
+ return missSkip(found);
113
120
  const count = (found.found.messages ?? []).length;
114
- return { passed: count === 0, reason: `channel "${channel}" has ${count} message(s)` };
121
+ return {
122
+ passed: count === 0,
123
+ reason: `channel "${channel}" has ${count} message(s)`,
124
+ evidenceStatePaths: [childStatePath(found.path, "messages")],
125
+ };
115
126
  },
116
127
  });
117
128
  export const noReactionAdded = defineCheck({
@@ -138,13 +149,22 @@ export const noReactionAdded = defineCheck({
138
149
  evaluate({ reaction, channel }, { final }) {
139
150
  const found = resolveChannel(final, channel);
140
151
  if ("missing" in found)
141
- return { passed: false, status: "skipped", reason: found.missing };
152
+ return missSkip(found);
142
153
  const hit = (final.reactions ?? []).some((row) => row.channel_id === found.found.id && row.name === reaction);
154
+ // BOTH sides of the join, because this predicate really does read two places
155
+ // and a reader who opens only one cannot check its work: the channel row is
156
+ // where the id came from, the top-level reactions list is what was filtered.
157
+ // Reactions are not nested under their channel in the export — that is the
158
+ // whole reason this check performs a join — so one pointer cannot say it.
159
+ const joined = [found.path];
160
+ if (final.reactions !== undefined)
161
+ joined.push(statePath("reactions"));
143
162
  return {
144
163
  passed: !hit,
145
164
  reason: hit
146
165
  ? `reaction "${reaction}" found in channel "${channel}"`
147
166
  : `no reaction "${reaction}" in channel "${channel}"`,
167
+ evidenceStatePaths: joined,
148
168
  };
149
169
  },
150
170
  });
@@ -170,7 +190,7 @@ export const messageContains = defineCheck({
170
190
  evaluate({ channel, needle }, { final }) {
171
191
  const found = resolveChannel(final, channel);
172
192
  if ("missing" in found)
173
- return { passed: false, status: "skipped", reason: found.missing };
193
+ return missSkip(found);
174
194
  const messages = found.found.messages ?? [];
175
195
  const target = needle.toLowerCase();
176
196
  const passed = messages.some((message) => (message.text ?? "").toLowerCase().includes(target));
@@ -180,6 +200,7 @@ export const messageContains = defineCheck({
180
200
  ? `channel "${channel}" has a message containing "${needle}"`
181
201
  : `no message in channel "${channel}" contains "${needle}" ` +
182
202
  `(${messages.length} message(s) scanned)`,
203
+ evidenceStatePaths: [childStatePath(found.path, "messages")],
183
204
  };
184
205
  },
185
206
  });
@@ -1 +1 @@
1
- {"version":3,"file":"check-messages.js","sourceRoot":"","sources":["../../src/check-messages.ts"],"names":[],"mappings":"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"}
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
- if ("missing" in before)
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 { passed: false, status: "skipped", reason: after.missing };
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
  *