docworks 0.12.0-next.1 → 0.13.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 (75) hide show
  1. package/README.md +83 -54
  2. package/dist/commands/check.d.ts +3 -2
  3. package/dist/commands/check.d.ts.map +1 -1
  4. package/dist/commands/check.js +31 -12
  5. package/dist/commands/check.js.map +1 -1
  6. package/dist/commands/init.d.ts +0 -1
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +31 -63
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/core/validator.d.ts +3 -3
  11. package/dist/core/validator.d.ts.map +1 -1
  12. package/dist/core/validator.js +10 -29
  13. package/dist/core/validator.js.map +1 -1
  14. package/dist/index.js +5 -11
  15. package/dist/index.js.map +1 -1
  16. package/dist/providers/index.d.ts +3 -0
  17. package/dist/providers/index.d.ts.map +1 -0
  18. package/dist/providers/index.js +94 -0
  19. package/dist/providers/index.js.map +1 -0
  20. package/dist/sources/source.d.ts +5 -0
  21. package/dist/sources/source.d.ts.map +1 -0
  22. package/dist/sources/source.js +23 -0
  23. package/dist/sources/source.js.map +1 -0
  24. package/dist/types/config.d.ts +6 -7
  25. package/dist/types/config.d.ts.map +1 -1
  26. package/dist/utils/config.d.ts.map +1 -1
  27. package/dist/utils/config.js +8 -3
  28. package/dist/utils/config.js.map +1 -1
  29. package/dist/utils/reporter.d.ts +1 -1
  30. package/dist/utils/reporter.d.ts.map +1 -1
  31. package/dist/utils/reporter.js +18 -51
  32. package/dist/utils/reporter.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/commands/test.d.ts +0 -5
  35. package/dist/commands/test.d.ts.map +0 -1
  36. package/dist/commands/test.js +0 -45
  37. package/dist/commands/test.js.map +0 -1
  38. package/dist/core/ai.d.ts +0 -2
  39. package/dist/core/ai.d.ts.map +0 -1
  40. package/dist/core/ai.js +0 -29
  41. package/dist/core/ai.js.map +0 -1
  42. package/dist/core/cache.d.ts +0 -3
  43. package/dist/core/cache.d.ts.map +0 -1
  44. package/dist/core/cache.js +0 -31
  45. package/dist/core/cache.js.map +0 -1
  46. package/dist/providers/anthropic.d.ts +0 -10
  47. package/dist/providers/anthropic.d.ts.map +0 -1
  48. package/dist/providers/anthropic.js +0 -51
  49. package/dist/providers/anthropic.js.map +0 -1
  50. package/dist/providers/base.d.ts +0 -12
  51. package/dist/providers/base.d.ts.map +0 -1
  52. package/dist/providers/base.js +0 -14
  53. package/dist/providers/base.js.map +0 -1
  54. package/dist/providers/openai.d.ts +0 -10
  55. package/dist/providers/openai.d.ts.map +0 -1
  56. package/dist/providers/openai.js +0 -42
  57. package/dist/providers/openai.js.map +0 -1
  58. package/dist/sources/base.d.ts +0 -3
  59. package/dist/sources/base.d.ts.map +0 -1
  60. package/dist/sources/base.js +0 -12
  61. package/dist/sources/base.js.map +0 -1
  62. package/dist/sources/llms-txt.d.ts +0 -9
  63. package/dist/sources/llms-txt.d.ts.map +0 -1
  64. package/dist/sources/llms-txt.js +0 -64
  65. package/dist/sources/llms-txt.js.map +0 -1
  66. package/dist/sources/local.d.ts +0 -8
  67. package/dist/sources/local.d.ts.map +0 -1
  68. package/dist/sources/local.js +0 -37
  69. package/dist/sources/local.js.map +0 -1
  70. package/templates/api.yml +0 -21
  71. package/templates/default.yml +0 -19
  72. package/templates/gitbook.yml +0 -13
  73. package/templates/library.yml +0 -21
  74. package/templates/mintlify.yml +0 -18
  75. package/templates/readme.yml +0 -13
