@jcode.labs/ragmir 4.2.1 → 5.0.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 (197) hide show
  1. package/README.md +67 -160
  2. package/dist/chunking.d.ts +1 -1
  3. package/dist/chunking.d.ts.map +1 -1
  4. package/dist/chunking.js +17 -1
  5. package/dist/chunking.js.map +1 -1
  6. package/dist/cli-entry.js +1 -1
  7. package/dist/cli-entry.js.map +1 -1
  8. package/dist/cli-fast.d.ts +1 -3
  9. package/dist/cli-fast.d.ts.map +1 -1
  10. package/dist/cli-fast.js +2 -104
  11. package/dist/cli-fast.js.map +1 -1
  12. package/dist/cli-options.d.ts +0 -37
  13. package/dist/cli-options.d.ts.map +1 -1
  14. package/dist/cli-options.js +0 -53
  15. package/dist/cli-options.js.map +1 -1
  16. package/dist/cli.js +9 -701
  17. package/dist/cli.js.map +1 -1
  18. package/dist/client.d.ts +1 -3
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +7 -36
  21. package/dist/client.js.map +1 -1
  22. package/dist/config-migration.d.ts +6 -0
  23. package/dist/config-migration.d.ts.map +1 -0
  24. package/dist/config-migration.js +31 -0
  25. package/dist/config-migration.js.map +1 -0
  26. package/dist/config.d.ts +2 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +17 -65
  29. package/dist/config.js.map +1 -1
  30. package/dist/context-resources.d.ts.map +1 -1
  31. package/dist/context-resources.js +2 -14
  32. package/dist/context-resources.js.map +1 -1
  33. package/dist/defaults.d.ts +0 -3
  34. package/dist/defaults.d.ts.map +1 -1
  35. package/dist/defaults.js +0 -13
  36. package/dist/defaults.js.map +1 -1
  37. package/dist/destroy.d.ts.map +1 -1
  38. package/dist/destroy.js +0 -2
  39. package/dist/destroy.js.map +1 -1
  40. package/dist/doctor.d.ts.map +1 -1
  41. package/dist/doctor.js +1 -9
  42. package/dist/doctor.js.map +1 -1
  43. package/dist/document-structure.js.map +1 -1
  44. package/dist/embeddings.d.ts.map +1 -1
  45. package/dist/embeddings.js +9 -1
  46. package/dist/embeddings.js.map +1 -1
  47. package/dist/errors.d.ts +1 -1
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js.map +1 -1
  50. package/dist/evaluate.d.ts.map +1 -1
  51. package/dist/evaluate.js +0 -7
  52. package/dist/evaluate.js.map +1 -1
  53. package/dist/files.js.map +1 -1
  54. package/dist/generation-retention.js.map +1 -1
  55. package/dist/gitignore.js.map +1 -1
  56. package/dist/index-diagnostics.js +1 -1
  57. package/dist/index-diagnostics.js.map +1 -1
  58. package/dist/index-policy.d.ts.map +1 -1
  59. package/dist/index-policy.js +3 -4
  60. package/dist/index-policy.js.map +1 -1
  61. package/dist/index-write-lock.js.map +1 -1
  62. package/dist/index.d.ts +4 -15
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -8
  65. package/dist/index.js.map +1 -1
  66. package/dist/ingest.d.ts.map +1 -1
  67. package/dist/ingest.js +3 -18
  68. package/dist/ingest.js.map +1 -1
  69. package/dist/ingestion-metrics.d.ts +1 -1
  70. package/dist/ingestion-metrics.d.ts.map +1 -1
  71. package/dist/ingestion-metrics.js +0 -1
  72. package/dist/ingestion-metrics.js.map +1 -1
  73. package/dist/ingestion-state.d.ts +1 -2
  74. package/dist/ingestion-state.d.ts.map +1 -1
  75. package/dist/ingestion-state.js +0 -2
  76. package/dist/ingestion-state.js.map +1 -1
  77. package/dist/lexical-scoring.d.ts +13 -0
  78. package/dist/lexical-scoring.d.ts.map +1 -0
  79. package/dist/lexical-scoring.js +35 -0
  80. package/dist/lexical-scoring.js.map +1 -0
  81. package/dist/mcp-output.d.ts +4 -31
  82. package/dist/mcp-output.d.ts.map +1 -1
  83. package/dist/mcp-output.js +4 -123
  84. package/dist/mcp-output.js.map +1 -1
  85. package/dist/mcp-summaries.d.ts +1 -12
  86. package/dist/mcp-summaries.d.ts.map +1 -1
  87. package/dist/mcp-summaries.js +0 -112
  88. package/dist/mcp-summaries.js.map +1 -1
  89. package/dist/mcp.d.ts +1 -5
  90. package/dist/mcp.d.ts.map +1 -1
  91. package/dist/mcp.js +22 -329
  92. package/dist/mcp.js.map +1 -1
  93. package/dist/ocr.d.ts +0 -1
  94. package/dist/ocr.d.ts.map +1 -1
  95. package/dist/ocr.js +0 -4
  96. package/dist/ocr.js.map +1 -1
  97. package/dist/parsing.js +13 -0
  98. package/dist/parsing.js.map +1 -1
  99. package/dist/preview.d.ts.map +1 -1
  100. package/dist/preview.js +2 -5
  101. package/dist/preview.js.map +1 -1
  102. package/dist/query-sanitizer.d.ts +2 -1
  103. package/dist/query-sanitizer.d.ts.map +1 -1
  104. package/dist/query-sanitizer.js +9 -127
  105. package/dist/query-sanitizer.js.map +1 -1
  106. package/dist/query.d.ts +1 -3
  107. package/dist/query.d.ts.map +1 -1
  108. package/dist/query.js +95 -71
  109. package/dist/query.js.map +1 -1
  110. package/dist/ranking.d.ts +1 -1
  111. package/dist/ranking.d.ts.map +1 -1
  112. package/dist/ranking.js +52 -41
  113. package/dist/ranking.js.map +1 -1
  114. package/dist/runtime-info.js.map +1 -1
  115. package/dist/search-output.d.ts +3 -0
  116. package/dist/search-output.d.ts.map +1 -0
  117. package/dist/search-output.js +26 -0
  118. package/dist/search-output.js.map +1 -0
  119. package/dist/security.d.ts.map +1 -1
  120. package/dist/security.js +5 -37
  121. package/dist/security.js.map +1 -1
  122. package/dist/setup-prompt.d.ts +1 -1
  123. package/dist/setup-prompt.d.ts.map +1 -1
  124. package/dist/setup-prompt.js +22 -25
  125. package/dist/setup-prompt.js.map +1 -1
  126. package/dist/setup.js +1 -1
  127. package/dist/setup.js.map +1 -1
  128. package/dist/skill.d.ts +1 -4
  129. package/dist/skill.d.ts.map +1 -1
  130. package/dist/skill.js +3 -71
  131. package/dist/skill.js.map +1 -1
  132. package/dist/storage-maintenance.js.map +1 -1
  133. package/dist/store.js +9 -1
  134. package/dist/store.js.map +1 -1
  135. package/dist/types.d.ts +19 -156
  136. package/dist/types.d.ts.map +1 -1
  137. package/dist/upgrade.d.ts +3 -2
  138. package/dist/upgrade.d.ts.map +1 -1
  139. package/dist/upgrade.js +20 -2
  140. package/dist/upgrade.js.map +1 -1
  141. package/dist/vector-index.js.map +1 -1
  142. package/dist/version.d.ts +1 -1
  143. package/dist/version.js +1 -1
  144. package/dist/workload.js.map +1 -1
  145. package/examples/document-evidence-benchmark/.ragmir/config.json +0 -9
  146. package/examples/document-evidence-benchmark/README.md +5 -3
  147. package/examples/document-evidence-benchmark/raw/rfp/security-questionnaire.md +1 -1
  148. package/examples/library-api-demo/README.md +17 -8
  149. package/examples/library-api-demo/run.mjs +6 -6
  150. package/examples/sovereign-rag-demo/.ragmir/config.json +3 -10
  151. package/examples/sovereign-rag-demo/README.md +21 -12
  152. package/package.json +21 -30
  153. package/skills/ragmir/SKILL.md +67 -199
  154. package/dist/access-log.d.ts +0 -30
  155. package/dist/access-log.d.ts.map +0 -1
  156. package/dist/access-log.js +0 -415
  157. package/dist/access-log.js.map +0 -1
  158. package/dist/cli-stdin.d.ts +0 -3
  159. package/dist/cli-stdin.d.ts.map +0 -1
  160. package/dist/cli-stdin.js +0 -15
  161. package/dist/cli-stdin.js.map +0 -1
  162. package/dist/portable-entry.d.ts +0 -5
  163. package/dist/portable-entry.d.ts.map +0 -1
  164. package/dist/portable-entry.js +0 -337
  165. package/dist/portable-entry.js.map +0 -1
  166. package/dist/portable.d.ts +0 -89
  167. package/dist/portable.d.ts.map +0 -1
  168. package/dist/portable.js +0 -1290
  169. package/dist/portable.js.map +0 -1
  170. package/dist/prompt-routing.d.ts +0 -12
  171. package/dist/prompt-routing.d.ts.map +0 -1
  172. package/dist/prompt-routing.js +0 -150
  173. package/dist/prompt-routing.js.map +0 -1
  174. package/dist/redaction.d.ts +0 -12
  175. package/dist/redaction.d.ts.map +0 -1
  176. package/dist/redaction.js +0 -253
  177. package/dist/redaction.js.map +0 -1
  178. package/dist/research.d.ts +0 -21
  179. package/dist/research.d.ts.map +0 -1
  180. package/dist/research.js +0 -667
  181. package/dist/research.js.map +0 -1
  182. package/dist/team-diagnostics.d.ts +0 -119
  183. package/dist/team-diagnostics.d.ts.map +0 -1
  184. package/dist/team-diagnostics.js +0 -515
  185. package/dist/team-diagnostics.js.map +0 -1
  186. package/dist/team-sync.d.ts +0 -49
  187. package/dist/team-sync.d.ts.map +0 -1
  188. package/dist/team-sync.js +0 -436
  189. package/dist/team-sync.js.map +0 -1
  190. package/skills/ragmir-audio-summary/SKILL.md +0 -80
  191. package/skills/ragmir-audio-summary/forge-voice.sh +0 -150
  192. package/skills/ragmir-audio-summary/listening-style.md +0 -92
  193. package/skills/ragmir-audio-summary/narration-templates.md +0 -162
  194. package/skills/ragmir-audio-summary/split-lines.py +0 -14
  195. package/skills/ragmir-audio-summary/xtts-voice.py +0 -46
  196. package/skills/ragmir-legal-dossier/SKILL.md +0 -143
  197. package/skills/ragmir-markdown-report/SKILL.md +0 -110
