akm-cli 0.9.17-alpha.7 → 0.9.17-alpha.9

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 (116) hide show
  1. package/CHANGELOG.md +473 -0
  2. package/STABILITY.md +9 -8
  3. package/dist/akm +55 -22
  4. package/dist/akm-migrate +38 -19
  5. package/dist/assets/hints/cli-hints-full.md +6 -7
  6. package/dist/assets/improve-strategies/catchup.json +0 -3
  7. package/dist/assets/improve-strategies/consolidate.json +0 -1
  8. package/dist/assets/improve-strategies/default.json +1 -2
  9. package/dist/assets/improve-strategies/proactive-maintenance.json +1 -2
  10. package/dist/assets/improve-strategies/quick.json +1 -2
  11. package/dist/assets/improve-strategies/reflect-distill.json +1 -2
  12. package/dist/assets/improve-strategies/thorough.json +0 -3
  13. package/dist/assets/prompts/consolidate-pair.md +20 -0
  14. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +20 -20
  15. package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -2
  16. package/dist/assets/templates/html/health.html +3 -5
  17. package/dist/cli/retired-commands.js +1 -1
  18. package/dist/commands/health/archive-usage.js +98 -0
  19. package/dist/commands/health/data-dir-usage.js +25 -13
  20. package/dist/commands/health/html-report.js +1 -4
  21. package/dist/commands/health/improve-metrics.js +0 -25
  22. package/dist/commands/health/md-report.js +1 -6
  23. package/dist/commands/health/report-view-model.js +4 -14
  24. package/dist/commands/health/windows.js +0 -1
  25. package/dist/commands/health.js +13 -0
  26. package/dist/commands/improve/consolidate/continuity-check.js +137 -0
  27. package/dist/commands/improve/consolidate/pair-pass.js +791 -0
  28. package/dist/commands/improve/consolidate.js +38 -63
  29. package/dist/commands/improve/extract-prompt.js +1 -2
  30. package/dist/commands/improve/improve-cli.js +1 -1
  31. package/dist/commands/improve/improve-strategies.js +23 -5
  32. package/dist/commands/improve/improve.js +19 -30
  33. package/dist/commands/improve/ledger.js +3 -2
  34. package/dist/commands/improve/loop-stages.js +5 -84
  35. package/dist/commands/improve/memory/memory-belief.js +3 -1
  36. package/dist/commands/improve/memory/memory-improve.js +269 -11
  37. package/dist/commands/improve/planner.js +0 -5
  38. package/dist/commands/improve/preparation.js +20 -135
  39. package/dist/commands/improve/retrieval-scope.js +19 -4
  40. package/dist/commands/improve/salience.js +1 -14
  41. package/dist/commands/improve/stage.js +0 -1
  42. package/dist/commands/lint/base-linter.js +19 -11
  43. package/dist/commands/proposal/drain.js +8 -1
  44. package/dist/commands/proposal/proposal-cli.js +16 -2
  45. package/dist/commands/proposal/proposal-types.js +7 -0
  46. package/dist/commands/proposal/proposal.js +37 -6
  47. package/dist/commands/proposal/repository.js +613 -4
  48. package/dist/commands/proposal/validators/proposals.js +9 -0
  49. package/dist/commands/read/curate.js +40 -13
  50. package/dist/commands/read/knowledge.js +3 -2
  51. package/dist/commands/read/show.js +55 -16
  52. package/dist/commands/sources/info.js +3 -0
  53. package/dist/commands/sources/stash-cli.js +2 -2
  54. package/dist/core/adapter/adapters/akm-adapter.js +2 -0
  55. package/dist/core/adapter/adapters/akm-metadata.js +31 -0
  56. package/dist/core/bundle-rename.js +1 -7
  57. package/dist/core/config/config-schema.js +8 -1
  58. package/dist/core/config/config.js +23 -48
  59. package/dist/core/config/engine-semantics.js +0 -2
  60. package/dist/core/config/schema/improve-processes.js +17 -42
  61. package/dist/core/config/schema/index-config.js +5 -25
  62. package/dist/core/file-change.js +13 -5
  63. package/dist/core/improve-result.js +16 -5
  64. package/dist/core/improve-types.js +0 -1
  65. package/dist/core/loopback.js +7 -12
  66. package/dist/core/parse.js +13 -16
  67. package/dist/core/state/migrations.js +15 -0
  68. package/dist/core/time.js +0 -20
  69. package/dist/indexer/db/llm-cache.js +2 -2
  70. package/dist/indexer/ensure-index.js +2 -2
  71. package/dist/indexer/index-written-assets.js +2 -3
  72. package/dist/indexer/indexer.js +18 -418
  73. package/dist/indexer/links/declared-links.js +90 -0
  74. package/dist/indexer/passes/metadata.js +0 -19
  75. package/dist/indexer/scan/doc-to-entry.js +1 -0
  76. package/dist/indexer/walk/walker.js +3 -4
  77. package/dist/llm/client.js +8 -10
  78. package/dist/llm/embedders/remote.js +1 -2
  79. package/dist/llm/feature-gate.js +0 -5
  80. package/dist/output/shapes/helpers.js +23 -4
  81. package/dist/output/text/command-format.js +0 -8
  82. package/dist/output/text/proposal-format.js +47 -1
  83. package/dist/output/text/show-format.js +13 -17
  84. package/dist/scripts/akm-migrate-node.js +2754 -2836
  85. package/dist/scripts/akm-migrate.js +2754 -2836
  86. package/dist/setup/steps/connection.js +5 -6
  87. package/dist/setup/steps/platforms.js +2 -2
  88. package/dist/sources/providers/git-stash.js +55 -4
  89. package/dist/storage/repositories/improve-ledger-repository.js +48 -7
  90. package/dist/storage/repositories/index-entries-repository.js +16 -13
  91. package/dist/storage/repositories/index-entry-schema.js +22 -3
  92. package/dist/storage/repositories/index-links-repository.js +143 -0
  93. package/dist/storage/repositories/index-llm-cache-repository.js +7 -26
  94. package/dist/storage/repositories/index-schema.js +82 -104
  95. package/dist/storage/repositories/proposals-repository.js +61 -0
  96. package/dist/storage/repositories/salience-repository.js +1 -19
  97. package/dist/tasks/source/task-to-v4.js +462 -74
  98. package/docs/migration/release-notes/0.9.17.md +7 -5
  99. package/docs/reference/cli.md +33 -21
  100. package/docs/reference/configuration.md +21 -12
  101. package/docs/reference/data-and-telemetry.md +0 -1
  102. package/package.json +1 -1
  103. package/schemas/akm-config.json +0 -342
  104. package/dist/assets/improve-strategies/graph-refresh.json +0 -15
  105. package/dist/assets/prompts/contradiction-judge.md +0 -33
  106. package/dist/assets/prompts/graph-extract-system.md +0 -1
  107. package/dist/assets/prompts/graph-extract-user-prompt.md +0 -35
  108. package/dist/assets/prompts/metadata-enhance-system.md +0 -1
  109. package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +0 -4
  110. package/dist/indexer/db/graph-db.js +0 -431
  111. package/dist/indexer/graph/graph-extraction.js +0 -807
  112. package/dist/indexer/graph/graph-related.js +0 -131
  113. package/dist/indexer/graph/graph-types.js +0 -4
  114. package/dist/llm/graph-extract.js +0 -903
  115. package/dist/llm/metadata-enhance.js +0 -95
  116. package/dist/tasks/source/task-to-v3.js +0 -453