package/README.md CHANGED
@@ -1,19 +1,16 @@
1
1
  <img width="150" height="62" alt="logo-light" src="https://github.com/user-attachments/assets/a538da6b-3443-45d3-bc25-1604ea3b31b1" />
2
2
  <br/><br/>
3
3
 
4
- Ensure your docs work for developers and AI. Validates that critical questions can be answered from your documentation.
4
+ Ensure your docs work for developers and AI. Tests if humans and AI agents can actually accomplish tasks using your documentation.
5
5
 
6
6
  ## Quick Start
7
7
 
8
8
  ```bash
9
- # Install globally
9
+ # Install
10
10
  npm install -g docworks
11
11
 
12
- # Initialize for your platform
13
- docworks init --platform mintlify
14
-
15
- # Edit docworks.yml with your docs URL
16
- # source: https://docs.yourcompany.com
12
+ # Initialize
13
+ docworks init
17
14
 
18
15
  # Run validation
19
16
  OPENAI_API_KEY=sk-... docworks check
@@ -21,89 +18,121 @@ OPENAI_API_KEY=sk-... docworks check
21
18
 
22
19
  ## How It Works
23
20
 
24
- 1. **Point to your docs** - Provide your documentation URL
25
- 2. **Define journeys** - What must developers accomplish?
26
- 3. **AI validates** - Can these journeys be completed?
27
- 4. **Get results** - See what's missing
28
-
29
- ## Supported Platforms
21
+ DocWorks tests documentation the way developers actually use it - by having AI search and navigate your docs to answer questions:
30
22
 
31
- DocWorks automatically detects and fetches documentation from:
32
-
33
- - **Mintlify** - via llms.txt
34
- - **ReadMe** - via llms.txt
35
- - **GitBook** - via llms.txt
36
- - **Any site with llms.txt** - [llmstxt.org](https://llmstxt.org)
37
- - **Local folders** - for private docs
23
+ 1. **AI explores your docs** - Uses web search to navigate pages
24
+ 2. **Tracks the journey** - Records which pages were visited
25
+ 3. **Reports confidence** - Shows how easily answers were found
26
+ 4. **Identifies gaps** - Lists exactly what's missing
38
27
 
39
28
  ## Configuration
40
29
 
30
+ ### Simple Questions
31
+
41
32
  ```yaml
42
33
  # docworks.yml
43
- source: https://docs.yourcompany.com # Your docs URL
34
+ source: https://docs.yourcompany.com
35
+
36
+ questions:
37
+ - How do I authenticate?
38
+ - What are the rate limits?
39
+ - Where are code examples?
40
+
41
+ provider: openai
42
+ model: gpt-4o-mini
43
+ ```
44
+
45
+ ### Journey Validation
46
+
47
+ ```yaml
48
+ source: https://docs.yourcompany.com
44
49
 
45
50
  journeys:
46
51
  authentication:
47
- - How do I authenticate?
48
- - Where do I get API keys?
49
- - What are the rate limits?
52
+ - How do I get API keys?
53
+ - How do I authenticate requests?
54
+ - How do I handle token refresh?
55
+
56
+ error_handling:
57
+ - What are the error codes?
58
+ - How do I retry failed requests?
50
59
 
51
- provider: openai # or anthropic
60
+ provider: openai
52
61
  model: gpt-4o-mini
53
62
  ```
54
63
 
55
- ## CI/CD Integration
64
+ ## Rich Feedback
65
+
66
+ Instead of simple YES/NO, get actionable insights:
67
+
68
+ ```
69
+ ⚠️ How do I authenticate?
70
+ Confidence: 60%
71
+ Searched: 3 pages
72
+ Missing:
73
+ - API key generation steps
74
+ - Token refresh documentation
75
+ ```
76
+
77
+ ## Multi-Model Testing
78
+
79
+ Test against multiple AI models using CI/CD:
56
80
 
57
81
  ```yaml
58
82
  # .github/workflows/docs.yml
59
- name: Documentation Check
83
+ name: Documentation Validation
60
84
  on: [pull_request]
