@principles/core 1.235.0 → 1.237.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 (99) hide show
  1. package/dist/principle-tree-ledger.d.ts.map +1 -1
  2. package/dist/principle-tree-ledger.js +55 -30
  3. package/dist/principle-tree-ledger.js.map +1 -1
  4. package/dist/runtime-v2/__tests__/feedback/create-report.test.js +51 -0
  5. package/dist/runtime-v2/__tests__/feedback/create-report.test.js.map +1 -1
  6. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js +1 -1
  7. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js.map +1 -1
  8. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js +1 -1
  9. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js.map +1 -1
  10. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +109 -0
  11. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  12. package/dist/runtime-v2/activation/activation-dispatcher.d.ts +11 -0
  13. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  14. package/dist/runtime-v2/activation/activation-dispatcher.js +60 -6
  15. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  16. package/dist/runtime-v2/activation/activation-types.d.ts +4 -0
  17. package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  18. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +34 -0
  19. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  20. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  21. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +5 -0
  22. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  23. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts +2 -0
  24. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts.map +1 -0
  25. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js +221 -0
  26. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js.map +1 -0
  27. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts +11 -0
  28. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts.map +1 -0
  29. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js +160 -0
  30. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js.map +1 -0
  31. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts +2 -0
  32. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts.map +1 -0
  33. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js +342 -0
  34. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js.map +1 -0
  35. package/dist/runtime-v2/feedback/create-report.d.ts +7 -1
  36. package/dist/runtime-v2/feedback/create-report.d.ts.map +1 -1
  37. package/dist/runtime-v2/feedback/create-report.js +65 -7
  38. package/dist/runtime-v2/feedback/create-report.js.map +1 -1
  39. package/dist/runtime-v2/feedback/feedback-types.d.ts +18 -1
  40. package/dist/runtime-v2/feedback/feedback-types.d.ts.map +1 -1
  41. package/dist/runtime-v2/feedback/feedback-types.js +19 -12
  42. package/dist/runtime-v2/feedback/feedback-types.js.map +1 -1
  43. package/dist/runtime-v2/feedback/index.d.ts +3 -1
  44. package/dist/runtime-v2/feedback/index.d.ts.map +1 -1
  45. package/dist/runtime-v2/feedback/index.js +7 -1
  46. package/dist/runtime-v2/feedback/index.js.map +1 -1
  47. package/dist/runtime-v2/feedback/pending-agent-draft-store.d.ts +106 -0
  48. package/dist/runtime-v2/feedback/pending-agent-draft-store.d.ts.map +1 -0
  49. package/dist/runtime-v2/feedback/pending-agent-draft-store.js +220 -0
  50. package/dist/runtime-v2/feedback/pending-agent-draft-store.js.map +1 -0
  51. package/dist/runtime-v2/feedback/privacy-preview.d.ts +16 -0
  52. package/dist/runtime-v2/feedback/privacy-preview.d.ts.map +1 -1
  53. package/dist/runtime-v2/feedback/privacy-preview.js +54 -0
  54. package/dist/runtime-v2/feedback/privacy-preview.js.map +1 -1
  55. package/dist/runtime-v2/index.d.ts +5 -0
  56. package/dist/runtime-v2/index.d.ts.map +1 -1
  57. package/dist/runtime-v2/index.js +9 -0
  58. package/dist/runtime-v2/index.js.map +1 -1
  59. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts +2 -0
  60. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts.map +1 -0
  61. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js +459 -0
  62. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js.map +1 -0
  63. package/dist/runtime-v2/runner/base-peer-runner.d.ts +27 -0
  64. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  65. package/dist/runtime-v2/runner/base-peer-runner.js +138 -0
  66. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  67. package/dist/runtime-v2/runner/peer-runner-types.d.ts +9 -0
  68. package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  69. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts +2 -0
  70. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts.map +1 -0
  71. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js +225 -0
  72. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js.map +1 -0
  73. package/dist/runtime-v2/store/pain/index.d.ts +3 -0
  74. package/dist/runtime-v2/store/pain/index.d.ts.map +1 -0
  75. package/dist/runtime-v2/store/pain/index.js +2 -0
  76. package/dist/runtime-v2/store/pain/index.js.map +1 -0
  77. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.d.ts +70 -0
  78. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.d.ts.map +1 -0
  79. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.js +154 -0
  80. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.js.map +1 -0
  81. package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  82. package/dist/runtime-v2/store/sqlite-connection.js +41 -0
  83. package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  84. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts +2 -0
  85. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts.map +1 -0
  86. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +442 -0
  87. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +1 -0
  88. package/dist/runtime-v2/store/task/index.d.ts +1 -0
  89. package/dist/runtime-v2/store/task/index.d.ts.map +1 -1
  90. package/dist/runtime-v2/store/task/index.js.map +1 -1
  91. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts +45 -0
  92. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  93. package/dist/runtime-v2/store/task/sqlite-task-store.js +205 -0
  94. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  95. package/dist/runtime-v2/store/task/task-types.d.ts +60 -0
  96. package/dist/runtime-v2/store/task/task-types.d.ts.map +1 -0
  97. package/dist/runtime-v2/store/task/task-types.js +2 -0
  98. package/dist/runtime-v2/store/task/task-types.js.map +1 -0
  99. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/feedback-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/feedback-types.ts"],"names":[],"mappings":"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"}
