@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
43 lines • 1.79 kB
JavaScript
// ========= 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 { Accessor } from "./base.js";
import { ResponseCache } from "./responses.js";
import { LISTING_TRUST_WINDOW } from "../cache/index/constants.js";
import { TimeRange } from "../core/time_range.js";
import { NodeDiscordTransport } from "../core/discord/client.js";
export class DiscordAccessor extends Accessor {
transport;
timeRange;
timeout;
listedDay = new ResponseCache(LISTING_TRUST_WINDOW);
constructor(transport, config = {}) {
super();
this.transport = transport;
this.timeRange = new TimeRange(config.startTime, config.endTime);
this.timeout = config.timeout;
}
caches() {
return [this.listedDay];
}
}
/**
* The `discord` CLI's accessor factory: the registry builds one per install
* from its validated config, so every verb of that install rides one
* transport. Python passes `DiscordAccessor` itself.
*/
export function discordAccessor(config) {
const cfg = config;
return new DiscordAccessor(new NodeDiscordTransport(cfg.token, cfg.baseUrl, cfg.timeout));
}
//# sourceMappingURL=discord.js.map