@@ -104,7 +104,7 @@ with an `INVALID_SHAPE_VALUE` usage error (exit 2) — an honest rejection rathe
104
104
  than a silent fallback. It returns a compact view suitable for capability
105
105
  discovery:
106
106
 
107
- - **show**: `type`, `name`, canonical `ref`, `description`, `tags`, `parameters`, `workflowTitle`, `action`, `run`, `origin`, `keys`, `related`
107
+ - **show**: `type`, `name`, canonical `ref`, `description`, `tags`, `parameters`, `workflowTitle`, `action`, `run`, `origin`, `keys`, `links`
108
108
 
109
109
  ## Exit Codes and Error Envelope
110
110
 
@@ -195,8 +195,8 @@ akm setup
195
195
  The setup wizard configures AKM in two steps:
196
196
 
197
197
  **Step 1 — Small model connection** (for background processing)
198
- Configures the OpenAI-compatible endpoint and model used for `akm index`
199
- metadata enhancement and `akm remember --enrich`. Supports Ollama,
198
+ Configures the OpenAI-compatible endpoint and model used for `akm improve`
199
+ and `akm remember --enrich`. Supports Ollama,
200
200
  OpenAI, LM Studio, or any custom endpoint. Skipping disables enrichment features.
201
201
 
202
202
  **Step 2 — Agent connection** (for agentic commands)
