UNPKG

@struktoai/mirage-core

Version:

A Unified Virtual Filesystem For AI Agents

41 lines • 1.9 kB
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= import { FlagView } from "../../../../../commands/spec/flag_view.js"; import { extractHeader, getMessageRaw, listMessages } from "../../../../../core/gmail/messages.js"; import { IOResult } from "../../../../../io/types.js"; import { compactJsonBytes } from "../../../../../core/render/json.js"; export async function triage(accessor, _paths, _texts, ctx) { const fl = new FlagView(ctx.flags); const query = fl.asStr('query', 'is:unread'); const maxResults = fl.asInt('max', 20); const stubs = await listMessages(accessor.tokenManager, { query, maxResults }); const summaries = []; for (const stub of stubs) { const mid = stub.id; if (mid === '') continue; const raw = await getMessageRaw(accessor.tokenManager, mid); const headers = raw.payload?.headers ?? []; summaries.push({ id: mid, from: extractHeader(headers, 'From'), subject: extractHeader(headers, 'Subject'), date: extractHeader(headers, 'Date'), snippet: raw.snippet ?? '', }); } const out = compactJsonBytes(summaries); return [out, new IOResult()]; } //# sourceMappingURL=triage.js.map