okfy-ai 0.1.2

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 (34) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/assets/demo.gif +0 -0
  4. package/assets/logo.svg +14 -0
  5. package/dist/chunk-C46QXZDU.js +1013 -0
  6. package/dist/cli.d.ts +1 -0
  7. package/dist/cli.js +151 -0
  8. package/dist/index.d.ts +179 -0
  9. package/dist/index.js +40 -0
  10. package/docs/mcp-clients.md +278 -0
  11. package/examples/README.md +98 -0
  12. package/examples/bundles/okfy-docs/concepts/index.md +14 -0
  13. package/examples/bundles/okfy-docs/concepts/okf-bundle.md +33 -0
  14. package/examples/bundles/okfy-docs/concepts/progressive-disclosure.md +26 -0
  15. package/examples/bundles/okfy-docs/guides/import-local-markdown.md +31 -0
  16. package/examples/bundles/okfy-docs/guides/index.md +14 -0
  17. package/examples/bundles/okfy-docs/guides/serve-over-mcp.md +29 -0
  18. package/examples/bundles/okfy-docs/index.md +22 -0
  19. package/examples/bundles/okfy-docs/okfy-example.json +10 -0
  20. package/examples/bundles/okfy-docs/reference/index.md +13 -0
  21. package/examples/bundles/okfy-docs/reference/mcp-tools.md +36 -0
  22. package/examples/bundles/stripe-checkout-small/index.md +21 -0
  23. package/examples/bundles/stripe-checkout-small/okfy-example.json +11 -0
  24. package/examples/bundles/stripe-checkout-small/quickstart.md +26 -0
  25. package/examples/bundles/stripe-checkout-small/sessions.md +20 -0
  26. package/examples/bundles/stripe-checkout-small/webhooks.md +19 -0
  27. package/examples/local-markdown/concepts/okf-bundle.md +19 -0
  28. package/examples/local-markdown/concepts/progressive-disclosure.md +15 -0
  29. package/examples/local-markdown/guides/import-local-markdown.md +20 -0
  30. package/examples/local-markdown/guides/serve-over-mcp.md +17 -0
  31. package/examples/local-markdown/index.md +11 -0
  32. package/examples/local-markdown/okfy-example.json +10 -0
  33. package/examples/local-markdown/reference/mcp-tools.md +25 -0
  34. package/package.json +71 -0
