@autorag/librarian 2.0.0 → 2.1.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 (50) hide show
  1. package/README.md +45 -1
  2. package/dist/agent/search-documents.d.ts +1 -0
  3. package/dist/cli/config.d.ts +6 -0
  4. package/dist/cli/index.js +3423 -306
  5. package/dist/datasource/chunk-store.d.ts +67 -0
  6. package/dist/datasource/connector-skill.d.ts +107 -0
  7. package/dist/datasource/connector.d.ts +72 -0
  8. package/dist/datasource/http.d.ts +49 -0
  9. package/dist/datasource/index.d.ts +14 -0
  10. package/dist/datasource/skills/discord/connector.d.ts +30 -0
  11. package/dist/datasource/skills/discord/index.d.ts +2 -0
  12. package/dist/datasource/skills/discord/skill.d.ts +20 -0
  13. package/dist/datasource/skills/factory.d.ts +35 -0
  14. package/dist/datasource/skills/gdrive/connector.d.ts +30 -0
  15. package/dist/datasource/skills/gdrive/index.d.ts +3 -0
  16. package/dist/datasource/skills/gdrive/rclone-connector.d.ts +51 -0
  17. package/dist/datasource/skills/gdrive/skill.d.ts +24 -0
  18. package/dist/datasource/skills/github/connector.d.ts +28 -0
  19. package/dist/datasource/skills/github/index.d.ts +2 -0
  20. package/dist/datasource/skills/github/skill.d.ts +20 -0
  21. package/dist/datasource/skills/gmail/connector.d.ts +30 -0
  22. package/dist/datasource/skills/gmail/himalaya-connector.d.ts +40 -0
  23. package/dist/datasource/skills/gmail/index.d.ts +3 -0
  24. package/dist/datasource/skills/gmail/skill.d.ts +24 -0
  25. package/dist/datasource/skills/mail-export/connector.d.ts +21 -0
  26. package/dist/datasource/skills/mail-export/index.d.ts +2 -0
  27. package/dist/datasource/skills/mail-export/skill.d.ts +20 -0
  28. package/dist/datasource/skills/notion/connector.d.ts +26 -0
  29. package/dist/datasource/skills/notion/index.d.ts +2 -0
  30. package/dist/datasource/skills/notion/skill.d.ts +20 -0
  31. package/dist/datasource/skills/obsidian/connector.d.ts +22 -0
  32. package/dist/datasource/skills/obsidian/index.d.ts +2 -0
  33. package/dist/datasource/skills/obsidian/skill.d.ts +20 -0
  34. package/dist/datasource/skills/rss/connector.d.ts +28 -0
  35. package/dist/datasource/skills/rss/index.d.ts +2 -0
  36. package/dist/datasource/skills/rss/skill.d.ts +22 -0
  37. package/dist/datasource/skills/slack/connector.d.ts +28 -0
  38. package/dist/datasource/skills/slack/index.d.ts +2 -0
  39. package/dist/datasource/skills/slack/skill.d.ts +20 -0
  40. package/dist/datasource/skills/spotlight/connector.d.ts +59 -0
  41. package/dist/datasource/skills/spotlight/index.d.ts +2 -0
  42. package/dist/datasource/skills/spotlight/skill.d.ts +20 -0
  43. package/dist/index.js +3267 -152
  44. package/dist/parser/defaults.d.ts +2 -0
  45. package/dist/parser/hwp-markdown.d.ts +25 -0
  46. package/dist/parser/hwp.d.ts +7 -0
  47. package/dist/parser/index.d.ts +2 -1
  48. package/dist/parser/rhwp-adapter.d.ts +30 -0
  49. package/package.json +3 -2
  50. package/skills/autorag-setup/SKILL.md +52 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Himalaya-backed mail connector (issue #1304, IMAP path).
3
+ *
4
+ * Uses the external `himalaya` CLI (https://pimalaya.org) as the trusted
5
+ * bridge to any IMAP/Maildir account it has configured — Gmail included —
6
+ * so no OAuth token plumbing is needed here. Mirrors the katok pattern:
7
+ * AutoRAG never opens the mailbox itself; it spawns the CLI, parses JSON
8
+ * envelopes, and reads message bodies. Never throws; failures map onto the
9
+ * coarse connector failure union with path/PII-opaque messages.
10
+ */
11
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
12
+ export interface HimalayaRunResult {
13
+ readonly ok: boolean;
14
+ readonly stdout: string;
15
+ readonly stderr: string;
16
+ readonly code: number | null;
17
+ }
18
+ export type HimalayaRunner = (args: readonly string[], timeoutMs: number) => Promise<HimalayaRunResult>;
19
+ export interface HimalayaConnectorOptions {
20
+ /** Path to the himalaya binary. Default bare `himalaya` PATH lookup. */
21
+ readonly binaryPath?: string;
22
+ /** Himalaya account name (`himalaya account list`). Default account when omitted. */
23
+ readonly account?: string;
24
+ /** Mail folder, e.g. `INBOX`. Himalaya's default folder when omitted. */
25
+ readonly folder?: string;
26
+ /** Envelopes per listing page. Default 100. */
27
+ readonly pageSize?: number;
28
+ /** Max messages whose bodies are fetched per run. Default 50. */
29
+ readonly maxDocuments?: number;
30
+ /** Per-spawn timeout. Default 30s (IMAP fetches can be slow). */
31
+ readonly timeoutMs?: number;
32
+ /** Injectable process runner for tests. */
33
+ readonly runner?: HimalayaRunner;
34
+ }
35
+ export declare class HimalayaConnector implements DatasourceConnector {
36
+ private readonly options;
37
+ private readonly runner;
38
+ constructor(options?: HimalayaConnectorOptions);
39
+ fetch(): Promise<ConnectorFetchResult>;
40
+ }
@@ -0,0 +1,3 @@
1
+ export { GmailConnector, type GmailConnectorOptions } from "./connector.js";
2
+ export { HimalayaConnector, type HimalayaConnectorOptions, type HimalayaRunner, type HimalayaRunResult, } from "./himalaya-connector.js";
3
+ export { GMAIL_SKILL_DEFINITION, GmailSkill, type GmailSkillOptions } from "./skill.js";
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Gmail datasource skill (issue #1304).
3
+ *
4
+ * Thin composition of GmailConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/gmail/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import type { DatasourceConnector } from "../../connector.js";
11
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
12
+ import { type GmailConnectorOptions } from "./connector.js";
13
+ export declare const GMAIL_SKILL_DEFINITION: ConnectorSkillDefinition;
14
+ export interface GmailSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
15
+ /**
16
+ * Trusted pre-built connector; wins over {@link connectorOptions}. Accepts
17
+ * any mail-backed connector (Gmail REST or the himalaya CLI bridge).
18
+ */
19
+ readonly connector?: DatasourceConnector;
20
+ readonly connectorOptions?: GmailConnectorOptions;
21
+ }
22
+ export declare class GmailSkill extends ConnectorDatasourceSkill {
23
+ constructor(options?: GmailSkillOptions);
24
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Local mail export connector (issue #1311).
3
+ *
4
+ * Parses `.eml` files and `.mbox` archives from trusted, server-configured
5
+ * filesystem paths using the existing `mailparser` dependency. No network
6
+ * access. Per-message parse failures aggregate into one count-only warning;
7
+ * absolute paths never appear in warnings or failure messages.
8
+ */
9
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
10
+ export interface MailExportConnectorOptions {
11
+ /** Files or directories containing `.eml` / `.mbox` archives. Required. */
12
+ readonly paths?: readonly string[];
13
+ readonly maxDocuments?: number;
14
+ /** Files larger than this are skipped with a warning. Default 50 MiB. */
15
+ readonly maxBytesPerFile?: number;
16
+ }
17
+ export declare class MailExportConnector implements DatasourceConnector {
18
+ private readonly options;
19
+ constructor(options?: MailExportConnectorOptions);
20
+ fetch(): Promise<ConnectorFetchResult>;
21
+ }
@@ -0,0 +1,2 @@
1
+ export { MailExportConnector, type MailExportConnectorOptions } from "./connector.js";
2
+ export { MAIL_EXPORT_SKILL_DEFINITION, MailExportSkill, type MailExportSkillOptions } from "./skill.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Local mail export datasource skill (issue #1311).
3
+ *
4
+ * Thin composition of MailExportConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/mail-export/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { MailExportConnector, type MailExportConnectorOptions } from "./connector.js";
12
+ export declare const MAIL_EXPORT_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface MailExportSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: MailExportConnector;
16
+ readonly connectorOptions?: MailExportConnectorOptions;
17
+ }
18
+ export declare class MailExportSkill extends ConnectorDatasourceSkill {
19
+ constructor(options?: MailExportSkillOptions);
20
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Notion workspace connector (issue #1302).
3
+ *
4
+ * Enumerates pages/databases via the Notion search API using a trusted,
5
+ * server-configured integration token, then pulls one page of block children
6
+ * per page for text content. Per-page block failures degrade to warnings.
7
+ * Never throws; messages stay path/PII-opaque.
8
+ */
9
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
10
+ export interface NotionConnectorOptions {
11
+ /** Notion REST base; override to point at a mock server in tests. */
12
+ readonly baseUrl?: string;
13
+ /** Integration token; explicit value wins over {@link tokenEnv}. */
14
+ readonly token?: string;
15
+ /** Env var name holding the integration token. Default `NOTION_TOKEN`. */
16
+ readonly tokenEnv?: string;
17
+ readonly timeoutMs?: number;
18
+ readonly fetchImpl?: typeof fetch;
19
+ readonly maxPages?: number;
20
+ readonly maxDocuments?: number;
21
+ }
22
+ export declare class NotionConnector implements DatasourceConnector {
23
+ private readonly options;
24
+ constructor(options?: NotionConnectorOptions);
25
+ fetch(signal?: AbortSignal): Promise<ConnectorFetchResult>;
26
+ }
@@ -0,0 +1,2 @@
1
+ export { NotionConnector, type NotionConnectorOptions } from "./connector.js";
2
+ export { NOTION_SKILL_DEFINITION, NotionSkill, type NotionSkillOptions } from "./skill.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Notion workspace datasource skill (issue #1302).
3
+ *
4
+ * Thin composition of NotionConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/notion/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { NotionConnector, type NotionConnectorOptions } from "./connector.js";
12
+ export declare const NOTION_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface NotionSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: NotionConnector;
16
+ readonly connectorOptions?: NotionConnectorOptions;
17
+ }
18
+ export declare class NotionSkill extends ConnectorDatasourceSkill {
19
+ constructor(options?: NotionSkillOptions);
20
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Obsidian vault connector (issue #1314).
3
+ *
4
+ * Walks a trusted, server-configured vault directory for markdown notes,
5
+ * extracting frontmatter/inline tags, wiki links, and embeds. No network
6
+ * access. Per-file read failures aggregate into a count-only warning;
7
+ * absolute paths never appear in warnings (vault-relative segments are the
8
+ * vault's own logical hierarchy and are allowed in doc ids).
9
+ */
10
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
11
+ export interface ObsidianConnectorOptions {
12
+ /** Absolute path to the vault root. Required trusted configuration. */
13
+ readonly vaultPath?: string;
14
+ readonly maxDocuments?: number;
15
+ /** Files larger than this are skipped. Default 2 MiB. */
16
+ readonly maxBytesPerFile?: number;
17
+ }
18
+ export declare class ObsidianConnector implements DatasourceConnector {
19
+ private readonly options;
20
+ constructor(options?: ObsidianConnectorOptions);
21
+ fetch(): Promise<ConnectorFetchResult>;
22
+ }
@@ -0,0 +1,2 @@
1
+ export { ObsidianConnector, type ObsidianConnectorOptions } from "./connector.js";
2
+ export { OBSIDIAN_SKILL_DEFINITION, ObsidianSkill, type ObsidianSkillOptions } from "./skill.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Obsidian vault datasource skill (issue #1314).
3
+ *
4
+ * Thin composition of ObsidianConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/obsidian/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { ObsidianConnector, type ObsidianConnectorOptions } from "./connector.js";
12
+ export declare const OBSIDIAN_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface ObsidianSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: ObsidianConnector;
16
+ readonly connectorOptions?: ObsidianConnectorOptions;
17
+ }
18
+ export declare class ObsidianSkill extends ConnectorDatasourceSkill {
19
+ constructor(options?: ObsidianSkillOptions);
20
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * RSS/news connector (issue #1316).
3
+ *
4
+ * Fetches RSS 2.0 / Atom feeds from a trusted, server-configured feed list
5
+ * using the existing `fast-xml-parser` dependency. Feeds are referenced by
6
+ * index in warnings — never by URL — so diagnostics stay opaque. Per-feed
7
+ * failures degrade to warnings; only all feeds failing fails the fetch.
8
+ */
9
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
10
+ export interface RssFeedConfig {
11
+ readonly url: string;
12
+ /** Optional category segment inserted into the hierarchy. */
13
+ readonly category?: string;
14
+ }
15
+ export interface RssConnectorOptions {
16
+ /** Feeds to poll. Required trusted configuration. */
17
+ readonly feeds?: readonly RssFeedConfig[];
18
+ readonly timeoutMs?: number;
19
+ readonly fetchImpl?: typeof fetch;
20
+ readonly maxDocuments?: number;
21
+ readonly maxItemsPerFeed?: number;
22
+ }
23
+ export declare class RssConnector implements DatasourceConnector {
24
+ private readonly options;
25
+ private readonly parser;
26
+ constructor(options?: RssConnectorOptions);
27
+ fetch(signal?: AbortSignal): Promise<ConnectorFetchResult>;
28
+ }
@@ -0,0 +1,2 @@
1
+ export { RssConnector, type RssConnectorOptions, type RssFeedConfig } from "./connector.js";
2
+ export { RSS_SKILL_DEFINITION, RssSkill, type RssSkillOptions } from "./skill.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * RSS/news datasource skill (issue #1316).
3
+ *
4
+ * Thin composition of RssConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/rss/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { RssConnector, type RssConnectorOptions } from "./connector.js";
12
+ export declare const RSS_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface RssSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: RssConnector;
16
+ readonly connectorOptions?: RssConnectorOptions;
17
+ /** Dedupe window for re-delivered feed items. Default 24 hours. */
18
+ readonly dedupeWindowMs?: number;
19
+ }
20
+ export declare class RssSkill extends ConnectorDatasourceSkill {
21
+ constructor(options?: RssSkillOptions);
22
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Slack workspace connector (issue #1300).
3
+ *
4
+ * Fetches channel history through the Slack Web API using a trusted,
5
+ * server-configured bot token. Never throws; failures map onto the coarse
6
+ * connector failure union with path/PII-opaque messages. Per-channel
7
+ * failures degrade to warnings so one denied channel cannot fail the fetch.
8
+ */
9
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
10
+ export interface SlackConnectorOptions {
11
+ /** Slack Web API base; override to point at a mock server in tests. */
12
+ readonly baseUrl?: string;
13
+ /** Bot token; explicit value wins over {@link tokenEnv}. */
14
+ readonly token?: string;
15
+ /** Env var name holding the bot token. Default `SLACK_BOT_TOKEN`. */
16
+ readonly tokenEnv?: string;
17
+ /** Restrict indexing to these channel names or ids. */
18
+ readonly channels?: readonly string[];
19
+ readonly timeoutMs?: number;
20
+ readonly fetchImpl?: typeof fetch;
21
+ readonly maxPages?: number;
22
+ readonly maxDocuments?: number;
23
+ }
24
+ export declare class SlackConnector implements DatasourceConnector {
25
+ private readonly options;
26
+ constructor(options?: SlackConnectorOptions);
27
+ fetch(signal?: AbortSignal): Promise<ConnectorFetchResult>;
28
+ }
@@ -0,0 +1,2 @@
1
+ export { SlackConnector, type SlackConnectorOptions } from "./connector.js";
2
+ export { SLACK_SKILL_DEFINITION, SlackSkill, type SlackSkillOptions } from "./skill.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Slack workspace datasource skill (issue #1300).
3
+ *
4
+ * Thin composition of SlackConnector with the shared
5
+ * {@link ConnectorDatasourceSkill} base: descriptor, polling metadata,
6
+ * ok/fail indexing with path/PII-opaque diagnostics, lexical retrieval via
7
+ * the shared pipeline, opaque `/slack/<instance>/…` sources, and a
8
+ * progressive-disclosure agent-skill manifest.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { SlackConnector, type SlackConnectorOptions } from "./connector.js";
12
+ export declare const SLACK_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface SlackSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: SlackConnector;
16
+ readonly connectorOptions?: SlackConnectorOptions;
17
+ }
18
+ export declare class SlackSkill extends ConnectorDatasourceSkill {
19
+ constructor(options?: SlackSkillOptions);
20
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * macOS Spotlight connector (issue #1350).
3
+ *
4
+ * Runs the built-in `mdfind` CLI for trusted, server-configured Spotlight
5
+ * queries and hydrates text content for chunking. No external installs —
6
+ * Spotlight ships with macOS. **macOS only**: on any other platform the
7
+ * connector reports `unavailable` before spawning anything.
8
+ *
9
+ * Full Disk Access: Spotlight returns hits for protected locations (Mail,
10
+ * Messages, Safari data, parts of ~/Library) but reading those files fails
11
+ * with EPERM/EACCES unless the process running AutoRAG (the terminal app or
12
+ * host binary) has Full Disk Access under System Settings -> Privacy &
13
+ * Security. When every content read is denied this maps to the `permission`
14
+ * failure reason with opaque FDA guidance; partial denials surface as
15
+ * count-only warnings. Full absolute paths are exposed in document metadata
16
+ * (`path`) so results stay traceable back to the file on disk — privacy is
17
+ * the operator's responsibility (run AutoRAG with a local LLM if paths must
18
+ * not leave the machine).
19
+ */
20
+ import type { ConnectorFetchResult, DatasourceConnector } from "../../connector.js";
21
+ export interface ProcessRunResult {
22
+ readonly ok: boolean;
23
+ readonly stdout: string;
24
+ readonly stderr: string;
25
+ readonly code: number | null;
26
+ /** Spawn error code, e.g. `"ENOENT"` when the binary is missing. */
27
+ readonly error?: string;
28
+ }
29
+ /** Process execution seam; injectable for tests. Never throws. */
30
+ export type ProcessRunner = (command: string, args: readonly string[], timeoutMs: number) => Promise<ProcessRunResult>;
31
+ export type FileReader = (path: string) => Promise<string>;
32
+ export interface SpotlightConnectorOptions {
33
+ /** Trusted Spotlight query strings passed to `mdfind`. Required. */
34
+ readonly queries?: readonly string[];
35
+ /** Trusted directory restricting every query (`mdfind -onlyin`). */
36
+ readonly onlyIn?: string;
37
+ /** Hits kept per query after dedupe. Default 100. */
38
+ readonly maxResultsPerQuery?: number;
39
+ /** Total documents hydrated per fetch. Default 300. */
40
+ readonly maxDocuments?: number;
41
+ /** Files larger than this are skipped. Default 256 KiB. */
42
+ readonly maxBytesPerFile?: number;
43
+ /** Per-process timeout in ms. Default 15s. */
44
+ readonly timeoutMs?: number;
45
+ /** Injectable platform; defaults to `process.platform`. */
46
+ readonly platform?: NodeJS.Platform;
47
+ /** Injectable process runner; defaults to a bounded spawn wrapper. */
48
+ readonly run?: ProcessRunner;
49
+ /** Injectable file reader; defaults to utf8 `fs.readFile`. */
50
+ readonly readFile?: FileReader;
51
+ }
52
+ export declare class SpotlightConnector implements DatasourceConnector {
53
+ private readonly options;
54
+ private readonly run;
55
+ private readonly readFile;
56
+ private readonly platform;
57
+ constructor(options?: SpotlightConnectorOptions);
58
+ fetch(): Promise<ConnectorFetchResult>;
59
+ }
@@ -0,0 +1,2 @@
1
+ export { type FileReader, type ProcessRunner, type ProcessRunResult, SpotlightConnector, type SpotlightConnectorOptions, } from "./connector.js";
2
+ export { SPOTLIGHT_SKILL_DEFINITION, SpotlightSkill, type SpotlightSkillOptions } from "./skill.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * macOS Spotlight datasource skill (issue #1350).
3
+ *
4
+ * Thin composition of {@link SpotlightConnector} with the shared
5
+ * {@link ConnectorDatasourceSkill} base. The skill is **macOS only** and
6
+ * needs no external installs — it drives the built-in `mdfind` CLI. The
7
+ * manifest carries operator guidance for mdfind/mdls/mdutil and the Full
8
+ * Disk Access requirement.
9
+ */
10
+ import { ConnectorDatasourceSkill, type ConnectorSkillDefinition, type ConnectorSkillOptions } from "../../connector-skill.js";
11
+ import { SpotlightConnector, type SpotlightConnectorOptions } from "./connector.js";
12
+ export declare const SPOTLIGHT_SKILL_DEFINITION: ConnectorSkillDefinition;
13
+ export interface SpotlightSkillOptions extends Omit<ConnectorSkillOptions, "connector"> {
14
+ /** Trusted connector configuration; a pre-built connector wins. */
15
+ readonly connector?: SpotlightConnector;
16
+ readonly connectorOptions?: SpotlightConnectorOptions;
17
+ }
18
+ export declare class SpotlightSkill extends ConnectorDatasourceSkill {
19
+ constructor(options?: SpotlightSkillOptions);
20
+ }