proposal-hints-create-context.mjs
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠ breaking
1 day ago
| 1 | /** |
| 2 | * Build { path, body } for hosted review-hints after POST /proposals. |
| 3 | * The canister create response often omits `body`; the client request (bodyOut) still has it. |
| 4 | * Passing non-empty body lets proposal-review-hints-async skip a canister GET (saves ~1–3s+). |
| 5 | */ |
| 6 | |
| 7 | /** |
| 8 | * @param {unknown} j - parsed JSON from canister POST /proposals response |
| 9 | * @param {unknown} bodyOut - outgoing request body object (after augment), same shape sent to canister |
| 10 | * @returns {{ path: string, body: string } | null} |
| 11 | */ |
| 12 | export function proposalDataForHostedReviewHintsFromCreate(j, bodyOut) { |
| 13 | if (!j || typeof j !== 'object' || typeof j.proposal_id !== 'string') return null; |
| 14 | let mergedBody = j.body != null && String(j.body).length > 0 ? String(j.body) : ''; |
| 15 | if (!mergedBody && bodyOut && typeof bodyOut === 'object' && !Buffer.isBuffer(bodyOut)) { |
| 16 | const b = /** @type {Record<string, unknown>} */ (bodyOut).body; |
| 17 | if (b != null) mergedBody = String(b); |
| 18 | } |
| 19 | const pathStr = j.path != null ? String(j.path) : ''; |
| 20 | return { path: pathStr, body: mergedBody }; |
| 21 | } |
File History
2 commits
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠
1 day ago
sha256:9103f98c89257ed2b01c237cea895dabb3e85ea337dccb1161c175e4422355b6
docs: accept Calendar Events v0 spec with Phase 0 security …
Human
1 day ago