@@ -300,10 +300,8 @@ invokes `akm index` directly should pass `--skip-if-locked` so it steps
300
300
  aside instead of piling up behind a longer rebuild (the shipped
301
301
  `index-refresh` task does this).
302
302
 
303
- `akm index` always rebuilds the search index and keeps metadata in the index.
304
- When a selected named LLM engine (`defaults.llmEngine` or an indexing-pass
305
- override) is configured and the per-pass gate allows it, metadata
306
- enhancement runs during indexing. In text mode, the default CLI UI shows a
303
+ `akm index` always rebuilds the search index and keeps metadata in the
304
+ index, generated deterministically. In text mode, the default CLI UI shows a
307
305
  spinner with processed-versus-total source counts; structured output modes
308
306
  (`json`, `yaml`, `jsonl`) stay clean and machine-readable.
309
307
 
@@ -331,7 +329,7 @@ Returns a JSON object with:
331
329
  | `semanticSearch` | Semantic search status: `mode`, `status`, and optional `reason`/`message` |
332
330
  | `registries` | Configured registries |
333
331
  | `sourceProviders` | Configured sources (filesystem, git, website, npm) |
334
- | `indexStats` | Index stats: `entryCount`, `byType` (per-asset-type breakdown), `lastBuiltAt`, `hasEmbeddings` |
332
+ | `indexStats` | Index stats: `entryCount`, `byType` (per-asset-type breakdown), `links` (declared links per kind with `total` and `unresolved`; absent when the index holds none), `lastBuiltAt`, `hasEmbeddings` |
335
333
 
336
334
  `semanticSearch.status` values:
337
335
  - `"ready-js"` — every entry has a vector; semantic search is active (the name is historical: `"ready-vec"`, the sqlite-vec variant, is gone)
@@ -389,7 +387,7 @@ Primary result fields:
389
387
  | `improve` | Recent improve-loop counts derived from `improve_invoked`, `improve_skipped`, and `improve_completed` events |
390
388
 
391
389
  The `improve` section includes counts for planned refs, reflect/distill actions,
392
- memory-prune actions, memory-inference writes, graph-extraction refreshes,
390
+ memory-prune actions, memory-inference writes,
393
391
  session-extraction outcomes (`sessionsScanned`, `sessionsExtracted`, `proposalsCreated`),
394
392
  dead-URL detections, and skip reasons observed in the selected time window.
395
393
 
@@ -432,12 +430,6 @@ for an infrastructure reason (`llm_unavailable`, `read_failed`, `exception`,
432
430
  `locked_concurrent`) — naming the reason and, when recorded, the engine — and
433
431
  `pass` otherwise, with per-outcome counts.
434
432
 
435
- The indexed entity graph (entities/relations extracted from bundle assets) has
436
- no dedicated inspection command; its summary counts surface as an info-level
437
- metric in `akm health`. Graph data is automatically re-extracted on the first
438
- `akm improve` cycle after a `DB_VERSION` upgrade. The graph backs `akm show`'s
439
- `related` list and curate's support refs; it does not affect search ranking.
440
-
441
433
  ### search
442
434
 
443
435
  Search bundle assets, registries, or both.
@@ -595,10 +587,13 @@ akm curate "learn the release workflow" --from all --format text
595
587
  | `--track-usage`, `--no-track-usage` | flag | `true` | Record or suppress local usage events for this successful read |
596
588
 
597
589
  `akm curate` takes the top `--limit` hits of one search, in search order, and
598
- enriches each with a preview, run details and up to two graph-related support
599
- refs. With `search.curateRerank.enabled`, a cross-encoder first reorders the
600
- top 30 fused candidates (`search.curateRerank.topN`) by name, description and
601
- the start of each asset's indexed content. Curate includes direct follow-up
590
+ enriches each with a preview, run details and up to two support refs: the
591
+ assets the hit's declared links name (`xrefs:`, `supersededBy:` and the other
592
+ kinds `akm show` lists under `links`), what it links to before what links to
593
+ it, skipping assets curate already selected. With
594
+ `search.curateRerank.enabled`, a cross-encoder first reorders the top 30 fused
595
+ candidates (`search.curateRerank.topN`) by name, description and the start of
596
+ each asset's indexed content. Curate includes direct follow-up
602
597
  commands such as `akm show <ref>` or `akm bundle add <ref>` so you can
603
598
  immediately inspect or install what it found.
604
599
  `--detail` and `--shape agent` both work on curate output; `--shape summary`