61
85
 
62
86
  jobs:
63
- check:
87
+ validate:
88
+ strategy:
89
+ matrix:
90
+ include:
91
+ - provider: openai
92
+ model: gpt-4o
93
+ - provider: openai
94
+ model: gpt-4o-mini
95
+ - provider: anthropic
96
+ model: claude-3-opus
97
+
64
98
  runs-on: ubuntu-latest
65
99
  steps:
66
100
  - uses: actions/checkout@v3
67
101
  - run: npx docworks check
68
102
  env:
103
+ PROVIDER: ${{ matrix.provider }}
104
+ MODEL: ${{ matrix.model }}
69
105
  OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
106
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
70
107
  ```
71
108
 
72
- ## Templates
109
+ ## Supported Documentation
73
110
 
74
- ```bash
75
- # For documentation platforms
76
- docworks init --platform mintlify
77
- docworks init --platform readme
78
- docworks init --platform gitbook
111
+ - **Public docs** - Any site with [llms.txt](https://llmstxt.org)
112
+ - **Platforms** - Mintlify, ReadMe, GitBook
79
113
 
80
- # For local documentation
81
- docworks init --platform local
82
- ```
114
+ ## Commands
83
115
 
84
- ## Local Documentation
116
+ ```bash
117
+ # Initialize config
118
+ docworks init
85
119
 
86
- For private or local documentation:
120
+ # Validate all journeys
121
+ docworks check
87
122
 
88
- ```yaml
89
- source: ./docs # Path to folder with .md/.mdx files
123
+ # Test specific journey
124
+ docworks check --journey authentication
90
125
 
91
- journeys:
92
- internal:
93
- - How do I deploy?
94
- - Where are the runbooks?
126
+ # Output as JSON
127
+ docworks check --format json
95
128
  ```
96
129
 
97
- ## FAQ
98
-
99
- **Q: What if my platform doesn't have llms.txt?**
100
- A: Use local mode by pointing to your docs folder, or ask your platform to support [llmstxt.org](https://llmstxt.org)
101
-
102
- **Q: How does it fetch online docs?**
103
- A: DocWorks looks for `/llms.txt` at your docs URL, which lists all documentation pages
130
+ ## Why DocWorks?
104
131
 
105
- **Q: Can I test private documentation?**
106
- A: Yes, use local mode with `source: ./docs`
132
+ - **Real-world testing** - AI navigates docs like developers do
133
+ - **Actionable feedback** - Know exactly what to fix
134
+ - **CI/CD ready** - Catch doc regressions before merge
135
+ - **Progressive** - Start simple, add complexity as needed
107
136
 
108
137
  ## License
109
138
 
@@ -1,7 +1,8 @@
1
1
  export declare function check(options: {
2
2
  config: string;
3
3
  journey?: string;
4
- cache?: boolean;
5
- format?: 'terminal' | 'json' | 'github';
4
+ format?: 'terminal' | 'json';
5
+ provider?: string;
6
+ model?: string;
6
7
  }): Promise<void>;
7
8
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAMA,wBAAsB,KAAK,CAAC,OAAO,EAAE;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA;CACxC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAMA,wBAAsB,KAAK,CAAC,OAAO,EAAE;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhB"}
@@ -1,11 +1,16 @@
1
1
  import { loadConfig } from '../utils/config.js';
2
- import { createSource } from '../sources/base.js';
2
+ import { fetchDocumentation } from '../sources/source.js';
3
3
  import { validateJourneys, validateQuestions } from '../core/validator.js';
4
4
  import { formatReport, formatJSON } from '../utils/reporter.js';
5
5
  export async function check(options) {
6
6
  try {
7
7
  // Load config
8
8
  const config = await loadConfig(options.config || 'docworks.yml');
9
+ // Apply overrides
10
+ if (options.provider)
11
+ config.provider = options.provider;
12
+ if (options.model)
13
+ config.model = options.model;
9
14
  // Validate API key
10
15
  const apiKey = process.env.OPENAI_API_KEY ||
11
16
  process.env.ANTHROPIC_API_KEY ||
@@ -19,15 +24,29 @@ export async function check(options) {
19
24
  }
20
25
  // Load documentation
21
26
  console.log('📚 Loading documentation...');
22
- const source = await createSource(config);
23
- console.log(`Source: ${source.name}\n`);
24
- const docs = await source.fetch();
25
- // Validate journeys
26
- console.log('🔍 Validating journeys...\n');
27
+ const { content: docs, name: sourceName } = await fetchDocumentation(config.source);
28
+ console.log(`Source: ${sourceName}\n`);
29
+ // Prepare all validations
30
+ const allValidations = {};
31
+ // Add standalone questions as implicit "general" journey
32
+ if (config.questions) {
33
+ allValidations.general = config.questions;
34
+ }
35
+ // Add explicit journeys
36
+ if (config.journeys) {
37
+ Object.assign(allValidations, config.journeys);
38
+ }
39
+ // Check if we have anything to validate
40
+ if (Object.keys(allValidations).length === 0) {
41
+ console.error('❌ No questions or journeys found in config');
42
+ process.exit(1);
43
+ }
44
+ // Validate
45
+ console.log('🔍 Validating documentation...\n');
27
46
  let results;
28
47
  if (options.journey) {
29
48
  // Validate single journey
30
- const questions = config.journeys[options.journey];
49
+ const questions = allValidations[options.journey];
31
50
  if (!questions) {
32
51
  console.error(`Journey "${options.journey}" not found`);
33
52
  process.exit(1);
@@ -35,21 +54,21 @@ export async function check(options) {
35
54
  console.log(`Journey: ${options.journey}`);
36
55
  console.log('─'.repeat(40));
37
56
  results = {
38
- [options.journey]: await validateQuestions(questions, docs, apiKey, options.cache !== false),
57
+ [options.journey]: await validateQuestions(questions, docs, apiKey, config),
39
58
  };
40
59
  }
41
60
  else {
42
- // Validate all journeys
43
- results = await validateJourneys(config.journeys, docs, apiKey, options.cache !== false);
61
+ // Validate all
62
+ results = await validateJourneys(allValidations, docs, apiKey, config);
44
63
  }
45
64
  // Format output
46
65
  if (options.format === 'json') {
47
- console.log(formatJSON(results, source.name));
66
+ console.log(formatJSON(results, sourceName));
48
67
  const hasFailures = Object.values(results).some((questions) => questions.some((q) => q.answerable === 'NO'));
49
68
  process.exit(hasFailures ? 1 : 0);
50
69
  }
51
70
  else {
52
- const exitCode = formatReport(results, options.format === 'github');
71
+ const exitCode = formatReport(results);
53
72
  process.exit(exitCode);
54
73
  }
55
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export declare function init(options: {
2
2
  template?: string;
3
- platform?: string;
4
3
  }): Promise<void>;
5
4
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA2EA,wBAAsB,IAAI,CAAC,OAAO,EAAE;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAsCA,wBAAsB,IAAI,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxE"}
@@ -1,71 +1,37 @@
1
1
  import fs from 'fs';
2
2
  const TEMPLATES = {
3
- default: `# DocWorks Configuration
4
- # Point to your documentation URL or local folder
5
- source: https://docs.example.com # or ./docs for local
3
+ simple: `# DocWorks Configuration
4
+ source: https://docs.example.com
6
5
 
7
- journeys:
8
- getting_started:
9
- - How do I install this?
10
- - How do I get started?
11
- - Where are examples?
12
-
13
- development:
14
- - How do I run tests?
15
- - How do I debug issues?
16
- - Where can I get help?
6
+ # Simple list of questions to validate
7
+ questions:
8
+ - How do I authenticate?
9
+ - What are the rate limits?
10
+ - How do I get started?
11
+ - Where can I find examples?
12
+ - How do I handle errors?
17
13
 
18
- provider: openai
19
- model: gpt-4o-mini`,
20
- mintlify: `# DocWorks Configuration - Mintlify
21
- source: https://docs.yourcompany.com # Your Mintlify docs URL
14
+ # Provider configuration (supports environment variables)
15
+ provider: \${PROVIDER:-openai}
16
+ model: \${MODEL:-gpt-4o-mini}`,
17
+ journeys: `# DocWorks Configuration
18
+ source: https://docs.example.com
22
19
 
20
+ # Group questions by user journey
23
21
  journeys:
24
- api_reference:
25
- - Where is the API reference?
26
- - Are all endpoints documented?
27
- - Do examples work?
22
+ authentication:
23
+ - How do I get API keys?
24
+ - How do I authenticate requests?
25
+ - What auth methods are supported?
28
26
 
29
- getting_started:
30
- - Is there a quickstart guide?
31
- - How do I authenticate?
32
- - What SDKs are available?
33
-
34
- provider: openai
35
- model: gpt-4o-mini`,
36
- readme: `# DocWorks Configuration - ReadMe
37
- source: https://docs.yourcompany.com # Your ReadMe docs URL
38
-
39
- journeys:
40
- developer_experience:
41
- - Can I try the API interactively?
42
- - Are there code examples?
43
- - Is versioning documented?
44
-
45
- provider: openai
46
- model: gpt-4o-mini`,
47
- gitbook: `# DocWorks Configuration - GitBook
48
- source: https://docs.yourcompany.com # Your GitBook URL
49
-
50
- journeys:
51
- knowledge_base:
52
- - Is content organized logically?
53
- - Can I search effectively?
54
- - Are guides comprehensive?
55
-
56
- provider: openai
57
- model: gpt-4o-mini`,
58
- local: `# DocWorks Configuration - Local Documentation
59
- source: ./docs # Path to your documentation folder
60
-
61
- journeys:
62
- getting_started:
63
- - How do I get started?
64
- - Where are examples?
65
- - What are the prerequisites?
27
+ error_handling:
28
+ - What error codes exist?
29
+ - How should I handle rate limits?
30
+ - Where are error examples?
66
31
 
67
- provider: openai
68
- model: gpt-4o-mini`,
32
+ # Provider configuration (supports environment variables)
33
+ provider: \${PROVIDER:-openai}
34
+ model: \${MODEL:-gpt-4o-mini}`,
69
35
  };
70
36
  export async function init(options) {
71
37
  console.log('🚀 Initializing DocWorks...\n');
@@ -75,11 +41,11 @@ export async function init(options) {
75
41
  process.exit(1);
76
42
  }
77
43
  // Select template
78
- const templateName = options.platform || options.template || 'default';
44
+ const templateName = options.template || 'simple';
79
45
  const template = TEMPLATES[templateName];
80
46
  if (!template) {
81
47
  console.error(`Unknown template: ${templateName}`);
82
- console.log('Available: default, mintlify, readme, gitbook, local');
48
+ console.log('Available: simple, journeys');
83
49
  process.exit(1);
84
50
  }
85
51
  // Write config
@@ -88,9 +54,11 @@ export async function init(options) {
88
54
  // Next steps
89
55
  console.log('Next steps:');
90
56
  console.log('1. Update the source URL to your documentation');
91
- console.log('2. Customize the journeys for your needs');
57
+ console.log('2. Customize the questions for your needs');
92
58
  console.log('3. Set your API key:');
93
59
  console.log(' export OPENAI_API_KEY=sk-...');
60
+ console.log(' # or for Anthropic:');
61
+ console.log(' export ANTHROPIC_API_KEY=sk-ant-...');
94
62
  console.log('4. Run validation:');
95
63
  console.log(' docworks check');
96
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE;;;;;;;;;;;;;;;;mBAgBQ;IAEjB,QAAQ,EAAE;;;;;;;;;;;;;;;mBAeO;IAEjB,MAAM,EAAE;;;;;;;;;;mBAUS;IAEjB,OAAO,EAAE;;;;;;;;;;mBAUQ;IAEjB,KAAK,EAAE;;;;;;;;;;mBAUU;CAClB,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAG1B;IACC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAE5C,wBAAwB;IACxB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,kBAAkB;IAClB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAA;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAsC,CAAC,CAAA;IAElE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,eAAe;IACf,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IAEvC,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;;;;;;;;;;;;;8BAaoB;IAE5B,QAAQ,EAAE;;;;;;;;;;;;;;;;;8BAiBkB;CAC7B,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAA8B;IACvD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAE5C,wBAAwB;IACxB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,kBAAkB;IAClB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAA;IACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAsC,CAAC,CAAA;IAElE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,eAAe;IACf,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IAEvC,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ValidationResult, JourneyResults } from '../types/config.js';
2
- export declare function validateJourneys(journeys: Record<string, string[]>, docs: string, apiKey: string, useCache?: boolean): Promise<JourneyResults>;
3
- export declare function validateQuestions(questions: string[], docs: string, apiKey: string, useCache?: boolean): Promise<ValidationResult[]>;
1
+ import { ValidationResult, JourneyResults, DocWorksConfig } from '../types/config.js';
2
+ export declare function validateJourneys(journeys: Record<string, string[]>, docs: string, apiKey: string, config?: DocWorksConfig): Promise<JourneyResults>;
3
+ export declare function validateQuestions(questions: string[], docs: string, apiKey: string, config?: DocWorksConfig): Promise<ValidationResult[]>;
4
4
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIrE,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,UAAO,GACd,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,UAAO,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4C7B"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACf,MAAM,oBAAoB,CAAA;AAG3B,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA+B7B"}
@@ -1,38 +1,19 @@
1
- import crypto from 'crypto';
2
- import { checkAnswerability } from './ai.js';
3
- import { getCached, setCached } from './cache.js';
4
- export async function validateJourneys(journeys, docs, apiKey, useCache = true) {
1
+ import { callProvider } from '../providers/index.js';
2
+ export async function validateJourneys(journeys, docs, apiKey, config) {
5
3
  const results = {};
6
4
  for (const [journey, questions] of Object.entries(journeys)) {
7
- results[journey] = await validateQuestions(questions, docs, apiKey, useCache);
5
+ results[journey] = await validateQuestions(questions, docs, apiKey, config);
8
6
  }
9
7
  return results;
10
8
  }
11
- export async function validateQuestions(questions, docs, apiKey, useCache = true) {
9
+ export async function validateQuestions(questions, docs, apiKey, config) {
12
10
  const results = [];
11
+ const provider = config?.provider || 'openai';
12
+ const model = config?.model || 'gpt-4o-mini';
13
13
  for (const question of questions) {
14
- // Generate cache key
15
- const cacheKey = crypto
16
- .createHash('md5')
17
- .update(question + docs.substring(0, 1000)) // Use first 1KB for cache key
18
- .digest('hex');
19
- let result = null;
20
- // Try cache first
21
- if (useCache) {
22
- result = getCached(cacheKey);
23
- }
24
- // If not cached, check with AI
25
- if (!result) {
26
- const validation = await checkAnswerability(question, docs, apiKey);
27
- result = {
28
- question,
29
- ...validation,
30
- };
31
- // Cache the result
32
- if (useCache) {
33
- setCached(cacheKey, result);
34
- }
35
- }
14
+ // Check with AI
15
+ const validation = await callProvider(provider, model, apiKey, question, docs);
16
+ const result = validation;
36
17
  results.push(result);
37
18
  // Show progress
38
19
  const icon = result.answerable === 'YES'
@@ -40,7 +21,7 @@ export async function validateQuestions(questions, docs, apiKey, useCache = true
40
21
  : result.answerable === 'PARTIAL'
41
22
  ? '⚠️'
42
23
  : '❌';
43
- console.log(` ${icon} ${question}`);
24
+ console.log(` ${icon} ${question} (${Math.round(result.confidence * 100)}%)`);
44
25
  }
45
26
  return results;
46
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAkC,EAClC,IAAY,EACZ,MAAc,EACd,QAAQ,GAAG,IAAI;IAEf,MAAM,OAAO,GAAmB,EAAE,CAAA;IAElC,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,iBAAiB,CACxC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,CACT,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAmB,EACnB,IAAY,EACZ,MAAc,EACd,QAAQ,GAAG,IAAI;IAEf,MAAM,OAAO,GAAuB,EAAE,CAAA;IAEtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM;aACpB,UAAU,CAAC,KAAK,CAAC;aACjB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,8BAA8B;aACzE,MAAM,CAAC,KAAK,CAAC,CAAA;QAEhB,IAAI,MAAM,GAA4B,IAAI,CAAA;QAE1C,kBAAkB;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACnE,MAAM,GAAG;gBACP,QAAQ;gBACR,GAAG,UAAU;aACd,CAAA;YAED,mBAAmB;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpB,gBAAgB;QAChB,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,KAAK,KAAK;YACzB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,GAAG,CAAA;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAkC,EAClC,IAAY,EACZ,MAAc,EACd,MAAuB;IAEvB,MAAM,OAAO,GAAmB,EAAE,CAAA;IAElC,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7E,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAmB,EACnB,IAAY,EACZ,MAAc,EACd,MAAuB;IAEvB,MAAM,OAAO,GAAuB,EAAE,CAAA;IACtC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,aAAa,CAAA;IAE5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,gBAAgB;QAChB,MAAM,UAAU,GAAG,MAAM,YAAY,CACnC,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CAAA;QACD,MAAM,MAAM,GAAG,UAAU,CAAA;QAEzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpB,gBAAgB;QAChB,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,KAAK,KAAK;YACzB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,GAAG,CAAA;QACX,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAClE,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { Command } from 'commander';
3
3
  import { init } from './commands/init.js';
4
4
  import { check } from './commands/check.js';
5
- import { test } from './commands/test.js';
6
5
  const program = new Command();
7
6
  program
8
7
  .name('docworks')
@@ -11,21 +10,16 @@ program
11
10
  program
12
11
  .command('init')
13
12
  .description('Initialize DocWorks configuration')
14
- .option('-p, --platform <platform>', 'Platform: mintlify, readme, gitbook, local')
13
+ .option('-t, --template <type>', 'Template: simple or journeys', 'simple')
15
14
  .action(init);
16
15
  program
17
16
  .command('check')
18
- .description('Validate documentation completeness')
17
+ .description('Validate documentation')
19
18
  .option('-c, --config <path>', 'Config file', 'docworks.yml')
20
19
  .option('-j, --journey <name>', 'Check specific journey')
21
- .option('--no-cache', 'Disable caching')
22
- .option('-f, --format <type>', 'Output: terminal, json, github', 'terminal')
20
+ .option('-f, --format <type>', 'Output: json or terminal', 'terminal')
21
+ .option('--provider <name>', 'Override provider')
22
+ .option('--model <name>', 'Override model')
23
23
  .action(check);
24
- program
25
- .command('test')
26
- .description('Test if AI can complete tasks using your docs')
27
- .option('-c, --config <path>', 'Config file', 'docworks.yml')
28
- .option('--ai <task>', 'Task for AI to complete')
29
- .action(test);
30
24
  program.parse();
31
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CACL,2BAA2B,EAC3B,4CAA4C,CAC7C;KACA,MAAM,CAAC,IAAI,CAAC,CAAA;AAEf,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAAC;KAC5D,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;KACvC,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,UAAU,CAAC;KAC3E,MAAM,CAAC,KAAK,CAAC,CAAA;AAEhB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAAC;KAC5D,MAAM,CAAC,aAAa,EAAE,yBAAyB,CAAC;KAChD,MAAM,CAAC,IAAI,CAAC,CAAA;AAEf,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,uBAAuB,EAAE,8BAA8B,EAAE,QAAQ,CAAC;KACzE,MAAM,CAAC,IAAI,CAAC,CAAA;AAEf,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAAC;KAC5D,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,UAAU,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;KAC1C,MAAM,CAAC,KAAK,CAAC,CAAA;AAEhB,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ValidationResult } from '../types/config.js';
2
+ export declare function callProvider(provider: string, model: string, apiKey: string, question: string, docs: string): Promise<ValidationResult>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAoCrD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAgE3B"}