yuno-proofreader 0.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +435 -0
- data/exe/yuno-proofreader +16 -0
- data/lib/yuno/proofreader/analysis/adjustments.rb +45 -0
- data/lib/yuno/proofreader/analysis/crawler.rb +95 -0
- data/lib/yuno/proofreader/analysis/entries.rb +73 -0
- data/lib/yuno/proofreader/analysis/extractor.rb +209 -0
- data/lib/yuno/proofreader/analysis/graph.rb +115 -0
- data/lib/yuno/proofreader/analysis/judge.rb +103 -0
- data/lib/yuno/proofreader/analysis/judge.yml +27 -0
- data/lib/yuno/proofreader/analysis/judge_prompt.rb +72 -0
- data/lib/yuno/proofreader/analysis/judgments.rb +70 -0
- data/lib/yuno/proofreader/analysis/links.rb +54 -0
- data/lib/yuno/proofreader/analysis/list_order.rb +33 -0
- data/lib/yuno/proofreader/analysis/reasons.rb +49 -0
- data/lib/yuno/proofreader/analysis/report.rb +110 -0
- data/lib/yuno/proofreader/analysis/runner.rb +171 -0
- data/lib/yuno/proofreader/analysis/scorer.rb +128 -0
- data/lib/yuno/proofreader/analysis/settings.rb +90 -0
- data/lib/yuno/proofreader/analysis/signals.rb +102 -0
- data/lib/yuno/proofreader/analysis/structured_data.rb +57 -0
- data/lib/yuno/proofreader/analysis/url_tree.rb +49 -0
- data/lib/yuno/proofreader/analysis/weights.rb +77 -0
- data/lib/yuno/proofreader/analysis/weights.yml +39 -0
- data/lib/yuno/proofreader/audit/agenda.rb +86 -0
- data/lib/yuno/proofreader/audit/agenda_report.rb +65 -0
- data/lib/yuno/proofreader/audit/answers.rb +74 -0
- data/lib/yuno/proofreader/audit/attempt.rb +69 -0
- data/lib/yuno/proofreader/audit/batch.rb +64 -0
- data/lib/yuno/proofreader/audit/batch_report.rb +87 -0
- data/lib/yuno/proofreader/audit/cadence.rb +67 -0
- data/lib/yuno/proofreader/audit/instructions.rb +30 -0
- data/lib/yuno/proofreader/audit/log_fields.rb +28 -0
- data/lib/yuno/proofreader/audit/prompt.rb +157 -0
- data/lib/yuno/proofreader/audit/prompts/instructions.yml +46 -0
- data/lib/yuno/proofreader/audit/prompts/steps.yml +67 -0
- data/lib/yuno/proofreader/audit/report.rb +153 -0
- data/lib/yuno/proofreader/audit/runner.rb +144 -0
- data/lib/yuno/proofreader/audit/steps.rb +56 -0
- data/lib/yuno/proofreader/cli/analysis_commands.rb +43 -0
- data/lib/yuno/proofreader/cli/audit_commands.rb +92 -0
- data/lib/yuno/proofreader/cli/command_log.rb +42 -0
- data/lib/yuno/proofreader/cli/flags.rb +48 -0
- data/lib/yuno/proofreader/cli/init_command.rb +116 -0
- data/lib/yuno/proofreader/cli/model_commands.rb +34 -0
- data/lib/yuno/proofreader/cli/queue_commands.rb +89 -0
- data/lib/yuno/proofreader/cli/sheet_commands.rb +57 -0
- data/lib/yuno/proofreader/cli.rb +218 -0
- data/lib/yuno/proofreader/config.rb +25 -0
- data/lib/yuno/proofreader/context.rb +55 -0
- data/lib/yuno/proofreader/env_file.rb +76 -0
- data/lib/yuno/proofreader/errors.rb +17 -0
- data/lib/yuno/proofreader/findings/finding.rb +95 -0
- data/lib/yuno/proofreader/findings/matching.rb +34 -0
- data/lib/yuno/proofreader/findings/merger.rb +43 -0
- data/lib/yuno/proofreader/findings/outline.rb +73 -0
- data/lib/yuno/proofreader/findings/plan.rb +24 -0
- data/lib/yuno/proofreader/findings/reconciler.rb +219 -0
- data/lib/yuno/proofreader/findings/source.rb +79 -0
- data/lib/yuno/proofreader/findings/text.rb +37 -0
- data/lib/yuno/proofreader/http/client.rb +131 -0
- data/lib/yuno/proofreader/http/net_http_transport.rb +55 -0
- data/lib/yuno/proofreader/http/robots.rb +72 -0
- data/lib/yuno/proofreader/init/ask.rb +67 -0
- data/lib/yuno/proofreader/init/detector.rb +100 -0
- data/lib/yuno/proofreader/init/interview.rb +210 -0
- data/lib/yuno/proofreader/init/parsing.rb +47 -0
- data/lib/yuno/proofreader/init/web.rb +33 -0
- data/lib/yuno/proofreader/llm/client.rb +140 -0
- data/lib/yuno/proofreader/llm/defaults.rb +22 -0
- data/lib/yuno/proofreader/llm/defaults.yml +6 -0
- data/lib/yuno/proofreader/llm/errors.rb +26 -0
- data/lib/yuno/proofreader/llm/factory.rb +45 -0
- data/lib/yuno/proofreader/llm/http_transport.rb +41 -0
- data/lib/yuno/proofreader/llm/json_text.rb +23 -0
- data/lib/yuno/proofreader/llm/model_commands.rb +34 -0
- data/lib/yuno/proofreader/llm/provider.rb +58 -0
- data/lib/yuno/proofreader/llm/providers/gemini.rb +146 -0
- data/lib/yuno/proofreader/llm/providers.rb +38 -0
- data/lib/yuno/proofreader/llm/types.rb +13 -0
- data/lib/yuno/proofreader/llm/usage.rb +17 -0
- data/lib/yuno/proofreader/log.rb +129 -0
- data/lib/yuno/proofreader/pages/fetcher.rb +75 -0
- data/lib/yuno/proofreader/pages/report.rb +45 -0
- data/lib/yuno/proofreader/pages/snapshot.rb +48 -0
- data/lib/yuno/proofreader/pages/trimmer.rb +36 -0
- data/lib/yuno/proofreader/settings_file.rb +51 -0
- data/lib/yuno/proofreader/site.rb +74 -0
- data/lib/yuno/proofreader/site_reader.rb +131 -0
- data/lib/yuno/proofreader/sitemap/aligner.rb +78 -0
- data/lib/yuno/proofreader/sitemap/importer.rb +31 -0
- data/lib/yuno/proofreader/sitemap/loader.rb +127 -0
- data/lib/yuno/proofreader/sitemap/mismatch.rb +76 -0
- data/lib/yuno/proofreader/sitemap/pairer.rb +223 -0
- data/lib/yuno/proofreader/sitemap/parser.rb +73 -0
- data/lib/yuno/proofreader/sitemap/report.rb +80 -0
- data/lib/yuno/proofreader/store/cells.rb +67 -0
- data/lib/yuno/proofreader/store/google_gateway.rb +198 -0
- data/lib/yuno/proofreader/store/memory.rb +90 -0
- data/lib/yuno/proofreader/store/records.rb +28 -0
- data/lib/yuno/proofreader/store/schema.rb +109 -0
- data/lib/yuno/proofreader/store/sheets.rb +183 -0
- data/lib/yuno/proofreader/store/tab_setup.rb +74 -0
- data/lib/yuno/proofreader/version.rb +7 -0
- data/lib/yuno/proofreader.rb +101 -0
- data/proofreader.example.yml +134 -0
- metadata +194 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "proofreader/version"
|
|
4
|
+
require_relative "proofreader/errors"
|
|
5
|
+
require_relative "proofreader/config"
|
|
6
|
+
require_relative "proofreader/log"
|
|
7
|
+
require_relative "proofreader/site"
|
|
8
|
+
require_relative "proofreader/env_file"
|
|
9
|
+
require_relative "proofreader/http/client"
|
|
10
|
+
require_relative "proofreader/http/robots"
|
|
11
|
+
require_relative "proofreader/sitemap/parser"
|
|
12
|
+
require_relative "proofreader/sitemap/aligner"
|
|
13
|
+
require_relative "proofreader/sitemap/mismatch"
|
|
14
|
+
require_relative "proofreader/sitemap/pairer"
|
|
15
|
+
require_relative "proofreader/sitemap/loader"
|
|
16
|
+
require_relative "proofreader/sitemap/report"
|
|
17
|
+
require_relative "proofreader/sitemap/importer"
|
|
18
|
+
require_relative "proofreader/pages/trimmer"
|
|
19
|
+
require_relative "proofreader/pages/snapshot"
|
|
20
|
+
require_relative "proofreader/pages/fetcher"
|
|
21
|
+
require_relative "proofreader/pages/report"
|
|
22
|
+
require_relative "proofreader/store/schema"
|
|
23
|
+
require_relative "proofreader/store/records"
|
|
24
|
+
require_relative "proofreader/store/cells"
|
|
25
|
+
require_relative "proofreader/store/memory"
|
|
26
|
+
require_relative "proofreader/store/sheets"
|
|
27
|
+
require_relative "proofreader/store/tab_setup"
|
|
28
|
+
require_relative "proofreader/context"
|
|
29
|
+
require_relative "proofreader/site_reader"
|
|
30
|
+
require_relative "proofreader/findings/text"
|
|
31
|
+
require_relative "proofreader/findings/finding"
|
|
32
|
+
require_relative "proofreader/findings/outline"
|
|
33
|
+
require_relative "proofreader/findings/source"
|
|
34
|
+
require_relative "proofreader/findings/matching"
|
|
35
|
+
require_relative "proofreader/findings/merger"
|
|
36
|
+
require_relative "proofreader/findings/plan"
|
|
37
|
+
require_relative "proofreader/findings/reconciler"
|
|
38
|
+
require_relative "proofreader/analysis/links"
|
|
39
|
+
require_relative "proofreader/analysis/structured_data"
|
|
40
|
+
require_relative "proofreader/analysis/extractor"
|
|
41
|
+
require_relative "proofreader/analysis/url_tree"
|
|
42
|
+
require_relative "proofreader/analysis/crawler"
|
|
43
|
+
require_relative "proofreader/analysis/settings"
|
|
44
|
+
require_relative "proofreader/analysis/list_order"
|
|
45
|
+
require_relative "proofreader/analysis/adjustments"
|
|
46
|
+
require_relative "proofreader/analysis/weights"
|
|
47
|
+
require_relative "proofreader/analysis/graph"
|
|
48
|
+
require_relative "proofreader/analysis/signals"
|
|
49
|
+
require_relative "proofreader/analysis/reasons"
|
|
50
|
+
require_relative "proofreader/analysis/entries"
|
|
51
|
+
require_relative "proofreader/analysis/judgments"
|
|
52
|
+
require_relative "proofreader/analysis/judge_prompt"
|
|
53
|
+
require_relative "proofreader/analysis/judge"
|
|
54
|
+
require_relative "proofreader/analysis/scorer"
|
|
55
|
+
require_relative "proofreader/analysis/runner"
|
|
56
|
+
require_relative "proofreader/analysis/report"
|
|
57
|
+
require_relative "proofreader/llm/errors"
|
|
58
|
+
require_relative "proofreader/llm/types"
|
|
59
|
+
require_relative "proofreader/llm/json_text"
|
|
60
|
+
require_relative "proofreader/llm/http_transport"
|
|
61
|
+
require_relative "proofreader/llm/provider"
|
|
62
|
+
require_relative "proofreader/llm/providers"
|
|
63
|
+
require_relative "proofreader/llm/providers/gemini"
|
|
64
|
+
require_relative "proofreader/llm/defaults"
|
|
65
|
+
require_relative "proofreader/llm/client"
|
|
66
|
+
require_relative "proofreader/llm/factory"
|
|
67
|
+
require_relative "proofreader/llm/usage"
|
|
68
|
+
require_relative "proofreader/audit/steps"
|
|
69
|
+
require_relative "proofreader/audit/instructions"
|
|
70
|
+
require_relative "proofreader/audit/prompt"
|
|
71
|
+
require_relative "proofreader/audit/answers"
|
|
72
|
+
require_relative "proofreader/audit/attempt"
|
|
73
|
+
require_relative "proofreader/audit/runner"
|
|
74
|
+
require_relative "proofreader/audit/report"
|
|
75
|
+
require_relative "proofreader/audit/log_fields"
|
|
76
|
+
require_relative "proofreader/audit/cadence"
|
|
77
|
+
require_relative "proofreader/audit/agenda"
|
|
78
|
+
require_relative "proofreader/audit/batch"
|
|
79
|
+
require_relative "proofreader/audit/agenda_report"
|
|
80
|
+
require_relative "proofreader/audit/batch_report"
|
|
81
|
+
require_relative "proofreader/cli/audit_commands"
|
|
82
|
+
require_relative "proofreader/cli/command_log"
|
|
83
|
+
require_relative "proofreader/cli/model_commands"
|
|
84
|
+
require_relative "proofreader/cli/sheet_commands"
|
|
85
|
+
require_relative "proofreader/cli/analysis_commands"
|
|
86
|
+
require_relative "proofreader/settings_file"
|
|
87
|
+
require_relative "proofreader/init/parsing"
|
|
88
|
+
require_relative "proofreader/init/detector"
|
|
89
|
+
require_relative "proofreader/init/ask"
|
|
90
|
+
require_relative "proofreader/init/web"
|
|
91
|
+
require_relative "proofreader/init/interview"
|
|
92
|
+
require_relative "proofreader/cli/flags"
|
|
93
|
+
require_relative "proofreader/cli/init_command"
|
|
94
|
+
require_relative "proofreader/cli/queue_commands"
|
|
95
|
+
require_relative "proofreader/cli"
|
|
96
|
+
|
|
97
|
+
module Yuno
|
|
98
|
+
# AI-powered website proofreader: reads a site, audits its pages and lists suggested fixes.
|
|
99
|
+
module Proofreader
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Copy this file to proofreader.yml and edit it. `yuno-proofreader settings` shows what is still to fill in.
|
|
2
|
+
|
|
3
|
+
# The address of the site, without a path.
|
|
4
|
+
website: https://example.com
|
|
5
|
+
|
|
6
|
+
# One entry per language. The first one is the default language: pages are named after its addresses,
|
|
7
|
+
# and default_language_only_paths refers to it.
|
|
8
|
+
#
|
|
9
|
+
# code The language code. Always put it in quotes: without them YAML reads a bare no (the code for
|
|
10
|
+
# Norwegian) as false.
|
|
11
|
+
# prefix What the web address of a page in this language starts with, after the domain:
|
|
12
|
+
# "" nothing, as in example.com/about
|
|
13
|
+
# "/en" as in example.com/en/about
|
|
14
|
+
# notes Optional. How this language should read, such as its regional variant or whether it addresses
|
|
15
|
+
# readers formally. It is sent to the AI model, see "About the site" below.
|
|
16
|
+
languages:
|
|
17
|
+
- code: "de" # German
|
|
18
|
+
prefix: ""
|
|
19
|
+
notes: "[FILL IN] The variant and form of address of this language, for example: formal address (Sie)."
|
|
20
|
+
- code: "es" # Spanish
|
|
21
|
+
prefix: "/es"
|
|
22
|
+
notes: "[FILL IN] For example: Latin American Spanish, formal address (usted)."
|
|
23
|
+
- code: "en" # English
|
|
24
|
+
prefix: "/en"
|
|
25
|
+
notes: "[FILL IN] For example: American English."
|
|
26
|
+
|
|
27
|
+
# A site where every language has a prefix, and English is the default:
|
|
28
|
+
# languages:
|
|
29
|
+
# - code: "en"
|
|
30
|
+
# prefix: "/en"
|
|
31
|
+
# - code: "de"
|
|
32
|
+
# prefix: "/de"
|
|
33
|
+
|
|
34
|
+
# Where your sitemap is. Leave this out and the tool looks in this order:
|
|
35
|
+
# 1. the Sitemap lines in https://example.com/robots.txt (every one of them is read)
|
|
36
|
+
# 2. https://example.com/sitemap.xml
|
|
37
|
+
# Set it if your sitemap lives somewhere else. It takes one address, and when it is set robots.txt is not read.
|
|
38
|
+
# sitemap_url: https://example.com/sitemap.xml
|
|
39
|
+
|
|
40
|
+
# Pages that exist only in the default language, written as they appear in the address.
|
|
41
|
+
# A path also covers everything below it.
|
|
42
|
+
# default_language_only_paths: ["/news"]
|
|
43
|
+
|
|
44
|
+
# Pages you do not want audited, in any language. A path also covers everything below it.
|
|
45
|
+
# skip_paths: ["/thank-you", "/es/gracias"]
|
|
46
|
+
|
|
47
|
+
# ---- About the site ----------------------------------------------------------------------------
|
|
48
|
+
# Everything below is sent to the AI model together with each page, so keep it short and free of secrets.
|
|
49
|
+
# Limits: 500 characters per text, 200 per entry of a list or note of a language, 50 entries per list.
|
|
50
|
+
#
|
|
51
|
+
# Every value here starts with [FILL IN]. The commands that send text to the model (audit, prompt, and
|
|
52
|
+
# analyze unless you pass --no-ai) refuse to run while that text is still there: replace the whole value
|
|
53
|
+
# with your own text, or delete the setting. Only business is required.
|
|
54
|
+
|
|
55
|
+
# What the site is and what it offers, in a sentence or two.
|
|
56
|
+
business: "[FILL IN] What the site is and what it offers, in a sentence or two."
|
|
57
|
+
|
|
58
|
+
# Who reads the site.
|
|
59
|
+
audience: "[FILL IN] Who reads the site (end user)."
|
|
60
|
+
|
|
61
|
+
# How the text should sound.
|
|
62
|
+
tone: "[FILL IN] How the text should sound (formal, informal, etc)."
|
|
63
|
+
|
|
64
|
+
# Writing rules, one per entry.
|
|
65
|
+
rules:
|
|
66
|
+
- "[FILL IN] One writing rule of your own, such as how prices or dates are written."
|
|
67
|
+
- "[FILL IN] Another writing rule, or delete this line."
|
|
68
|
+
|
|
69
|
+
# Words that are correct as written and must never be flagged, one per entry: your brand name,
|
|
70
|
+
# place names, product names, local words.
|
|
71
|
+
ignore_terms:
|
|
72
|
+
- "[FILL IN] One term that is correct as written, such as your brand name."
|
|
73
|
+
|
|
74
|
+
# Differences between language versions that are intended, one per entry.
|
|
75
|
+
intentional_differences:
|
|
76
|
+
- "[FILL IN] One difference between language versions that is intended, such as a section that exists in one language only."
|
|
77
|
+
|
|
78
|
+
# ---- The AI models ----------------------------------------------------------------------------
|
|
79
|
+
# Everything here is optional.
|
|
80
|
+
#
|
|
81
|
+
# provider Which family of models to use. Leave it out while only one is installed.
|
|
82
|
+
# models The models to use, best first. When one is overloaded, over its limit or not available to
|
|
83
|
+
# your key, the next one is used. The tool has a built-in list to fall back on, but model
|
|
84
|
+
# names change often, so set your own. `yuno-proofreader models` shows which ones your key
|
|
85
|
+
# can use. The names below are only examples.
|
|
86
|
+
# review_models Optional list for the independent second review, which prefers a different model from the
|
|
87
|
+
# first audit. Leave it out to use `models`. With only one model there is nothing for the
|
|
88
|
+
# review to be independent of.
|
|
89
|
+
#
|
|
90
|
+
# provider: gemini
|
|
91
|
+
# models:
|
|
92
|
+
# - gemini-3.8-flash
|
|
93
|
+
# - gemini-3.7-flash
|
|
94
|
+
# review_models:
|
|
95
|
+
# - gemini-3.6-flash
|
|
96
|
+
|
|
97
|
+
# ---- The analysis of the site (optional) -------------------------------------------------------
|
|
98
|
+
# Used by `yuno-proofreader analyze`, which ranks the pages of the site by importance. Everything here is
|
|
99
|
+
# optional. The values below are examples, not placeholders: if you remove the # signs without changing
|
|
100
|
+
# them, they are applied and sent to the model as they stand.
|
|
101
|
+
#
|
|
102
|
+
# importance_hint What the model should know about your business that it cannot tell from the pages,
|
|
103
|
+
# such as which offers matter most. It is sent to the AI model.
|
|
104
|
+
# priority_paths Points added to the importance of the pages at or below a path, from -50 to 50.
|
|
105
|
+
# The most specific path wins. Use negative points for pages that matter less.
|
|
106
|
+
# hubs Index pages to read even if nothing else leads to them. The tool already finds the
|
|
107
|
+
# pages that have other pages under them.
|
|
108
|
+
# hub_order editorial: the order of your lists says what matters most. neutral: it says nothing.
|
|
109
|
+
# auto (the default): editorial, unless a list is in alphabetical order.
|
|
110
|
+
# max_pages How many pages the analysis reads at most, from 1 to 500 (default 80).
|
|
111
|
+
#
|
|
112
|
+
# analysis:
|
|
113
|
+
# importance_hint: "What we sell ourselves matters more than the information pages."
|
|
114
|
+
# priority_paths:
|
|
115
|
+
# /products: 10
|
|
116
|
+
# /careers: -20
|
|
117
|
+
# hubs: ["/blog"]
|
|
118
|
+
# hub_order: auto
|
|
119
|
+
# max_pages: 80
|
|
120
|
+
|
|
121
|
+
# ---- How often pages are audited again (optional) ----------------------------------------------
|
|
122
|
+
# Used by `yuno-proofreader queue` and `audit --next`, which pick the pages that are due. The tool schedules
|
|
123
|
+
# nothing itself: run `audit --next` from cron, a Kubernetes CronJob or any other scheduler.
|
|
124
|
+
# The values below are the defaults, so removing the # signs without changing them changes nothing.
|
|
125
|
+
#
|
|
126
|
+
# intervals Days between audits for each tier of the analysis (1 is the most important). Tiers you
|
|
127
|
+
# leave out keep their default.
|
|
128
|
+
# retry_days Days before a page whose last audit was incomplete is tried again.
|
|
129
|
+
# default_tier The tier a page counts as until the analysis has ranked it.
|
|
130
|
+
#
|
|
131
|
+
# cadence:
|
|
132
|
+
# intervals: { 1: 30, 2: 60, 3: 120, 4: 240 }
|
|
133
|
+
# retry_days: 7
|
|
134
|
+
# default_tier: 3
|
metadata
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: yuno-proofreader
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Sebastian Alsen
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: google-apis-sheets_v4
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.49'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0.49'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: googleauth
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.17'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.17'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: nokogiri
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.19'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.19'
|
|
54
|
+
description: Reviews your public web pages with an AI model (Gemini so far) for typos,
|
|
55
|
+
grammar, HTML structure, SEO and differences between language versions, ranks your
|
|
56
|
+
pages by importance and lists the suggested fixes in a Google Sheet for you to review.
|
|
57
|
+
executables:
|
|
58
|
+
- yuno-proofreader
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- CHANGELOG.md
|
|
63
|
+
- LICENSE.txt
|
|
64
|
+
- README.md
|
|
65
|
+
- exe/yuno-proofreader
|
|
66
|
+
- lib/yuno/proofreader.rb
|
|
67
|
+
- lib/yuno/proofreader/analysis/adjustments.rb
|
|
68
|
+
- lib/yuno/proofreader/analysis/crawler.rb
|
|
69
|
+
- lib/yuno/proofreader/analysis/entries.rb
|
|
70
|
+
- lib/yuno/proofreader/analysis/extractor.rb
|
|
71
|
+
- lib/yuno/proofreader/analysis/graph.rb
|
|
72
|
+
- lib/yuno/proofreader/analysis/judge.rb
|
|
73
|
+
- lib/yuno/proofreader/analysis/judge.yml
|
|
74
|
+
- lib/yuno/proofreader/analysis/judge_prompt.rb
|
|
75
|
+
- lib/yuno/proofreader/analysis/judgments.rb
|
|
76
|
+
- lib/yuno/proofreader/analysis/links.rb
|
|
77
|
+
- lib/yuno/proofreader/analysis/list_order.rb
|
|
78
|
+
- lib/yuno/proofreader/analysis/reasons.rb
|
|
79
|
+
- lib/yuno/proofreader/analysis/report.rb
|
|
80
|
+
- lib/yuno/proofreader/analysis/runner.rb
|
|
81
|
+
- lib/yuno/proofreader/analysis/scorer.rb
|
|
82
|
+
- lib/yuno/proofreader/analysis/settings.rb
|
|
83
|
+
- lib/yuno/proofreader/analysis/signals.rb
|
|
84
|
+
- lib/yuno/proofreader/analysis/structured_data.rb
|
|
85
|
+
- lib/yuno/proofreader/analysis/url_tree.rb
|
|
86
|
+
- lib/yuno/proofreader/analysis/weights.rb
|
|
87
|
+
- lib/yuno/proofreader/analysis/weights.yml
|
|
88
|
+
- lib/yuno/proofreader/audit/agenda.rb
|
|
89
|
+
- lib/yuno/proofreader/audit/agenda_report.rb
|
|
90
|
+
- lib/yuno/proofreader/audit/answers.rb
|
|
91
|
+
- lib/yuno/proofreader/audit/attempt.rb
|
|
92
|
+
- lib/yuno/proofreader/audit/batch.rb
|
|
93
|
+
- lib/yuno/proofreader/audit/batch_report.rb
|
|
94
|
+
- lib/yuno/proofreader/audit/cadence.rb
|
|
95
|
+
- lib/yuno/proofreader/audit/instructions.rb
|
|
96
|
+
- lib/yuno/proofreader/audit/log_fields.rb
|
|
97
|
+
- lib/yuno/proofreader/audit/prompt.rb
|
|
98
|
+
- lib/yuno/proofreader/audit/prompts/instructions.yml
|
|
99
|
+
- lib/yuno/proofreader/audit/prompts/steps.yml
|
|
100
|
+
- lib/yuno/proofreader/audit/report.rb
|
|
101
|
+
- lib/yuno/proofreader/audit/runner.rb
|
|
102
|
+
- lib/yuno/proofreader/audit/steps.rb
|
|
103
|
+
- lib/yuno/proofreader/cli.rb
|
|
104
|
+
- lib/yuno/proofreader/cli/analysis_commands.rb
|
|
105
|
+
- lib/yuno/proofreader/cli/audit_commands.rb
|
|
106
|
+
- lib/yuno/proofreader/cli/command_log.rb
|
|
107
|
+
- lib/yuno/proofreader/cli/flags.rb
|
|
108
|
+
- lib/yuno/proofreader/cli/init_command.rb
|
|
109
|
+
- lib/yuno/proofreader/cli/model_commands.rb
|
|
110
|
+
- lib/yuno/proofreader/cli/queue_commands.rb
|
|
111
|
+
- lib/yuno/proofreader/cli/sheet_commands.rb
|
|
112
|
+
- lib/yuno/proofreader/config.rb
|
|
113
|
+
- lib/yuno/proofreader/context.rb
|
|
114
|
+
- lib/yuno/proofreader/env_file.rb
|
|
115
|
+
- lib/yuno/proofreader/errors.rb
|
|
116
|
+
- lib/yuno/proofreader/findings/finding.rb
|
|
117
|
+
- lib/yuno/proofreader/findings/matching.rb
|
|
118
|
+
- lib/yuno/proofreader/findings/merger.rb
|
|
119
|
+
- lib/yuno/proofreader/findings/outline.rb
|
|
120
|
+
- lib/yuno/proofreader/findings/plan.rb
|
|
121
|
+
- lib/yuno/proofreader/findings/reconciler.rb
|
|
122
|
+
- lib/yuno/proofreader/findings/source.rb
|
|
123
|
+
- lib/yuno/proofreader/findings/text.rb
|
|
124
|
+
- lib/yuno/proofreader/http/client.rb
|
|
125
|
+
- lib/yuno/proofreader/http/net_http_transport.rb
|
|
126
|
+
- lib/yuno/proofreader/http/robots.rb
|
|
127
|
+
- lib/yuno/proofreader/init/ask.rb
|
|
128
|
+
- lib/yuno/proofreader/init/detector.rb
|
|
129
|
+
- lib/yuno/proofreader/init/interview.rb
|
|
130
|
+
- lib/yuno/proofreader/init/parsing.rb
|
|
131
|
+
- lib/yuno/proofreader/init/web.rb
|
|
132
|
+
- lib/yuno/proofreader/llm/client.rb
|
|
133
|
+
- lib/yuno/proofreader/llm/defaults.rb
|
|
134
|
+
- lib/yuno/proofreader/llm/defaults.yml
|
|
135
|
+
- lib/yuno/proofreader/llm/errors.rb
|
|
136
|
+
- lib/yuno/proofreader/llm/factory.rb
|
|
137
|
+
- lib/yuno/proofreader/llm/http_transport.rb
|
|
138
|
+
- lib/yuno/proofreader/llm/json_text.rb
|
|
139
|
+
- lib/yuno/proofreader/llm/model_commands.rb
|
|
140
|
+
- lib/yuno/proofreader/llm/provider.rb
|
|
141
|
+
- lib/yuno/proofreader/llm/providers.rb
|
|
142
|
+
- lib/yuno/proofreader/llm/providers/gemini.rb
|
|
143
|
+
- lib/yuno/proofreader/llm/types.rb
|
|
144
|
+
- lib/yuno/proofreader/llm/usage.rb
|
|
145
|
+
- lib/yuno/proofreader/log.rb
|
|
146
|
+
- lib/yuno/proofreader/pages/fetcher.rb
|
|
147
|
+
- lib/yuno/proofreader/pages/report.rb
|
|
148
|
+
- lib/yuno/proofreader/pages/snapshot.rb
|
|
149
|
+
- lib/yuno/proofreader/pages/trimmer.rb
|
|
150
|
+
- lib/yuno/proofreader/settings_file.rb
|
|
151
|
+
- lib/yuno/proofreader/site.rb
|
|
152
|
+
- lib/yuno/proofreader/site_reader.rb
|
|
153
|
+
- lib/yuno/proofreader/sitemap/aligner.rb
|
|
154
|
+
- lib/yuno/proofreader/sitemap/importer.rb
|
|
155
|
+
- lib/yuno/proofreader/sitemap/loader.rb
|
|
156
|
+
- lib/yuno/proofreader/sitemap/mismatch.rb
|
|
157
|
+
- lib/yuno/proofreader/sitemap/pairer.rb
|
|
158
|
+
- lib/yuno/proofreader/sitemap/parser.rb
|
|
159
|
+
- lib/yuno/proofreader/sitemap/report.rb
|
|
160
|
+
- lib/yuno/proofreader/store/cells.rb
|
|
161
|
+
- lib/yuno/proofreader/store/google_gateway.rb
|
|
162
|
+
- lib/yuno/proofreader/store/memory.rb
|
|
163
|
+
- lib/yuno/proofreader/store/records.rb
|
|
164
|
+
- lib/yuno/proofreader/store/schema.rb
|
|
165
|
+
- lib/yuno/proofreader/store/sheets.rb
|
|
166
|
+
- lib/yuno/proofreader/store/tab_setup.rb
|
|
167
|
+
- lib/yuno/proofreader/version.rb
|
|
168
|
+
- proofreader.example.yml
|
|
169
|
+
homepage: https://gitlab.com/alsen-ca/yuno-proofreader
|
|
170
|
+
licenses:
|
|
171
|
+
- MIT
|
|
172
|
+
metadata:
|
|
173
|
+
source_code_uri: https://gitlab.com/alsen-ca/yuno-proofreader
|
|
174
|
+
bug_tracker_uri: https://gitlab.com/alsen-ca/yuno-proofreader/-/issues
|
|
175
|
+
changelog_uri: https://gitlab.com/alsen-ca/yuno-proofreader/-/blob/main/CHANGELOG.md
|
|
176
|
+
rubygems_mfa_required: 'true'
|
|
177
|
+
rdoc_options: []
|
|
178
|
+
require_paths:
|
|
179
|
+
- lib
|
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
181
|
+
requirements:
|
|
182
|
+
- - ">="
|
|
183
|
+
- !ruby/object:Gem::Version
|
|
184
|
+
version: '4.0'
|
|
185
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
|
+
requirements:
|
|
187
|
+
- - ">="
|
|
188
|
+
- !ruby/object:Gem::Version
|
|
189
|
+
version: '0'
|
|
190
|
+
requirements: []
|
|
191
|
+
rubygems_version: 4.0.20
|
|
192
|
+
specification_version: 4
|
|
193
|
+
summary: AI-powered website proofreader that collects its suggestions in Google Sheets.
|
|
194
|
+
test_files: []
|