@@ -691,6 +686,16 @@ returns a compact view with `type`, `name`, `ref`, `description`, `tags`,
691
686
  `parameters`, `workflowTitle`, `action`, `run`, `origin`, and `keys`, plus the
692
687
  optional fragment metadata described below.
693
688
 
689
+ `links` lists the asset's declared links, grouped by kind: `outgoing` (the
690
+ assets its own `xrefs:`, `supersededBy:`, `contradictedBy:`,
691
+ `currentBeliefRefs:`, wiki `sources:`, `.derived` parent, page links, or
692
+ workflow and task targets name), `incoming` (the assets that name it), and
693
+ `unresolved` (tokens it names that match no indexed asset, as written). Each
694
+ kind is `{ "total": n, "refs": [...] }` with at most 10 refs; `total` counts
695
+ them all. The field is omitted when nothing links either way. Links are read
696
+ from frontmatter and parsed structure at index time, with no model; they do
697
+ not affect search ranking.
698
+
694
699
  Opaque fragment shows and `--context lead` keep `ref` as the canonical parent
695
700
  identity and add
696
701
  `selectedRef`, `parentRef`, one-based `fragmentOrdinal`, `fragmentCount`,
@@ -2513,7 +2518,7 @@ clock, or session-log changes.
2513
2518
 