@@ -0,0 +1,98 @@
1
+ # Examples
2
+
3
+ ## bundles/okfy-docs
4
+
5
+ Purpose: committed offline OKF bundle used by `okfy demo`.
6
+
7
+ Source command:
8
+
9
+ ```bash
10
+ pnpm okfy import examples/local-markdown --out examples/bundles/okfy-docs --source-name "okfy docs" --force --stable-timestamps
11
+ ```
12
+
13
+ Expected concept count:
14
+
15
+ ```text
16
+ 9
17
+ ```
18
+
19
+ Expected validation status:
20
+
21
+ ```text
22
+ valid
23
+ ```
24
+
25
+ Suggested agent questions:
26
+
27
+ - Search for crawler security defaults, read the relevant concepts, and cite the source resource.
28
+ - Read the MCP setup concept and explain the stdio config.
29
+ - Find importer concepts and list supported input formats.
30
+
31
+ ## bundles/stripe-checkout-small
32
+
33
+ Purpose: small curated Stripe Checkout sample for launch demos when live crawling is flaky.
34
+
35
+ Source command:
36
+
37
+ ```bash
38
+ pnpm okfy import test-fixtures/stripe-checkout-html --out examples/bundles/stripe-checkout-small --source-name "Stripe Checkout sample" --force --stable-timestamps
39
+ ```
40
+
41
+ Expected concept count:
42
+
43
+ ```text
44
+ 4
45
+ ```
46
+
47
+ Expected validation status:
48
+
49
+ ```text
50
+ valid
51
+ ```
52
+
53
+ Suggested agent questions:
54
+
55
+ - Search for Checkout Sessions, read the strongest match, and explain required server parameters.
56
+ - Find webhook-related concepts and summarize fulfillment safety notes.
57
+ - Use neighbors to move from the quickstart to the API reference and webhook concepts.
58
+
59
+ ## local-markdown
60
+
61
+ Purpose: deterministic offline input for `okfy import`.
62
+
63
+ Source command:
64
+
65
+ ```bash
66
+ npx -y okfy-ai import ./examples/local-markdown --out ./tmp/okfy-docs --force --stable-timestamps
67
+ ```
68
+
69
+ Expected concept count:
70
+
71
+ ```text
72
+ 9
73
+ ```
74
+
75
+ Expected validation status:
76
+
77
+ ```text
78
+ valid
79
+ ```
80
+
81
+ Validate:
82
+
83
+ ```bash
84
+ npx -y okfy-ai validate ./tmp/okfy-docs
85
+ npx -y okfy-ai inspect ./tmp/okfy-docs
86
+ ```
87
+
88
+ Serve through MCP:
89
+
90
+ ```bash
91
+ npx -y okfy-ai serve ./tmp/okfy-docs --mcp
92
+ ```
93
+
94
+ Suggested agent questions:
95
+
96
+ - Search for import workflow concepts, read the best match, and explain how to convert a local Markdown folder into OKF.
97
+ - Find concepts tagged `mcp`, read the MCP tools concept, and describe the expected tool-call sequence.
98
+ - Read the bundle summary, then identify which concepts are most useful for a first-time okfy user.
@@ -0,0 +1,14 @@
1
+ ---
2
+ type: "Folder Index"
3
+ title: "Concepts Index"
4
+ description: "Index for concepts."
5
+ resource: "okfy docs"
6
+ tags:
7
+ - "index"
8
+ timestamp: "2026-06-14T00:00:00.000Z"
9
+ ---
10
+
11
+ # Concepts Index
12
+
13
+ - [okf-bundle](./okf-bundle.md)
14
+ - [progressive-disclosure](./progressive-disclosure.md)
@@ -0,0 +1,33 @@
1
+ ---
2
+ type: "Concept"
3
+ title: "OKF Bundle Structure"
4
+ description: "An Open Knowledge Format bundle is a directory of Markdown files with YAML frontmatter. Minimum valid concept: Useful generated fields include title, description, resource, tags, a"
5
+ resource: "concepts/okf-bundle.md"
6
+ tags:
7
+ - "concepts"
8
+ - "okf"
9
+ - "bundle"
10
+ - "structure"
11
+ - "concept"
12
+ - "title"
13
+ timestamp: "2026-06-14T00:00:00.000Z"
14
+ ---
15
+ # OKF Bundle Structure
16
+
17
+ An Open Knowledge Format bundle is a directory of Markdown files with YAML frontmatter.
18
+
19
+ Minimum valid concept:
20
+
21
+ ```md
22
+ ---
23
+ type: Concept
24
+ ---
25
+
26
+ # Concept title
27
+ ```
28
+
29
+ Useful generated fields include `title`, `description`, `resource`, `tags`, and `timestamp`.
30
+
31
+ okfy keeps output file-based so humans can inspect it, Git can diff it, and MCP clients can read only the concepts they need.
32
+
33
+ Related: [Progressive Disclosure](./progressive-disclosure.md).
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: "Documentation Page"
3
+ title: "Progressive Disclosure"
4
+ description: "Progressive disclosure means an agent starts with small previews and only loads full concept content when needed. For okfy, the default pattern is: This keeps prompt context smalle"
5
+ resource: "concepts/progressive-disclosure.md"
6
+ tags:
7
+ - "concepts"
8
+ - "progressive"
9
+ - "disclosure"
10
+ timestamp: "2026-06-14T00:00:00.000Z"
11
+ ---
12
+ # Progressive Disclosure
13
+
14
+ Progressive disclosure means an agent starts with small previews and only loads full concept content when needed.
15
+
16
+ For okfy, the default pattern is:
17
+
18
+ ```text
19
+ search_concepts returns bounded previews
20
+ read_concept returns one concept
21
+ get_neighbors returns linked context
22
+ ```
23
+
24
+ This keeps prompt context smaller than pasting full docs or loading an entire Markdown folder.
25
+
26
+ Related: [Serve Over MCP](../guides/serve-over-mcp.md).
@@ -0,0 +1,31 @@
1
+ ---
2
+ type: "Documentation Page"
3
+ title: "Import Local Markdown"
4
+ description: "Use okfy import when docs already live in a local project checkout, wiki export, Obsidian vault, or staticsite source folder. Expected result: The importer preserves headings, code"
5
+ resource: "guides/import-local-markdown.md"
6
+ tags:
7
+ - "guides"
8
+ - "import"
9
+ - "local"
10
+ timestamp: "2026-06-14T00:00:00.000Z"
11
+ ---
12
+ # Import Local Markdown
13
+
14
+ Use `okfy import` when docs already live in a local project checkout, wiki export, Obsidian vault, or static-site source folder.
15
+
16
+ ```bash
17
+ npx -y okfy-ai import ./examples/local-markdown --out ./tmp/okfy-docs --force
18
+ npx -y okfy-ai validate ./tmp/okfy-docs
19
+ ```
20
+
21
+ Expected result:
22
+
23
+ ```text
24
+ Concepts: 6
25
+ Validation: valid
26
+ Broken links: 0
27
+ ```
28
+
29
+ The importer preserves headings, code blocks, and Markdown links. It infers tags from paths and headings, then writes one OKF concept per input file.
30
+
31
+ Next: [Serve Over MCP](./serve-over-mcp.md).
@@ -0,0 +1,14 @@
1
+ ---
2
+ type: "Folder Index"
3
+ title: "Guides Index"
4
+ description: "Index for guides."
5
+ resource: "okfy docs"
6
+ tags:
7
+ - "index"
8
+ timestamp: "2026-06-14T00:00:00.000Z"
9
+ ---
10
+
11
+ # Guides Index
12
+
13
+ - [import-local-markdown](./import-local-markdown.md)
14
+ - [serve-over-mcp](./serve-over-mcp.md)
@@ -0,0 +1,29 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "Serve Over MCP"
4
+ description: "After generating an OKF bundle, serve it over stdio MCP: Agents should not read the whole bundle first. The efficient flow is: Use searchconcepts for discovery, readconcept for gro"
5
+ resource: "guides/serve-over-mcp.md"
6
+ tags:
7
+ - "guides"
8
+ - "serve"
9
+ - "over"
10
+ - "mcp"
11
+ timestamp: "2026-06-14T00:00:00.000Z"
12
+ ---
13
+ # Serve Over MCP
14
+
15
+ After generating an OKF bundle, serve it over stdio MCP:
16
+
17
+ ```bash
18
+ npx -y okfy-ai serve ./tmp/okfy-docs --mcp
19
+ ```
20
+
21
+ Agents should not read the whole bundle first. The efficient flow is:
22
+
23
+ ```text
24
+ bundle_summary -> search_concepts -> read_concept -> get_neighbors -> answer
25
+ ```
26
+
27
+ Use `search_concepts` for discovery, `read_concept` for grounded detail, and `get_neighbors` when linked concepts may change the answer.
28
+
29
+ See [MCP tools](../reference/mcp-tools.md) for tool descriptions.
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "okfy Local Markdown Fixture"
4
+ description: "This fixture models a small docs folder that can be imported into OKF without network access. Start with Import Local Markdown, then read Serve Over MCP. Key topics: OKF bundle str"
5
+ resource: "index.md"
6
+ tags:
7
+ - "okfy"
8
+ - "local"
9
+ - "fixture"
10
+ timestamp: "2026-06-14T00:00:00.000Z"
11
+ ---
12
+ # okfy Local Markdown Fixture
13
+
14
+ This fixture models a small docs folder that can be imported into OKF without network access.
15
+
16
+ Start with [Import Local Markdown](./guides/import-local-markdown.md), then read [Serve Over MCP](./guides/serve-over-mcp.md).
17
+
18
+ Key topics:
19
+
20
+ - [OKF bundle structure](./concepts/okf-bundle.md)
21
+ - [Progressive disclosure](./concepts/progressive-disclosure.md)
22
+ - [MCP tools](./reference/mcp-tools.md)
@@ -0,0 +1,10 @@
1
+ {
2
+ "sourceCommand": "pnpm okfy import examples/local-markdown --out examples/bundles/okfy-docs --source-name \"okfy docs\" --force --stable-timestamps",
3
+ "expectedConceptCount": 9,
4
+ "expectedValidationStatus": "valid",
5
+ "suggestedAgentQuestions": [
6
+ "Search okfy docs for crawler security defaults, then cite source concepts.",
7
+ "Read the MCP setup concept and explain the stdio config.",
8
+ "Find importer concepts and list supported input formats."
9
+ ]
10
+ }
@@ -0,0 +1,13 @@
1
+ ---
2
+ type: "Folder Index"
3
+ title: "Reference Index"
4
+ description: "Index for reference."
5
+ resource: "okfy docs"
6
+ tags:
7
+ - "index"
8
+ timestamp: "2026-06-14T00:00:00.000Z"
9
+ ---
10
+
11
+ # Reference Index
12
+
13
+ - [mcp-tools](./mcp-tools.md)
@@ -0,0 +1,36 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "MCP Tools"
4
+ description: "okfy exposes these readonly MCP tools: | Tool | Purpose | | | | | searchconcepts | Find concept previews by query, type, or tags. | | readconcept | Read one concept body, frontmatt"
5
+ resource: "reference/mcp-tools.md"
6
+ tags:
7
+ - "reference"
8
+ - "mcp"
9
+ - "tools"
10
+ timestamp: "2026-06-14T00:00:00.000Z"
11
+ ---
12
+ # MCP Tools
13
+
14
+ okfy exposes these read-only MCP tools:
15
+
16
+ | Tool | Purpose |
17
+ | --- | --- |
18
+ | `search_concepts` | Find concept previews by query, type, or tags. |
19
+ | `read_concept` | Read one concept body, frontmatter, links, backlinks, and source resource. |
20
+ | `get_neighbors` | Traverse outbound links and backlinks around a concept. |
21
+ | `list_types` | Show concept types and counts. |
22
+ | `list_tags` | Show tags and counts. |
23
+ | `bundle_summary` | Show bundle title, concept count, type distribution, connected concepts, and validation status. |
24
+
25
+ Expected question-answer flow:
26
+
27
+ ```text
28
+ bundle_summary
29
+ search_concepts
30
+ read_concept
31
+ get_neighbors
32
+ read_concept
33
+ answer with citations
34
+ ```
35
+
36
+ Related: [Progressive Disclosure](../concepts/progressive-disclosure.md).
@@ -0,0 +1,21 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "Stripe Checkout"
4
+ description: "Checkout is a prebuilt payment form for accepting cards and other payment methods. This saved fixture mirrors the launch demo shape without requiring network access. Checkout quick"
5
+ resource: "index.html"
6
+ tags:
7
+ - "stripe"
8
+ - "checkout"
9
+ timestamp: "2026-06-14T00:00:00.000Z"
10
+ ---
11
+ # Stripe Checkout
12
+
13
+ Checkout is a prebuilt payment form for accepting cards and other payment methods.
14
+
15
+ This saved fixture mirrors the launch demo shape without requiring network access.
16
+
17
+ - [Checkout quickstart](./quickstart.md)
18
+ - [Checkout Sessions API](./sessions.md)
19
+ - [Checkout webhooks](./webhooks.md)
20
+
21
+ Original source: [https://docs.stripe.com/checkout](https://docs.stripe.com/checkout)
@@ -0,0 +1,11 @@
1
+ {
2
+ "sourceCommand": "pnpm okfy import test-fixtures/stripe-checkout-html --out examples/bundles/stripe-checkout-small --source-name \"Stripe Checkout sample\" --force --stable-timestamps",
3
+ "expectedConceptCount": 4,
4
+ "expectedValidationStatus": "valid",
5
+ "sampleNote": "Curated saved-HTML sample used when live crawling is flaky; source URLs are preserved in concept bodies and resource metadata points to the fixture source.",
6
+ "suggestedAgentQuestions": [
7
+ "Search for Checkout Sessions, read the strongest match, and explain required server parameters.",
8
+ "Find webhook-related concepts and summarize fulfillment safety notes.",
9
+ "Use neighbors to move from the quickstart to the API reference and webhook concepts."
10
+ ]
11
+ }
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "Checkout quickstart"
4
+ description: "Create a server endpoint that creates a Checkout Session, then redirect the customer to the session URL. See Checkout Sessions API and Checkout webhooks. Original source: https://d"
5
+ resource: "quickstart.html"
6
+ tags:
7
+ - "quickstart"
8
+ - "checkout"
9
+ timestamp: "2026-06-14T00:00:00.000Z"
10
+ ---
11
+ # Checkout quickstart
12
+
13
+ Create a server endpoint that creates a Checkout Session, then redirect the customer to the session URL.
14
+
15
+ ```
16
+ const session = await stripe.checkout.sessions.create({
17
+ mode: "payment",
18
+ line_items: [{ price: "price_123", quantity: 1 }],
19
+ success_url: "https://example.com/success",
20
+ cancel_url: "https://example.com/cancel"
21
+ });
22
+ ```
23
+
24
+ See [Checkout Sessions API](./sessions.md) and [Checkout webhooks](./webhooks.md).
25
+
26
+ Original source: [https://docs.stripe.com/checkout/quickstart](https://docs.stripe.com/checkout/quickstart)
@@ -0,0 +1,20 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "Checkout Sessions API"
4
+ description: "A Checkout Session represents a customer's session as they pay for onetime purchases or subscriptions. Important parameters include mode, lineitems, successurl, and cancelurl. Star"
5
+ resource: "sessions.html"
6
+ tags:
7
+ - "sessions"
8
+ - "checkout"
9
+ - "api"
10
+ timestamp: "2026-06-14T00:00:00.000Z"
11
+ ---
12
+ # Checkout Sessions API
13
+
14
+ A Checkout Session represents a customer's session as they pay for one-time purchases or subscriptions.
15
+
16
+ Important parameters include `mode`, `line_items`, `success_url`, and `cancel_url`.
17
+
18
+ Start with the [Checkout quickstart](./quickstart.md).
19
+
20
+ Original source: [https://docs.stripe.com/api/checkout/sessions](https://docs.stripe.com/api/checkout/sessions)
@@ -0,0 +1,19 @@
1
+ ---
2
+ type: "API Reference"
3
+ title: "Checkout webhooks"
4
+ description: "Listen for checkout.session.completed before fulfilling orders or granting access. Webhook handlers should verify signatures and handle retries idempotently. Related: Checkout Sess"
5
+ resource: "webhooks.html"
6
+ tags:
7
+ - "webhooks"
8
+ - "checkout"
9
+ timestamp: "2026-06-14T00:00:00.000Z"
10
+ ---
11
+ # Checkout webhooks
12
+
13
+ Listen for `checkout.session.completed` before fulfilling orders or granting access.
14
+
15
+ Webhook handlers should verify signatures and handle retries idempotently.
16
+
17
+ Related: [Checkout Sessions API](./sessions.md).
18
+
19
+ Original source: [https://docs.stripe.com/checkout/fulfillment](https://docs.stripe.com/checkout/fulfillment)
@@ -0,0 +1,19 @@
1
+ # OKF Bundle Structure
2
+
3
+ An Open Knowledge Format bundle is a directory of Markdown files with YAML frontmatter.
4
+
5
+ Minimum valid concept:
6
+
7
+ ```md
8
+ ---
9
+ type: Concept
10
+ ---
11
+
12
+ # Concept title
13
+ ```
14
+
15
+ Useful generated fields include `title`, `description`, `resource`, `tags`, and `timestamp`.
16
+
17
+ okfy keeps output file-based so humans can inspect it, Git can diff it, and MCP clients can read only the concepts they need.
18
+
19
+ Related: [Progressive Disclosure](progressive-disclosure.md).
@@ -0,0 +1,15 @@
1
+ # Progressive Disclosure
2
+
3
+ Progressive disclosure means an agent starts with small previews and only loads full concept content when needed.
4
+
5
+ For okfy, the default pattern is:
6
+
7
+ ```text
8
+ search_concepts returns bounded previews
9
+ read_concept returns one concept
10
+ get_neighbors returns linked context
11
+ ```
12
+
13
+ This keeps prompt context smaller than pasting full docs or loading an entire Markdown folder.
14
+
15
+ Related: [Serve Over MCP](../guides/serve-over-mcp.md).
@@ -0,0 +1,20 @@
1
+ # Import Local Markdown
2
+
3
+ Use `okfy import` when docs already live in a local project checkout, wiki export, Obsidian vault, or static-site source folder.
4
+
5
+ ```bash
6
+ npx -y okfy-ai import ./examples/local-markdown --out ./tmp/okfy-docs --force
7
+ npx -y okfy-ai validate ./tmp/okfy-docs
8
+ ```
9
+
10
+ Expected result:
11
+
12
+ ```text
13
+ Concepts: 6
14
+ Validation: valid
15
+ Broken links: 0
16
+ ```
17
+
18
+ The importer preserves headings, code blocks, and Markdown links. It infers tags from paths and headings, then writes one OKF concept per input file.
19
+
20
+ Next: [Serve Over MCP](serve-over-mcp.md).
@@ -0,0 +1,17 @@
1
+ # Serve Over MCP
2
+
3
+ After generating an OKF bundle, serve it over stdio MCP:
4
+
5
+ ```bash
6
+ npx -y okfy-ai serve ./tmp/okfy-docs --mcp
7
+ ```
8
+
9
+ Agents should not read the whole bundle first. The efficient flow is:
10
+
11
+ ```text
12
+ bundle_summary -> search_concepts -> read_concept -> get_neighbors -> answer
13
+ ```
14
+
15
+ Use `search_concepts` for discovery, `read_concept` for grounded detail, and `get_neighbors` when linked concepts may change the answer.
16
+
17
+ See [MCP tools](../reference/mcp-tools.md) for tool descriptions.
@@ -0,0 +1,11 @@
1
+ # okfy Local Markdown Fixture
2
+
3
+ This fixture models a small docs folder that can be imported into OKF without network access.
4
+
5
+ Start with [Import Local Markdown](guides/import-local-markdown.md), then read [Serve Over MCP](guides/serve-over-mcp.md).
6
+
7
+ Key topics:
8
+
9
+ - [OKF bundle structure](concepts/okf-bundle.md)
10
+ - [Progressive disclosure](concepts/progressive-disclosure.md)
11
+ - [MCP tools](reference/mcp-tools.md)
@@ -0,0 +1,10 @@
1
+ {
2
+ "sourceCommand": "npx -y okfy-ai import ./examples/local-markdown --out ./tmp/okfy-docs --force --stable-timestamps",
3
+ "expectedConceptCount": 9,
4
+ "expectedValidationStatus": "valid",
5
+ "suggestedAgentQuestions": [
6
+ "Search for import workflow concepts, read the best match, and explain how to convert a local Markdown folder into OKF.",
7
+ "Find concepts tagged mcp, read the MCP tools concept, and describe the expected tool-call sequence.",
8
+ "Read the bundle summary, then identify which concepts are most useful for a first-time okfy user."
9
+ ]
10
+ }
@@ -0,0 +1,25 @@
1
+ # MCP Tools
2
+
3
+ okfy exposes these read-only MCP tools:
4
+
5
+ | Tool | Purpose |
6
+ | --- | --- |
7
+ | `search_concepts` | Find concept previews by query, type, or tags. |
8
+ | `read_concept` | Read one concept body, frontmatter, links, backlinks, and source resource. |
9
+ | `get_neighbors` | Traverse outbound links and backlinks around a concept. |
10
+ | `list_types` | Show concept types and counts. |
11
+ | `list_tags` | Show tags and counts. |
12
+ | `bundle_summary` | Show bundle title, concept count, type distribution, connected concepts, and validation status. |
13
+
14
+ Expected question-answer flow:
15
+
16
+ ```text
17
+ bundle_summary
18
+ search_concepts
19
+ read_concept
20
+ get_neighbors
21
+ read_concept
22
+ answer with citations
23
+ ```
24
+
25
+ Related: [Progressive Disclosure](../concepts/progressive-disclosure.md).
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "okfy-ai",
3
+ "version": "0.1.2",
4
+ "description": "Convert docs into Open Knowledge Format bundles and serve them to MCP agents.",
5
+ "type": "module",
6
+ "bin": {
7
+ "okfy": "dist/cli.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "LICENSE",
13
+ "assets/logo.svg",
14
+ "assets/demo.gif",
15
+ "docs/mcp-clients.md",
16
+ "examples"
17
+ ],
18
+ "keywords": [
19
+ "okf",
20
+ "open-knowledge-format",
21
+ "mcp",
22
+ "agent-memory",
23
+ "llm",
24
+ "docs",
25
+ "rag",
26
+ "markdown"
27
+ ],
28
+ "engines": {
29
+ "node": ">=20"
30
+ },
31
+ "scripts": {
32
+ "build": "tsup src/cli.ts src/index.ts --format esm --dts --clean",
33
+ "test": "vitest run",
34
+ "typecheck": "tsc --noEmit",
35
+ "lint": "eslint .",
36
+ "format": "prettier --write .",
37
+ "okfy": "node dist/cli.js",
38
+ "demo": "node dist/cli.js demo",
39
+ "publish:npm": "node scripts/publish-npm-readme.mjs",
40
+ "prepublishOnly": "pnpm build && pnpm test && pnpm typecheck"
41
+ },
42
+ "dependencies": {
43
+ "@modelcontextprotocol/sdk": "^1.13.3",
44
+ "cheerio": "^1.0.0",
45
+ "commander": "^12.1.0",
46
+ "gray-matter": "^4.0.3",
47
+ "minimatch": "^10.0.1",
48
+ "minisearch": "^7.1.2",
49
+ "p-limit": "^6.2.0",
50
+ "picocolors": "^1.1.1",
51
+ "robots-parser": "^3.0.1",
52
+ "turndown": "^7.2.0",
53
+ "zod": "^3.25.64"
54
+ },
55
+ "devDependencies": {
56
+ "@eslint/js": "^9.29.0",
57
+ "@types/node": "^20.19.1",
58
+ "@types/turndown": "^5.0.5",
59
+ "eslint": "^9.29.0",
60
+ "prettier": "^3.5.3",
61
+ "tsup": "^8.5.0",
62
+ "typescript": "^5.8.3",
63
+ "typescript-eslint": "^8.34.1",
64
+ "vitest": "^3.2.4"
65
+ },
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "git+https://github.com/0dust/OKFy.git"
69
+ },
70
+ "license": "MIT"
71
+ }