peaks-loop 4.0.51 → 4.0.52
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.
- package/CHANGELOG.md +20 -0
- package/README-en.md +1 -1
- package/README.md +1 -1
- package/dist/cli/commands/baseline-commands.js +11 -1
- package/dist/cli/commands/codegraph-command-runtime.d.ts +28 -0
- package/dist/cli/commands/codegraph-command-runtime.js +72 -0
- package/dist/cli/commands/codegraph-commands.d.ts +2 -11
- package/dist/cli/commands/codegraph-commands.js +173 -228
- package/dist/cli/commands/codegraph-status-command.d.ts +22 -0
- package/dist/cli/commands/codegraph-status-command.js +299 -0
- package/dist/cli/commands/core/memory-command.js +6 -2
- package/dist/cli/commands/job-commands.js +121 -30
- package/dist/cli/commands/project-commands.js +13 -3
- package/dist/cli/commands/request-commands.js +19 -8
- package/dist/cli/commands/slice-commands.js +2 -2
- package/dist/services/artifacts/artifact-prerequisites.js +23 -1
- package/dist/services/codegraph/codegraph-autorefresh.d.ts +16 -0
- package/dist/services/codegraph/codegraph-autorefresh.js +51 -5
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +88 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.js +322 -0
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +20 -2
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -3
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +23 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +123 -12
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +109 -55
- package/dist/services/codegraph/codegraph-exclude-repair.js +249 -195
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +10 -0
- package/dist/services/codegraph/codegraph-include-reconciler.js +160 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +268 -0
- package/dist/services/codegraph/codegraph-index-integrity.js +471 -0
- package/dist/services/codegraph/codegraph-service.d.ts +54 -0
- package/dist/services/codegraph/codegraph-service.js +84 -1
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +19 -4
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.d.ts +54 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +151 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +10 -10
- package/dist/services/doctor/doctor-service/plugin-registry.js +2 -0
- package/dist/services/doctor/doctor-service/types.d.ts +25 -0
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +48 -13
- package/dist/services/memory/project-memory-service/index.d.ts +5 -3
- package/dist/services/memory/project-memory-service/index.js +2 -2
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +15 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +34 -6
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +27 -1
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +92 -7
- package/dist/services/memory/project-memory-service/types.d.ts +86 -0
- package/dist/services/slice/slice-check-types.d.ts +1 -1
- package/dist/services/workspace/runtime-layout.d.ts +91 -0
- package/dist/services/workspace/runtime-layout.js +148 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.js +14 -0
- package/package.json +6 -6
- package/scripts/clean-dist.mjs +15 -3
- package/scripts/sync-version.mjs +26 -4
- package/skills/bee/peaks-prd/SKILL.md +1 -1
- package/skills/bee/peaks-qa/references/qa-skill-presence.md +1 -1
- package/skills/bee/peaks-rd/references/skill-presence-and-title.md +1 -1
- package/skills/bee/peaks-sc/SKILL.md +1 -1
- package/skills/bee/peaks-txt/SKILL.md +3 -3
- package/skills/peaks-code/SKILL.md +1 -1
- package/skills/peaks-code/references/project-memory-loading.md +19 -1
- package/skills/peaks-code/references/step-11-memory-sediment.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.52 — 2026-09-17 (codegraph 索引完整性检测闸门 + repair-index 强制重建 + 套用到本仓:include gap 31→0、dead rows 4→0、strict-mode exit 75→0)
|
|
4
|
+
|
|
5
|
+
**Highlights**:
|
|
6
|
+
|
|
7
|
+
1. **codegraph 索引完整性的"不能评估"路径是一个静默假绿(exit 0)。** `codegraph-index-integrity.ts` 的 `try/catch` 只裹住 `new Database(...)`;`db.prepare('SELECT path FROM files').all()` 在 `try { … } finally { db.close() }` 里 —— `no such table: files`(上游 schema 漂移)会**裸抛**到 `codegraph-commands.ts:304-309`,那里把 `indexIntegrity` 写成 `null`,下游 `integrity?.gap === true || indexGap ? … : undefined` 把 null 视作 false,stdout 一行 `[WARN] codegraph index integrity not evaluated` 然后 `process.exitCode = 0`。这是**本仓签名缺陷**:`codegraph-exclude-reconciler.ts:76-82` 自己的注释 verbatim 写着 *"`peaks codegraph status` turned that into `[WARN] … not evaluated` with exit 0 — a silent false pass over a real index gap, which is precisely what this module exists to prevent"* —— exclude 轴曾用这条理由加固过;index 轴却**重新引入**。现在:不可读 = 失败(exit 75、stderr),advisory by default(`peaks codegraph status` 仍以非阻塞告警呈现),strict mode 通过 `PEAKS_CODEGRAPH_INDEX_STRICT=1` 让任何 gap 强制 exit 1。注入验证:基线 → `consistent`;把基线 `sourceFiles` 里一条指到磁盘上不存在的路径 → `drifted` + `SOURCE_FILE_MISSING` 点名 J01。
|
|
8
|
+
|
|
9
|
+
2. **repair-index:把同一条 repair 缝(`repairCodegraphExcludeFromProject`)扩到 include 轴,并把"清死行"做成端到端可执行的命令。** `peaks codegraph repair-index` 是新公开命令,先调上游 `cg.clear()` 再 `index --force`;不修缝就修不了"旧的无效的也要删除"那条 directive —— 增量 `index` 永不删行(`.peaks/memory/codegraph-status-ok.md` 已记),只有 `--force` 会。**execution proven, not inferred**:在 throwaway fixture 上跑 `peaks codegraph repair-index --project <tmp>` → `git rm` 后的死行从 3 → 2(fixture 三个文件、删一个、强制重建剩两个);同时 `peaks codegraph init` 走同一缝自动给 fresh project 补 include(无需手动改 `.codegraph/config.json`,directive 3 对新项目成立)。缝的 3 个调用点(`init` / preflight / post-slice auto-refresh)都自动受益,没有新增平行缝。**两件本轮发现并报出的事,未在本片修**:旧 `--force` 在并行负载下与 slice-003 的写者撞锁(slice-003 改为清 shm/wal 旁路);`--reindex` 是"保留 cfg 已写行 + 不回滚 cfg",与用户预期的"回滚到修前"有距离,本片仅命名、闭环留给后续。
|
|
10
|
+
|
|
11
|
+
3. **套用到本仓(slice-003):include gap 31 → 0、dead rows 4 → 0、strict-mode exit 75 → 0。** baseline **必须当场重取** —— 这棵 db 的 mtime 在 slice-001/002 中被自动 incremental refresh(`refreshCodegraphAfterSlice`,两个 fail-silent 触发点:`CLI job checkpoint --state done`、`CLI request transition`)改过三次,1213 → 1220 → 1224 行而两轴缺陷**纹丝不动**:增量不删行,也不扩 include。修前 sha256 + 行/死行计数在同一步取,然后修,然后比对。修前 `.codegraph/codegraph.db-shm` 与 `codegraph.db-wal` 旁路清掉(WAL 留在原地会让 byte-exact diff 出假阳性;slice-003 完整记录这套对齐步骤)。**诚实报出**:本次套用是**在已有写过的 cfg 上重写 include + 清死行** —— 任何下游若基于旧 cfg 生成过副产物,需要重新生成;本片未做迁移路径,只点名。
|
|
12
|
+
|
|
13
|
+
4. **用户报后修。** (a) **7 个 SKILL.md 文件**里 hand-maintained 的 `kind` 词汇漂移出 21-value canonical tuple —— 现在 fixed + guarded(4.0.51 那片把引用完整性守卫的语料扩到 `skills/**`;本片把 `kind` 字段接进守卫),未来漂移一发生即红。(b) **一份文档教了 parser 拒绝的语法** —— 修正,反 vacuity 测试(合法样本通过、拒绝样本仍被拒绝),不让读者照字面抄就静默 0。
|
|
14
|
+
|
|
15
|
+
5. **缺陷扫荡(12+):codegraph 错误消息、refresh 可见性、`.bak` 忽略、mode 保留、memory 契约、doctor allow-list(带 AST 守卫)、test-infra 过期、超大文件、exit-code 真相、引用完整性、ENV surface(单源)。** 统一动作:每条都接住一个"读到的是这样,证据说的是那样"对位,修后配注入验证(基线 → 绿;注入 → 红;移除 → 复绿)。**单源原则是这一轮的暗线**:凡有"两个地方算同一个数 / 同一个字符串"的地方,本片都合并到唯一来源(`vitest.workers.ts` 是 maxWorkers 单源;ENV 表面单源;doctor allow-list 单源)。
|
|
16
|
+
|
|
17
|
+
6. **`vitest.workers.ts`:单源 `maxWorkers`,默认 2(负载形 flake safety),`PEAKS_VITEST_MAX_WORKERS` 覆盖。** 之前的最大值是分散在两套配置里算的(`Math.max(2, …)`),但其中一个入口从来没被走过;负载一上来就在 worker 数不稳定的两条路径之间漂。
|
|
18
|
+
|
|
19
|
+
**验证**:290/290 unit tests、`tsc` 142、`lint` 6/6、`peaks codegraph status` 在 strict 模式下本仓 `consistent`、`codegraph.db` 行 1224 + 0 dead rows、`config.json` 与 `codegraph.db` 的 sha256 在 repair 前后取两次确认未引入新漂移。
|
|
20
|
+
|
|
21
|
+
**明确未验证的(不当作已完成)**:`peaks codegraph repair-index` 的回滚契约 —— 现实现是 `--reindex`(不动 cfg 已写行 + 不回滚 cfg),与用户预期的"回滚到修前"有距离,本片仅命名 + 留口,未做;`refreshCodegraphAfterSlice` 仍是 fail-silent —— 本片不修,因为改它需要同时改两处调用点的契约(`job-commands.ts:306` / `request-commands.ts:468`),超出本版范围;slice-001 的 `indexIntegrity === null` 路径现在**不再静默**,但若上游 `codegraph.db` 合法但表完全缺(比 `no such table: files` 更罕见),错误消息的精细度还有一格没补。
|
|
22
|
+
|
|
3
23
|
## 4.0.51 — 2026-09-16 (子代理 await 永远报不出结果 + 49 处"声称有测试守护、测试早已删除" + 9 个恒真断言 + 三个不可达导出)
|
|
4
24
|
|
|
5
25
|
**Highlights**:
|
package/README-en.md
CHANGED
|
@@ -140,7 +140,7 @@ Every lane opens with **one slash command**.
|
|
|
140
140
|
|
|
141
141
|
| | |
|
|
142
142
|
| --- | --- |
|
|
143
|
-
| **Latest** | [](https://www.npmjs.com/package/peaks-loop) — 4.0.
|
|
143
|
+
| **Latest** | [](https://www.npmjs.com/package/peaks-loop) — 4.0.52 (2026-09-17) |
|
|
144
144
|
| **Domains** | Code (`peaks-code`) · Content (`peaks-content`) · Project health (`peaks-doctor`) · Issue sweep (`peaks-issue-fix-orchestrator`) · Custom SOP (`peaks-sop`) · Cross-domain primitives (`peaks-solo` dispatcher · `peaks-resume` · `peaks-status` · `peaks-test` · `peaks-slice-decompose`) |
|
|
145
145
|
| **Sediment pool** | `~/.peaks/` local pool · twice-clean runs auto-promote to a bee · broken runs come back for you to redefine · the bee grows with your taste |
|
|
146
146
|
| **Test suite** | 285+ cases · 4 packages (peaks-loop / peaks-loop-mut / peaks-loop-shared-channel / peaks-loop-shared) · **0 timeouts** · 14 BDD caller-binding edge cases |
|
package/README.md
CHANGED
|
@@ -140,7 +140,7 @@ npm i -g peaks-loop
|
|
|
140
140
|
|
|
141
141
|
| | |
|
|
142
142
|
| --- | --- |
|
|
143
|
-
| **最新版本** | [](https://www.npmjs.com/package/peaks-loop) — 4.0.
|
|
143
|
+
| **最新版本** | [](https://www.npmjs.com/package/peaks-loop) — 4.0.52(2026-09-17) |
|
|
144
144
|
| **覆盖域** | 代码(`peaks-code`) · 内容(`peaks-content`) · 项目健康(`peaks-doctor`) · 批量修 issue(`peaks-issue-fix-orchestrator`) · 自定义 SOP(`peaks-sop`) · 通用原语(`peaks-solo` 分诊 / `peaks-resume` 续 / `peaks-status` 看 / `peaks-test` 测 / `peaks-slice-decompose` 切片) |
|
|
145
145
|
| **沉淀池** | `~/.peaks/` 本地池 · 跑两次自动晋升成 bee · 跑翻车让你重定义 · bee 跟着你的口味长 |
|
|
146
146
|
| **测试套件** | 1096 cases · 4 packages (peaks-loop 1015 / runtime 39 / mut 22 / shared-channel 20) · **CI 首次全绿**(ubuntu + windows) · 14 BDD caller-binding coverage |
|
|
@@ -6,6 +6,7 @@ import { validateBaselineFile } from '../../services/capability-baseline/validat
|
|
|
6
6
|
import { P0_JOURNEY_IDS } from '../../services/capability-baseline/types.js';
|
|
7
7
|
import { GUARD_CONTRACTS, getGuardContract, isJourneyId } from '../../services/capability-guard-runner/registry.js';
|
|
8
8
|
import { exitCodeForGuardSummary, runAllGuards } from '../../services/capability-guard-runner/runner.js';
|
|
9
|
+
import { RUNTIME_SESSIONLESS_SCOPE } from '../../services/workspace/runtime-layout.js';
|
|
9
10
|
function fail(io, code, message, data = {}) {
|
|
10
11
|
io.stdout(JSON.stringify({ ok: false, command: `baseline`, code, message, data, warnings: [], nextActions: [] }));
|
|
11
12
|
process.exitCode = 1;
|
|
@@ -163,9 +164,18 @@ export function registerBaselineCommands(program, io) {
|
|
|
163
164
|
// It is handed the frozen rows and the registry, not just the guard
|
|
164
165
|
// summary — a scorer that only sees the guard result is a restatement.
|
|
165
166
|
const { runAudit } = await import('../../services/capability-audit-service/runner.js');
|
|
167
|
+
// `sessionId` is the on-disk scope for the audit artifacts. This command
|
|
168
|
+
// has NO session — it is the credential-free scorer that runs inside the
|
|
169
|
+
// secretless OIDC publish gate — and it used to pass the literal `'cli'`,
|
|
170
|
+
// so every run wrote `.peaks/_runtime/cli/capability-audit/*.json` into
|
|
171
|
+
// the operator's real workspace. That directory is indistinguishable from
|
|
172
|
+
// a session dir whose id failed validation, so `peaks doctor`'s
|
|
173
|
+
// orphan-session check failed on it permanently (`4 orphan session(s)
|
|
174
|
+
// …: callers, cli, unknown-sid, x`, exit 1). The reserved
|
|
175
|
+
// underscore-prefixed scope says "machinery, not a session" in the name.
|
|
166
176
|
const audit = await runAudit({
|
|
167
177
|
projectRoot,
|
|
168
|
-
sessionId:
|
|
178
|
+
sessionId: RUNTIME_SESSIONLESS_SCOPE,
|
|
169
179
|
journeyId: 'J01',
|
|
170
180
|
scorerMode: opts.scorer,
|
|
171
181
|
baselineRows: r.file.rows,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type CodegraphInvocationOptions } from '../../services/codegraph/codegraph-service.js';
|
|
2
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
3
|
+
export interface CommonCodegraphOptions {
|
|
4
|
+
project: string;
|
|
5
|
+
peaksJson?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function printCodegraphFailure(io: ProgramIO, command: string, error: unknown, asJson?: boolean, exitCode?: number): void;
|
|
8
|
+
/**
|
|
9
|
+
* Rewrites bare upstream `codegraph <subcommand>` hints to the peaks-loop
|
|
10
|
+
* equivalent (`peaks codegraph <subcommand>`). The upstream binary is a
|
|
11
|
+
* nested transitive dependency and is NOT on PATH, so an LLM that follows
|
|
12
|
+
* a bare hint like `Run "codegraph init" to initialize` would hit
|
|
13
|
+
* "command not found". Already-prefixed `peaks codegraph ...` hints and
|
|
14
|
+
* other `codegraph` references (e.g. `@colbymchenry/codegraph`) are left
|
|
15
|
+
* untouched.
|
|
16
|
+
*/
|
|
17
|
+
export declare function rewriteBareCodegraphHints(text: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Proxy one upstream invocation. Returns whether UPSTREAM FAILED — the
|
|
20
|
+
* caller needs that to rank the exit-code precedence (an upstream failure
|
|
21
|
+
* outranks every localized integrity verdict: see the tail of
|
|
22
|
+
* `runCodegraphStatusCommand`), and it cannot re-derive it from
|
|
23
|
+
* `process.exitCode` once a later branch has overwritten it.
|
|
24
|
+
*
|
|
25
|
+
* Callers that do not rank precedence (every command but `status`) simply
|
|
26
|
+
* ignore the return value.
|
|
27
|
+
*/
|
|
28
|
+
export declare function runCodegraphCommand(io: ProgramIO, command: string, options: CodegraphInvocationOptions, asJson?: boolean, attributeStdout?: (text: string) => string): Promise<boolean>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// src/cli/commands/codegraph-command-runtime.ts
|
|
2
|
+
//
|
|
3
|
+
// Shared invocation runtime for every `peaks codegraph <verb>`: the option
|
|
4
|
+
// shape they all extend, the failure envelope they all print, the hint
|
|
5
|
+
// rewriter that keeps upstream's bare `codegraph …` hints runnable, and the
|
|
6
|
+
// upstream proxy itself.
|
|
7
|
+
//
|
|
8
|
+
// Extracted verbatim from `codegraph-commands.ts` (rid
|
|
9
|
+
// 2026-09-17-oversize-and-scale, D1 — the 800-line file-size cap). Every moved
|
|
10
|
+
// line is byte-identical and no behaviour changed; `codegraph-commands.ts`
|
|
11
|
+
// re-exports `rewriteBareCodegraphHints` so the public surface is stable.
|
|
12
|
+
//
|
|
13
|
+
// This module is the BOTTOM of the codegraph CLI's import graph. It must not
|
|
14
|
+
// import `codegraph-commands.ts` or `codegraph-status-command.ts`, or the
|
|
15
|
+
// extraction would introduce a cycle.
|
|
16
|
+
import { createCodegraphInvocation, executeCodegraphInvocation } from '../../services/codegraph/codegraph-service.js';
|
|
17
|
+
import { fail } from 'peaks-loop-shared/result';
|
|
18
|
+
import { getErrorMessage, printResult, redactSensitiveErrorMessage } from '../cli-helpers.js';
|
|
19
|
+
export function printCodegraphFailure(io, command, error, asJson, exitCode = 1) {
|
|
20
|
+
printResult(io, fail(command, 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(getErrorMessage(error)), {}, ['Check the codegraph command options and project path before retrying']), asJson);
|
|
21
|
+
process.exitCode = exitCode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Rewrites bare upstream `codegraph <subcommand>` hints to the peaks-loop
|
|
25
|
+
* equivalent (`peaks codegraph <subcommand>`). The upstream binary is a
|
|
26
|
+
* nested transitive dependency and is NOT on PATH, so an LLM that follows
|
|
27
|
+
* a bare hint like `Run "codegraph init" to initialize` would hit
|
|
28
|
+
* "command not found". Already-prefixed `peaks codegraph ...` hints and
|
|
29
|
+
* other `codegraph` references (e.g. `@colbymchenry/codegraph`) are left
|
|
30
|
+
* untouched.
|
|
31
|
+
*/
|
|
32
|
+
export function rewriteBareCodegraphHints(text) {
|
|
33
|
+
return text.replace(/(?<![\w-])(?<!peaks\s)codegraph(?=\s+(?:status|init|index|query|files|context|affected)\b)/g, 'peaks codegraph');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Proxy one upstream invocation. Returns whether UPSTREAM FAILED — the
|
|
37
|
+
* caller needs that to rank the exit-code precedence (an upstream failure
|
|
38
|
+
* outranks every localized integrity verdict: see the tail of
|
|
39
|
+
* `runCodegraphStatusCommand`), and it cannot re-derive it from
|
|
40
|
+
* `process.exitCode` once a later branch has overwritten it.
|
|
41
|
+
*
|
|
42
|
+
* Callers that do not rank precedence (every command but `status`) simply
|
|
43
|
+
* ignore the return value.
|
|
44
|
+
*/
|
|
45
|
+
export async function runCodegraphCommand(io, command, options, asJson, attributeStdout) {
|
|
46
|
+
try {
|
|
47
|
+
const invocation = createCodegraphInvocation(options);
|
|
48
|
+
const result = await executeCodegraphInvocation(invocation);
|
|
49
|
+
if (result.exitCode !== null && result.exitCode !== 0 && asJson === true) {
|
|
50
|
+
printCodegraphFailure(io, command, new Error(result.stderr || result.stdout || `codegraph exited with code ${result.exitCode}`), true, result.exitCode);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const didFail = result.exitCode !== null && result.exitCode !== 0;
|
|
54
|
+
const rewritten = rewriteBareCodegraphHints(result.stdout);
|
|
55
|
+
const stdout = attributeStdout === undefined ? rewritten : attributeStdout(rewritten);
|
|
56
|
+
const stderr = rewriteBareCodegraphHints(result.stderr);
|
|
57
|
+
if (stdout.length > 0) {
|
|
58
|
+
io.stdout((didFail ? redactSensitiveErrorMessage(stdout) : stdout).trimEnd());
|
|
59
|
+
}
|
|
60
|
+
if (stderr.length > 0) {
|
|
61
|
+
io.stderr((didFail ? redactSensitiveErrorMessage(stderr) : stderr).trimEnd());
|
|
62
|
+
}
|
|
63
|
+
if (didFail) {
|
|
64
|
+
process.exitCode = result.exitCode;
|
|
65
|
+
}
|
|
66
|
+
return didFail;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
printCodegraphFailure(io, command, error, asJson);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { type ProgramIO } from '../cli-helpers.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* equivalent (`peaks codegraph <subcommand>`). The upstream binary is a
|
|
6
|
-
* nested transitive dependency and is NOT on PATH, so an LLM that follows
|
|
7
|
-
* a bare hint like `Run "codegraph init" to initialize` would hit
|
|
8
|
-
* "command not found". Already-prefixed `peaks codegraph ...` hints and
|
|
9
|
-
* other `codegraph` references (e.g. `@colbymchenry/codegraph`) are left
|
|
10
|
-
* untouched.
|
|
11
|
-
*/
|
|
12
|
-
export declare function rewriteBareCodegraphHints(text: string): string;
|
|
13
|
-
export declare function attributeUpstreamUpToDateLine(stdout: string): string;
|
|
3
|
+
export { rewriteBareCodegraphHints } from './codegraph-command-runtime.js';
|
|
4
|
+
export { attributeUpstreamUpToDateLine } from './codegraph-status-command.js';
|
|
14
5
|
export declare function registerCodegraphCommands(program: Command, io: ProgramIO): void;
|