2514
2519
  `plan.processes` (#947) is the resolved process -> engine -> model routing
2515
2520
  table: one row per improve process (`reflect`, `distill`, `consolidate`,
2516
- `memoryInference`, `graphExtraction`, `extract`, `validation`, `triage`,
2521
+ `memoryInference`, `extract`, `validation`, `triage`,
2517
2522
  `proactiveMaintenance`), plus a `triage.judgment` row when the strategy
2518
2523
  configures a judgment engine. Each row carries `enabled`, the resolved
2519
2524
  `engine`/`model` (llm-backed processes only) and `engineKind`, this process's
@@ -2568,7 +2573,7 @@ field on the result (`result_json` in `improve_runs`, and in the
2568
2573
  `calls`, `failures`, `promptTokens`, `completionTokens`, `totalTokens`,
2569
2574
  `reasoningTokens`, and `totalDurationMs`. `noCalls` lists every LLM-backed
2570
2575
  process (`reflect`, `distill`, `consolidate`, `memoryInference`,
2571
- `graphExtraction`, `extract`, `validation` — not `triage`/`proactiveMaintenance`,
2576
+ `extract`, `validation` — not `triage`/`proactiveMaintenance`,
2572
2577
  which never make an attributable LLM call themselves) the active strategy
2573
2578
  enabled but that ended the run with zero calls, each with a `reason` drawn
2574
2579
  from the existing skip-reason vocabulary: `"engine_unavailable"` (also in
@@ -2706,6 +2711,7 @@ akm proposal list
2706
2711
  akm proposal list --queue team-bundle
2707
2712
  akm proposal list --status pending|accepted|rejected|reverted
2708
2713
  akm proposal list --ref skills/deploy
2714
+ akm proposal list --generator consolidate-pair
2709
2715
  ```
2710
2716
 
2711
2717
  | Flag | Description |
@@ -2714,6 +2720,12 @@ akm proposal list --ref skills/deploy
2714
2720
  | `--status` | Filter by `pending`, `accepted`, `rejected`, or `reverted` |
2715
2721
  | `--ref` | Filter by asset ref. A qualified ref preserves bundle identity; a short ref matches that concept in the selected queue |
2716
2722
  | `--type` | Reserved type filter |
2723
+ | `--generator <name>` | Filter by generator/source (e.g. `reflect`, `distill`, `consolidate-pair`) — the same value `accept`/`reject --generator` take |
2724
+
2725
+ Each retire proposal's `retirement.continuityRisk`, when present, also shows
2726
+ in the default listing (`⚠ continuity-risk` inline) and in `proposal show`'s
2727
+ text output (the specific failing/unverified queries) — see
2728
+ [Retirement continuity](https://github.com/itlackey/akm/blob/main/docs/architecture/improvement.md#retirement-continuity).
2717
2729
 
2718
2730
  Each proposal record carries an optional `confidence` field (0..1) emitted by
2719
2731
  reflect/propose runs. It is recorded for triage and ranking only — there is no
@@ -314,7 +314,7 @@ can select `engine`, `model`, `timeoutMs`, and LLM request overrides:
314
314
  "engine": "fast",
315
315
  "processes": {
316
316
  "reflect": { "llm": { "temperature": 0.2 } },
317
- "graphExtraction": { "model": "qwen3-small" }
317
+ "memoryInference": { "model": "qwen3-small" }
318
318
  }
319
319
  }
320
320
  }
@@ -327,13 +327,6 @@ incompatible engine never falls back to another engine. Built-in strategies
327
327
  are complete presets. User-defined strategies inherit omitted fields from the
328
328
  built-in `default` strategy before applying their own overrides.
329
329
 
330
- Graph extraction also reads `index.graph`. Its `engine`, `model`, `timeoutMs`
331
- and `llm` apply over the strategy-wide values, and `processes.graphExtraction`
332
- overrides them. `processes.graphExtraction.batchSize` and `includeTypes` win
333
- over `index.graph.graphExtractionBatchSize` and `graphExtractionIncludeTypes`;
334
- with neither set, the batch size is 4 and the types are `memory` and
335
- `knowledge`.
336
-
337
330
  `processes.triage.judgment` explicitly controls the optional judgment tier.
338
331
  Use `true` to enable it, `false` to disable it, or an object with `enabled`,
339
332
  `engine`, `model`, `timeoutMs`, and/or `llm` overrides. Existing object values
@@ -848,7 +841,23 @@ profile identities.
848
841
  config that still sets it is simply ignored — it still loads, unvalidated
849
842
  and without warning.
850
843
 
851
- `index.graph.lazyGraphExtraction` is retired in 0.9.17: `akm show` and
852
- `akm curate` no longer extract or queue graph work, and graph extraction runs
853
- only in `akm improve`. A config that still sets it loads; the key is named
854
- once as unknown, and `akm migrate apply` removes it.
844
+ `index.graph.*` and every strategy's `processes.graphExtraction.*` are retired
845
+ in 0.9.17-alpha.9: the LLM entity graph they configured is gone —
846
+ `akm show`'s links come from declared links instead (see `## Strategies`
847
+ above). A config that still sets them loads; each key is named once as
848
+ unknown, and `akm migrate apply` removes it. The built-in `graph-refresh`
849
+ strategy is retired too, but not the same way as an ordinary unknown name:
850
+ naming it via `--strategy` or a task always fails with a message pointing at
851
+ the retirement, even when `improve.strategies["graph-refresh"]` still has a
852
+ leftover override from customizing the built-in (the message names it;
853
+ `akm migrate apply` drops it — a leftover override is never resolved as a new
854
+ custom strategy, which would silently run a full, unplanned improve pass).
855
+ `defaults.improveStrategy: "graph-refresh"` still loads config successfully;
856
+ the refusal happens lazily, when the strategy is actually resolved.
857
+
858
+ `improve.strategies.<name>.processes.consolidate.incrementalSince` and
859
+ `.neighborsPerChanged` are retired in 0.9.17-alpha.9: the consolidate pair
860
+ pass is now the candidate generator, narrowing per initiator through the
861
+ improve ledger rather than a global time window. A config that still sets
862
+ either key loads; each is named once as unknown, and `akm migrate apply`
863
+ removes it.
@@ -199,7 +199,6 @@ the set of types the code actually emits at HEAD (verified against every
199
199
  | `extract_triaged` | The pre-LLM extract triage gate evaluated at least one session | `evaluated`, `passed`, `triagedOut`, `sourceRun` (aggregated) |
200
200
  | `schema_repair_invoked` | The schema-repair pass inside `akm improve` (`runSchemaRepairPass`) attempts to patch missing frontmatter on an asset that failed schema validation. **There is no `akm lint --repair` flag** — `lint` has `--fix`/`--auto-fix`, unrelated to this event | `ref`, outcome |
201
201
  | `proactive_selected` | The proactive-maintenance selector runs (once per `akm improve` run) | `count`, `dueTotal`, `neverReflected` (aggregated) |
202
- | `improve_salience_rank_change` | Bundle-wide rank-change report, from the second improve run onward | `stashSize`, `totalChanged`, `forgettingCandidates`, `topDrops` |
203
202
  | `events_purged` | Old events deleted by improve maintenance (90-day default retention) | `purgedCount`, `retentionDays` |
204
203
  | `improve_runs_purged` | Old `improve_runs` rows deleted by improve maintenance (same retention window as events) | `purgedCount`, `retentionDays` |
205
204
  | `state_db_vacuumed` | state.db was VACUUMed after the retention purge because more than half its pages were free | `pagesBefore`, `pagesAfter`, `freelistRatioBefore` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akm-cli",
3
- "version": "0.9.17-alpha.7",
3
+ "version": "0.9.17-alpha.9",
4
4
  "type": "module",
5
5
  "description": "akm (Agent Knowledge Manager) — a portable, local-first capability library for AI agents. Discover, load, share, and improve reusable skills, scripts, workflows, and knowledge across any shell-capable coding agent, including Claude Code, OpenCode, and Cursor.",
6
6
  "keywords": [
@@ -334,15 +334,6 @@
334
334
  }
335
335
  },
336
336
  "additionalProperties": true
337
- },
338
- "metadataEnhance": {
339
- "type": "object",
340
- "properties": {
341
- "enabled": {
342
- "type": "boolean"
343
- }
344
- },
345
- "additionalProperties": true
346
337
  }
347
338
  },
