@n8r/surface 0.0.0-stage → 0.1.0-experimental.5
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/LICENSE +202 -0
- package/LICENSE-DOCS +395 -0
- package/LICENSING.md +36 -0
- package/README.md +207 -2
- package/dist/activity.d.ts +16 -0
- package/dist/activity.js +44 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +412 -0
- package/dist/codec.d.ts +6 -0
- package/dist/codec.js +56 -0
- package/dist/codex.d.ts +72 -0
- package/dist/codex.js +526 -0
- package/dist/contracts.d.ts +235 -0
- package/dist/contracts.js +1 -0
- package/dist/cyclonedx-schemas/bom-1.7.schema.json +6700 -0
- package/dist/cyclonedx-schemas/cryptography-defs.schema.json +576 -0
- package/dist/cyclonedx-schemas/jsf-0.82.schema.json +240 -0
- package/dist/cyclonedx-schemas/spdx.schema.json +786 -0
- package/dist/cyclonedx-validation.d.ts +1 -0
- package/dist/cyclonedx-validation.js +45 -0
- package/dist/html.d.ts +5 -0
- package/dist/html.js +74 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +5 -0
- package/dist/notes.d.ts +52 -0
- package/dist/notes.js +184 -0
- package/dist/portable.d.ts +10 -0
- package/dist/portable.js +71 -0
- package/dist/recent.d.ts +9 -0
- package/dist/recent.js +71 -0
- package/dist/revisions.d.ts +2 -0
- package/dist/revisions.js +60 -0
- package/dist/settings.d.ts +23 -0
- package/dist/settings.js +100 -0
- package/dist/setup.d.ts +9 -0
- package/dist/setup.js +161 -0
- package/dist/skill-artifacts-cli.d.ts +1 -0
- package/dist/skill-artifacts-cli.js +13 -0
- package/dist/skill-artifacts.d.ts +15 -0
- package/dist/skill-artifacts.js +184 -0
- package/dist/skill-cyclonedx.d.ts +26 -0
- package/dist/skill-cyclonedx.js +214 -0
- package/dist/skill-presentation.d.ts +10 -0
- package/dist/skill-presentation.js +108 -0
- package/dist/skill-surface-cli.d.ts +1 -0
- package/dist/skill-surface-cli.js +37 -0
- package/dist/skill-surface-store.d.ts +7 -0
- package/dist/skill-surface-store.js +126 -0
- package/dist/source-tools.d.ts +102 -0
- package/dist/source-tools.js +201 -0
- package/dist/startup.d.ts +7 -0
- package/dist/startup.js +74 -0
- package/dist/surface-bom.d.ts +73 -0
- package/dist/surface-bom.js +139 -0
- package/dist/surface-draft.d.ts +22 -0
- package/dist/surface-draft.js +112 -0
- package/dist/surface-instructions.d.ts +3 -0
- package/dist/surface-instructions.js +32 -0
- package/dist/surface-overview.d.ts +15 -0
- package/dist/surface-overview.js +86 -0
- package/dist/surface-store.d.ts +34 -0
- package/dist/surface-store.js +213 -0
- package/dist/surface-view.d.ts +3 -0
- package/dist/surface-view.js +50 -0
- package/dist/validate.d.ts +4 -0
- package/dist/validate.js +482 -0
- package/docs/n8r-surface/README.md +133 -0
- package/docs/n8r-surface/cli-bundles.md +72 -0
- package/docs/n8r-surface/codex-research-transcript.md +51 -0
- package/docs/n8r-surface/codex-research-verification.md +176 -0
- package/docs/n8r-surface/command-outcomes.md +711 -0
- package/docs/n8r-surface/contracts.md +220 -0
- package/docs/n8r-surface/critical-path.md +184 -0
- package/docs/n8r-surface/design.md +289 -0
- package/docs/n8r-surface/first-use-access.md +143 -0
- package/docs/n8r-surface/first-use-overview.md +262 -0
- package/docs/n8r-surface/getting-started.md +74 -0
- package/docs/n8r-surface/guided-journey-verification.md +137 -0
- package/docs/n8r-surface/host-contract.md +176 -0
- package/docs/n8r-surface/implementation-decisions.md +96 -0
- package/docs/n8r-surface/instance-first-research.md +209 -0
- package/docs/n8r-surface/npm-distribution.md +107 -0
- package/docs/n8r-surface/npm-release.md +315 -0
- package/docs/n8r-surface/product-direction.md +327 -0
- package/docs/n8r-surface/recreation-handoff.md +117 -0
- package/docs/n8r-surface/researcher-discovery.md +157 -0
- package/docs/n8r-surface/researcher-prepared-check.md +117 -0
- package/docs/n8r-surface/researcher-reconciliation-trial.md +149 -0
- package/docs/n8r-surface/researcher-repository-check.md +95 -0
- package/docs/n8r-surface/researcher-skeleton-check.md +84 -0
- package/docs/n8r-surface/researcher-skill-verification.md +725 -0
- package/docs/n8r-surface/researcher-skill.md +309 -0
- package/docs/n8r-surface/researcher-vault.md +134 -0
- package/docs/n8r-surface/save-reopen-transcript.md +211 -0
- package/docs/n8r-surface/save-reopen-verification.md +152 -0
- package/docs/n8r-surface/security-assurance-strategy.md +267 -0
- package/docs/n8r-surface/skill-bom-verification.md +142 -0
- package/docs/n8r-surface/skill-cyclonedx-verification.md +144 -0
- package/docs/n8r-surface/skill-cyclonedx.md +85 -0
- package/docs/n8r-surface/skill-manual.md +129 -0
- package/docs/n8r-surface/skill-surface-artifacts.md +234 -0
- package/docs/n8r-surface/skill-usefulness-verification.md +135 -0
- package/docs/n8r-surface/skill-workspace-automation.md +359 -0
- package/docs/n8r-surface/startup-human-check.md +172 -0
- package/docs/n8r-surface/startup-verification.md +161 -0
- package/docs/n8r-surface/startup.md +151 -0
- package/docs/n8r-surface/surface-description-contract.md +224 -0
- package/docs/n8r-surface/surface-descriptions.md +173 -0
- package/docs/n8r-surface/surface-relationships.md +231 -0
- package/docs/n8r-surface/surface-revisions-transcript.md +552 -0
- package/docs/n8r-surface/surface-revisions-verification.md +161 -0
- package/docs/n8r-surface/tester-candidate.md +158 -0
- package/docs/n8r-surface/vault-setup-verification.md +210 -0
- package/docs/n8r-surface/verification.md +117 -0
- package/docs/n8r-surface/versioning.md +172 -0
- package/docs/n8r-surface/workspace-human-check.md +101 -0
- package/docs/n8r-surface/workspace-installation.md +68 -0
- package/docs/n8r-surface/workspace-verification.md +350 -0
- package/docs/n8r-surface/workspace.md +83 -0
- package/examples/researcher/README.md +100 -0
- package/examples/researcher/composed.surface.json +430 -0
- package/examples/researcher/composed.surface.yaml +283 -0
- package/examples/researcher/cyclonedx/configured/README.md +7 -0
- package/examples/researcher/cyclonedx/configured/manifest.json +10 -0
- package/examples/researcher/cyclonedx/configured/mapping.json +323 -0
- package/examples/researcher/cyclonedx/configured/surface-records.json +1275 -0
- package/examples/researcher/cyclonedx/configured/surface.cdx.json +79 -0
- package/examples/researcher/descriptions/README.md +29 -0
- package/examples/researcher/descriptions/bound-r1.json +141 -0
- package/examples/researcher/descriptions/bound-r2.json +153 -0
- package/examples/researcher/descriptions/capability.json +167 -0
- package/examples/researcher/descriptions/research-r1.json +153 -0
- package/examples/researcher/descriptions/research-r2.json +157 -0
- package/examples/researcher/descriptions/sources.md +24 -0
- package/examples/researcher/harbor-r1.research.html +193 -0
- package/examples/researcher/harbor-r2.research.html +226 -0
- package/examples/researcher/lumen-manual-edit.pending.html +271 -0
- package/examples/researcher/lumen-r1.research.html +271 -0
- package/examples/researcher/lumen-r2.research.html +280 -0
- package/examples/researcher/relationships/README.md +34 -0
- package/examples/researcher/relationships/bound-r1.json +346 -0
- package/examples/researcher/relationships/bound-r2.json +358 -0
- package/examples/researcher/relationships/capability.json +325 -0
- package/examples/researcher/relationships/config/assistant.env.example +4 -0
- package/examples/researcher/relationships/research-r1.json +300 -0
- package/examples/researcher/relationships/research-r2.json +304 -0
- package/examples/researcher/relationships/sources.md +38 -0
- package/examples/researcher/sources/harbor-api.md +16 -0
- package/examples/researcher/sources/harbor-auth.md +8 -0
- package/examples/researcher/sources/lumen-guide.md +28 -0
- package/examples/researcher/sources/lumen-settings.md +9 -0
- package/examples/researcher/surface-bom/README.md +17 -0
- package/examples/researcher/surface-bom/initial.cdx.json +188 -0
- package/package.json +45 -4
- package/plugins/n8r-surface/.codex-plugin/plugin.json +31 -0
- package/plugins/n8r-surface/LICENSE +202 -0
- package/plugins/n8r-surface/LICENSE-DOCS +395 -0
- package/plugins/n8r-surface/LICENSING.md +39 -0
- package/plugins/n8r-surface/assets/icon.svg +5 -0
- package/plugins/n8r-surface/plugin.json +27 -0
- package/plugins/n8r-surface/skills/research/SKILL.md +163 -0
- package/plugins/n8r-surface/skills/research/agents/openai.yaml +4 -0
- package/plugins/n8r-surface/skills/research/references/artifacts.md +152 -0
- package/plugins/n8r-surface/skills/research/references/cyclonedx.md +207 -0
- package/plugins/n8r-surface/skills/research/references/discovery-map.md +178 -0
- package/plugins/n8r-surface/skills/research/references/examples/bound-r1.json +346 -0
- package/plugins/n8r-surface/skills/research/references/examples/capability.json +325 -0
- package/plugins/n8r-surface/skills/research/references/examples/research-r1.json +300 -0
- package/plugins/n8r-surface/skills/research/references/examples/surface.cdx.json +188 -0
- package/plugins/n8r-surface/skills/research/references/first-use-access.md +97 -0
- package/plugins/n8r-surface/skills/research/references/first-use-overview.md +101 -0
- package/plugins/n8r-surface/skills/research/references/instance-first.md +125 -0
- package/plugins/n8r-surface/skills/research/references/model-meanings.md +55 -0
- package/plugins/n8r-surface/skills/research/references/skeleton-surface.md +105 -0
- package/plugins/n8r-surface/skills/research/references/working-notes.md +121 -0
- package/plugins/n8r-surface/skills/research/references/workspace.md +89 -0
- package/plugins/n8r-surface/skills/research/scripts/THIRD-PARTY-NOTICES.txt +273 -0
- package/plugins/n8r-surface/skills/research/scripts/artifacts.mjs +8348 -0
- package/plugins/n8r-surface/skills/research/scripts/cyclonedx.mjs +28113 -0
- package/plugins/n8r-surface/skills/research/scripts/surface.mjs +27800 -0
- package/plugins/n8r-surface/skills/research/scripts/workspace.mjs +120 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# n8r-surface Researcher: start an investigation
|
|
2
|
+
|
|
3
|
+
For candidate 0.1.14, use the [first-use overview check](first-use-overview.md).
|
|
4
|
+
The [0.1.13 tester guide](tester-candidate.md) retains pinned baseline installation
|
|
5
|
+
and host boundaries; use the exact 0.1.14 PR revision for the new check. Installation versions and
|
|
6
|
+
branch references below describe historical rehearsals, not the current candidate.
|
|
7
|
+
|
|
8
|
+
**Previously accepted standalone skill 0.1.11:** produces working notes and checked
|
|
9
|
+
Capability/Bound Surface bundles using the host's source access and conversation.
|
|
10
|
+
The skill and [accepted two-product verification](skill-usefulness-verification.md)
|
|
11
|
+
are merged in PRs #54 and #58. It needs neither the `n8r-surface` executable nor
|
|
12
|
+
an npm release. Related to [#17](https://github.com/injectionator/n8r-surface/issues/17).
|
|
13
|
+
|
|
14
|
+
The team installation below pins merged commit
|
|
15
|
+
[`5eed2ac9a31933caa2ae306e4b407e327d147bf7`](https://github.com/injectionator/n8r-surface/commit/5eed2ac9a31933caa2ae306e4b407e327d147bf7).
|
|
16
|
+
Its plugin files are identical to the accepted trial revision `8e4cb3a`.
|
|
17
|
+
This is an identified repository distribution; no separate skill 0.1.11 tag or
|
|
18
|
+
GitHub Release has been published. Tagging, uploading and publication require
|
|
19
|
+
separate authorization. Skill delivery remains first; CLI and Labs work is deferred.
|
|
20
|
+
|
|
21
|
+
**Verified host:** Codex CLI 0.166.0 app-server with ChatGPT sign-in and
|
|
22
|
+
`gpt-6-astra`; the accepted artifact trial used Node.js 26.13.0. Checked artifacts
|
|
23
|
+
and workspace helpers require Node.js 22, 24 or 26 and persistent filesystem
|
|
24
|
+
access. ChatGPT desktop/Work picker, invocation and uninstall/reinstall acceptance
|
|
25
|
+
remain pending. A CLI installation result does not establish desktop availability.
|
|
26
|
+
|
|
27
|
+
The primary result is a partial **AI Surface graph**, with evidence and unresolved
|
|
28
|
+
connections. It is not an inventory of every application feature or setting.
|
|
29
|
+
Configuration matters when it establishes or explains a relevant node, edge,
|
|
30
|
+
route, data flow or authority boundary. The bundled
|
|
31
|
+
[discovery guide](../../plugins/n8r-surface/skills/research/references/discovery-map.md)
|
|
32
|
+
covers available source combinations, reusable product knowledge and comparison.
|
|
33
|
+
See [discovery, comparison and live-inspection examples](researcher-discovery.md)
|
|
34
|
+
for those broader tasks; the short first trial below uses authentication.
|
|
35
|
+
For a compact security brief and explicit reconciliation, use the
|
|
36
|
+
[Skeleton Surface walkthrough](researcher-skeleton-check.md). This provisional
|
|
37
|
+
Markdown profile adds no validated structured-output contract.
|
|
38
|
+
|
|
39
|
+
For workspace-only setup and recognition, use the
|
|
40
|
+
[workspace contract](workspace.md), [isolated candidate installation](workspace-installation.md)
|
|
41
|
+
and [short human check](workspace-human-check.md). The workspace helper requires
|
|
42
|
+
Node.js 22, 24 or 26 and a persistent local filesystem. Desktop workspace
|
|
43
|
+
acceptance is pending; a cloud-only chat cannot perform local setup.
|
|
44
|
+
|
|
45
|
+
## Install or update 0.1.11
|
|
46
|
+
|
|
47
|
+
Prerequisites: Git, Codex CLI 0.166.0 and network access to GitHub. These commands
|
|
48
|
+
change the selected Codex home's plugin registration and cache. Research uses your
|
|
49
|
+
existing ChatGPT sign-in; installation itself needs no inference credentials.
|
|
50
|
+
No manual clone, npm install or build of n8r-surface is needed.
|
|
51
|
+
|
|
52
|
+
For an existing installation, first record its source and version:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
codex plugin list --marketplace n8r-surface --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
When replacing an earlier Git or local marketplace registration, remove only this
|
|
59
|
+
marketplace registration before running the pinned installation below:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
codex plugin marketplace remove n8r-surface --json
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This removes the marketplace snapshot, not research saved outside the plugin cache.
|
|
66
|
+
Skip removal for a first installation. A commit-pinned marketplace stays pinned;
|
|
67
|
+
`marketplace upgrade` does not select a newer commit. Use this remove/add procedure
|
|
68
|
+
with the next approved revision when deliberately updating. Keep the old source/ref
|
|
69
|
+
if you will need to restore it. Refreshing the app alone does not update the snapshot.
|
|
70
|
+
|
|
71
|
+
From any directory:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
codex plugin marketplace add injectionator/n8r-surface --ref 5eed2ac9a31933caa2ae306e4b407e327d147bf7 --json
|
|
75
|
+
codex plugin add n8r-surface@n8r-surface --json
|
|
76
|
+
codex plugin list --marketplace n8r-surface --json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Expected: each command exits 0; the list has exactly one installed/enabled
|
|
80
|
+
`n8r-surface@n8r-surface`, version `0.1.11`. The installation path varies.
|
|
81
|
+
For a rehearsal that leaves your active installation alone, use the temporary
|
|
82
|
+
`CODEX_HOME` procedure in [isolated installation](workspace-installation.md#isolated-maintainer-installation),
|
|
83
|
+
substituting the pinned revision and expected version above. That page's 0.1.9
|
|
84
|
+
results are historical.
|
|
85
|
+
|
|
86
|
+
## RESEARCH-01: investigate and continue
|
|
87
|
+
|
|
88
|
+
1. **Check the installation.** Complete the installation above and verify 0.1.11.
|
|
89
|
+
Use a local Codex chat with access to the selected checkout and writable notes
|
|
90
|
+
folder. Work-mode trials remain subject to the separate
|
|
91
|
+
[human acceptance](researcher-skill-verification.md#remaining-work-mode-acceptance).
|
|
92
|
+
2. **Open your source.** Start a local chat with your LibreChat folder selected.
|
|
93
|
+
In Work, select **n8r-surface Researcher** via `@`; the qualified skill is
|
|
94
|
+
`n8r-surface:research`. Refresh/restart the app if the installed version is
|
|
95
|
+
missing. The host must actually read the checkout; naming a path in a cloud
|
|
96
|
+
chat does not supply its files.
|
|
97
|
+
3. **Ask one bounded question:**
|
|
98
|
+
|
|
99
|
+
> Use n8r-surface Researcher to investigate authentication in this LibreChat
|
|
100
|
+
> checkout. Explain the components and configuration choices, cite the files
|
|
101
|
+
> you read, and distinguish supported options from my selected setup. Save
|
|
102
|
+
> working notes in your default research folder, show me where they are,
|
|
103
|
+
> and ask the next useful question.
|
|
104
|
+
|
|
105
|
+
Expect a source revision, an explanation with file/line evidence, unanswered
|
|
106
|
+
questions and a saved Markdown note. Supported options are not your selected
|
|
107
|
+
deployment, and reading source does not verify a running integration.
|
|
108
|
+
4. **Open the saved note.** The default on a local filesystem is
|
|
109
|
+
`~/Documents/n8r-surface/research/librechat/authentication-001.md`.
|
|
110
|
+
The Researcher shows the resolved absolute destination before saving and
|
|
111
|
+
provides an openable link after reading it back. Existing files get the next
|
|
112
|
+
unused number. You can request another folder. A host without persistent local
|
|
113
|
+
file access must say so and provide a download or text; that does not pass the
|
|
114
|
+
local-save check.
|
|
115
|
+
5. **Answer, then continue.** Answer the Researcher's actual question or correct
|
|
116
|
+
one finding. Ask it to save a successor. Expect `authentication-002.md` (or
|
|
117
|
+
the next unused number), the dated human decision separated from source
|
|
118
|
+
evidence, and the first note unchanged. In a fresh chat with the same source
|
|
119
|
+
access and skill selected, provide that successor and ask:
|
|
120
|
+
|
|
121
|
+
> Continue this research from the saved note. Check the source revision,
|
|
122
|
+
> retain my decisions and unresolved questions, and investigate the next
|
|
123
|
+
> useful gap. Save a successor and show me the result.
|
|
124
|
+
|
|
125
|
+
Wording, source revision, findings, date and file number may vary. Missing access,
|
|
126
|
+
invented citations, a missing saved file, overwritten earlier notes or a lost human
|
|
127
|
+
decision are failures. Independently opening the files is the readback check;
|
|
128
|
+
an agent rehearsal is separate from human acceptance. No service is started and
|
|
129
|
+
the source checkout should remain unchanged. Keep the notes after the trial;
|
|
130
|
+
plugin removal does not delete them.
|
|
131
|
+
|
|
132
|
+
**State X:** installed skill, readable identified checkout, and a writable notes
|
|
133
|
+
folder. **Input Y:** the prompt above, followed by an actual human answer and a
|
|
134
|
+
fresh-chat continuation. **Outcome Z:** a useful explanation and preserved,
|
|
135
|
+
readable successor notes with source evidence, choices and gaps. See
|
|
136
|
+
[observed results and remaining limits](researcher-skill-verification.md).
|
|
137
|
+
|
|
138
|
+
These checks cover working notes. Skill 0.1.11 also provides the separate
|
|
139
|
+
[checked artifact workflow](skill-surface-artifacts.md); Lab adaptation remains
|
|
140
|
+
outside this repository. RESEARCH-01 does not establish the
|
|
141
|
+
complete installed-command E2E-01/E2E-02 cases.
|
|
142
|
+
|
|
143
|
+
## Package and standards
|
|
144
|
+
|
|
145
|
+
The canonical source is [the plugin folder](../../plugins/n8r-surface/).
|
|
146
|
+
It contains one `skills/research/SKILL.md`, bundled references, optional
|
|
147
|
+
OpenAI skill metadata, licence files and an icon. It has no MCP server, hooks,
|
|
148
|
+
installer scripts, embedded credentials or separate model connection.
|
|
149
|
+
|
|
150
|
+
The [Agent Skills specification](https://agentskills.io/specification) defines
|
|
151
|
+
`SKILL.md`, required `name`/`description` frontmatter and relative resources.
|
|
152
|
+
The [OpenAI skill guide](https://learn.chatgpt.com/docs/build-skills) distinguishes
|
|
153
|
+
local skill folders from distributable plugins. Follow
|
|
154
|
+
[plugin packaging](https://developers.openai.com/plugins/build/plugins) for
|
|
155
|
+
repository marketplaces and host-specific metadata. Reviewed 4 November 2026.
|
|
156
|
+
These are packaging contracts; host behavior still needs its own rehearsal.
|
|
157
|
+
|
|
158
|
+
- [plugin.json](../../plugins/n8r-surface/plugin.json) uses Agent Plugins 1.0.0.
|
|
159
|
+
- [.codex-plugin/plugin.json](../../plugins/n8r-surface/.codex-plugin/plugin.json)
|
|
160
|
+
is the compatibility manifest used by the verified Codex CLI 0.166.0. Keep
|
|
161
|
+
identity, version and presentation metadata aligned with the portable manifest.
|
|
162
|
+
Both use the same skill files; no second instruction copy is maintained.
|
|
163
|
+
- [The repository marketplace](../../.agents/plugins/marketplace.json) exposes
|
|
164
|
+
`n8r-surface@n8r-surface` as available, without forcing installation.
|
|
165
|
+
- Plugin and skill version `0.1.11` identify this experimental skill distribution. Increment
|
|
166
|
+
them when changing distributed instructions; record the Git revision and
|
|
167
|
+
installed file digest with test results. This is separate from the npm version.
|
|
168
|
+
|
|
169
|
+
Keep the skill self-contained: installation copies it away from this checkout.
|
|
170
|
+
Bundled references must work there. Instructions use CC-BY-4.0; metadata, icons
|
|
171
|
+
and tooling use Apache-2.0. The package includes the repository's licence texts
|
|
172
|
+
and [licensing explanation](../../LICENSING.md).
|
|
173
|
+
|
|
174
|
+
## Maintainer installation from a local candidate
|
|
175
|
+
|
|
176
|
+
Use this route only when developing the plugin itself. Use Codex CLI 0.166.0;
|
|
177
|
+
other host versions need their own verification. Record `codex --version`
|
|
178
|
+
and `git rev-parse HEAD`. If this marketplace is already registered from GitHub,
|
|
179
|
+
run `codex plugin marketplace remove n8r-surface` before changing its source to
|
|
180
|
+
the local checkout. The CLI rejects that source change otherwise. This removes
|
|
181
|
+
the marketplace registration/snapshot, not research notes. From this repository root:
|
|
182
|
+
|
|
183
|
+
```sh
|
|
184
|
+
codex plugin marketplace add . --json
|
|
185
|
+
codex plugin add n8r-surface@n8r-surface --json
|
|
186
|
+
codex plugin list --marketplace n8r-surface --json
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Expected: each command exits 0. The installed list contains exactly one
|
|
190
|
+
`n8r-surface@n8r-surface`, version `0.1.11`, installed and enabled. The installation
|
|
191
|
+
path varies by computer. `alreadyAdded: true` is fine on a repeated marketplace
|
|
192
|
+
registration. Do not register a second copy of the skill in `.agents/skills`.
|
|
193
|
+
|
|
194
|
+
If the earlier 0.1.0 candidate is installed, remove its old package ID once:
|
|
195
|
+
|
|
196
|
+
```sh
|
|
197
|
+
codex plugin remove n8r-researcher@n8r-surface --json
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
The renamed package replaces that candidate; saved research stays in place.
|
|
201
|
+
|
|
202
|
+
For the pending ChatGPT desktop acceptance trial, open Plugins and select the **n8r-surface** source. Verify
|
|
203
|
+
**n8r-surface Researcher** is installed. Refresh/restart the app if the new marketplace
|
|
204
|
+
or version is absent, as the packaging guide requires. Then start a fresh Work
|
|
205
|
+
chat. Loading instructions in this development chat is not this acceptance test.
|
|
206
|
+
|
|
207
|
+
The repository installation above is sufficient for a trial. A public Plugins
|
|
208
|
+
Directory listing requires a separate
|
|
209
|
+
[submission and publication](https://developers.openai.com/plugins/deploy/submission)
|
|
210
|
+
decision; it is not necessary for this repository test.
|
|
211
|
+
|
|
212
|
+
## LOAD-01: install, invoke, remove, reinstall
|
|
213
|
+
|
|
214
|
+
Use the prepared installation above. Record the desktop app version and selected
|
|
215
|
+
Work environment. The host must have access to the two synthetic documents
|
|
216
|
+
[lumen-guide.md](../../examples/researcher/sources/lumen-guide.md) and
|
|
217
|
+
[lumen-settings.md](../../examples/researcher/sources/lumen-settings.md), through
|
|
218
|
+
attachments or explicitly selected local source access. A local path by itself
|
|
219
|
+
is not access in a cloud chat.
|
|
220
|
+
|
|
221
|
+
1. In a **fresh Work chat**, type `@` and select the plugin's
|
|
222
|
+
`n8r-surface:research` skill (display name **n8r-surface Researcher**). Ask:
|
|
223
|
+
|
|
224
|
+
> Research Lumen Desk from these two documents for an AI Surface Model
|
|
225
|
+
> description. Identify the components and configuration choices, show evidence
|
|
226
|
+
> and gaps, and ask the next question that would help me choose a setup.
|
|
227
|
+
> Save working research notes that I can reopen.
|
|
228
|
+
|
|
229
|
+
Expected: the skill identifies version `0.1.11`, reads the two actual documents,
|
|
230
|
+
cites evidence and saves a readable note outside the plugin cache. Independently
|
|
231
|
+
open that note. Both conflicting batch maxima (10 and 25) and the unknown model
|
|
232
|
+
version must survive; optional features must not become user selections. The
|
|
233
|
+
note is not a validated `n8r.research/0.1` artefact. A version announcement alone
|
|
234
|
+
does not prove the packaged instructions or sources were used; retain the
|
|
235
|
+
visible invocation/tool evidence and verify the resulting content.
|
|
236
|
+
2. Record the note's path/download and content digest when available. In the
|
|
237
|
+
plugin browser select **Uninstall plugin**, or run:
|
|
238
|
+
|
|
239
|
+
```sh
|
|
240
|
+
codex plugin remove n8r-surface@n8r-surface --json
|
|
241
|
+
codex plugin list --marketplace n8r-surface --json
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Expected: exit 0, no installed entry for this plugin. The marketplace may still
|
|
245
|
+
offer it for installation. Do not remove other skills or the saved research.
|
|
246
|
+
3. Start another **fresh Work chat**. Check that this skill is absent from the
|
|
247
|
+
selector and installed-plugin list. Do not paste its instructions into that
|
|
248
|
+
chat. Confirm the saved note still opens unchanged. Do not use an old chat's
|
|
249
|
+
memory of the skill as an unload test: uninstall does not erase its history.
|
|
250
|
+
4. Reinstall using the same `codex plugin add` command. In a new Work chat, verify
|
|
251
|
+
exactly one skill entry appears and invoke it again against the same sources.
|
|
252
|
+
Supply the earlier note when testing continuation. Retain a new output file;
|
|
253
|
+
do not overwrite the first note. Verify version, source identity and retained
|
|
254
|
+
evidence. A prompt that never loaded the installed skill is not a pass.
|
|
255
|
+
|
|
256
|
+
Any missing selector entry after install, duplicate installation, wrong version,
|
|
257
|
+
fabricated source access, missing save/readback or changed user note is a failure
|
|
258
|
+
or blocker to investigate. Do not count a CLI list result as a Work-mode invocation
|
|
259
|
+
or unload result. Record the actual stage reached in [verification](researcher-skill-verification.md).
|
|
260
|
+
|
|
261
|
+
For cleanup after testing, remove this plugin using the command above. Optionally
|
|
262
|
+
run `codex plugin marketplace remove n8r-surface` to remove this marketplace source.
|
|
263
|
+
Keep user research files. Reinstallation is reversible; cleanup is separate from
|
|
264
|
+
publishing or deleting the source repository.
|
|
265
|
+
|
|
266
|
+
## Prepare a shareable ZIP
|
|
267
|
+
|
|
268
|
+
From this repository root with the pinned revision available locally:
|
|
269
|
+
|
|
270
|
+
```sh
|
|
271
|
+
n8r_skill_zip=$(mktemp -d)
|
|
272
|
+
git archive --format=zip --output="$n8r_skill_zip/n8r-surface-0.1.11.zip" 5eed2ac9a31933caa2ae306e4b407e327d147bf7:plugins/n8r-surface
|
|
273
|
+
python3 -m zipfile -l "$n8r_skill_zip/n8r-surface-0.1.11.zip"
|
|
274
|
+
shasum -a 256 "$n8r_skill_zip/n8r-surface-0.1.11.zip"
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Expected: exit 0; the archive has both manifests, one skill with its references, synthetic shape examples, workspace/artifact helpers
|
|
278
|
+
and third-party notice
|
|
279
|
+
and OpenAI metadata, the icon and licence files. It contains no Git history,
|
|
280
|
+
source-repository research data, credentials or node_modules. The output directory
|
|
281
|
+
varies. Archive only the committed plugin subtree so paused/untracked work cannot
|
|
282
|
+
enter the package. Uploading or publishing the ZIP remains a separate action.
|
|
283
|
+
|
|
284
|
+
## Installation rehearsal — 9 November 2026
|
|
285
|
+
|
|
286
|
+
Codex CLI 0.166.0 on macOS installed the pinned merged revision from GitHub in a
|
|
287
|
+
fresh temporary Codex home. A separate temporary home installed 0.1.8 at
|
|
288
|
+
`3effc41bf7e8466651722b7b4c64035f862b1901`, then exercised the documented
|
|
289
|
+
marketplace removal and pinned add/install/list sequence. All commands exited 0;
|
|
290
|
+
each final list contained one installed/enabled 0.1.11 entry. All 20 installed
|
|
291
|
+
files matched the pinned plugin subtree byte-for-byte. A synthetic research note
|
|
292
|
+
outside the cache remained unchanged during replacement. The prepared ZIP's 20
|
|
293
|
+
files also matched that subtree exactly.
|
|
294
|
+
|
|
295
|
+
Raw command receipts and file comparisons remain in the private verification
|
|
296
|
+
vault. The active host installation was unchanged. This verifies repository
|
|
297
|
+
installation, replacement and ZIP preparation; it adds no inference, desktop
|
|
298
|
+
lifecycle or multi-component research acceptance. The accepted research evidence
|
|
299
|
+
remains the [8 November trial](skill-usefulness-verification.md).
|
|
300
|
+
|
|
301
|
+
## Checked artifacts in 0.1.11
|
|
302
|
+
|
|
303
|
+
The skill now supports standalone Capability/Bound JSON, research HTML and a
|
|
304
|
+
brief through bundled resources. See the [artifact task and human
|
|
305
|
+
verification](skill-surface-artifacts.md) for prerequisites, privacy limits,
|
|
306
|
+
revision behavior and evidence. The [accepted two-product trial](skill-usefulness-verification.md)
|
|
307
|
+
covers Capability, Bound and fresh-session revision on bounded LibreChat and Open
|
|
308
|
+
WebUI source packs. It does not establish a live deployment or the proposed
|
|
309
|
+
incremental LibreChat + Atlas + inference-service demonstration.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Local AI Surface vault
|
|
2
|
+
|
|
3
|
+
The vault is a local working directory for AI Surface research. Keep research
|
|
4
|
+
notes, intermediate artifacts and saved Surface descriptions here. Its location
|
|
5
|
+
is chosen on each machine and can sit outside the `n8r-surface` repository.
|
|
6
|
+
|
|
7
|
+
## Where things go
|
|
8
|
+
|
|
9
|
+
| Folder inside the vault | Contents |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `research/<source-slug>/` | Numbered research notes and continued investigations. |
|
|
12
|
+
| `artifacts/<source-slug>/` | Intermediate outputs, drafts and supporting evidence. |
|
|
13
|
+
| `surfaces/<source-slug>/` | Saved Surface descriptions and their revisions. |
|
|
14
|
+
| `examples/` | Optional local copies of the prepared test source material. |
|
|
15
|
+
| `runs/<run-name>/` | Disposable test inputs, saved notes and review copies. |
|
|
16
|
+
|
|
17
|
+
Use a short source name such as `example-chat`. A research note might live at
|
|
18
|
+
`vault/research/example-chat/graph-001.md`. Keep earlier notes and revisions;
|
|
19
|
+
use the next unused number when saving another. The agent should resolve and
|
|
20
|
+
show the actual absolute destination before writing, then reopen the saved file.
|
|
21
|
+
|
|
22
|
+
Within the `n8r-surface` checkout, [agent guidance](../../AGENTS.md#local-research-workspace)
|
|
23
|
+
reads `.local/vault-path`: an ignored text file containing one absolute directory
|
|
24
|
+
path. This is a local instruction convention, not a CLI or plugin configuration
|
|
25
|
+
interface. The path is not published with the repository. When the vault is moved,
|
|
26
|
+
update that local pointer and preserve the files; do not migrate existing research
|
|
27
|
+
elsewhere without a separate request.
|
|
28
|
+
|
|
29
|
+
Explicit destinations take precedence. Continue existing notes in their current
|
|
30
|
+
folder unless the user asks to move them. Without a selected vault or another
|
|
31
|
+
destination, the installed skill still defaults to
|
|
32
|
+
`~/Documents/n8r-surface/research/<source-slug>/`. Installation does not create
|
|
33
|
+
or populate a vault.
|
|
34
|
+
|
|
35
|
+
The folder layout does not validate its contents. Current Researcher 0.1.7
|
|
36
|
+
produces Markdown working notes; `surfaces/` holds Surface descriptions when
|
|
37
|
+
available, without claiming the skill generates validated definitions. Local
|
|
38
|
+
files are not automatically published, backed up or encrypted. If you place a
|
|
39
|
+
vault in a Git repository, ignore its working areas before saving private work.
|
|
40
|
+
|
|
41
|
+
## Try the installed skill
|
|
42
|
+
|
|
43
|
+
The shared material below assumes **n8r-surface Researcher 0.1.7 is already
|
|
44
|
+
installed**. Anyone with this checkout has the same
|
|
45
|
+
[prepared source pack](../../examples/researcher-vault/README.md).
|
|
46
|
+
|
|
47
|
+
Choose a walkthrough:
|
|
48
|
+
|
|
49
|
+
- [Try the prepared example](researcher-prepared-check.md): use a small fictional chat
|
|
50
|
+
system, save its description, change one setting and compare the findings.
|
|
51
|
+
The source material is provided in this repository.
|
|
52
|
+
- [Try another chat-system repository](researcher-repository-check.md): choose a real
|
|
53
|
+
project Researcher has not already investigated for you, then inspect its AI
|
|
54
|
+
connections and continue the investigation in a fresh chat.
|
|
55
|
+
|
|
56
|
+
Use a local chat app that can read your files and save notes. Both walkthroughs
|
|
57
|
+
assume you can select `n8r-surface:research`; [installation help](researcher-skill.md)
|
|
58
|
+
is separate. No running chat service is required.
|
|
59
|
+
|
|
60
|
+
## Start with fresh context
|
|
61
|
+
|
|
62
|
+
For an independent attempt, start a new chat rather than continuing or forking
|
|
63
|
+
the development chat. Before the first test prompt, use `/memories` to turn off
|
|
64
|
+
both using and generating memories, where those controls are available. See
|
|
65
|
+
[the app's memory controls](https://learn.chatgpt.com/docs/customization/memories).
|
|
66
|
+
|
|
67
|
+
Read the walkthrough yourself and paste only its task prompts into the test
|
|
68
|
+
chat. Supply the named inputs, not this checklist or its expected answers. For a
|
|
69
|
+
continuation check, add only the previous note requested by that step. Ask the
|
|
70
|
+
agent to use the installed skill and those sources, without consulting other
|
|
71
|
+
chats, projects or the web, and inspect its source references and tool activity.
|
|
72
|
+
|
|
73
|
+
This limits the intended evidence; it does not enforce isolation. A fresh chat
|
|
74
|
+
still has applicable instructions and the model's general knowledge. Codex
|
|
75
|
+
[permission profiles](https://learn.chatgpt.com/docs/permissions#file-access-limited-to-workspace)
|
|
76
|
+
can restrict command reads to selected folders, but connectors, browser access
|
|
77
|
+
and other tools have separate controls. Read-only mode alone is not a guarantee
|
|
78
|
+
that neighboring repositories or expected answers cannot be read. These walkthroughs
|
|
79
|
+
are practical manual checks, not sandboxed evaluations.
|
|
80
|
+
|
|
81
|
+
## Keep or clean up a test
|
|
82
|
+
|
|
83
|
+
Keep the repository's prepared examples unchanged so another person can start
|
|
84
|
+
the same test.
|
|
85
|
+
Keep each run until you have reviewed its findings. To start again, use a new run
|
|
86
|
+
name. After review, you can delete that one folder under `runs/` with your file
|
|
87
|
+
browser. Leave the shared examples, ongoing research, saved Surfaces and source
|
|
88
|
+
repositories intact.
|
|
89
|
+
|
|
90
|
+
## Standalone command setup
|
|
91
|
+
|
|
92
|
+
The experimental bare `n8r-surface` command offers a local vault once and remembers
|
|
93
|
+
it as `vaultRoot` in version-1 user settings. It creates `research/`, `artifacts/`
|
|
94
|
+
and `surfaces/` only after confirmation, and reuses that vault from other source
|
|
95
|
+
folders. The legacy `artefactRoot` remains separate and unchanged. This setup-only
|
|
96
|
+
increment does not run the Researcher or save findings. It does not read the
|
|
97
|
+
repository's `.local/vault-path`. See [startup behavior](startup.md) and the
|
|
98
|
+
[installed verification tasks](vault-setup-verification.md).
|
|
99
|
+
|
|
100
|
+
## Standalone saved continuation
|
|
101
|
+
|
|
102
|
+
The command now writes `research/<source-slug>/research-NNN.md` only when the user
|
|
103
|
+
enters `/save`. A successor stays beside its predecessor with the next unused
|
|
104
|
+
number. The host appends experimental provenance metadata; keep that block intact
|
|
105
|
+
when editing prose. Edits before or after the block are included on reopening.
|
|
106
|
+
These notes are Markdown working research, not validated HTML or Surface JSON/YAML.
|
|
107
|
+
|
|
108
|
+
Use `n8r-surface reopen NOTE --source SOURCE` to select one explicitly. Without
|
|
109
|
+
NOTE, `reopen --source SOURCE` suggests the most recently filesystem-edited
|
|
110
|
+
numbered note in that source's research folder. It shows the path and UTC edit time
|
|
111
|
+
and asks before selecting it. Tied edit times use filename order. The source slug
|
|
112
|
+
is a convenience only: the chosen source and saved evidence are compared anew.
|
|
113
|
+
An invalid newest note reports an error rather than silently selecting an older one.
|
|
114
|
+
|
|
115
|
+
Explicitly named notes may live outside the configured vault; saving continues in
|
|
116
|
+
that note's folder. Only notes with this command's metadata envelope are supported
|
|
117
|
+
in this increment; arbitrary older skill notes need a later import decision.
|
|
118
|
+
The source is always selected explicitly again. See [the short check](getting-started.md)
|
|
119
|
+
and [storage limits](save-reopen-verification.md).
|
|
120
|
+
|
|
121
|
+
## Candidate structured Surface pairs
|
|
122
|
+
|
|
123
|
+
Ask the conversation to create a Surface, inspect its validated preview, then use
|
|
124
|
+
`/save surface`. Initial pairs go under
|
|
125
|
+
`surfaces/<source-slug>/surface-NNN/`, containing `research.html`, `surface.json`
|
|
126
|
+
and a host `manifest.json`. These are the experimental library's research and
|
|
127
|
+
Surface contracts; the manifest is separate storage metadata with byte hashes and
|
|
128
|
+
provenance. Keep all three files together when moving a pair.
|
|
129
|
+
|
|
130
|
+
Reopen either HTML or JSON with `--source SOURCE` to start fresh and revise it.
|
|
131
|
+
Successors stay beside the selected pair, including after relocation, and retain
|
|
132
|
+
previous bytes. Omitted filenames still suggest Markdown notes only. Manual HTML
|
|
133
|
+
or JSON edits conflict with the saved manifest; make revisions through the
|
|
134
|
+
conversation. See [Surface evidence and limits](surface-revisions-verification.md).
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Saved continuation: actual terminal transcripts
|
|
2
|
+
|
|
3
|
+
Sanitized agent rehearsal on 5 November 2026 using installed candidate code
|
|
4
|
+
`447f440`, Codex 0.166.0 and `gpt-6-astra`. Local paths are replaced with `<run>`;
|
|
5
|
+
trailing whitespace is trimmed and model wording is retained. See [evidence and limits](save-reopen-verification.md).
|
|
6
|
+
|
|
7
|
+
## Research and first save
|
|
8
|
+
|
|
9
|
+
````text
|
|
10
|
+
Research source: <run>/source/lumen-guide.md (one file)
|
|
11
|
+
Inspected source text and your messages will be sent to OpenAI through Codex using ChatGPT sign-in.
|
|
12
|
+
Source access is read-only. /save explicitly saves a numbered Markdown working note.
|
|
13
|
+
Start research with OpenAI using Codex ChatGPT sign-in? [y/N] y
|
|
14
|
+
|
|
15
|
+
Connecting to Codex…
|
|
16
|
+
Connected: ChatGPT sign-in; model gpt-6-astra.
|
|
17
|
+
Researcher 0.1.8; sha256:8af29c3073df9b8210a7dd94ced9700379b0a98f76bd3a2902f9430b93c98a2a
|
|
18
|
+
Ask about your source. /save saves a note; /exit ends the chat; Ctrl-C cancels.
|
|
19
|
+
You> Describe the AI components and connections with stable component IDs and source citations. For this investigation I choose not to use external OIDC: retain that as my decision, not a change to the source. Keep unknowns and useful next steps clear.
|
|
20
|
+
|
|
21
|
+
I’m using `n8r-surface:research 0.1.8`. I’ll map the supplied guide and retain your choice not to use external OIDC separately from what the source describes.
|
|
22
|
+
[source_list] .
|
|
23
|
+
[source_read] lumen-guide.md sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693
|
|
24
|
+
## Partial AI Surface: Lumen Desk
|
|
25
|
+
|
|
26
|
+
**Scope:** Fictional guide `fixture-1`, not a real installation. These are documented capabilities, not verified runtime connections. [lumen-guide.md:1–4](lumen-guide.md#L1-L4)
|
|
27
|
+
|
|
28
|
+
### Components and connections
|
|
29
|
+
|
|
30
|
+
| Stable ID | Role and directed connections | Evidence |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `component:lumen` | Support-summary application → `component:inference` to generate summaries. Input sources and request path are unspecified. | [Lines 3–9](lumen-guide.md#L3-L9) |
|
|
33
|
+
| `component:inference` | Configured inference endpoint; underlying model, version and service identity are unknown. | [Lines 8–9](lumen-guide.md#L8-L9) |
|
|
34
|
+
| `component:archive` | `component:lumen` → archive service through **separate HTTP routes** for summary documents and audit events. These share one service, not two components. Documented batch limit: 10 documents. Delivery is an option, not an established deployment selection. | [Lines 11–16](lumen-guide.md#L11-L16) |
|
|
35
|
+
| `component:callback` | Optional receiver for `component:archive` → notification delivery. Disabled until selected and configured; receiver hosting is unspecified. | [Lines 18–22](lumen-guide.md#L18-L22) |
|
|
36
|
+
| `component:oidc` | Supported external identity-service option for `component:lumen`; **not selected for this investigation**. | [Lines 8–9](lumen-guide.md#L8-L9) |
|
|
37
|
+
|
|
38
|
+
### Your decision
|
|
39
|
+
|
|
40
|
+
**2026-11-05:** Do not use external OIDC for this investigation. This is your scoped selection—not a source edit, proof that OIDC is disabled in a deployment, or evidence of an alternative authentication mechanism.
|
|
41
|
+
|
|
42
|
+
### Unknowns and useful next steps
|
|
43
|
+
|
|
44
|
+
- **Inference:** Identify the endpoint, model/version and submitted data. Resume at lines 8–9 with applicable nonsecret configuration or implementation evidence.
|
|
45
|
+
- **Archive:** Establish whether delivery is selected, then clarify request schemas and authentication for both routes. The guide explicitly does **not** establish a tested Harbor Archive integration. Resume at lines 13–16.
|
|
46
|
+
- **Callbacks:** Confirm whether you want this option. If selected, investigate notification validation, retry behavior and protocol; all remain unspecified. Resume at lines 20–22.
|
|
47
|
+
- **Identity without external OIDC:** Determine what access controls, if any, apply to Lumen and its connections. The guide provides no alternative identity design.
|
|
48
|
+
|
|
49
|
+
**Coverage and identity:** Read all 29 lines of the sole supplied file; no exclusions or truncation. No deployment or runtime observations were supplied. [Lines 24–28](lumen-guide.md#L24-L28)
|
|
50
|
+
Source SHA-256: `98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693`.
|
|
51
|
+
|
|
52
|
+
To retain this as a numbered working draft, proposed name `surface-draft-001.md`, use **`/save`**. Nothing has been saved yet.
|
|
53
|
+
You> /save
|
|
54
|
+
|
|
55
|
+
Save destination: <run>/vault/research/lumen-guide-md/research-001.md
|
|
56
|
+
Staged the working note with stable component IDs, citations, source hash, your OIDC decision, unknowns and next steps. The host will handle saving and verification.
|
|
57
|
+
Saved and read back: <run>/vault/research/lumen-guide-md/research-001.md
|
|
58
|
+
sha256:9910959c740959e943e7d6cf4e81b1d365468ab33576fb9c83aa9ce25dc054e7
|
|
59
|
+
You> /exit
|
|
60
|
+
````
|
|
61
|
+
|
|
62
|
+
## Fresh reopen and successor
|
|
63
|
+
|
|
64
|
+
````text
|
|
65
|
+
Research source: <run>/source/lumen-guide.md (one file)
|
|
66
|
+
Inspected source text and your messages will be sent to OpenAI through Codex using ChatGPT sign-in.
|
|
67
|
+
Source access is read-only. /save explicitly saves a numbered Markdown working note.
|
|
68
|
+
Saved note: <run>/vault/research/lumen-guide-md/research-001.md
|
|
69
|
+
Last edited: 2026-11-05T11:08:20.894Z
|
|
70
|
+
Recorded source: lumen-guide.md (file); this is not verified identity.
|
|
71
|
+
The saved note, including human edits, will also be sent to OpenAI after confirmation.
|
|
72
|
+
Start research with OpenAI using Codex ChatGPT sign-in? [y/N] y
|
|
73
|
+
|
|
74
|
+
Connecting to Codex…
|
|
75
|
+
Connected: ChatGPT sign-in; model gpt-6-astra.
|
|
76
|
+
Researcher 0.1.8; sha256:8af29c3073df9b8210a7dd94ced9700379b0a98f76bd3a2902f9430b93c98a2a
|
|
77
|
+
Ask about your source. /save saves a note; /exit ends the chat; Ctrl-C cancels.
|
|
78
|
+
[reopen evidence] lumen-guide.md: unchanged sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693
|
|
79
|
+
I’m continuing with `n8r-surface:research 0.1.8`. I’ll re-read the selected source, compare it with the historical claims, and retain your OIDC decision separately. I won’t save anything.
|
|
80
|
+
|
|
81
|
+
[source_list] .
|
|
82
|
+
[source_read] lumen-guide.md sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693
|
|
83
|
+
## Continued partial Surface
|
|
84
|
+
|
|
85
|
+
The freshly read source identifies itself as **“Lumen Desk — fictional guide, fixture-1”**, describing a synthetic application—not a real installation (`lumen-guide.md:1–4`).
|
|
86
|
+
|
|
87
|
+
| Directed connection | Current evidence |
|
|
88
|
+
|---|---|
|
|
89
|
+
| `component:lumen` → `component:inference` | Summary generation through a configured endpoint; service identity, model and version remain unspecified (`lumen-guide.md:8–9`). |
|
|
90
|
+
| `component:lumen` → `component:archive` | Optional document and audit delivery through separate HTTP routes on **one service**. Maximum 10 documents per batch; schema/authentication unresolved; no tested Harbor integration (`lumen-guide.md:13–16`). |
|
|
91
|
+
| `component:archive` → `component:callback` | Optional notifications; receiver disabled until selected and configured. Validation, retries and tested protocol remain unspecified (`lumen-guide.md:20–22`). |
|
|
92
|
+
| `component:oidc` → `component:lumen` | Supported external identity option, **excluded from your intended selection** by the retained human decision—not evidence of runtime disablement (`lumen-guide.md:8–9`). |
|
|
93
|
+
|
|
94
|
+
### Reconciliation and coverage
|
|
95
|
+
|
|
96
|
+
- Freshly listed the selected source and read all 29 lines; no exclusions or truncation were reported.
|
|
97
|
+
- Fresh SHA-256: `98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693`. It matches the predecessor’s recorded digest independently of the supplied comparison.
|
|
98
|
+
- No changed source claims were found. Prior findings remain historical; the table above is freshly corroborated documentary evidence. Matching bytes do **not** establish deployment identity or exercised connections.
|
|
99
|
+
- Retained all component IDs and the dated decision not to use external OIDC. No separately identified human edits were supplied.
|
|
100
|
+
- Implementation, deployment configuration and runtime evidence remain unavailable; the guide explicitly supplies no deployment or runtime observations (`lumen-guide.md:26–28`).
|
|
101
|
+
|
|
102
|
+
### Next useful investigation
|
|
103
|
+
|
|
104
|
+
Prioritize `component:inference`: identify its selected endpoint/service, model/version and submitted summary data. Resume from `lumen-guide.md:8–9` with explicitly authorized, nonsecret configuration or implementation evidence. This would clarify the main AI data boundary; the current guide cannot resolve it.
|
|
105
|
+
|
|
106
|
+
Can you supply nonsecret inference configuration or implementation evidence as the next selected source?
|
|
107
|
+
|
|
108
|
+
Nothing was saved.
|
|
109
|
+
You> Continue the authentication investigation. What remains unknown, and what evidence would resolve it? Retain my earlier decision.
|
|
110
|
+
|
|
111
|
+
## Authentication: remaining gaps
|
|
112
|
+
|
|
113
|
+
**Retained decision (2026-11-05):** You chose **not to use external OIDC for this investigation**. `component:oidc` remains a supported option, excluded from your intended selection—not proven disabled in a running system.
|
|
114
|
+
|
|
115
|
+
The guide only establishes OIDC support (`lumen-guide.md:8–9`); it does not identify an alternative authentication mechanism.
|
|
116
|
+
|
|
117
|
+
| Unknown | Evidence that would resolve it |
|
|
118
|
+
|---|---|
|
|
119
|
+
| How users authenticate to `component:lumen` without external OIDC—or whether access is anonymous | Authentication documentation, login handlers and request-authentication middleware. |
|
|
120
|
+
| Which authentication mode is actually selected | Applicable nonsecret deployment configuration and configuration-loading/override logic. Runtime-effective evidence would be needed to establish active settings. |
|
|
121
|
+
| What authenticated users may access or do | Authorization checks, role definitions and ownership checks governing summary generation and access to summaries. |
|
|
122
|
+
| How sessions are managed, if sessions exist | Session implementation and nonsecret settings for expiry, revocation and cookie protections. |
|
|
123
|
+
| How `component:lumen` authenticates to `component:inference` | Inference client implementation and documented authentication scheme; no credential values needed. |
|
|
124
|
+
| How archive delivery is authenticated, if selected | Selected archive interface documentation and client configuration. The guide explicitly leaves authentication to separate agreement (`lumen-guide.md:13–15`). |
|
|
125
|
+
| How callbacks authenticate their sender, if selected | Receiver implementation and protocol documentation covering signature/token verification and replay protection. Validation is unspecified (`lumen-guide.md:20–22`). |
|
|
126
|
+
|
|
127
|
+
These are **unknowns, not established absences or vulnerabilities**. The selected source contains no implementation or runtime observations (`lumen-guide.md:26–28`).
|
|
128
|
+
|
|
129
|
+
**Next useful investigation:** Trace the incoming request authentication and authorization checks for `component:lumen`. This would establish what protects summary generation without external OIDC.
|
|
130
|
+
|
|
131
|
+
Can you provide authentication documentation or request-handler code as the next explicitly selected source?
|
|
132
|
+
You> /save
|
|
133
|
+
|
|
134
|
+
Save destination: <run>/vault/research/lumen-guide-md/research-002.md
|
|
135
|
+
Staged the working note with the graph, source hash, retained OIDC decision, authentication gaps and next steps. Host saving and verification remain pending.
|
|
136
|
+
Saved and read back: <run>/vault/research/lumen-guide-md/research-002.md
|
|
137
|
+
sha256:927a6a84a810d518b5e7bc8f37df3f29916e353a3bb6817ccf21b2cc36aee265
|
|
138
|
+
You> /exit
|
|
139
|
+
````
|
|
140
|
+
|
|
141
|
+
## Latest-edited suggestion and human edit
|
|
142
|
+
|
|
143
|
+
````text
|
|
144
|
+
Research source: <run>/source/lumen-guide.md (one file)
|
|
145
|
+
Inspected source text and your messages will be sent to OpenAI through Codex using ChatGPT sign-in.
|
|
146
|
+
Source access is read-only. /save explicitly saves a numbered Markdown working note.
|
|
147
|
+
Saved note: <run>/vault/research/lumen-guide-md/research-001.md
|
|
148
|
+
Last edited: 2026-11-05T11:09:49.624Z
|
|
149
|
+
Recorded source: lumen-guide.md (file); this is not verified identity.
|
|
150
|
+
Open this note? [y/N] y
|
|
151
|
+
|
|
152
|
+
The saved note, including human edits, will also be sent to OpenAI after confirmation.
|
|
153
|
+
Start research with OpenAI using Codex ChatGPT sign-in? [y/N] y
|
|
154
|
+
|
|
155
|
+
Connecting to Codex…
|
|
156
|
+
Connected: ChatGPT sign-in; model gpt-6-astra.
|
|
157
|
+
Researcher 0.1.8; sha256:8af29c3073df9b8210a7dd94ced9700379b0a98f76bd3a2902f9430b93c98a2a
|
|
158
|
+
Ask about your source. /save saves a note; /exit ends the chat; Ctrl-C cancels.
|
|
159
|
+
[reopen evidence] lumen-guide.md: unchanged sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693
|
|
160
|
+
I’m continuing with `n8r-surface:research 0.1.8`, prioritizing the human edit about session expiry and retaining the external OIDC non-selection. I’ll re-read the selected source; I won’t save anything.
|
|
161
|
+
|
|
162
|
+
[source_list] .
|
|
163
|
+
[source_read] lumen-guide.md sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693
|
|
164
|
+
## Continued partial Surface
|
|
165
|
+
|
|
166
|
+
**Fresh source check:** Read all 29 lines of the selected `lumen-guide.md`; listing and read reported no exclusions or truncation. Its title and scope identify a fictional fixture, not a real installation (`lumen-guide.md:1–4`). SHA-256 matches the prior note:
|
|
167
|
+
|
|
168
|
+
`98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693`
|
|
169
|
+
|
|
170
|
+
This establishes unchanged source bytes—not deployment or system identity. The supplied comparison remains historical input; the fresh read independently supports byte agreement.
|
|
171
|
+
|
|
172
|
+
### Retained graph
|
|
173
|
+
|
|
174
|
+
These are documented capabilities, not exercised connections.
|
|
175
|
+
|
|
176
|
+
| Directed connection | Current evidence |
|
|
177
|
+
|---|---|
|
|
178
|
+
| `component:lumen` → `component:inference`: summary generation | Model and version unspecified (`lumen-guide.md:8–9`). |
|
|
179
|
+
| `component:lumen` → `component:archive`: optional document/audit delivery | Separate routes on one service; schema/authentication unresolved; maximum 10 documents per batch; not a tested Harbor integration (`lumen-guide.md:13–16`). |
|
|
180
|
+
| `component:archive` → `component:callback`: optional notifications | Disabled until selected/configured; validation and retries unspecified (`lumen-guide.md:20–22`). |
|
|
181
|
+
| `component:lumen` → `component:oidc`: supported identity option | Documented support remains (`lumen-guide.md:9`); **human non-selection retained**, not an observed runtime setting. |
|
|
182
|
+
|
|
183
|
+
### Session-expiry priority
|
|
184
|
+
|
|
185
|
+
The human edit now takes priority over the predecessor’s inference-endpoint investigation. The complete source contains **no session-expiry evidence**: no session lifetime, idle timeout, renewal, logout invalidation, or enforcement behavior is described. This is missing evidence, not evidence that sessions never expire. No alternative authentication mechanism is established.
|
|
186
|
+
|
|
187
|
+
Prior claims remain preserved as historical findings and are consistent with the fresh source. No changed source evidence was found; deployment and runtime evidence remain unavailable (`lumen-guide.md:24–28`).
|
|
188
|
+
|
|
189
|
+
**Next useful investigation:** establish how `component:lumen` enforces session expiry without external OIDC, using explicitly authorized authentication documentation or implementation and applicable nonsecret configuration.
|
|
190
|
+
|
|
191
|
+
Can you supply session-management documentation or code for that next check?
|
|
192
|
+
|
|
193
|
+
Nothing saved.
|
|
194
|
+
You> Which human edit and decision did you retain? Continue from them without inventing source facts.
|
|
195
|
+
|
|
196
|
+
I retained:
|
|
197
|
+
|
|
198
|
+
- **Human edit:** “prioritize session-expiry evidence next.”
|
|
199
|
+
- **Human decision:** do **not** select external OIDC for this investigation. This does not establish that OIDC is disabled in a running system.
|
|
200
|
+
|
|
201
|
+
Continuing from those: session expiry is the next investigation priority for `component:lumen`. The inspected guide documents external OIDC as an available option (`lumen-guide.md:8–9`), but supplies no session-expiry or alternative authentication details. It also supplies no deployment or runtime observations (`lumen-guide.md:24–28`). Session behavior therefore remains **unknown**.
|
|
202
|
+
|
|
203
|
+
Can you provide authorized session-management documentation or implementation evidence covering expiry without external OIDC?
|
|
204
|
+
You> /save
|
|
205
|
+
|
|
206
|
+
Save destination: <run>/vault/research/lumen-guide-md/research-003.md
|
|
207
|
+
Staged the continuation draft, retaining the graph, source hash, OIDC non-selection, and session-expiry priority. The host will handle saving and verification.
|
|
208
|
+
Saved and read back: <run>/vault/research/lumen-guide-md/research-003.md
|
|
209
|
+
sha256:56f317af8dfd30ea76cbfe0318bf74b226cc3be0ef851e0edc67bcd120d029d6
|
|
210
|
+
You> /exit
|
|
211
|
+
````
|