pi-scout-research 0.2.0 → 0.2.1

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 (3) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +98 -84
  3. package/package.json +9 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.2.0 — Unreleased
3
+ ## 0.2.1 — 2026-11-06
4
+
5
+ - Link npm metadata to the public GitHub source, issues and README.
6
+ - Add a public source history anchored to the exact previously published 0.2.0 payload, with existing offline controls and model-free CI.
7
+ - Update installation examples. Research, worker, disclosure and permission behavior is unchanged.
8
+
9
+ ## 0.2.0 — 2026-11-06
4
10
 
5
11
  - Retain exact private brief references on the active Pi branch instead of restoring whole brief bodies; resolve only bounded requested excerpts with current destination and disclosure checks.
6
12
  - Add an optional trusted peer resolver and Daddy dashboard contribution without requiring Bookie, Principal or Daddy, granting authority, or adding model calls during restoration/display.
package/README.md CHANGED
@@ -1,84 +1,98 @@
1
- # pi-scout-research
2
-
3
- Scout provides a portable Pi research skill, source snapshots and private briefs. Its optional Docker worker lets an agent delegate a public research question through one tool, `scout_research`. Released under MIT.
4
-
5
- The skill does not depend on Principal, pi-daddy or skill-harness. Those packages can use Scout through normal Pi tool discovery and governance. The connector declares Pi 1.4.0 or later and Node 24 or later. Retained scripted native checks cover exact Pi 1.4.0 and 1.5.0 on Node 24.19.0; they do not qualify every later Pi version or live model quality. The worker pins Pi 1.4.0, Node 24.19.0 and pi-web-access 0.38.0.
6
-
7
- ## Use from Pi
8
-
9
- With Pi and Docker running on the same computer, install Scout:
10
-
11
- ```bash
12
- pi install npm:pi-scout-research@0.2.0
13
- ```
14
-
15
- Start Pi, or `/reload` an idle Pi session after installation, and ask Scout a public research question. No environment variables or separate build command are required. On first use, Scout finds Docker, prepares its worker from the installed package and shows progress. Later requests reuse the matching image. An update rebuilds only when Docker build inputs change. Concurrent sessions share preparation instead of launching duplicate builds.
16
-
17
- The first preparation downloads the pinned Node/Pi/web runtime and npm dependencies, which can take a few minutes. Docker must already be installed and running; Scout does not install Docker, start shared services or alter system settings. If Docker is unavailable, the tool explains what is missing. It does not fall back to host web access. The npm package contains the complete build context and lockfile; neither a Git checkout nor OpenShell is needed. No Docker image is published separately.
18
-
19
- Choose your normal Pi model. Ask, for example: “Use Scout to compare the current Node.js support policies for these two public libraries. Give me the relevant sources and uncertainty.” No special skill sequence is required. Scout captures the parent's selected model and thinking level at dispatch. Each model turn uses Pi's native provider/authentication support in the parent and consumes its normal usage allowance. Credentials stay outside the container.
20
-
21
- The tool accepts only `question` and `scope`. Send public material only. It starts a worker, returns a sourced answer and saves a private brief under `~/.pi-scout-research/briefs/`. The result includes the saved path, exact reference and cleanup confirmation. `PI_SCOUT_BRIEFS` can select another operator-owned root. Current-branch references are restored into Pi context after reload or compaction; brief bodies are retrieved only when needed. Notes from abandoned branches are not selected. Briefs are evidence, not approval or training labels.
22
-
23
- WSL automatically uses Docker Desktop's Windows client when the Linux client is missing or is the WSL integration placeholder. If an existing Docker client cannot reach its daemon, Scout reports that problem rather than choosing another daemon. Advanced operator overrides remain available:
24
-
25
- ```bash
26
- export PI_SCOUT_DOCKER_PATH='/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe'
27
- export PI_SCOUT_DOCKER_HOST='npipe:////./pipe/dockerDesktopLinuxEngine'
28
- ```
29
-
30
- `PI_SCOUT_WORKER_MODE=offline` explicitly disables worker web access; public mode is the default. `PI_SCOUT_WORKER_IMAGE=sha256:...` selects an operator-built image and disables automatic image selection; an invalid or missing override is reported, never silently replaced. These settings must be present in Pi's environment. Normal users need none of them. Optional prewarming is available through `npx --yes --package=pi-scout-research@0.2.0 scout-worker-build`, but first-use preparation performs the same work automatically.
31
-
32
- Governed children need Scout in their selected resources and permission for `scout_research`; no Docker command or image parameter is supplied by the model. A child Pi with the tool loaded owns its worker lifecycle.
33
-
34
- The optional `scout-public` skill supplies a narrow pi-daddy agent definition declaring only `scout_research`. After loading resources, `/grants init` can discover it; approve that capability through the existing operator flow. A Principal coordinator can delegate public research to `scout-public` and give its returned evidence to Investigate, Architect or Decide. Existing Principal definitions keep their current tool restrictions. A role from another skill package can use the same tool or wrapper; no Principal dependency is introduced.
35
-
36
- ## Modes and limits
37
-
38
- - `public`: standard Docker isolation with outbound networking. Keyless Exa discovery and public HTTPS fetch use the pinned reference engine. No browser login, cookies, remote extraction, JavaScript rendering or additional model summary is configured. Search output is a lead; important claims need an original source.
39
- - `offline`: Docker networking is disabled. Optional `PI_SCOUT_CATALOG` supplies selected source snapshots. The model connection still runs through the parent, so selected inputs go to its provider. Offline refers to worker web access, not provider confidentiality.
40
-
41
- Both use an immutable image ID, UID 1000, read-only root, no host mounts or Docker socket, dropped capabilities, no new privileges, 1 GiB RAM without additional container swap, 2 CPUs and 128 PIDs. Two 128 MiB temporary filesystems hold ephemeral work. One worker may run per parent Pi session. A 20-minute process watchdog and bounded transport prevent indefinitely running or unbounded-output workers; no time/token instructions are added to the model prompt. Snapshots total at most 1 MiB, with at most 131,072 characters per source. Large, authenticated or dynamic pages may be unavailable.
42
-
43
- The parent checks the effective Docker configuration, validates source identities and brief citations, waits for settlement and verifies removal before returning success. Cancellation attempts owned-container cleanup. Unconfirmed cleanup or an unsettled model request blocks another launch in that parent session. A forcibly killed parent can leave a stopped container after the worker's independent watchdog expires. Cleanup is not crash-proof.
44
-
45
- **Public mode does not guarantee that every outbound URL, redirect or query is approved.** It does not enforce confidentiality of supplied text. OpenShell is not required. Strict protected online mode remains separate and unqualified. See [SECURITY.md](SECURITY.md).
46
-
47
- ## Portable skill and local sources
48
-
49
- `/skill:research` works without Docker using available Pi research tools. Installing the package alone does not isolate host tools. The `scout_research` tool always uses its Docker worker and prepares it automatically; Docker errors do not silently enable host web access.
50
-
51
- The local extension provides `research_sources`, `research_read` and `research_brief`. Prepare a catalog with `npx --yes --package=pi-scout-research@0.2.0 scout-catalog approved-sources.json new-catalog.json`. The input is an explicit array:
52
-
53
- ```json
54
- [{"id":"release","title":"Release notes","path":"./release-notes.txt","locator":"local:release-notes.txt"}]
55
- ```
56
-
57
- Only those UTF-8 files are read, relative to the manifest. The new output must not exist. No recursive scan or network access occurs. Set `PI_SCOUT_CATALOG` before Pi starts. Source IDs and SHA-256 hashes identify exact snapshots; matching quotations do not establish semantic truth.
58
-
59
- The separate experimental host adapter accepts `PI_SCOUT_WEB_PROFILE` with exact configured URLs via pi-web-access. The worker does not use it. It does not enforce whole-process networking. Historical offline/reference/dynamic fixtures and new worker checks have separate evidence; neither establishes live model quality.
60
- # Compact evidence references
61
-
62
- New local and Docker research briefs are retained as exact, content-addressed
63
- references. Restoring the active branch inserts the reference rather than the
64
- whole brief. `scout_brief_read` retrieves only a requested bounded UTF-8 excerpt;
65
- the reference is not semantic approval and does not establish source freshness.
66
- New briefs are limited to 24,000 serialized UTF-8 bytes. Excerpts default to
67
- 8,000 bytes and may be paged without splitting a Unicode character.
68
-
69
- The standalone reader accepts references recorded on the active branch at
70
- their original effective Pi model destination. It rejects missing, changed or
71
- unauthorized evidence. Other trusted extensions can resolve an exact reference
72
- through `scout:resolve:v1`, with current owner/destination checks and an explicit
73
- in-process authorization callback for cross-session disclosure. A model cannot
74
- provide that callback. No Bookie, Daddy or Principal installation is required.
75
-
76
- Older briefs remain unchanged; their legacy bodies are no longer automatically
77
- restored. They require explicit inspection before reuse because they do not
78
- carry the new destination binding. This does not remove earlier tool messages,
79
- assistant prose or compaction summaries from Pi history.
80
-
81
- When Daddy is present, Scout contributes observed worker and retained-brief
82
- status to its terminal dashboard. This optional display connection creates no
83
- model calls, timer, dispatch authority or additional evidence store.
84
-
1
+ # pi-scout-research
2
+
3
+ Scout provides a portable Pi research skill, source snapshots and private briefs. Its optional Docker worker lets an agent delegate a public research question through one tool, `scout_research`. Released under MIT.
4
+
5
+ The skill does not depend on Principal, pi-daddy or skill-harness. Those packages can use Scout through normal Pi tool discovery and governance. The connector declares Pi 1.4.0 or later and Node 24 or later. Retained scripted native checks cover exact Pi 1.4.0 and 1.5.0 on Node 24.19.0; they do not qualify every later Pi version or live model quality. The worker pins Pi 1.4.0, Node 24.19.0 and pi-web-access 0.38.0.
6
+
7
+ ## Use from Pi
8
+
9
+ With Pi and Docker running on the same computer, install Scout:
10
+
11
+ ```bash
12
+ pi install npm:pi-scout-research@0.2.1
13
+ ```
14
+
15
+ Start Pi, or `/reload` an idle Pi session after installation, and ask Scout a public research question. No environment variables or separate build command are required. On first use, Scout finds Docker, prepares its worker from the installed package and shows progress. Later requests reuse the matching image. An update rebuilds only when Docker build inputs change. Concurrent sessions share preparation instead of launching duplicate builds.
16
+
17
+ The first preparation downloads the pinned Node/Pi/web runtime and npm dependencies, which can take a few minutes. Docker must already be installed and running; Scout does not install Docker, start shared services or alter system settings. If Docker is unavailable, the tool explains what is missing. It does not fall back to host web access. The npm package contains the complete build context and lockfile; neither a Git checkout nor OpenShell is needed. No Docker image is published separately.
18
+
19
+ Choose your normal Pi model. Ask, for example: “Use Scout to compare the current Node.js support policies for these two public libraries. Give me the relevant sources and uncertainty.” No special skill sequence is required. Scout captures the parent's selected model and thinking level at dispatch. Each model turn uses Pi's native provider/authentication support in the parent and consumes its normal usage allowance. Credentials stay outside the container.
20
+
21
+ The tool accepts only `question` and `scope`. Send public material only. It starts a worker, returns a sourced answer and saves a private brief under `~/.pi-scout-research/briefs/`. The result includes the saved path, exact reference and cleanup confirmation. `PI_SCOUT_BRIEFS` can select another operator-owned root. Current-branch references are restored into Pi context after reload or compaction; brief bodies are retrieved only when needed. Notes from abandoned branches are not selected. Briefs are evidence, not approval or training labels.
22
+
23
+ WSL automatically uses Docker Desktop's Windows client when the Linux client is missing or is the WSL integration placeholder. If an existing Docker client cannot reach its daemon, Scout reports that problem rather than choosing another daemon. Advanced operator overrides remain available:
24
+
25
+ ```bash
26
+ export PI_SCOUT_DOCKER_PATH='/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe'
27
+ export PI_SCOUT_DOCKER_HOST='npipe:////./pipe/dockerDesktopLinuxEngine'
28
+ ```
29
+
30
+ `PI_SCOUT_WORKER_MODE=offline` explicitly disables worker web access; public mode is the default. `PI_SCOUT_WORKER_IMAGE=sha256:...` selects an operator-built image and disables automatic image selection; an invalid or missing override is reported, never silently replaced. These settings must be present in Pi's environment. Normal users need none of them. Optional prewarming is available through `npx --yes --package=pi-scout-research@0.2.1 scout-worker-build`, but first-use preparation performs the same work automatically.
31
+
32
+ Governed children need Scout in their selected resources and permission for `scout_research`; no Docker command or image parameter is supplied by the model. A child Pi with the tool loaded owns its worker lifecycle.
33
+
34
+ The optional `scout-public` skill supplies a narrow pi-daddy agent definition declaring only `scout_research`. After loading resources, `/grants init` can discover it; approve that capability through the existing operator flow. A Principal coordinator can delegate public research to `scout-public` and give its returned evidence to Investigate, Architect or Decide. Existing Principal definitions keep their current tool restrictions. A role from another skill package can use the same tool or wrapper; no Principal dependency is introduced.
35
+
36
+ ## Modes and limits
37
+
38
+ - `public`: standard Docker isolation with outbound networking. Keyless Exa discovery and public HTTPS fetch use the pinned reference engine. No browser login, cookies, remote extraction, JavaScript rendering or additional model summary is configured. Search output is a lead; important claims need an original source.
39
+ - `offline`: Docker networking is disabled. Optional `PI_SCOUT_CATALOG` supplies selected source snapshots. The model connection still runs through the parent, so selected inputs go to its provider. Offline refers to worker web access, not provider confidentiality.
40
+
41
+ Both use an immutable image ID, UID 1000, read-only root, no host mounts or Docker socket, dropped capabilities, no new privileges, 1 GiB RAM without additional container swap, 2 CPUs and 128 PIDs. Two 128 MiB temporary filesystems hold ephemeral work. One worker may run per parent Pi session. A 20-minute process watchdog and bounded transport prevent indefinitely running or unbounded-output workers; no time/token instructions are added to the model prompt. Snapshots total at most 1 MiB, with at most 131,072 characters per source. Large, authenticated or dynamic pages may be unavailable.
42
+
43
+ The parent checks the effective Docker configuration, validates source identities and brief citations, waits for settlement and verifies removal before returning success. Cancellation attempts owned-container cleanup. Unconfirmed cleanup or an unsettled model request blocks another launch in that parent session. A forcibly killed parent can leave a stopped container after the worker's independent watchdog expires. Cleanup is not crash-proof.
44
+
45
+ **Public mode does not guarantee that every outbound URL, redirect or query is approved.** It does not enforce confidentiality of supplied text. OpenShell is not required. Strict protected online mode remains separate and unqualified. See [SECURITY.md](SECURITY.md).
46
+
47
+ ## Portable skill and local sources
48
+
49
+ `/skill:research` works without Docker using available Pi research tools. Installing the package alone does not isolate host tools. The `scout_research` tool always uses its Docker worker and prepares it automatically; Docker errors do not silently enable host web access.
50
+
51
+ The local extension provides `research_sources`, `research_read` and `research_brief`. Prepare a catalog with `npx --yes --package=pi-scout-research@0.2.1 scout-catalog approved-sources.json new-catalog.json`. The input is an explicit array:
52
+
53
+ ```json
54
+ [{"id":"release","title":"Release notes","path":"./release-notes.txt","locator":"local:release-notes.txt"}]
55
+ ```
56
+
57
+ Only those UTF-8 files are read, relative to the manifest. The new output must not exist. No recursive scan or network access occurs. Set `PI_SCOUT_CATALOG` before Pi starts. Source IDs and SHA-256 hashes identify exact snapshots; matching quotations do not establish semantic truth.
58
+
59
+ The separate experimental host adapter accepts `PI_SCOUT_WEB_PROFILE` with exact configured URLs via pi-web-access. The worker does not use it. It does not enforce whole-process networking. Historical offline/reference/dynamic fixtures and new worker checks have separate evidence; neither establishes live model quality.
60
+ # Compact evidence references
61
+
62
+ New local and Docker research briefs are retained as exact, content-addressed
63
+ references. Restoring the active branch inserts the reference rather than the
64
+ whole brief. `scout_brief_read` retrieves only a requested bounded UTF-8 excerpt;
65
+ the reference is not semantic approval and does not establish source freshness.
66
+ New briefs are limited to 24,000 serialized UTF-8 bytes. Excerpts default to
67
+ 8,000 bytes and may be paged without splitting a Unicode character.
68
+
69
+ The standalone reader accepts references recorded on the active branch at
70
+ their original effective Pi model destination. It rejects missing, changed or
71
+ unauthorized evidence. Other trusted extensions can resolve an exact reference
72
+ through `scout:resolve:v1`, with current owner/destination checks and an explicit
73
+ in-process authorization callback for cross-session disclosure. A model cannot
74
+ provide that callback. No Bookie, Daddy or Principal installation is required.
75
+
76
+ Older briefs remain unchanged; their legacy bodies are no longer automatically
77
+ restored. They require explicit inspection before reuse because they do not
78
+ carry the new destination binding. This does not remove earlier tool messages,
79
+ assistant prose or compaction summaries from Pi history.
80
+
81
+ When Daddy is present, Scout contributes observed worker and retained-brief
82
+ status to its terminal dashboard. This optional display connection creates no
83
+ model calls, timer, dispatch authority or additional evidence store.
84
+
85
+
86
+
87
+ ## Source and development
88
+
89
+ The MIT source is at [mojomanyana/pi-scout-research](https://github.com/mojomanyana/pi-scout-research).
90
+ Version tags identify release source. Version 0.2.1 adds repository links and
91
+ release metadata; research, worker and disclosure behavior are unchanged from
92
+ 0.2.0. The immutable 0.2.0 source anchor preserves the previously published
93
+ package bytes.
94
+
95
+ See the [offline test instructions](https://github.com/mojomanyana/pi-scout-research/blob/main/tests/README.md)
96
+ and [source provenance](https://github.com/mojomanyana/pi-scout-research/blob/main/docs/SOURCE-PROVENANCE.md).
97
+ The tests use synthetic Docker/model responses; running them does not make a
98
+ model request or start Docker.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-scout-research",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Portable evidence-led research with private, branch-aware briefs for Pi",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,5 +54,13 @@
54
54
  "publishConfig": {
55
55
  "access": "public",
56
56
  "registry": "https://registry.npmjs.org/"
57
+ },
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "git+https://github.com/mojomanyana/pi-scout-research.git"
61
+ },
62
+ "homepage": "https://github.com/mojomanyana/pi-scout-research#readme",
63
+ "bugs": {
64
+ "url": "https://github.com/mojomanyana/pi-scout-research/issues"
57
65
  }
58
66
  }