348
339
  "additionalProperties": {
@@ -401,18 +392,6 @@
401
392
  }
402
393
  },
403
394
  "additionalProperties": true
404
- },
405
- "graphExtractionBatchSize": {
406
- "type": "integer",
407
- "exclusiveMinimum": 0
408
- },
409
- "graphExtractionIncludeTypes": {
410
- "type": "array",
411
- "items": {
412
- "type": "string",
413
- "minLength": 1
414
- },
415
- "minItems": 1
416
395
  }
417
396
  },
418
397
  "additionalProperties": true
@@ -975,13 +954,6 @@
975
954
  "minimum": 1,
976
955
  "maximum": 50
977
956
  },
978
- "incrementalSince": {
979
- "type": "string"
980
- },
981
- "neighborsPerChanged": {
982
- "type": "integer",
983
- "minimum": 1
984
- },
985
957
  "p90ChunkSecondsDefault": {
986
958
  "type": "number",
987
959
  "exclusiveMinimum": 0
@@ -1080,89 +1052,6 @@
1080
1052
  },
1081
1053
  "additionalProperties": true
1082
1054
  },
1083
- "graphExtraction": {
1084
- "type": "object",
1085
- "properties": {
1086
- "engine": {
1087
- "type": "string",
1088
- "maxLength": 63,
1089
- "pattern": "^(?!akm-)[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1090
- },
1091
- "model": {
1092
- "type": "string",
1093
- "minLength": 1
1094
- },
1095
- "llm": {
1096
- "type": "object",
1097
- "properties": {
1098
- "temperature": {
1099
- "type": "number"
1100
- },
1101
- "maxTokens": {
1102
- "type": "integer",
1103
- "exclusiveMinimum": 0
1104
- },
1105
- "supportsJsonSchema": {
1106
- "type": "boolean"
1107
- },
1108
- "extraParams": {
1109
- "type": "object",
1110
- "additionalProperties": {}
1111
- },
1112
- "contextLength": {
1113
- "type": "integer",
1114
- "exclusiveMinimum": 0
1115
- },
1116
- "enableThinking": {
1117
- "type": "boolean"
1118
- },
1119
- "reasoningEffort": {
1120
- "type": "string",
1121
- "minLength": 1
1122
- }
1123
- },
1124
- "additionalProperties": true
1125
- },
1126
- "enabled": {
1127
- "type": "boolean"
1128
- },
1129
- "timeoutMs": {
1130
- "anyOf": [
1131
- {
1132
- "type": "integer",
1133
- "exclusiveMinimum": 0
1134
- },
1135
- {
1136
- "type": "null"
1137
- }
1138
- ]
1139
- },
1140
- "topN": {
1141
- "type": "integer",
1142
- "exclusiveMinimum": 0
1143
- },
1144
- "includeTypes": {
1145
- "type": "array",
1146
- "items": {
1147
- "type": "string",
1148
- "minLength": 1
1149
- },
1150
- "minItems": 1
1151
- },
1152
- "batchSize": {
1153
- "type": "integer",
1154
- "exclusiveMinimum": 0
1155
- },
1156
- "fullScan": {
1157
- "type": "boolean"
1158
- },
1159
- "maxChunksPerAsset": {
1160
- "type": "integer",
1161
- "exclusiveMinimum": 0
1162
- }
1163
- },
1164
- "additionalProperties": true
1165
- },
1166
1055
  "extract": {
1167
1056
  "type": "object",
1168
1057
  "properties": {
@@ -1995,15 +1884,6 @@
1995
1884
  }
1996
1885
  },
1997
1886
  "additionalProperties": true
