@c4a/context-cli 0.7.14 → 0.7.16

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 (54) hide show
  1. package/browser/diagrams.js +2826 -0
  2. package/cli.js +2082 -1830
  3. package/indexers/bundles/context-code-indexer/LICENSE.third-party +25 -0
  4. package/indexers/bundles/context-code-indexer/references/diagram-behavior-examples.md +647 -0
  5. package/indexers/bundles/context-code-indexer/references/diagram-topology-examples.md +387 -0
  6. package/indexers/bundles/context-code-indexer/references/diagrams.md +347 -0
  7. package/indexers/bundles/context-markdown-indexer/LICENSE.third-party +25 -0
  8. package/indexers/bundles/context-markdown-indexer/references/diagram-behavior-examples.md +647 -0
  9. package/indexers/bundles/context-markdown-indexer/references/diagram-topology-examples.md +387 -0
  10. package/indexers/bundles/context-markdown-indexer/references/diagrams.md +347 -0
  11. package/indexers/bundles/context-note-indexer/LICENSE.third-party +25 -0
  12. package/indexers/bundles/context-note-indexer/references/diagram-behavior-examples.md +647 -0
  13. package/indexers/bundles/context-note-indexer/references/diagram-topology-examples.md +387 -0
  14. package/indexers/bundles/context-note-indexer/references/diagrams.md +347 -0
  15. package/indexers/bundles/context-sessions-indexer/LICENSE.third-party +25 -0
  16. package/indexers/bundles/context-sessions-indexer/references/diagram-behavior-examples.md +647 -0
  17. package/indexers/bundles/context-sessions-indexer/references/diagram-topology-examples.md +387 -0
  18. package/indexers/bundles/context-sessions-indexer/references/diagrams.md +347 -0
  19. package/indexers/contracts/profile-contract.json +245 -245
  20. package/indexers/release-manifest.json +57 -9
  21. package/package.json +13 -12
  22. package/parserEntryWorker.js +32 -0
  23. package/plugins/VERSION +1 -1
  24. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  25. package/plugins/codex/.codex-plugin/plugin.json +2 -2
  26. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  27. package/plugins/skills/context-code-indexer/LICENSE.third-party +25 -0
  28. package/plugins/skills/context-code-indexer/references/diagram-behavior-examples.md +647 -0
  29. package/plugins/skills/context-code-indexer/references/diagram-topology-examples.md +387 -0
  30. package/plugins/skills/context-code-indexer/references/diagrams.md +347 -0
  31. package/plugins/skills/context-markdown-indexer/LICENSE.third-party +25 -0
  32. package/plugins/skills/context-markdown-indexer/references/diagram-behavior-examples.md +647 -0
  33. package/plugins/skills/context-markdown-indexer/references/diagram-topology-examples.md +387 -0
  34. package/plugins/skills/context-markdown-indexer/references/diagrams.md +347 -0
  35. package/plugins/skills/context-note-indexer/LICENSE.third-party +25 -0
  36. package/plugins/skills/context-note-indexer/references/diagram-behavior-examples.md +647 -0
  37. package/plugins/skills/context-note-indexer/references/diagram-topology-examples.md +387 -0
  38. package/plugins/skills/context-note-indexer/references/diagrams.md +347 -0
  39. package/plugins/skills/context-sessions-indexer/LICENSE.third-party +25 -0
  40. package/plugins/skills/context-sessions-indexer/references/diagram-behavior-examples.md +647 -0
  41. package/plugins/skills/context-sessions-indexer/references/diagram-topology-examples.md +387 -0
  42. package/plugins/skills/context-sessions-indexer/references/diagrams.md +347 -0
  43. package/providers/context/manifest.json +22 -22
  44. package/providers/context/provider.yaml +1 -1
  45. package/providers/context/resources/dialogue/knowledge-review.md +14 -6
  46. package/providers/context/resources/manuals/guides/knowledge-updates.md +6 -0
  47. package/providers/context/resources/manuals/guides/lark-resources.md +38 -0
  48. package/providers/context/resources/manuals/guides/package-outputs.md +36 -2
  49. package/providers/context/resources/procedures/document-capture.md +7 -0
  50. package/providers/context/resources/procedures/knowledge-review.md +26 -5
  51. package/providers/context/resources/procedures/knowledge-updates.md +6 -0
  52. package/providers/context/resources/procedures/production-requirements.md +23 -0
  53. package/providers/context/resources/procedures/runtime-event-delivery.md +7 -1
  54. package/providers/context/resources/procedures/work-start-report.md +72 -0