package/dist/team-sync.js DELETED
@@ -1,436 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import path from "node:path";
3
- import { doctor } from "./doctor.js";
4
- import { ingest } from "./ingest.js";
5
- import { throwIfAborted } from "./operation.js";
6
- const DEFAULT_GIT_TIMEOUT_MS = 30_000;
7
- const MAX_GIT_TIMEOUT_MS = 300_000;
8
- const MAX_GIT_OUTPUT_BYTES = 1_048_576;
9
- const BRANCH_TRACKING_FORMAT = "%(refname:short)%00%(upstream)%00%(upstream:short)%00%(upstream:remotename)%00%(upstream:remoteref)";
10
- export async function syncTeamKnowledge(options = {}) {
11
- const cwd = path.resolve(options.cwd ?? process.cwd());
12
- const initialDoctor = await doctorWithSignal(cwd, options.signal);
13
- const projectRoot = initialDoctor.projectRoot;
14
- const autoPull = options.autoPull !== false;
15
- const fetch = options.fetch !== false;
16
- const check = options.check === true;
17
- const gitTimeoutMs = validateGitTimeout(options.gitTimeoutMs ?? DEFAULT_GIT_TIMEOUT_MS);
18
- if (!initialDoctor.initialized) {
19
- const git = emptyGitReport("inspection-failed", autoPull);
20
- const index = indexReport(initialDoctor, false);
21
- return assembleReport(git, index, ["Ragmir is not initialized in this project."], ["Run `rgr setup`, then run `rgr team sync` again."]);
22
- }
23
- const gitOptions = {
24
- autoPull: autoPull && !check,
25
- fetch,
26
- gitTimeoutMs,
27
- };
28
- if (options.signal) {
29
- gitOptions.signal = options.signal;
30
- }
31
- const git = await synchronizeGit(projectRoot, gitOptions);
32
- const index = check
33
- ? indexReport(initialDoctor, false)
34
- : await refreshIndex(projectRoot, initialDoctor, options.signal);
35
- const warnings = gitWarnings(git, check);
36
- const actions = buildRecommendedActions(git, index, check);
37
- return assembleReport(git, index, warnings, actions);
38
- }
39
- async function synchronizeGit(cwd, options) {
40
- const rootResult = await runGit(cwd, ["rev-parse", "--show-toplevel"], options);
41
- throwIfAborted(options.signal);
42
- if (rootResult.unavailable || rootResult.code !== 0) {
43
- return emptyGitReport("not-repository", options.autoPull);
44
- }
45
- const root = path.resolve(rootResult.stdout.trim());
46
- const branchResult = await runGit(root, ["symbolic-ref", "--quiet", "--short", "HEAD"], options);
47
- const head = await readRevision(root, "HEAD", options);
48
- if (branchResult.code !== 0 || !head) {
49
- return {
50
- ...emptyGitReport("detached", options.autoPull),
51
- available: true,
52
- root,
53
- head,
54
- };
55
- }
56
- const branch = branchResult.stdout.trim();
57
- const tracking = await readBranchTracking(root, branch, options);
58
- if (!tracking) {
59
- return {
60
- ...emptyGitReport("no-upstream", options.autoPull),
61
- available: true,
62
- root,
63
- branch,
64
- head,
65
- };
66
- }
67
- let fetched = false;
68
- let freshnessVerified = tracking.remote.length === 0 || tracking.remote === ".";
69
- if (options.fetch && tracking.remote.length > 0 && tracking.remote !== ".") {
70
- const fetchResult = await runGit(root, [
71
- "fetch",
72
- "--quiet",
73
- "--no-tags",
74
- "--show-forced-updates",
75
- "--",
76
- tracking.remote,
77
- `+${tracking.remoteRef}:${tracking.upstreamRef}`,
78
- ], options);
79
- throwIfAborted(options.signal);
80
- if (fetchResult.code !== 0) {
81
- return await gitReport("fetch-failed", root, tracking, head, false, false, options.autoPull, options);
82
- }
83
- fetched = true;
84
- freshnessVerified = true;
85
- }
86
- else if (!options.fetch && tracking.remote.length > 0 && tracking.remote !== ".") {
87
- return await gitReport("not-fetched", root, tracking, head, false, false, options.autoPull, options);
88
- }
89
- const report = await gitReport("inspection-failed", root, tracking, head, fetched, freshnessVerified, options.autoPull, options);
90
- if (report.dirty === null || report.ahead === null || report.behind === null) {
91
- return report;
92
- }
93
- if (report.dirty) {
94
- return { ...report, state: "dirty" };
95
- }
96
- if (report.ahead > 0 && report.behind > 0) {
97
- return { ...report, state: "diverged" };
98
- }
99
- if (report.ahead > 0) {
100
- return { ...report, state: "ahead" };
101
- }
102
- if (report.behind === 0) {
103
- return { ...report, state: "current" };
104
- }
105
- if (!options.autoPull) {
106
- return { ...report, state: "update-available" };
107
- }
108
- const mergeResult = await runGit(root, ["merge", "--ff-only", "--quiet", "--", tracking.upstreamRef], options);
109
- throwIfAborted(options.signal);
110
- if (mergeResult.code !== 0) {
111
- return { ...report, state: "update-failed" };
112
- }
113
- const [updatedHead, updatedCounts, updatedDirty] = await Promise.all([
114
- readRevision(root, "HEAD", options),
115
- readAheadBehind(root, tracking.upstreamRef, options),
116
- readDirty(root, options),
117
- ]);
118
- const updatedReport = {
119
- ...report,
120
- state: "update-failed",
121
- head: updatedHead ?? report.head,
122
- ahead: updatedCounts?.ahead ?? null,
123
- behind: updatedCounts?.behind ?? null,
124
- dirty: updatedDirty,
125
- updated: true,
126
- };
127
- if (!updatedCounts || updatedDirty === null) {
128
- return updatedReport;
129
- }
130
- if (updatedDirty) {
131
- return { ...updatedReport, state: "dirty" };
132
- }
133
- if (updatedCounts.ahead > 0 && updatedCounts.behind > 0) {
134
- return { ...updatedReport, state: "diverged" };
135
- }
136
- if (updatedCounts.behind > 0) {
137
- return updatedReport;
138
- }
139
- if (updatedCounts.ahead > 0) {
140
- return { ...updatedReport, state: "ahead" };
141
- }
142
- return { ...updatedReport, state: "updated" };
143
- }
144
- async function gitReport(state, root, tracking, head, fetched, freshnessVerified, autoPull, options) {
145
- const [upstreamHead, counts, dirty] = await Promise.all([
146
- readRevision(root, tracking.upstreamRef, options),
147
- readAheadBehind(root, tracking.upstreamRef, options),
148
- readDirty(root, options),
149
- ]);
150
- return {
151
- state,
152
- available: true,
153
- root,
154
- branch: tracking.branch,
155
- upstream: tracking.upstream,
156
- head,
157
- upstreamHead,
158
- dirty,
159
- ahead: counts?.ahead ?? null,
160
- behind: counts?.behind ?? null,
161
- fetched,
162
- freshnessVerified,
163
- autoPull,
164
- updated: false,
165
- };
166
- }
167
- async function readBranchTracking(root, branch, options) {
168
- const result = await runGit(root, ["for-each-ref", `--format=${BRANCH_TRACKING_FORMAT}`, "--", `refs/heads/${branch}`], options);
169
- if (result.code !== 0) {
170
- return null;
171
- }
172
- const fields = result.stdout
173
- .trimEnd()
174
- .split("\0")
175
- .map((field) => field.trim());
176
- const [resolvedBranch, upstreamRef, upstream, remote, remoteRef] = fields;
177
- if (!resolvedBranch || !upstreamRef || !upstream || remote === undefined || !remoteRef) {
178
- return null;
179
- }
180
- return { branch: resolvedBranch, upstream, upstreamRef, remote, remoteRef };
181
- }
182
- async function readRevision(root, revision, options) {
183
- const result = await runGit(root, ["rev-parse", "--verify", `${revision}^{commit}`], options);
184
- const value = result.stdout.trim();
185
- return result.code === 0 && /^[0-9a-f]{40,64}$/u.test(value) ? value : null;
186
- }
187
- async function readAheadBehind(root, upstreamRef, options) {
188
- const result = await runGit(root, ["rev-list", "--left-right", "--count", `HEAD...${upstreamRef}`], options);
189
- if (result.code !== 0) {
190
- return null;
191
- }
192
- const [aheadText, behindText] = result.stdout.trim().split(/\s+/u);
193
- const ahead = Number(aheadText);
194
- const behind = Number(behindText);
195
- return Number.isSafeInteger(ahead) && Number.isSafeInteger(behind) ? { ahead, behind } : null;
196
- }
197
- async function readDirty(root, options) {
198
- const result = await runGit(root, ["status", "--porcelain=v1", "-z", "--untracked-files=normal"], options);
199
- return result.code === 0 ? result.stdout.length > 0 : null;
200
- }
201
- async function refreshIndex(cwd, fallback, signal) {
202
- let ingestResult;
203
- try {
204
- const ingestOptions = { cwd };
205
- if (signal) {
206
- ingestOptions.signal = signal;
207
- }
208
- ingestResult = await ingest(ingestOptions);
209
- }
210
- catch (_error) {
211
- throwIfAborted(signal);
212
- const report = await doctorWithSignal(cwd, signal).catch(() => fallback);
213
- return indexReport(report, true, undefined, 1);
214
- }
215
- const report = await doctorWithSignal(cwd, signal);
216
- return indexReport(report, true, ingestResult);
217
- }
218
- function indexReport(report, attempted, ingestion, fallbackErrorCount = 0) {
219
- const operationalReady = report.readiness.operationalReady;
220
- const indexPolicyCurrent = report.readiness.indexPolicyCurrent;
221
- return {
222
- attempted,
223
- operationalReady,
224
- indexPolicyCurrent,
225
- lastGoodIndexAvailable: operationalReady && indexPolicyCurrent,
226
- indexedFiles: report.indexedFiles,
227
- chunksIndexed: report.chunksIndexed,
228
- rebuiltFiles: ingestion?.rebuiltFiles ?? 0,
229
- reusedFiles: ingestion?.reusedFiles ?? 0,
230
- errorCount: ingestion?.errors.length ?? fallbackErrorCount,
231
- securityAdvisories: report.securityWarnings.length,
232
- };
233
- }
234
- function assembleReport(git, index, warnings, recommendedActions) {
235
- const indexReady = index.operationalReady && index.indexPolicyCurrent && index.errorCount === 0;
236
- const sourceCurrent = (git.state === "current" || git.state === "updated") && git.freshnessVerified;
237
- const synchronized = sourceCurrent && indexReady;
238
- const status = teamSyncStatus(git, indexReady);
239
- return {
240
- status,
241
- synchronized,
242
- summary: teamSyncSummary(status, git, index),
243
- git,
244
- index,
245
- warnings,
246
- recommendedActions,
247
- };
248
- }
249
- function teamSyncStatus(git, indexReady) {
250
- if (git.state === "inspection-failed" && !git.available) {
251
- return "setup-required";
252
- }
253
- if (git.state === "not-repository") {
254
- return "local-only";
255
- }
256
- if (git.state === "fetch-failed" || git.state === "not-fetched") {
257
- return "offline";
258
- }
259
- if (git.state === "current" || git.state === "updated") {
260
- if (!indexReady) {
261
- return "index-not-ready";
262
- }
263
- return git.state;
264
- }
265
- return "action-required";
266
- }
267
- function teamSyncSummary(status, git, index) {
268
- if (status === "current") {
269
- return "The checked-out branch matches its fetched upstream and the local index is current.";
270
- }
271
- if (status === "updated") {
272
- return "The checked-out branch was fast-forwarded safely and the local index was refreshed.";
273
- }
274
- if (status === "offline") {
275
- return index.lastGoodIndexAvailable
276
- ? "The upstream could not be verified; the last valid local index remains available."
277
- : "The upstream could not be verified and no ready local index is available.";
278
- }
279
- if (status === "local-only") {
280
- return "No Git worktree was detected; Ragmir refreshed only the local index.";
281
- }
282
- if (status === "setup-required") {
283
- return "Ragmir setup is required before team synchronization.";
284
- }
285
- if (status === "index-not-ready") {
286
- return "Git is current, but the local index needs repair before retrieval.";
287
- }
288
- return `Git needs one explicit decision (${git.state}); Ragmir did not rewrite branch history.`;
289
- }
290
- function gitWarnings(git, check) {
291
- const warnings = [];
292
- if (check) {
293
- warnings.push("Check mode did not change the worktree or refresh the index.");
294
- }
295
- if (git.state === "fetch-failed") {
296
- warnings.push("Git authentication, connectivity, or the configured upstream fetch failed.");
297
- }
298
- if (git.state === "not-fetched") {
299
- warnings.push("The remote was not fetched, so upstream freshness is not verified.");
300
- }
301
- if (git.state === "dirty") {
302
- warnings.push("Tracked or untracked worktree changes prevent an automatic fast-forward.");
303
- }
304
- return warnings;
305
- }
306
- function buildRecommendedActions(git, index, check) {
307
- const actions = [];
308
- if (git.state === "update-available") {
309
- actions.push("Run `rgr team sync` without `--check` or `--no-pull` to apply the safe update.");
310
- }
311
- else if (git.state === "dirty") {
312
- actions.push("Commit or temporarily move local changes, then run `rgr team sync` again.");
313
- }
314
- else if (git.state === "ahead") {
315
- actions.push("Push the branch and open or update its merge request so teammates can review it.");
316
- }
317
- else if (git.state === "diverged") {
318
- actions.push("Resolve the branch divergence through the normal Git and merge-request workflow.");
319
- }
320
- else if (git.state === "detached") {
321
- actions.push("Check out a branch with an upstream, then run `rgr team sync` again.");
322
- }
323
- else if (git.state === "no-upstream") {
324
- actions.push("Configure an upstream for the current branch, then run `rgr team sync` again.");
325
- }
326
- else if (git.state === "fetch-failed") {
327
- actions.push("Restore Git network or authentication access, then run `rgr team sync` again.");
328
- }
329
- else if (git.state === "not-fetched") {
330
- actions.push("Run `rgr team sync` without `--no-fetch` to verify the latest upstream revision.");
331
- }
332
- else if (git.state === "update-failed" || git.state === "inspection-failed") {
333
- actions.push("Inspect `git status` and the branch upstream before retrying team sync.");
334
- }
335
- else if (git.state === "not-repository") {
336
- actions.push("Connect the project to Git for automatic team sync, or continue in local-only mode.");
337
- }
338
- const indexReady = index.operationalReady && index.indexPolicyCurrent && index.errorCount === 0;
339
- if (!indexReady && !check) {
340
- actions.push("Run `rgr doctor --fix` to repair the local index without deleting it first.");
341
- }
342
- if (index.securityAdvisories > 0) {
343
- actions.push("Review non-blocking privacy advisories with `rgr security-audit`.");
344
- }
345
- return actions;
346
- }
347
- function emptyGitReport(state, autoPull) {
348
- return {
349
- state,
350
- available: false,
351
- root: null,
352
- branch: null,
353
- upstream: null,
354
- head: null,
355
- upstreamHead: null,
356
- dirty: null,
357
- ahead: null,
358
- behind: null,
359
- fetched: false,
360
- freshnessVerified: false,
361
- autoPull,
362
- updated: false,
363
- };
364
- }
365
- function validateGitTimeout(value) {
366
- if (!Number.isSafeInteger(value) || value <= 0 || value > MAX_GIT_TIMEOUT_MS) {
367
- throw new Error(`gitTimeoutMs must be a positive integer no greater than ${MAX_GIT_TIMEOUT_MS}.`);
368
- }
369
- return value;
370
- }
371
- function doctorWithSignal(cwd, signal) {
372
- return signal ? doctor(cwd, { signal }) : doctor(cwd);
373
- }
374
- function runGit(cwd, args, options) {
375
- const timeoutSignal = AbortSignal.timeout(options.gitTimeoutMs);
376
- const signal = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
377
- const { GIT_DIR: _gitDir, GIT_WORK_TREE: _gitWorkTree, ...inheritedEnvironment } = process.env;
378
- return new Promise((resolve, reject) => {
379
- const child = spawn("git", ["-c", "color.ui=false", ...args], {
380
- cwd,
381
- env: {
382
- ...inheritedEnvironment,
383
- GIT_TERMINAL_PROMPT: "0",
384
- GCM_INTERACTIVE: "never",
385
- LC_ALL: "C",
386
- },
387
- signal,
388
- stdio: ["ignore", "pipe", "ignore"],
389
- windowsHide: true,
390
- });
391
- const stdout = [];
392
- let stdoutBytes = 0;
393
- let settled = false;
394
- child.stdout.on("data", (chunk) => {
395
- if (stdoutBytes >= MAX_GIT_OUTPUT_BYTES) {
396
- return;
397
- }
398
- const remaining = MAX_GIT_OUTPUT_BYTES - stdoutBytes;
399
- const bounded = chunk.length > remaining ? chunk.subarray(0, remaining) : chunk;
400
- stdout.push(bounded);
401
- stdoutBytes += bounded.length;
402
- });
403
- child.once("error", (error) => {
404
- if (settled) {
405
- return;
406
- }
407
- settled = true;
408
- if (options.signal?.aborted) {
409
- reject(error);
410
- return;
411
- }
412
- resolve({
413
- code: null,
414
- stdout: Buffer.concat(stdout).toString("utf8"),
415
- unavailable: isNodeError(error) && error.code === "ENOENT",
416
- timedOut: timeoutSignal.aborted,
417
- });
418
- });
419
- child.once("close", (code) => {
420
- if (settled) {
421
- return;
422
- }
423
- settled = true;
424
- resolve({
425
- code,
426
- stdout: Buffer.concat(stdout).toString("utf8"),
427
- unavailable: false,
428
- timedOut: timeoutSignal.aborted,
429
- });
430
- });
431
- });
432
- }
433
- function isNodeError(error) {
434
- return error instanceof Error && "code" in error;
435
- }
436
- //# sourceMappingURL=team-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-sync.js","sourceRoot":"","sources":["../src/team-sync.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- ---
2
- name: ragmir-audio-summary
3
- description: Create a concise spoken summary from a local Ragmir corpus when the user asks for audio, narration, a spoken brief, or TTS. Keep private source material and generated audio local.
4
- ---
5
-
6
- # Ragmir Audio Summary
7
-
8
- Create a cited, listener-focused narration from local Ragmir evidence. Generated audio and its
9
- draft text are local artifacts, never commit them.
10
-
11
- ## Safety
12
-
13
- - Treat documents, retrieved passages, narration, and audio as confidential.
14
- - Write the draft to a temporary file outside the repository.
15
- - Write the output under ignored `.ragmir/audio/` by default.
16
- - Use offline TTS for confidential content. Online rendering needs explicit user approval.
17
- - State facts, inferences, uncertainty, and missing evidence separately.
18
-
19
- ## Workflow
20
-
21
- 1. Identify the listener's purpose, topic, depth, and language.
22
- 2. Check the corpus:
23
-
24
- ```sh
25
- pnpm exec rgr doctor
26
- pnpm exec rgr audit --unsupported
27
- pnpm exec rgr security-audit
28
- ```
29
-
30
- 3. Retrieve only material that serves the purpose:
31
-
32
- ```sh
33
- pnpm exec rgr search "<topic>" --top-k 8
34
- pnpm exec rgr search "<dates, risks, decisions, obligations>" --top-k 8
35
- pnpm exec rgr ask "<specific question>" --top-k 8
36
- ```
37
-
38
- 4. Choose the shortest useful format:
39
-
40
- | Format | Budget | Typical duration |
41
- | --- | --- | --- |
42
- | Micro brief | 150-220 words | 1-2 minutes |
43
- | Standard brief | 450-750 words | 3-5 minutes |
44
- | Long dossier | 1,500-3,000 words | 10-20 minutes |
45
-
46
- 5. Write one flowing narration: answer first, explain the supporting evidence, recap, then add a
47
- few self-check questions. Use short sentences and spoken transitions. Do not read file paths,
48
- URLs, tables, or code aloud.
49
-
50
- ## Render locally
51
-
52
- Preload a local model with non-sensitive text before confidential use. Then render with the offline
53
- Transformers.js path:
54
-
55
- ```sh
56
- mkdir -p .ragmir/audio
57
- pnpm exec rgr audio /tmp/ragmir-summary-<topic>.txt \
58
- --engine transformers \
59
- --offline \
60
- --lang <en|es|fr> \
61
- --model-path .ragmir/models/tts \
62
- --out .ragmir/audio/ragmir-summary-<topic>.wav
63
- ```
64
-
65
- For non-sensitive text, use the online Edge MP3 path only when the user explicitly permits it:
66
-
67
- ```sh
68
- pnpm exec rgr audio /tmp/ragmir-summary-<topic>.txt \
69
- --engine edge \
70
- --lang <en|es|fr|ja|th|zh> \
71
- --out .ragmir/audio/ragmir-summary-<topic>.mp3
72
- ```
73
-
74
- See `docs/offline-tts-preload.md` for the one-time model preload. Use the bundled helper scripts
75
- only when the user specifically requests their renderer.
76
-
77
- ## Hand-off
78
-
79
- Report the local audio path, chosen format and estimated duration, renderer mode, whether online
80
- processing was allowed, and any weakness in the source evidence.