1998
- },
1999
- "metadataEnhance": {
2000
- "type": "object",
2001
- "properties": {
2002
- "enabled": {
2003
- "type": "boolean"
2004
- }
2005
- },
2006
- "additionalProperties": true
2007
1887
  }
2008
1888
  },
2009
1889
  "additionalProperties": {
@@ -2062,18 +1942,6 @@
2062
1942
  }
2063
1943
  },
2064
1944
  "additionalProperties": true
2065
- },
2066
- "graphExtractionBatchSize": {
2067
- "type": "integer",
2068
- "exclusiveMinimum": 0
2069
- },
2070
- "graphExtractionIncludeTypes": {
2071
- "type": "array",
2072
- "items": {
2073
- "type": "string",
2074
- "minLength": 1
2075
- },
2076
- "minItems": 1
2077
1945
  }
2078
1946
  },
2079
1947
  "additionalProperties": true
@@ -2636,13 +2504,6 @@
2636
2504
  "minimum": 1,
2637
2505
  "maximum": 50
2638
2506
  },
2639
- "incrementalSince": {
2640
- "type": "string"
2641
- },
2642
- "neighborsPerChanged": {
2643
- "type": "integer",
2644
- "minimum": 1
2645
- },
2646
2507
  "p90ChunkSecondsDefault": {
2647
2508
  "type": "number",
2648
2509
  "exclusiveMinimum": 0
@@ -2741,89 +2602,6 @@
2741
2602
  },
2742
2603
  "additionalProperties": true
2743
2604
  },
2744
- "graphExtraction": {
2745
- "type": "object",
2746
- "properties": {
2747
- "engine": {
2748
- "type": "string",
2749
- "maxLength": 63,
2750
- "pattern": "^(?!akm-)[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
2751
- },
2752
- "model": {
2753
- "type": "string",
2754
- "minLength": 1
2755
- },
2756
- "llm": {
2757
- "type": "object",
2758
- "properties": {
2759
- "temperature": {
2760
- "type": "number"
2761
- },
2762
- "maxTokens": {
2763
- "type": "integer",
2764
- "exclusiveMinimum": 0
2765
- },
2766
- "supportsJsonSchema": {
2767
- "type": "boolean"
2768
- },
2769
- "extraParams": {
2770
- "type": "object",
2771
- "additionalProperties": {}
2772
- },
2773
- "contextLength": {
2774
- "type": "integer",
2775
- "exclusiveMinimum": 0
2776
- },
2777
- "enableThinking": {
2778
- "type": "boolean"
2779
- },
2780
- "reasoningEffort": {
2781
- "type": "string",
2782
- "minLength": 1
2783
- }
2784
- },
2785
- "additionalProperties": true
2786
- },
2787
- "enabled": {
2788
- "type": "boolean"
2789
- },
2790
- "timeoutMs": {
2791
- "anyOf": [
2792
- {
2793
- "type": "integer",
2794
- "exclusiveMinimum": 0
2795
- },
2796
- {
2797
- "type": "null"
2798
- }
2799
- ]
2800
- },
2801
- "topN": {
2802
- "type": "integer",
2803
- "exclusiveMinimum": 0
2804
- },
2805
- "includeTypes": {
2806
- "type": "array",
2807
- "items": {
2808
- "type": "string",
2809
- "minLength": 1
2810
- },
2811
- "minItems": 1
2812
- },
2813
- "batchSize": {
2814
- "type": "integer",
2815
- "exclusiveMinimum": 0
2816
- },
2817
- "fullScan": {
2818
- "type": "boolean"
2819
- },
2820
- "maxChunksPerAsset": {
2821
- "type": "integer",
2822
- "exclusiveMinimum": 0
2823
- }
2824
- },
2825
- "additionalProperties": true
2826
- },
2827
2605
  "extract": {
2828
2606
  "type": "object",
2829
2607
  "properties": {
@@ -3585,13 +3363,6 @@
3585
3363
  "minimum": 1,
3586
3364
  "maximum": 50
3587
3365
  },
3588
- "incrementalSince": {
3589
- "type": "string"
3590
- },
3591
- "neighborsPerChanged": {
3592
- "type": "integer",
3593
- "minimum": 1
3594
- },
3595
3366
  "p90ChunkSecondsDefault": {
3596
3367
  "type": "number",
3597
3368
  "exclusiveMinimum": 0
@@ -3614,29 +3385,6 @@
3614
3385
  "type": "integer",
3615
3386
  "minimum": 0
3616
3387
  },
3617
- "topN": {
3618
- "type": "integer",
3619
- "exclusiveMinimum": 0
3620
- },
3621
- "includeTypes": {
3622
- "type": "array",
3623
- "items": {
3624
- "type": "string",
3625
- "minLength": 1
3626
- },
3627
- "minItems": 1
3628
- },
3629
- "batchSize": {
3630
- "type": "integer",
3631
- "exclusiveMinimum": 0
3632
- },
3633
- "fullScan": {
3634
- "type": "boolean"
3635
- },
3636
- "maxChunksPerAsset": {
3637
- "type": "integer",
3638
- "exclusiveMinimum": 0
3639
- },
3640
3388
  "defaultSince": {
3641
3389
  "type": "string",
3642
3390
  "minLength": 1
@@ -4105,13 +3853,6 @@
4105
3853
  "minimum": 1,
4106
3854
  "maximum": 50
4107
3855
  },
4108
- "incrementalSince": {
4109
- "type": "string"
4110
- },
4111
- "neighborsPerChanged": {
4112
- "type": "integer",
4113
- "minimum": 1
4114
- },
4115
3856
  "p90ChunkSecondsDefault": {
4116
3857
  "type": "number",
4117
3858
  "exclusiveMinimum": 0
@@ -4210,89 +3951,6 @@
4210
3951
  },
4211
3952
  "additionalProperties": true
4212
3953
  },