@@ -99,8 +99,14 @@ The website uses a full-width VitePress theme with system fonts, compact navigat
99
99
  a wide reading area and a smaller article outline. It starts in
100
100
  light mode regardless of the operating system; an explicit reader choice is
101
101
  remembered in browser storage. Search runs locally, without a search service.
102
- Mermaid renders in the browser with a restrained theme; invalid diagrams retain
103
- their source instead of blocking publication. Code samples and raw HTML are
102
+ Mermaid renders in the browser using the website theme, with fit, original-size,
103
+ zoom, full-screen and source controls. Controls appear on hover or keyboard focus
104
+ (and remain visible on touch devices). Layout and source/copy actions are on the
105
+ left, sizing actions on the right. Source view replaces the diagram. Flowcharts default to ELK and can switch to Dagre without changing the article. Offline Review reports use the same
106
+ viewer and include its resources only when a candidate contains Mermaid.
107
+ Article provenance initially shows ten sources; Show more reveals the full list.
108
+ Invalid diagrams and diagrams with embedded image/HTML resources retain their
109
+ source with a rendering notice instead of blocking publication. Code samples and raw HTML are
104
110
  displayed as content, not executed as Vue components or scripts.
105
111
 
106
112
  The accepted `src/knowledge-map.yaml` controls sidebar organization. Entries
@@ -507,3 +513,31 @@ result instead of guessing a hostname. No new workspace configuration is needed.
507
513
  The address is an access hint, not proof of publication or content freshness.
508
514
  Query Skills use it only to append related links in the final summary, with no
509
515
  network probes or version checks. Packages without the map work as before.
516
+
517
+ ### Shared color theme
518
+
519
+ Website builds create `src/site/theme.json` with the current default light and
520
+ dark palettes if the file is missing. Edit this optional JSON file to customize
521
+ all websites and offline Review reports in the workspace. It is configuration,
522
+ not a generated HTML file: builds never overwrite existing values. Deleting it
523
+ restores built-in defaults; Review does not need the file or an existing website
524
+ build. The next website build recreates it.
525
+
526
+ Each `light`/`dark` object supports `brand`, `accent`, `background`, `surface`,
527
+ `text`, `mutedText`, and `border`. Values are hexadecimal CSS colors (`#RGB`,
528
+ `#RRGGBB`, or `#RRGGBBAA`). Partial objects inherit missing default colors. Invalid
529
+ JSON or colors produce a configuration error identifying the optional file.
530
+
531
+ A package may override these colors through `kbPackage({ site: { theme: {
532
+ light: { brand: "#6750a4" }, dark: { brand: "#d0bcff" }
533
+ } } })`. Precedence is built-in defaults, workspace file, then `site.theme`.
534
+ A Review with one website package uses that package's overrides. With multiple
535
+ website packages it uses the shared workspace theme, without selecting an
536
+ arbitrary package. New/Modify/approve/reject status colors remain independent.
537
+
538
+ The compiler projects tokens into VitePress and standalone Review CSS. Mermaid
539
+ reads the same resolved colors. Changes to the theme invalidate website build
540
+ receipts. Arbitrary extension CSS is not copied into Review; custom components
541
+ can consume `--context-brand`, `--context-accent`, `--context-background`,
542
+ `--context-surface`, `--context-text`, `--context-muted-text`, and
543
+ `--context-border` rather than hard-coding colors.
@@ -62,3 +62,10 @@ are available while another capture remains pending. Keep unresolved sources in
62
62
  `pending_scopes`; do not cite their unavailable snapshots. The Route returns to