@@ -58,26 +58,23 @@ function validateFeedbackContext(value) {
58
58
  });
59
59
  return errors;
60
60
  }
61
- if (!Object.hasOwn(value, 'source')) {
61
+ // source is optional (Task 6: context fields are all optional — any subset is valid).
62
+ // When present, it must be a valid FeedbackSource.
63
+ if (value.source !== undefined && !isFeedbackSource(value.source)) {
62
64
  errors.push({
63
65
  field: 'context.source',
64
- reason: 'context.source is required when context is provided (ERR-009)',
65
- nextAction: 'add context.source with a value of console, cli, or agent',
66
- });
67
- }
68
- else if (!isFeedbackSource(value.source)) {
69
- errors.push({
70
- field: 'context.source',
71
- reason: 'context.source must be one of: console, cli, agent (ERR-010)',
72
- nextAction: 'set context.source to a valid FeedbackSource value',
66
+ reason: 'context.source must be one of: console, cli, agent when provided (ERR-010)',
67
+ nextAction: 'set context.source to a valid FeedbackSource value or omit it',
73
68
  });
74
69
  }
70
+ validateOptionalString(value.sourceDetail, 'context.sourceDetail', errors);
75
71
  validateOptionalString(value.page, 'context.page', errors);
76
72
  validateOptionalString(value.painId, 'context.painId', errors);
77
73
  validateOptionalString(value.principleId, 'context.principleId', errors);
78
74
  validateOptionalString(value.approvalId, 'context.approvalId', errors);
79
75
  validateOptionalString(value.activationId, 'context.activationId', errors);
80
76
  validateOptionalString(value.updateAttemptId, 'context.updateAttemptId', errors);
77
+ validateOptionalString(value.taskId, 'context.taskId', errors);
81
78
  return errors;
82
79
  }