4213
- "graphExtraction": {
4214
- "type": "object",
4215
- "properties": {
4216
- "engine": {
4217
- "type": "string",
4218
- "maxLength": 63,
4219
- "pattern": "^(?!akm-)[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
4220
- },
4221
- "model": {
4222
- "type": "string",
4223
- "minLength": 1
4224
- },
4225
- "llm": {
4226
- "type": "object",
4227
- "properties": {
4228
- "temperature": {
4229
- "type": "number"
4230
- },
4231
- "maxTokens": {
4232
- "type": "integer",
4233
- "exclusiveMinimum": 0
4234
- },
4235
- "supportsJsonSchema": {
4236
- "type": "boolean"
4237
- },
4238
- "extraParams": {
4239
- "type": "object",
4240
- "additionalProperties": {}
4241
- },
4242
- "contextLength": {
4243
- "type": "integer",
4244
- "exclusiveMinimum": 0
4245
- },
4246
- "enableThinking": {
4247
- "type": "boolean"
4248
- },
4249
- "reasoningEffort": {
4250
- "type": "string",
4251
- "minLength": 1
4252
- }
4253
- },
4254
- "additionalProperties": true
4255
- },
4256
- "enabled": {
4257
- "type": "boolean"
4258
- },
4259
- "timeoutMs": {
4260
- "anyOf": [
4261
- {
4262
- "type": "integer",
4263
- "exclusiveMinimum": 0
4264
- },
4265
- {
4266
- "type": "null"
4267
- }
4268
- ]
4269
- },
4270
- "topN": {
4271
- "type": "integer",
4272
- "exclusiveMinimum": 0
4273
- },
4274
- "includeTypes": {
4275
- "type": "array",
4276
- "items": {
4277
- "type": "string",
4278
- "minLength": 1
4279
- },
4280
- "minItems": 1
4281
- },
4282
- "batchSize": {
4283
- "type": "integer",
4284
- "exclusiveMinimum": 0
4285
- },
4286
- "fullScan": {
4287
- "type": "boolean"
4288
- },
4289
- "maxChunksPerAsset": {
4290
- "type": "integer",
4291
- "exclusiveMinimum": 0
4292
- }
4293
- },
4294
- "additionalProperties": true
4295
- },
4296
3954
  "extract": {
4297
3955
  "type": "object",
4298
3956
  "properties": {
@@ -1,15 +0,0 @@
1
- {
2
- "description": "Full-corpus graph extraction pass — rebuilds graph relationships across all stash files. Disables all other sub-processes. Use via `akm improve --strategy graph-refresh` or the embedded `graph-refresh-weekly` task.",
3
- "processes": {
4
- "reflect": { "enabled": false },
5
- "distill": { "enabled": false },
6
- "consolidate": { "enabled": false },
7
- "memoryInference": { "enabled": false },
8
- "graphExtraction": { "enabled": true, "fullScan": true },
9
- "extract": { "enabled": false },
10
- "triage": { "enabled": false },
11
- "validation": { "enabled": false },
12
- "proactiveMaintenance": { "enabled": false }
13
- },
14
- "sync": { "enabled": true, "push": true }
15
- }