replen 1.0.16 → 1.0.17
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.
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
34
34
|
import { join, basename } from "node:path";
|
|
35
35
|
import { createInterface } from "node:readline";
|
|
36
|
-
export const INTEGRATION_VERSION = "
|
|
36
|
+
export const INTEGRATION_VERSION = "9";
|
|
37
37
|
const SECTION_HEADER = "## Replen integration";
|
|
38
38
|
const MARKER_RE = /<!--\s*replen-integration:\s*v(\d+)\s*-->/;
|
|
39
39
|
const SECTION_BODY = `<!-- replen-integration: v${INTEGRATION_VERSION} -->
|
|
@@ -89,6 +89,16 @@ primitive here.
|
|
|
89
89
|
**Don\'t call \`replen_match\` again on subsequent turns** — once
|
|
90
90
|
per session at start only. The user explicitly types
|
|
91
91
|
\`/replen\` if they want a fresh triage mid-session.
|
|
92
|
+
|
|
93
|
+
**PORTFOLIO-FIRST RULE (any turn, not just the first).** Before you
|
|
94
|
+
(a) add a new dependency, (b) pick a library/stack for a task, or
|
|
95
|
+
(c) build a capability from scratch (scraping, auth, OCR, queues,
|
|
96
|
+
charting, …), call \`replen_recall\` with the capability first. The
|
|
97
|
+
user\'s OTHER projects may already have a settled way to do it — a
|
|
98
|
+
chosen library, or an implementation file (\`paths\`) you can port.
|
|
99
|
+
If recall returns a convention, FOLLOW IT (or name it and ask)
|
|
100
|
+
instead of introducing a parallel stack. The user should never have
|
|
101
|
+
to say "you know I use scrapling elsewhere" — knowing is your job.
|
|
92
102
|
`;
|
|
93
103
|
// Find candidate project directories using the same layered discovery
|
|
94
104
|
// as `npx replen sync-projects` — explicit --root flag → REPLEN_PROJECT_ROOTS
|
|
@@ -135,6 +135,11 @@ specific — `cloudflare bypass`/`proxy rotation`, not just `web scraping`.
|
|
|
135
135
|
grounded `capabilities` array AND the `report` from 2c. The server builds the
|
|
136
136
|
facet vectors immediately and stores the report as grounding for its own
|
|
137
137
|
summarization. Use the MCP tools, not hand-rolled `curl`.
|
|
138
|
+
**Include `paths` on each capability** — up to 5 file paths that implement
|
|
139
|
+
it (e.g. `{tag: "computer vision", …, paths: ["src/cv/transformations.py"]}`).
|
|
140
|
+
Paths only, never code. You just read these files; recording WHERE each
|
|
141
|
+
capability lives lets Replen point another of the user's projects straight
|
|
142
|
+
at the implementation worth porting ("aegis solved this — see src/cv/…").
|
|
138
143
|
4. **Report pinned versions** with `replen_set_versions` — the resolved DIRECT
|
|
139
144
|
dependency versions from the lockfile (package-lock.json / poetry.lock /
|
|
140
145
|
uv.lock / Cargo.lock), plus runtimes under canonical keys (`node` from
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "replen",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "Make your AI coding tools smarter. One command, no API keys, free. Replen watches what your projects actually do and surfaces a few things worth bringing in each month. Use one as is, port a piece of another, cherry pick an idea, or build it clean room. The match happens inside your AI tool's session. A few actionable matches a month, by design.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|