83
80
  function validateAgentDraft(value) {
@@ -185,9 +182,13 @@ export function normalizeFeedbackDraftInput(value) {
185
182
  const ctxErrors = validateFeedbackContext(value.context);
186
183
  for (const e of ctxErrors)
187
184
  errors.push(e);
188
- if (isRecord(value.context) && isFeedbackSource(value.context.source)) {
185
+ if (isRecord(value.context)) {
189
186
  const c = value.context;
190
- const built = { source: c.source };
187
+ const built = {};
188
+ if (isFeedbackSource(c.source))
189
+ built.source = c.source;
190
+ if (isString(c.sourceDetail))
191
+ built.sourceDetail = c.sourceDetail;
191
192
  if (isString(c.page))
192
193
  built.page = c.page;
193
194
  if (isString(c.painId))
@@ -200,9 +201,13 @@ export function normalizeFeedbackDraftInput(value) {
200
201
  built.activationId = c.activationId;
201
202
  if (isString(c.updateAttemptId))
202
203
  built.updateAttemptId = c.updateAttemptId;
204
+ if (isString(c.taskId))
205
+ built.taskId = c.taskId;
203
206
  context = built;
204
207
  }
205
208
  }
209
+ // Optional: taskId (top-level shortcut, separate from context.taskId)
210
+ const taskId = validateOptionalString(value.taskId, 'taskId', errors);
206
211
  // Optional: agentDraft
207
212
  let agentDraft = undefined;
208
213
  if (value.agentDraft !== undefined) {
@@ -238,6 +243,8 @@ export function normalizeFeedbackDraftInput(value) {
238
243
  normalized.context = context;
239
244
  if (agentDraft)
240
245
  normalized.agentDraft = agentDraft;
246
+ if (taskId !== undefined)
247
+ normalized.taskId = taskId;
241
248
  return { ok: true, value: normalized };
242
249
  }
243
250
  //# sourceMappingURL=feedback-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/feedback-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/feedback-types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ export { isFeedbackType, isUserSeverity, isFeedbackSource, isRecord, isBoolean,
3
3
  export { redactAbsolutePaths, redactTokenLikeValues, redactEnvLikeValues, redactStackTrace, redactSensitiveFields, redactTelemetryString, REDACTED_PATH, REDACTED_VALUE, NO_STACK, type RedactResult, } from './redact-sensitive.js';
4
4
  export { renderReportMarkdown, MAX_MARKDOWN_LENGTH } from './render-markdown.js';
5
5
  export { buildGitHubIssueDraftUrl, MAX_URL_BODY_LENGTH, GITHUB_REPO, type GithubUrlResult, } from './render-github-url.js';
6
- export { buildPrivacyPreview, buildEmailText, DEFAULT_INCLUDED_SECTIONS, DEFAULT_EXCLUDED_CATEGORIES, } from './privacy-preview.js';
6
+ export { buildPrivacyPreview, buildEmailText, buildMailtoUrl, DEFAULT_INCLUDED_SECTIONS, DEFAULT_EXCLUDED_CATEGORIES, } from './privacy-preview.js';
7
7
  export { createFeedbackReport, type CreateReportResult } from './create-report.js';
8
8
  export { safeStringifyPreview } from './safe-stringify.js';
9
+ export { PendingAgentDraftStore } from './pending-agent-draft-store.js';
10
+ export type { AgentDraftPayload, PendingAgentDraftRow, PendingDraftOpResult, } from './pending-agent-draft-store.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC"}
@@ -5,7 +5,13 @@ export { isFeedbackType, isUserSeverity, isFeedbackSource, isRecord, isBoolean,
5
5
  export { redactAbsolutePaths, redactTokenLikeValues, redactEnvLikeValues, redactStackTrace, redactSensitiveFields, redactTelemetryString, REDACTED_PATH, REDACTED_VALUE, NO_STACK, } from './redact-sensitive.js';
6
6
  export { renderReportMarkdown, MAX_MARKDOWN_LENGTH } from './render-markdown.js';
7
7
  export { buildGitHubIssueDraftUrl, MAX_URL_BODY_LENGTH, GITHUB_REPO, } from './render-github-url.js';
8
- export { buildPrivacyPreview, buildEmailText, DEFAULT_INCLUDED_SECTIONS, DEFAULT_EXCLUDED_CATEGORIES, } from './privacy-preview.js';
8
+ export { buildPrivacyPreview, buildEmailText, buildMailtoUrl, DEFAULT_INCLUDED_SECTIONS, DEFAULT_EXCLUDED_CATEGORIES, } from './privacy-preview.js';
9
9
  export { createFeedbackReport } from './create-report.js';
10
10
  export { safeStringifyPreview } from './safe-stringify.js';
11
+ // Task 11: PendingAgentDraftStore — durable store for agent-generated draft
12
+ // context attached to a failed peer-runner task. Unlike the pure-logic helpers
13
+ // above, this class holds a SqliteConnection reference (it is an I/O store,
14
+ // not a pure function). Re-exported here so callers can import from the
15
+ // feedback barrel; the runtime-v2 top-level barrel also re-exports it.
16
+ export { PendingAgentDraftStore } from './pending-agent-draft-store.js';
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sDAAsD;AACtD,kEAAkE;AAqBlE,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,GAET,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,GAEZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAA2B,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sDAAsD;AACtD,kEAAkE;AAqBlE,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,GAET,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,GAEZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAA2B,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * PendingAgentDraftStore — durable store for agent-generated draft context
3
+ * attached to a failed peer-runner task.
4
+ *
5
+ * Task 11: When a peer runner reaches a permanent-failure terminal state
6
+ * (BasePeerRunner catch block — Task 12), it constructs an AgentDraftPayload
7
+ * and writes it here via insertPendingDraft. The feedback-report pipeline
8
+ * (Task 13) later reads the unconsumed draft for a given taskId and merges
9
+ * it into the user-facing FeedbackReport so the maintainer sees the agent's
10
+ * perspective alongside the user's description. After a successful merge,
11
+ * markConsumed sets consumed_at so the draft cannot be re-attached.
12
+ *
13
+ * Idempotency contract: the schema's partial unique index
14
+ * UNIQUE(task_id) WHERE consumed_at IS NULL
15
+ * guarantees at most one unconsumed draft per task_id at the DB level.
16
+ * insertPendingDraft honors this by first SELECTing for an existing
17
+ * unconsumed row, then UPDATE-ing it in place (rather than INSERT-ing a new
18
+ * row) when one exists. This matches the spec requirement: "如果 taskId 已有
19
+ * 未消费行,UPDATE 该行的 agent_draft / created_at / pain_id,不创建新行".
20
+ *
21
+ * ERR checklist:
22
+ * - EP-01 / ERR-001, ERR-005: agent_draft JSON is parsed into `unknown` and
23
+ * validated field-by-field via isAgentDraftPayload before being exposed as
24
+ * AgentDraftPayload. No `as` casts on row data (rc-1, rc-2).
25
+ * - EP-01 / ERR-013: Object.hasOwn (not `in`) is used to check payload keys
26
+ * on the parsed-unknown object (rc-5).
27
+ * - EP-03 / ERR-002: write failures return { ok: false, error } so callers
28
+ * can log an observable reason (rc-9).
29
+ * - EP-03 / ERR-009, ERR-010: corrupt agent_draft JSON fails loud —
30
+ * getUnconsumedByTaskId / listPending throw a structured Error rather than
31
+ * silently returning a raw string masquerading as the original object
32
+ * (rc-3-fail-loud-missing).
33
+ * - EP-05 / ERR-015: insertPendingDraft reads fresh state via
34
+ * SELECT ... WHERE consumed_at IS NULL immediately before the
35
+ * INSERT/UPDATE decision, so concurrent writers see the latest row.
36
+ */
37
+ import type { SqliteConnection } from '../store/sqlite-connection.js';
38
+ /** Agent-authored draft context attached to a failed task. */
39
+ export interface AgentDraftPayload {
40
+ summary: string;
41
+ observedFailure?: string;
42
+ commandSummary?: string;
43
+ }
44
+ /** A row in the pending_agent_drafts table. agentDraft is typed (validated). */
45
+ export interface PendingAgentDraftRow {
46
+ id: string;
47
+ taskId: string;
48
+ painId: string | null;
49
+ agentDraft: AgentDraftPayload;
50
+ createdAt: string;
51
+ consumedAt: string | null;
52
+ }
53
+ /** Result of an insert or markConsumed operation. */
54
+ export type PendingDraftOpResult = {
55
+ ok: true;
56
+ id: string;
57
+ } | {
58
+ ok: false;
59
+ error: string;
60
+ };
61
+ export declare class PendingAgentDraftStore {
62
+ private readonly connection;
63
+ constructor(connection: SqliteConnection);
64
+ /**
65
+ * Insert a pending agent draft for a task, or UPDATE the existing
66
+ * unconsumed draft if one already exists for the same taskId (idempotent).
67
+ *
68
+ * On UPDATE, the row's `id` is preserved; agent_draft / created_at / pain_id
69
+ * are overwritten with the new values. This honors the spec: "如果 taskId 已有
70
+ * 未消费行(consumed_at IS NULL),UPDATE 该行的 agent_draft / created_at /
71
+ * pain_id,不创建新行".
72
+ *
73
+ * Returns `{ ok: true, id }` on success (id is the row's PRIMARY KEY,
74
+ * either the existing one for an UPDATE or a fresh `pad-` id for an INSERT).
75
+ */
76
+ insertPendingDraft(input: {
77
+ taskId: string;
78
+ painId?: string;
79
+ agentDraft: AgentDraftPayload;
80
+ }): PendingDraftOpResult;
81
+ /**
82
+ * Get the unconsumed draft for a task, or null if none.
83
+ * Fails loud (rc-3) when agent_draft is corrupt JSON — throws a structured
84
+ * Error so callers can observe the corruption instead of silently receiving
85
+ * a raw string masquerading as the original object.
86
+ */
87
+ getUnconsumedByTaskId(taskId: string): PendingAgentDraftRow | null;
88
+ /**
89
+ * Mark a draft as consumed (set consumed_at = now).
90
+ * Returns `{ ok: true }` whether or not the row exists — this is the
91
+ * explicit "ok: true 静默" behavior called out in the task spec for
92
+ * markConsumed on a non-existent id. The reasoning: markConsumed is called
93
+ * from the feedback-report success path as a cleanup step; a missing row
94
+ * (already consumed, never existed, or concurrently deleted) is not an
95
+ * error condition the caller can act on.
96
+ */
97
+ markConsumed(id: string): PendingDraftOpResult;
98
+ /**
99
+ * List pending (unconsumed) drafts, most recent first.
100
+ * Fails loud (rc-3) on corrupt agent_draft JSON.
101
+ */
102
+ listPending(filter?: {
103
+ limit?: number;
104
+ }): PendingAgentDraftRow[];
105
+ }
106
+ //# sourceMappingURL=pending-agent-draft-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-agent-draft-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/pending-agent-draft-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAkFjC,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEzD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,KAAK,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,oBAAoB;IA6CxB;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAWlE;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB;IAa9C;;;OAGG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,EAAE;CAejE"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * PendingAgentDraftStore — durable store for agent-generated draft context
3
+ * attached to a failed peer-runner task.
4
+ *
5
+ * Task 11: When a peer runner reaches a permanent-failure terminal state
6
+ * (BasePeerRunner catch block — Task 12), it constructs an AgentDraftPayload
7
+ * and writes it here via insertPendingDraft. The feedback-report pipeline
8
+ * (Task 13) later reads the unconsumed draft for a given taskId and merges
9
+ * it into the user-facing FeedbackReport so the maintainer sees the agent's
10
+ * perspective alongside the user's description. After a successful merge,
11
+ * markConsumed sets consumed_at so the draft cannot be re-attached.
12
+ *
13
+ * Idempotency contract: the schema's partial unique index
14
+ * UNIQUE(task_id) WHERE consumed_at IS NULL
15
+ * guarantees at most one unconsumed draft per task_id at the DB level.
16
+ * insertPendingDraft honors this by first SELECTing for an existing
17
+ * unconsumed row, then UPDATE-ing it in place (rather than INSERT-ing a new
18
+ * row) when one exists. This matches the spec requirement: "如果 taskId 已有
19
+ * 未消费行,UPDATE 该行的 agent_draft / created_at / pain_id,不创建新行".
20
+ *
21
+ * ERR checklist:
22
+ * - EP-01 / ERR-001, ERR-005: agent_draft JSON is parsed into `unknown` and
23
+ * validated field-by-field via isAgentDraftPayload before being exposed as
24
+ * AgentDraftPayload. No `as` casts on row data (rc-1, rc-2).
25
+ * - EP-01 / ERR-013: Object.hasOwn (not `in`) is used to check payload keys
26
+ * on the parsed-unknown object (rc-5).
27
+ * - EP-03 / ERR-002: write failures return { ok: false, error } so callers
28
+ * can log an observable reason (rc-9).
29
+ * - EP-03 / ERR-009, ERR-010: corrupt agent_draft JSON fails loud —
30
+ * getUnconsumedByTaskId / listPending throw a structured Error rather than
31
+ * silently returning a raw string masquerading as the original object
32
+ * (rc-3-fail-loud-missing).
33
+ * - EP-05 / ERR-015: insertPendingDraft reads fresh state via
34
+ * SELECT ... WHERE consumed_at IS NULL immediately before the
35
+ * INSERT/UPDATE decision, so concurrent writers see the latest row.
36
+ */
37
+ function isRecord(value) {
38
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
39
+ }
40
+ /**
41
+ * Validate that an unknown value (parsed JSON) matches AgentDraftPayload.
42
+ * Uses Object.hasOwn (rc-5) and explicit typeof guards (rc-1, rc-2: no `as`).
43
+ */
44
+ function isAgentDraftPayload(value) {
45
+ if (!isRecord(value))
46
+ return false;
47
+ if (!Object.hasOwn(value, 'summary') || typeof value.summary !== 'string')
48
+ return false;
49
+ if (Object.hasOwn(value, 'observedFailure') && typeof value.observedFailure !== 'string') {
50
+ return false;
51
+ }
52
+ if (Object.hasOwn(value, 'commandSummary') && typeof value.commandSummary !== 'string') {
53
+ return false;
54
+ }
55
+ return true;
56
+ }
57
+ /**
58
+ * Generate a `pad-<uuid>` id, falling back to `pad-<ts>-<rand>` if the
59
+ * WebCrypto randomUUID is unavailable (mirrors the feedback module's `fb-`
60
+ * prefix pattern in create-report.ts).
61
+ */
62
+ function generateDraftId() {
63
+ try {
64
+ if (typeof globalThis.crypto !== 'undefined' && typeof globalThis.crypto.randomUUID === 'function') {
65
+ return 'pad-' + globalThis.crypto.randomUUID();
66
+ }
67
+ }
68
+ catch {
69
+ // Fallback below
70
+ }
71
+ const ts = Date.now().toString(36);
72
+ const rand = Math.random().toString(36).slice(2, 8);
73
+ return 'pad-' + ts + '-' + rand;
74
+ }
75
+ /**
76
+ * Map a sqlite row (Record<string, unknown>) to a PendingAgentDraftRow.
77
+ *
78
+ * agent_draft is JSON.parse'd into `unknown` and then validated via
79
+ * isAgentDraftPayload (rc-1, rc-2, rc-5). Corrupt JSON fails loud (rc-3)
80
+ * by throwing a structured Error — the caller can catch and surface a
81
+ * reason instead of silently degrading.
82
+ */
83
+ function rowToPendingDraft(row) {
84
+ if (typeof row.agent_draft !== 'string') {
85
+ // rc-3: fail loud — required field missing or wrong type.
86
+ throw new Error(`pending_agent_drafts row has non-string agent_draft (id=${String(row.id)})`);
87
+ }
88
+ let parsed;
89
+ try {
90
+ parsed = JSON.parse(row.agent_draft);
91
+ }
92
+ catch (parseErr) {
93
+ // rc-3: fail loud with observable reason (do NOT return a raw string
94
+ // masquerading as AgentDraftPayload).
95
+ throw new Error(`pending_agent_drafts row has corrupt agent_draft JSON (id=${String(row.id)}): ${parseErr instanceof Error ? parseErr.message : String(parseErr)}`, { cause: parseErr });
96
+ }
97
+ if (!isAgentDraftPayload(parsed)) {
98
+ // rc-3: fail loud — parsed JSON does not match AgentDraftPayload shape.
99
+ throw new Error(`pending_agent_drafts row agent_draft failed shape validation (id=${String(row.id)})`);
100
+ }
101
+ return {
102
+ id: String(row.id),
103
+ taskId: String(row.task_id),
104
+ painId: row.pain_id === null || row.pain_id === undefined ? null : String(row.pain_id),
105
+ agentDraft: parsed,
106
+ createdAt: String(row.created_at),
107
+ consumedAt: row.consumed_at === null || row.consumed_at === undefined ? null : String(row.consumed_at),
108
+ };
109
+ }
110
+ export class PendingAgentDraftStore {
111
+ connection;
112
+ constructor(connection) {
113
+ this.connection = connection;
114
+ }
115
+ /**
116
+ * Insert a pending agent draft for a task, or UPDATE the existing
117
+ * unconsumed draft if one already exists for the same taskId (idempotent).
118
+ *
119
+ * On UPDATE, the row's `id` is preserved; agent_draft / created_at / pain_id
120
+ * are overwritten with the new values. This honors the spec: "如果 taskId 已有
121
+ * 未消费行(consumed_at IS NULL),UPDATE 该行的 agent_draft / created_at /
122
+ * pain_id,不创建新行".
123
+ *
124
+ * Returns `{ ok: true, id }` on success (id is the row's PRIMARY KEY,
125
+ * either the existing one for an UPDATE or a fresh `pad-` id for an INSERT).
126
+ */
127
+ insertPendingDraft(input) {
128
+ try {
129
+ const db = this.connection.getDb();
130
+ const createdAt = new Date().toISOString();
131
+ let agentDraftJson;
132
+ try {
133
+ agentDraftJson = JSON.stringify(input.agentDraft);
134
+ }
135
+ catch (serializeErr) {
136
+ // rc-9: surface serialization failure with a reason instead of
137
+ // silently dropping the row or storing an empty string.
138
+ return {
139
+ ok: false,
140
+ error: `agentDraft serialization failed: ${serializeErr instanceof Error ? serializeErr.message : String(serializeErr)}`,
141
+ };
142
+ }
143
+ const painId = input.painId ?? null;
144
+ // Read fresh state (rc-7 / ERR-015): SELECT the current unconsumed row
145
+ // immediately before deciding INSERT vs UPDATE. The partial unique index
146
+ // UNIQUE(task_id) WHERE consumed_at IS NULL is the DB-level backstop.
147
+ const existing = db
148
+ .prepare('SELECT id FROM pending_agent_drafts WHERE task_id = ? AND consumed_at IS NULL LIMIT 1')
149
+ .get(input.taskId);
150
+ if (isRecord(existing) && typeof existing.id === 'string') {
151
+ // Idempotent UPDATE: preserve the existing row's id, refresh the
152
+ // payload + timestamp + pain_id linkage.
153
+ db.prepare('UPDATE pending_agent_drafts SET pain_id = ?, agent_draft = ?, created_at = ? WHERE id = ?').run(painId, agentDraftJson, createdAt, existing.id);
154
+ return { ok: true, id: existing.id };
155
+ }
156
+ const id = generateDraftId();
157
+ db.prepare('INSERT INTO pending_agent_drafts (id, task_id, pain_id, agent_draft, created_at, consumed_at) VALUES (?, ?, ?, ?, ?, ?)').run(id, input.taskId, painId, agentDraftJson, createdAt, null);
158
+ return { ok: true, id };
159
+ }
160
+ catch (err) {
161
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
162
+ }
163
+ }
164
+ /**
165
+ * Get the unconsumed draft for a task, or null if none.
166
+ * Fails loud (rc-3) when agent_draft is corrupt JSON — throws a structured
167
+ * Error so callers can observe the corruption instead of silently receiving
168
+ * a raw string masquerading as the original object.
169
+ */
170
+ getUnconsumedByTaskId(taskId) {
171
+ const db = this.connection.getDb();
172
+ const row = db
173
+ .prepare('SELECT id, task_id, pain_id, agent_draft, created_at, consumed_at FROM pending_agent_drafts WHERE task_id = ? AND consumed_at IS NULL LIMIT 1')
174
+ .get(taskId);
175
+ if (!isRecord(row))
176
+ return null;
177
+ return rowToPendingDraft(row);
178
+ }
179
+ /**
180
+ * Mark a draft as consumed (set consumed_at = now).
181
+ * Returns `{ ok: true }` whether or not the row exists — this is the
182
+ * explicit "ok: true 静默" behavior called out in the task spec for
183
+ * markConsumed on a non-existent id. The reasoning: markConsumed is called
184
+ * from the feedback-report success path as a cleanup step; a missing row
185
+ * (already consumed, never existed, or concurrently deleted) is not an
186
+ * error condition the caller can act on.
187
+ */
188
+ markConsumed(id) {
189
+ try {
190
+ const db = this.connection.getDb();
191
+ const consumedAt = new Date().toISOString();
192
+ // UPDATE is idempotent: re-marking an already-consumed row just
193
+ // refreshes consumed_at, which is harmless.
194
+ db.prepare('UPDATE pending_agent_drafts SET consumed_at = ? WHERE id = ?').run(consumedAt, id);
195
+ return { ok: true, id };
196
+ }
197
+ catch (err) {
198
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
199
+ }
200
+ }
201
+ /**
202
+ * List pending (unconsumed) drafts, most recent first.
203
+ * Fails loud (rc-3) on corrupt agent_draft JSON.
204
+ */
205
+ listPending(filter) {
206
+ const db = this.connection.getDb();
207
+ const limit = filter?.limit ?? 100;
208
+ const rows = db
209
+ .prepare('SELECT id, task_id, pain_id, agent_draft, created_at, consumed_at FROM pending_agent_drafts WHERE consumed_at IS NULL ORDER BY created_at DESC LIMIT ?')
210
+ .all(limit);
211
+ const out = [];
212
+ for (const row of rows) {
213
+ if (!isRecord(row))
214
+ continue;
215
+ out.push(rowToPendingDraft(row));
216
+ }
217
+ return out;
218
+ }
219
+ }
220
+ //# sourceMappingURL=pending-agent-draft-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-agent-draft-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/pending-agent-draft-store.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,20 @@ export declare function buildPrivacyPreview(redactionNotes: string[]): PrivacyPr
11
11
  * Uses real '\n' newlines. BigInt/cycle-safe via safeStringifyPreview.
12
12
  */
13
13
  export declare function buildEmailText(report: FeedbackReport): string;
14
+ /**
15
+ * Build a `mailto:` URL string for the given report and maintainer email.
16
+ *
17
+ * - Returns '' when `maintainerEmail` is empty or not a string.
18
+ * - Subject: `[PD feedback] [${report.type}] ${report.title}` with absolute
19
+ * paths redacted (matches the Subject line produced by buildEmailText).
20
+ * - Body: buildEmailText(report), truncated so that the URL-encoded body
21
+ * stays within MAX_MAILTO_ENCODED_BODY_LENGTH chars. When truncation
22
+ * occurs, TRUNCATED_SUFFIX is appended so the recipient can see the body
23
+ * was shortened.
24
+ * - Subject and body are URL-encoded via encodeURIComponent.
25
+ *
26
+ * ERR-014/016: the encoded body is bounded so the final mailto: URL stays
27
+ * within common email client limits (Outlook desktop ~2000 chars).
28
+ */
29
+ export declare function buildMailtoUrl(report: FeedbackReport, maintainerEmail: string): string;
14
30
  //# sourceMappingURL=privacy-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"privacy-preview.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/privacy-preview.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1E,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAOtD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EASxD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,CAM5E;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4E7D"}
1
+ {"version":3,"file":"privacy-preview.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/privacy-preview.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1E,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAOtD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EASxD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,CAM5E;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4E7D;AAgBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CA8BtF"}
@@ -125,4 +125,58 @@ export function buildEmailText(report) {
125
125
  email = redactEnvLikeValues(email);
126
126
  return email;
127
127
  }
128
+ /**
129
+ * Maximum length of the ENCODED body parameter in the mailto: URL.
130
+ *
131
+ * Outlook desktop historically enforces a ~2000-char limit on the entire
132
+ * mailto: URL. We budget conservatively for the encoded body alone, leaving
133
+ * room for `mailto:<email>?subject=<encoded-subject>&body=`. The raw
134
+ * (pre-encoding) body can be up to 3x larger per character after
135
+ * encodeURIComponent (each char → %XX), so budgeting by raw length is
136
+ * unsafe — a 4000-char raw body with many special chars can exceed 12000
137
+ * chars encoded.
138
+ */
139
+ const MAX_MAILTO_ENCODED_BODY_LENGTH = 1800;
140
+ const TRUNCATED_SUFFIX = '\n\n…(truncated — use "Copy Email" in PD Console for the full report)';
141
+ /**
142
+ * Build a `mailto:` URL string for the given report and maintainer email.
143
+ *
144
+ * - Returns '' when `maintainerEmail` is empty or not a string.
145
+ * - Subject: `[PD feedback] [${report.type}] ${report.title}` with absolute
146
+ * paths redacted (matches the Subject line produced by buildEmailText).
147
+ * - Body: buildEmailText(report), truncated so that the URL-encoded body
148
+ * stays within MAX_MAILTO_ENCODED_BODY_LENGTH chars. When truncation
149
+ * occurs, TRUNCATED_SUFFIX is appended so the recipient can see the body
150
+ * was shortened.
151
+ * - Subject and body are URL-encoded via encodeURIComponent.
152
+ *
153
+ * ERR-014/016: the encoded body is bounded so the final mailto: URL stays
154
+ * within common email client limits (Outlook desktop ~2000 chars).
155
+ */
156
+ export function buildMailtoUrl(report, maintainerEmail) {
157
+ if (typeof maintainerEmail !== 'string' || maintainerEmail.length === 0) {
158
+ return '';
159
+ }
160
+ const subject = `[PD feedback] [${report.type}] ${redactAbsolutePaths(report.title)}`;
161
+ const fullBody = buildEmailText(report);
162
+ const encodedSubject = encodeURIComponent(subject);
163
+ const encodedSuffix = encodeURIComponent(TRUNCATED_SUFFIX);
164
+ // Try the full body first; if the encoded length fits, use it as-is.
165
+ let bodyToEncode = fullBody;
166
+ let encodedBody = encodeURIComponent(bodyToEncode);
167
+ if (encodedBody.length + encodedSuffix.length > MAX_MAILTO_ENCODED_BODY_LENGTH) {
168
+ // Truncate: find the longest raw prefix whose encoded form fits within
169
+ // (budget - suffix). Linear reduction from the end is bounded because
170
+ // each iteration removes at least one character; worst case ~fullBody.length
171
+ // iterations, and fullBody is itself bounded by buildEmailText's field caps.
172
+ const bodyBudget = MAX_MAILTO_ENCODED_BODY_LENGTH - encodedSuffix.length;
173
+ let cut = fullBody.length;
174
+ while (cut > 0 && encodeURIComponent(fullBody.slice(0, cut)).length > bodyBudget) {
175
+ cut -= Math.max(1, Math.floor(cut / 4)); // geometric step for efficiency
176
+ }
177
+ bodyToEncode = fullBody.slice(0, cut) + TRUNCATED_SUFFIX;
178
+ encodedBody = encodeURIComponent(bodyToEncode);
179
+ }
180
+ return `mailto:${maintainerEmail}?subject=${encodedSubject}&body=${encodedBody}`;
181
+ }
128
182
  //# sourceMappingURL=privacy-preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"privacy-preview.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/privacy-preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"privacy-preview.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/privacy-preview.ts"],"names":[],"mappings":"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"}