63
63
  pending capture after the active production/review work, before delivery completes.
64
64
  This does not mark failed captures as complete or waive source-read authorization.
65
+
66
+ For image-heavy tasks, reuse the image choice in the work-start report. When
67
+ source descriptors already show more than 30 distinct images across the task,
68
+ resolve that question before bulk media acquisition. If counts emerge only from
69
+ capture, stop further image processing to confirm the choice during planning.
70
+ Use explicit image/GIF reference-only policies for exclusions; never substitute
71
+ temporary signed media URLs as permanent public image links.
@@ -23,7 +23,7 @@ authorization.
23
23
  Without explicit session-managed authority:
24
24
 
25
25
  - open the report returned by the route;
26
- - let the user publish or durably omit candidates;
26
+ - let the user approve, reject, or request revisions to candidates;
27
27
  - apply the exact copied review code through the returned review apply command; and
28
28
  - retain the exact report reference and reviewed scope in this conversation for
29
29
  the final completion summary.
@@ -58,10 +58,24 @@ Use the explicit retirement preview after replacement delivery, and repair its
58
58
  reported incoming references. Navigation removal alone does not remove content
59
59
  from search or packages. A renamed menu does not require a new article identity.
60
60
 
61
- The Review UI names the internal `rejected` decision **Omit** because it is a
62
- durable content decision, not a request to rewrite the page. When a page needs
63
- changes, leave that page pending and use `context revise` so the owning
64
- Author or Composer produces a new Candidate through the same lifecycle.
61
+ The report opens on a change overview, with the existing navigation and an
62
+ expected workspace file tree. The CLI collects approved titles, navigation and
63
+ candidate bodies; it renders their changes mechanically. Do not write a second
64
+ summary in place of candidate content or rewrite the HTML. New workspaces show
65
+ all candidate pages as New. Existing unchanged pages show titles only; changed
66
+ blocks and previous text remain available for comparison. Navigation without a
67
+ Git baseline is labelled as current context, not an invented historical diff.
68
+
69
+ Approve accepts a candidate. Reject durably omits it; it does not request a
70
+ rewrite or retire an approved article. Entering revision instructions requests
71
+ repair and locks the other choices for that page until cancelled. Bulk approval
72
+ requires confirmation and affects only undecided pages. When the report contains
73
+ new top-level categories, the dialog lists them and requires explicit
74
+ acknowledgment plus an eight-second wait before confirmation is enabled.
75
+ New descendant pages under an existing category do not trigger this extra step. The copied code binds
76
+ the candidate scope, exact content, displayed baseline and revision instructions;
77
+ the CLI validates these together before writing any decision. Follow returned
78
+ repair commands, then obtain review of the repaired candidates.
65
79
 
66
80
  Use the affected page's `Repair` command in the review material, replacing only
67
81
  the correction instruction. Current candidates are repaired within this batch;
@@ -132,3 +146,10 @@ only its own titles. When revising or merging, preserve useful existing detail
132
146
  instead of replacing it with generic lookup advice. Repair affected pages or
133
147
  use the current planning route for missing topics. These are Agent judgments,
134
148
  not minimum article counts, a new coverage ledger or an extra CLI approval gate.
149
+
150
+ For image-heavy work, show the selected task image policy and actual retained,
151
+ converted and placeholder counts from the candidates and capture reports. Explain
152
+ any fallback affecting reader understanding. Reuse the planning choice; do not
153
+ turn image handling into another per-article approval. Missing image content must
154
+ not be presented as read or fully covered. Build-only media fallbacks are reported
155
+ in the build receipt and do not rewrite approved evidence.
@@ -325,6 +325,12 @@ input without that flag to continue. A preview is not approval and does not make
325
325
  a stale revision valid.
326
326
 
327
327
  Review can approve checked pages while leaving repair pages pending. The HTML
328
+ report shows the current site navigation, candidate changes and expected file
329
+ paths. Unchanged approved pages retain their titles with omitted bodies. Enter
330
+ revision instructions directly in the report; the copied code and following
331
+ instruction lines must be returned together without edits. The CLI binds them to
332
+ the reviewed content and baseline and returns repair commands while leaving
333
+ those pages pending. Changed candidates require a fresh review. The HTML
328
334
  review code includes pending positions; managed Review provides the same current
329
335
  scope as a JSON template. Send decisions only for pages actually reviewed. Omit
330
336
  means a durable exclusion, not repair. Partial approval alone does not build.
@@ -59,3 +59,26 @@ contains `path`, `question`, `sources` and `batch`, with optional `brief` and
59
59
  command to prepare those tasks without a separate investigation-plan submission.
60
60
  This does not approve the report or permit writing before user feedback.
61
61
  When targets are unclear, use normal preparation and investigate the skeletons.
62
+
63
+ ## Configured coverage and the current request
64
+
65
+ `src/indexers.yaml` describes the workspace's standing coverage configuration.
66
+ Source registration or presence in that configuration does not, by itself, mean
67
+ that the source needs investigation again for this request. For a bounded document
68
+ addition or revision, identify its reader task and actual evidence dependencies;
69
+ reuse existing approved articles and applicable completed work. Do not broaden a
70
+ document task to unrelated code repositories merely because they are configured.
71
+
72
+ In planning and completion reports distinguish:
73
+ - work requested and completed in this task;
74
+ - specific content gaps established by reading, with their affected reader tasks;
75
+ - source/environment failures, and whether this task depends on those sources.
76
+
77
+ A `pending_scopes` count is workflow state, not a count of missing topics,
78
+ repositories to rewrite, or articles to produce. A Git spawn/baseline-read error
79
+ means source availability could not be checked; it does not prove that existing
80
+ knowledge is absent or obsolete. If unrelated configured sources remain blocked,
81
+ say so as a workflow limitation rather than announcing new investigation work.
82
+ Do not delete configured sources, invent exclusions, clear stage files, or mark
83
+ unread material investigated to make the current task appear complete. Follow the
84
+ returned resolution action when the workflow still needs a decision.
@@ -22,12 +22,18 @@ remove the Agent host's network approval boundary. Satisfy that boundary by
22
22
  requesting host network escalation in the tool invocation that executes the
23
23
  flush, not by turning it into another conversational approval gate.
24
24
 
25
- Before requesting network access, run:
25
+ When first requesting host network access, or diagnosing an unknown destination, run:
26
26
 
27
27
  ```bash
28
28
  context logs plan --format json
29
29
  ```
30
30
 
31
+ When delivery is already authorized and the fixed destination and data policy are
32
+ unchanged, execute `context logs flush --format json` directly. A prior plan
33
+ receipt is not a CLI prerequisite. Do not repeatedly plan or ask for consent on
34
+ retries. `invalid_batch` from the command bridge is local protocol rejection before
35
+ HTTP; repair/update the compatible sink client rather than retrying network access.
36
+
31
37
  The plan is the audit contract. It reports the canonical workspace outbox,
32
38
  normally `.tmp/context-runtime/logs/outbox.jsonl`, the event count and kinds,
33
39
  the allowlisted property names, the sink command, and the resolved HTTP
@@ -78,6 +78,42 @@ Estimate timing or savings only when supported by measurements and conditions.
78
78
  For a small addition to an existing site, describe only the affected reading
79
79
  position; reuse its layout and delivery choices instead of proposing them again.
80
80
 
81
+ ## Confirm image handling for large tasks
82
+
83
+ Before bulk image interpretation or article writing, count distinct image resources
84
+ across the current authorized task (all its sources, not each document or batch).
85
+ Use source descriptors and capture reports; do not download images just to count
86
+ or recount unchanged snapshots. If the count exceeds 30 and the user has not
87
+ already selected a policy for this task, include one image-handling question in
88
+ this planning confirmation, in the user's language:
89
+
90
+ - **Process all (default): intelligent conversion and inclusion.** Read images as
91
+ needed; retain useful images or convert suitable content into text, tables or
92
+ diagrams. Conversion is an Agent writing decision supported by actual reading.
93
+ - **Include all:** retain the image presentation; automatic compression and safe
94
+ processing still apply. An image that cannot be processed within limits becomes
95
+ a visible placeholder, not an unlimited original-byte delivery promise.
96
+ - **Include none (placeholders):** skip image bytes and interpretation; preserve
97
+ placeholders and source document links. Do not claim image-content coverage.
98
+
99
+ Default means the recommended option, not consent after silence. Wait for this
100
+ choice together with the existing plan confirmation; never add per-image or
101
+ per-batch approval. Reuse an explicit choice and any GIF exclusions throughout
102
+ retries. Persist the choice in the existing plan/requirements. If discovery only
103
+ reveals the threshold after initial capture, ask before further image work and
104
+ writing; do not restart completed capture solely to show this question.
105
+
106
+ Report the known count and unknown resources separately. If the scale was unknown
107
+ and later crosses 30, ask once at that point. At content Review summarize retained,
108
+ converted and placeholder outcomes with reasons, including automatic fallbacks;
109
+ do not ask the same policy question again. A later material policy change belongs
110
+ in the existing plan and normal Review, not a separate approval protocol.
111
+
112
+ Use `captureLark.resources.images: reference-only` for excluded images and
113
+ `resources.gifs: reference-only` for an explicit GIF exclusion. Both inclusion
114
+ choices use normal capture and package optimization; the Agent controls semantic
115
+ conversion. See the Lark resource guide for configuration and limitations.
116
+
81
117
  ## Review navigation changes in context
82
118
 
83
119
  Read the knowledge-updates guidance on preserving established navigation intent.
@@ -119,3 +155,39 @@ Reports, plans, skills, candidates, confirmation and transaction process stay in
119
155
  `.tmp`. Only formal results and necessary long-term source/requirement decisions
120
156
  belong in non-temporary storage. On a new machine, start new production from those
121
157
  formal inputs, without requiring the previous report or production session.
158
+
159
+ ## Inputs for the content Review report
160
+
161
+ Keep approved article titles, paths, reading order and intended placements in the
162
+ normal article plan and knowledge map. Complete their existing structure workflow
163
+ before presenting content Review. The CLI collects those inputs and the actual
164
+ candidate bodies to render the report; do not ask an Agent to fabricate a site
165
+ snapshot, infer approved content from titles, or maintain a second report model.
166
+ For a new workspace, plan the initial categories through the same workflow; the
167
+ report will label its candidate pages New. If it shows unplaced articles, finish
168
+ those placements rather than presenting the fallback as an approved new category.
169
+ Content Review displays changes; it does not replace specific authorization for
170
+ a top-level navigation change already required by this procedure.
171
+
172
+ ## Configured coverage and the current request
173
+
174
+ `src/indexers.yaml` describes the workspace's standing coverage configuration.
175
+ Source registration or presence in that configuration does not, by itself, mean
176
+ that the source needs investigation again for this request. For a bounded document
177
+ addition or revision, identify its reader task and actual evidence dependencies;
178
+ reuse existing approved articles and applicable completed work. Do not broaden a
179
+ document task to unrelated code repositories merely because they are configured.
180
+
181
+ In planning and completion reports distinguish:
182
+ - work requested and completed in this task;
183
+ - specific content gaps established by reading, with their affected reader tasks;
184
+ - source/environment failures, and whether this task depends on those sources.
185
+
186
+ A `pending_scopes` count is workflow state, not a count of missing topics,
187
+ repositories to rewrite, or articles to produce. A Git spawn/baseline-read error
188
+ means source availability could not be checked; it does not prove that existing
189
+ knowledge is absent or obsolete. If unrelated configured sources remain blocked,
190
+ say so as a workflow limitation rather than announcing new investigation work.
191
+ Do not delete configured sources, invent exclusions, clear stage files, or mark
192
+ unread material investigated to make the current task appear complete. Follow the
193
+ returned resolution action when the workflow still needs a decision.