@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,226 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'">
|
|
7
|
+
<title>Harbor Archive research</title>
|
|
8
|
+
<style>body{font:17px/1.55 system-ui,sans-serif;max-width:72rem;margin:3rem auto;padding:0 1.5rem;color:#18252d;background:#faf9f5}h1{line-height:1.2}h2{font-size:1.2rem;border-bottom:1px solid #b8c8c9;padding-bottom:.3rem}section{margin:2rem 0}dt{font-weight:650;color:#234c54}dd{margin:0 0 .6rem 1.3rem}li{margin:.75rem 0}span{white-space:pre-wrap;overflow-wrap:anywhere}.empty{color:#56656c;font-style:italic}header p{max-width:55rem}</style>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<header><p>Research record · experimental 0.1</p><h1>Harbor Archive research</h1><p>Source research describes possibilities. It does not establish a running integration. The embedded data owns the facts; visible edits require review before continuation.</p></header>
|
|
12
|
+
<section><h2>contract</h2><span>n8r.research/0.1</span></section>
|
|
13
|
+
<section><h2>id</h2><span>urn:research:harbor</span></section>
|
|
14
|
+
<section><h2>revision</h2><dl><dt>id</dt><dd><span>r2</span></dd><dt>parent</dt><dd><dl><dt>id</dt><dd><span>urn:research:harbor</span></dd><dt>revision</dt><dd><span>r1</span></dd><dt>digest</dt><dd><span>sha256:d878525d5ff24913e0649b511d4267d56303d9b59af80983fc6f7ad6481d0aa0</span></dd></dl></dd><dt>createdAt</dt><dd><span>2026-11-04T09:20:00Z</span></dd><dt>author</dt><dd><span>Synthetic researcher</span></dd><dt>reason</dt><dd><span>Continue with second authentication source and human selection</span></dd></dl></section>
|
|
15
|
+
<section><h2>scope</h2><span>Only the named synthetic documents; source research provides no runtime evidence.</span></section>
|
|
16
|
+
<section><h2>extensions</h2><dl><dt>https://example.test/research-context/v1</dt><dd><dl><dt>synthetic</dt><dd><span>true</span></dd><dt>preserve</dt><dd><ol><li><span>unrecognized metadata</span></li><li><span>null</span></li><li><span>1</span></li></ol></dd></dl></dd></dl></section>
|
|
17
|
+
<section><h2>sources</h2><ol><li><dl><dt>id</dt><dd><span>urn:source:harbor-api</span></dd><dt>location</dt><dd><span>sources/harbor-api.md</span></dd><dt>version</dt><dd><span>fixture-1</span></dd><dt>digest</dt><dd><span>sha256:b2b87be7df05374c4cc574a1f308bd3b3444f63cd95e894121b9ea1e7be3d681</span></dd><dt>inspectedAt</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>coverage</dt><dd><ol><li><dl><dt>path</dt><dd><span>harbor-api.md</span></dd><dt>status</dt><dd><span>inspected</span></dd><dt>note</dt><dd><span>Whole supplied synthetic document; no repository or runtime inspected.</span></dd></dl></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:source:harbor-auth</span></dd><dt>location</dt><dd><span>sources/harbor-auth.md</span></dd><dt>version</dt><dd><span>fixture-2</span></dd><dt>digest</dt><dd><span>sha256:3b7600e18d224cd6c09e70384ff2065ab3955ec33f49ff9e17c599310e8a5701</span></dd><dt>inspectedAt</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>coverage</dt><dd><ol><li><dl><dt>path</dt><dd><span>harbor-auth.md</span></dd><dt>status</dt><dd><span>inspected</span></dd><dt>note</dt><dd><span>Whole supplied synthetic document; no repository or runtime inspected.</span></dd></dl></li></ol></dd></dl></li></ol></section>
|
|
18
|
+
<section><h2>findings</h2><ol><li><dl><dt>id</dt><dd><span>urn:finding:harbor:intake</span></dd><dt>subject</dt><dd><span>urn:component:harbor</span></dd><dt>property</dt><dd><span>intake</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><ol><li><span>document HTTP route</span></li><li><span>audit HTTP route</span></li></ol></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:harbor-api</span></dd><dt>locator</dt><dd><span>Intake</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Possible JSON routes; request schema unknown.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:harbor:callback</span></dd><dt>subject</dt><dd><span>urn:component:harbor</span></dd><dt>property</dt><dd><span>callback</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>optional outbound HTTP callback</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:harbor-api</span></dd><dt>locator</dt><dd><span>Notifications</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>No compatibility claim.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:harbor:authentication</span></dd><dt>subject</dt><dd><span>urn:component:harbor</span></dd><dt>property</dt><dd><span>authentication</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>OIDC bearer token</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:harbor-auth</span></dd><dt>locator</dt><dd><span>Opening paragraph</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Supported option; issuer, audience and claims remain unconfigured.</span></dd></dl></li></ol></section>
|
|
19
|
+
<section><h2>alternatives</h2><ol><li><dl><dt>id</dt><dd><span>urn:option:harbor:archive</span></dd><dt>title</dt><dd><span>Receive document and audit requests</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:harbor:intake</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Agree payloads, limits and authentication</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:option:harbor:callback</span></dd><dt>title</dt><dd><span>Notify an HTTP receiver</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:harbor:callback</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Configure receiver and callback validation</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:option:harbor:identity</span></dd><dt>title</dt><dd><span>Investigate shared identity</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:harbor:authentication</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Obtain an authentication source</span></li></ol></dd></dl></li></ol></section>
|
|
20
|
+
<section><h2>decisions</h2><ol><li><dl><dt>id</dt><dd><span>urn:decision:harbor:archive</span></dd><dt>alternative</dt><dd><span>urn:option:harbor:archive</span></dd><dt>choice</dt><dd><span>selected</span></dd><dt>reason</dt><dd><span>Synthetic user selects the archive role, pending interface checks.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:decision:harbor:callback</span></dd><dt>alternative</dt><dd><span>urn:option:harbor:callback</span></dd><dt>choice</dt><dd><span>selected</span></dd><dt>reason</dt><dd><span>Synthetic user requests archival notifications.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:decision:harbor:identity</span></dd><dt>alternative</dt><dd><span>urn:option:harbor:identity</span></dd><dt>choice</dt><dd><span>selected</span></dd><dt>reason</dt><dd><span>Synthetic user selects the same intended identity service as Lumen, subject to issuer and audience configuration.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:20:00Z</span></dd></dl></li></ol></section>
|
|
21
|
+
<section><h2>questions</h2><ol><li><dl><dt>id</dt><dd><span>urn:question:harbor:auth</span></dd><dt>text</dt><dd><span>Which issuer, audience and claim checks should this composition use?</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:harbor:authentication</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:question:harbor:schema</span></dd><dt>text</dt><dd><span>Can these routes accept Lumen output after explicit mapping?</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:harbor:intake</span></li></ol></dd></dl></li></ol></section>
|
|
22
|
+
<section><h2>notes</h2><ol><li><dl><dt>by</dt><dd><span>Synthetic researcher</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>text</dt><dd><span>Keep the two products independent until a human selects a composition.</span></dd></dl></li><li><dl><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:20:00Z</span></dd><dt>text</dt><dd><span>Continue from r1 using the newly supplied document; keep the authentication finding identity.</span></dd></dl></li></ol></section>
|
|
23
|
+
<script type="application/json" id="n8r-record">{
|
|
24
|
+
"contract": "n8r.research/0.1",
|
|
25
|
+
"id": "urn:research:harbor",
|
|
26
|
+
"title": "Harbor Archive research",
|
|
27
|
+
"revision": {
|
|
28
|
+
"id": "r2",
|
|
29
|
+
"parent": {
|
|
30
|
+
"id": "urn:research:harbor",
|
|
31
|
+
"revision": "r1",
|
|
32
|
+
"digest": "sha256:d878525d5ff24913e0649b511d4267d56303d9b59af80983fc6f7ad6481d0aa0"
|
|
33
|
+
},
|
|
34
|
+
"createdAt": "2026-11-04T09:20:00Z",
|
|
35
|
+
"author": "Synthetic researcher",
|
|
36
|
+
"reason": "Continue with second authentication source and human selection"
|
|
37
|
+
},
|
|
38
|
+
"scope": "Only the named synthetic documents; source research provides no runtime evidence.",
|
|
39
|
+
"extensions": {
|
|
40
|
+
"https://example.test/research-context/v1": {
|
|
41
|
+
"synthetic": true,
|
|
42
|
+
"preserve": [
|
|
43
|
+
"unrecognized metadata",
|
|
44
|
+
null,
|
|
45
|
+
1
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"sources": [
|
|
50
|
+
{
|
|
51
|
+
"id": "urn:source:harbor-api",
|
|
52
|
+
"location": "sources/harbor-api.md",
|
|
53
|
+
"version": "fixture-1",
|
|
54
|
+
"digest": "sha256:b2b87be7df05374c4cc574a1f308bd3b3444f63cd95e894121b9ea1e7be3d681",
|
|
55
|
+
"inspectedAt": "2026-11-04T09:00:00Z",
|
|
56
|
+
"coverage": [
|
|
57
|
+
{
|
|
58
|
+
"path": "harbor-api.md",
|
|
59
|
+
"status": "inspected",
|
|
60
|
+
"note": "Whole supplied synthetic document; no repository or runtime inspected."
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "urn:source:harbor-auth",
|
|
66
|
+
"location": "sources/harbor-auth.md",
|
|
67
|
+
"version": "fixture-2",
|
|
68
|
+
"digest": "sha256:3b7600e18d224cd6c09e70384ff2065ab3955ec33f49ff9e17c599310e8a5701",
|
|
69
|
+
"inspectedAt": "2026-11-04T09:00:00Z",
|
|
70
|
+
"coverage": [
|
|
71
|
+
{
|
|
72
|
+
"path": "harbor-auth.md",
|
|
73
|
+
"status": "inspected",
|
|
74
|
+
"note": "Whole supplied synthetic document; no repository or runtime inspected."
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"findings": [
|
|
80
|
+
{
|
|
81
|
+
"id": "urn:finding:harbor:intake",
|
|
82
|
+
"subject": "urn:component:harbor",
|
|
83
|
+
"property": "intake",
|
|
84
|
+
"state": "known",
|
|
85
|
+
"claims": [
|
|
86
|
+
{
|
|
87
|
+
"value": [
|
|
88
|
+
"document HTTP route",
|
|
89
|
+
"audit HTTP route"
|
|
90
|
+
],
|
|
91
|
+
"evidence": [
|
|
92
|
+
{
|
|
93
|
+
"source": "urn:source:harbor-api",
|
|
94
|
+
"locator": "Intake"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"note": "Possible JSON routes; request schema unknown."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "urn:finding:harbor:callback",
|
|
103
|
+
"subject": "urn:component:harbor",
|
|
104
|
+
"property": "callback",
|
|
105
|
+
"state": "known",
|
|
106
|
+
"claims": [
|
|
107
|
+
{
|
|
108
|
+
"value": "optional outbound HTTP callback",
|
|
109
|
+
"evidence": [
|
|
110
|
+
{
|
|
111
|
+
"source": "urn:source:harbor-api",
|
|
112
|
+
"locator": "Notifications"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"note": "No compatibility claim."
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "urn:finding:harbor:authentication",
|
|
121
|
+
"subject": "urn:component:harbor",
|
|
122
|
+
"property": "authentication",
|
|
123
|
+
"state": "known",
|
|
124
|
+
"claims": [
|
|
125
|
+
{
|
|
126
|
+
"value": "OIDC bearer token",
|
|
127
|
+
"evidence": [
|
|
128
|
+
{
|
|
129
|
+
"source": "urn:source:harbor-auth",
|
|
130
|
+
"locator": "Opening paragraph"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"note": "Supported option; issuer, audience and claims remain unconfigured."
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"alternatives": [
|
|
139
|
+
{
|
|
140
|
+
"id": "urn:option:harbor:archive",
|
|
141
|
+
"title": "Receive document and audit requests",
|
|
142
|
+
"findings": [
|
|
143
|
+
"urn:finding:harbor:intake"
|
|
144
|
+
],
|
|
145
|
+
"requirements": [
|
|
146
|
+
"Agree payloads, limits and authentication"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "urn:option:harbor:callback",
|
|
151
|
+
"title": "Notify an HTTP receiver",
|
|
152
|
+
"findings": [
|
|
153
|
+
"urn:finding:harbor:callback"
|
|
154
|
+
],
|
|
155
|
+
"requirements": [
|
|
156
|
+
"Configure receiver and callback validation"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "urn:option:harbor:identity",
|
|
161
|
+
"title": "Investigate shared identity",
|
|
162
|
+
"findings": [
|
|
163
|
+
"urn:finding:harbor:authentication"
|
|
164
|
+
],
|
|
165
|
+
"requirements": [
|
|
166
|
+
"Obtain an authentication source"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"decisions": [
|
|
171
|
+
{
|
|
172
|
+
"id": "urn:decision:harbor:archive",
|
|
173
|
+
"alternative": "urn:option:harbor:archive",
|
|
174
|
+
"choice": "selected",
|
|
175
|
+
"reason": "Synthetic user selects the archive role, pending interface checks.",
|
|
176
|
+
"by": "Synthetic user",
|
|
177
|
+
"at": "2026-11-04T09:00:00Z"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "urn:decision:harbor:callback",
|
|
181
|
+
"alternative": "urn:option:harbor:callback",
|
|
182
|
+
"choice": "selected",
|
|
183
|
+
"reason": "Synthetic user requests archival notifications.",
|
|
184
|
+
"by": "Synthetic user",
|
|
185
|
+
"at": "2026-11-04T09:00:00Z"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "urn:decision:harbor:identity",
|
|
189
|
+
"alternative": "urn:option:harbor:identity",
|
|
190
|
+
"choice": "selected",
|
|
191
|
+
"reason": "Synthetic user selects the same intended identity service as Lumen, subject to issuer and audience configuration.",
|
|
192
|
+
"by": "Synthetic user",
|
|
193
|
+
"at": "2026-11-04T09:20:00Z"
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"questions": [
|
|
197
|
+
{
|
|
198
|
+
"id": "urn:question:harbor:auth",
|
|
199
|
+
"text": "Which issuer, audience and claim checks should this composition use?",
|
|
200
|
+
"findings": [
|
|
201
|
+
"urn:finding:harbor:authentication"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "urn:question:harbor:schema",
|
|
206
|
+
"text": "Can these routes accept Lumen output after explicit mapping?",
|
|
207
|
+
"findings": [
|
|
208
|
+
"urn:finding:harbor:intake"
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
"notes": [
|
|
213
|
+
{
|
|
214
|
+
"by": "Synthetic researcher",
|
|
215
|
+
"at": "2026-11-04T09:00:00Z",
|
|
216
|
+
"text": "Keep the two products independent until a human selects a composition."
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"by": "Synthetic user",
|
|
220
|
+
"at": "2026-11-04T09:20:00Z",
|
|
221
|
+
"text": "Continue from r1 using the newly supplied document; keep the authentication finding identity."
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
}</script>
|
|
225
|
+
</body>
|
|
226
|
+
</html>
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'">
|
|
7
|
+
<title>Lumen Desk research</title>
|
|
8
|
+
<style>body{font:17px/1.55 system-ui,sans-serif;max-width:72rem;margin:3rem auto;padding:0 1.5rem;color:#18252d;background:#faf9f5}h1{line-height:1.2}h2{font-size:1.2rem;border-bottom:1px solid #b8c8c9;padding-bottom:.3rem}section{margin:2rem 0}dt{font-weight:650;color:#234c54}dd{margin:0 0 .6rem 1.3rem}li{margin:.75rem 0}span{white-space:pre-wrap;overflow-wrap:anywhere}.empty{color:#56656c;font-style:italic}header p{max-width:55rem}</style>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<header><p>Research record · experimental 0.1</p><h1>Lumen Desk research</h1><p>Source research describes possibilities. It does not establish a running integration. The embedded data owns the facts; visible edits require review before continuation.</p></header>
|
|
12
|
+
<section><h2>contract</h2><span>n8r.research/0.1</span></section>
|
|
13
|
+
<section><h2>id</h2><span>urn:research:lumen</span></section>
|
|
14
|
+
<section><h2>revision</h2><dl><dt>id</dt><dd><span>r1</span></dd><dt>parent</dt><dd><span>null</span></dd><dt>createdAt</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>author</dt><dd><span>Synthetic researcher</span></dd><dt>reason</dt><dd><span>Inspect supplied fictional documents</span></dd></dl></section>
|
|
15
|
+
<section><h2>scope</h2><span>Only the named synthetic documents; source research provides no runtime evidence.</span></section>
|
|
16
|
+
<section><h2>extensions</h2><dl><dt>https://example.test/research-context/v1</dt><dd><dl><dt>synthetic</dt><dd><span>true</span></dd><dt>preserve</dt><dd><ol><li><span>unrecognized metadata</span></li><li><span>null</span></li><li><span>1</span></li></ol></dd></dl></dd></dl></section>
|
|
17
|
+
<section><h2>sources</h2><ol><li><dl><dt>id</dt><dd><span>urn:source:lumen-guide</span></dd><dt>location</dt><dd><span>sources/lumen-guide.md</span></dd><dt>version</dt><dd><span>fixture-1</span></dd><dt>digest</dt><dd><span>sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693</span></dd><dt>inspectedAt</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>coverage</dt><dd><ol><li><dl><dt>path</dt><dd><span>lumen-guide.md</span></dd><dt>status</dt><dd><span>inspected</span></dd><dt>note</dt><dd><span>Whole supplied synthetic document; no repository or runtime inspected.</span></dd></dl></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:source:lumen-settings</span></dd><dt>location</dt><dd><span>sources/lumen-settings.md</span></dd><dt>version</dt><dd><span>fixture-1</span></dd><dt>digest</dt><dd><span>sha256:e94431bce92dc374a3aa58e31c8af78f7dfc61d7b34510ef38552d600d2489b7</span></dd><dt>inspectedAt</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>coverage</dt><dd><ol><li><dl><dt>path</dt><dd><span>lumen-settings.md</span></dd><dt>status</dt><dd><span>inspected</span></dd><dt>note</dt><dd><span>Whole supplied synthetic document; no repository or runtime inspected.</span></dd></dl></li></ol></dd></dl></li></ol></section>
|
|
18
|
+
<section><h2>findings</h2><ol><li><dl><dt>id</dt><dd><span>urn:finding:lumen:delivery</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>delivery</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><ol><li><span>document HTTP route</span></li><li><span>audit HTTP route</span></li></ol></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-guide</span></dd><dt>locator</dt><dd><span>Delivery options</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Supported possibility; recipient schema not established.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:lumen:batchLimit</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>batchLimit</span></dd><dt>state</dt><dd><span>conflicting</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>10</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-guide</span></dd><dt>locator</dt><dd><span>Delivery options</span></dd></dl></li></ol></dd></dl></li><li><dl><dt>value</dt><dd><span>25</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-settings</span></dd><dt>locator</dt><dd><span>Opening paragraph</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Documents disagree; no source precedence or chosen value.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:lumen:modelVersion</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>modelVersion</span></dd><dt>state</dt><dd><span>unknown</span></dd><dt>claims</dt><dd><p class="empty">No entries recorded.</p></dd><dt>note</dt><dd><span>Neither document identifies the model version.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:lumen:authentication</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>authentication</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>OIDC</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-guide</span></dd><dt>locator</dt><dd><span>Components</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>External identity option; no issuer selected by source.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:lumen:callback</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>callback</span></dd><dt>state</dt><dd><span>known</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>optional HTTP receiver</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-guide</span></dd><dt>locator</dt><dd><span>Callback option</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Opt-in receiver with unverified payload compatibility.</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:finding:lumen:embeddedArchive</span></dd><dt>subject</dt><dd><span>urn:component:lumen</span></dd><dt>property</dt><dd><span>embeddedArchive</span></dd><dt>state</dt><dd><span>absent</span></dd><dt>claims</dt><dd><ol><li><dl><dt>value</dt><dd><span>embedded archive database</span></dd><dt>evidence</dt><dd><ol><li><dl><dt>source</dt><dd><span>urn:source:lumen-settings</span></dd><dt>locator</dt><dd><span>Second paragraph</span></dd></dl></li></ol></dd></dl></li></ol></dd><dt>note</dt><dd><span>Absent only in the composition described by this settings note.</span></dd></dl></li></ol></section>
|
|
19
|
+
<section><h2>alternatives</h2><ol><li><dl><dt>id</dt><dd><span>urn:option:lumen:archive</span></dd><dt>title</dt><dd><span>Send documents and audit events to an archive</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:lumen:delivery</span></li><li><span>urn:finding:lumen:batchLimit</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Agree schemas and batch limit</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:option:lumen:identity</span></dd><dt>title</dt><dd><span>Use an external identity service</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:lumen:authentication</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Choose issuer and local credentials</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:option:lumen:callback</span></dd><dt>title</dt><dd><span>Receive archival callbacks</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:lumen:callback</span></li></ol></dd><dt>requirements</dt><dd><ol><li><span>Agree callback format and validation</span></li></ol></dd></dl></li></ol></section>
|
|
20
|
+
<section><h2>decisions</h2><ol><li><dl><dt>id</dt><dd><span>urn:decision:lumen:archive</span></dd><dt>alternative</dt><dd><span>urn:option:lumen:archive</span></dd><dt>choice</dt><dd><span>selected</span></dd><dt>reason</dt><dd><span>Synthetic user wants archival delivery in the proposed composition.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:decision:lumen:identity</span></dd><dt>alternative</dt><dd><span>urn:option:lumen:identity</span></dd><dt>choice</dt><dd><span>selected</span></dd><dt>reason</dt><dd><span>Synthetic user selects a shared identity role; actual issuer remains unknown.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:decision:lumen:callback</span></dd><dt>alternative</dt><dd><span>urn:option:lumen:callback</span></dd><dt>choice</dt><dd><span>deferred</span></dd><dt>reason</dt><dd><span>The synthetic user wants callbacks included in the desired composition.</span></dd><dt>by</dt><dd><span>Synthetic user</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd></dl></li></ol></section>
|
|
21
|
+
<section><h2>questions</h2><ol><li><dl><dt>id</dt><dd><span>urn:question:lumen:batch</span></dd><dt>text</dt><dd><span>Which batch limit applies to the intended version?</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:lumen:batchLimit</span></li></ol></dd></dl></li><li><dl><dt>id</dt><dd><span>urn:question:lumen:model</span></dd><dt>text</dt><dd><span>Which inference implementation and model are intended?</span></dd><dt>findings</dt><dd><ol><li><span>urn:finding:lumen:modelVersion</span></li></ol></dd></dl></li></ol></section>
|
|
22
|
+
<section><h2>notes</h2><ol><li><dl><dt>by</dt><dd><span>Synthetic researcher</span></dd><dt>at</dt><dd><span>2026-11-04T09:00:00Z</span></dd><dt>text</dt><dd><span>Imported source markup is data: <script>alert("source text only")</script></span></dd></dl></li></ol></section>
|
|
23
|
+
<script type="application/json" id="n8r-record">{
|
|
24
|
+
"contract": "n8r.research/0.1",
|
|
25
|
+
"id": "urn:research:lumen",
|
|
26
|
+
"title": "Lumen Desk research",
|
|
27
|
+
"revision": {
|
|
28
|
+
"id": "r1",
|
|
29
|
+
"parent": null,
|
|
30
|
+
"createdAt": "2026-11-04T09:00:00Z",
|
|
31
|
+
"author": "Synthetic researcher",
|
|
32
|
+
"reason": "Inspect supplied fictional documents"
|
|
33
|
+
},
|
|
34
|
+
"scope": "Only the named synthetic documents; source research provides no runtime evidence.",
|
|
35
|
+
"extensions": {
|
|
36
|
+
"https://example.test/research-context/v1": {
|
|
37
|
+
"synthetic": true,
|
|
38
|
+
"preserve": [
|
|
39
|
+
"unrecognized metadata",
|
|
40
|
+
null,
|
|
41
|
+
1
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"sources": [
|
|
46
|
+
{
|
|
47
|
+
"id": "urn:source:lumen-guide",
|
|
48
|
+
"location": "sources/lumen-guide.md",
|
|
49
|
+
"version": "fixture-1",
|
|
50
|
+
"digest": "sha256:98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693",
|
|
51
|
+
"inspectedAt": "2026-11-04T09:00:00Z",
|
|
52
|
+
"coverage": [
|
|
53
|
+
{
|
|
54
|
+
"path": "lumen-guide.md",
|
|
55
|
+
"status": "inspected",
|
|
56
|
+
"note": "Whole supplied synthetic document; no repository or runtime inspected."
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "urn:source:lumen-settings",
|
|
62
|
+
"location": "sources/lumen-settings.md",
|
|
63
|
+
"version": "fixture-1",
|
|
64
|
+
"digest": "sha256:e94431bce92dc374a3aa58e31c8af78f7dfc61d7b34510ef38552d600d2489b7",
|
|
65
|
+
"inspectedAt": "2026-11-04T09:00:00Z",
|
|
66
|
+
"coverage": [
|
|
67
|
+
{
|
|
68
|
+
"path": "lumen-settings.md",
|
|
69
|
+
"status": "inspected",
|
|
70
|
+
"note": "Whole supplied synthetic document; no repository or runtime inspected."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"findings": [
|
|
76
|
+
{
|
|
77
|
+
"id": "urn:finding:lumen:delivery",
|
|
78
|
+
"subject": "urn:component:lumen",
|
|
79
|
+
"property": "delivery",
|
|
80
|
+
"state": "known",
|
|
81
|
+
"claims": [
|
|
82
|
+
{
|
|
83
|
+
"value": [
|
|
84
|
+
"document HTTP route",
|
|
85
|
+
"audit HTTP route"
|
|
86
|
+
],
|
|
87
|
+
"evidence": [
|
|
88
|
+
{
|
|
89
|
+
"source": "urn:source:lumen-guide",
|
|
90
|
+
"locator": "Delivery options"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"note": "Supported possibility; recipient schema not established."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "urn:finding:lumen:batchLimit",
|
|
99
|
+
"subject": "urn:component:lumen",
|
|
100
|
+
"property": "batchLimit",
|
|
101
|
+
"state": "conflicting",
|
|
102
|
+
"claims": [
|
|
103
|
+
{
|
|
104
|
+
"value": 10,
|
|
105
|
+
"evidence": [
|
|
106
|
+
{
|
|
107
|
+
"source": "urn:source:lumen-guide",
|
|
108
|
+
"locator": "Delivery options"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"value": 25,
|
|
114
|
+
"evidence": [
|
|
115
|
+
{
|
|
116
|
+
"source": "urn:source:lumen-settings",
|
|
117
|
+
"locator": "Opening paragraph"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"note": "Documents disagree; no source precedence or chosen value."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "urn:finding:lumen:modelVersion",
|
|
126
|
+
"subject": "urn:component:lumen",
|
|
127
|
+
"property": "modelVersion",
|
|
128
|
+
"state": "unknown",
|
|
129
|
+
"claims": [],
|
|
130
|
+
"note": "Neither document identifies the model version."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "urn:finding:lumen:authentication",
|
|
134
|
+
"subject": "urn:component:lumen",
|
|
135
|
+
"property": "authentication",
|
|
136
|
+
"state": "known",
|
|
137
|
+
"claims": [
|
|
138
|
+
{
|
|
139
|
+
"value": "OIDC",
|
|
140
|
+
"evidence": [
|
|
141
|
+
{
|
|
142
|
+
"source": "urn:source:lumen-guide",
|
|
143
|
+
"locator": "Components"
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"note": "External identity option; no issuer selected by source."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "urn:finding:lumen:callback",
|
|
152
|
+
"subject": "urn:component:lumen",
|
|
153
|
+
"property": "callback",
|
|
154
|
+
"state": "known",
|
|
155
|
+
"claims": [
|
|
156
|
+
{
|
|
157
|
+
"value": "optional HTTP receiver",
|
|
158
|
+
"evidence": [
|
|
159
|
+
{
|
|
160
|
+
"source": "urn:source:lumen-guide",
|
|
161
|
+
"locator": "Callback option"
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
],
|
|
166
|
+
"note": "Opt-in receiver with unverified payload compatibility."
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "urn:finding:lumen:embeddedArchive",
|
|
170
|
+
"subject": "urn:component:lumen",
|
|
171
|
+
"property": "embeddedArchive",
|
|
172
|
+
"state": "absent",
|
|
173
|
+
"claims": [
|
|
174
|
+
{
|
|
175
|
+
"value": "embedded archive database",
|
|
176
|
+
"evidence": [
|
|
177
|
+
{
|
|
178
|
+
"source": "urn:source:lumen-settings",
|
|
179
|
+
"locator": "Second paragraph"
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"note": "Absent only in the composition described by this settings note."
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"alternatives": [
|
|
188
|
+
{
|
|
189
|
+
"id": "urn:option:lumen:archive",
|
|
190
|
+
"title": "Send documents and audit events to an archive",
|
|
191
|
+
"findings": [
|
|
192
|
+
"urn:finding:lumen:delivery",
|
|
193
|
+
"urn:finding:lumen:batchLimit"
|
|
194
|
+
],
|
|
195
|
+
"requirements": [
|
|
196
|
+
"Agree schemas and batch limit"
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "urn:option:lumen:identity",
|
|
201
|
+
"title": "Use an external identity service",
|
|
202
|
+
"findings": [
|
|
203
|
+
"urn:finding:lumen:authentication"
|
|
204
|
+
],
|
|
205
|
+
"requirements": [
|
|
206
|
+
"Choose issuer and local credentials"
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "urn:option:lumen:callback",
|
|
211
|
+
"title": "Receive archival callbacks",
|
|
212
|
+
"findings": [
|
|
213
|
+
"urn:finding:lumen:callback"
|
|
214
|
+
],
|
|
215
|
+
"requirements": [
|
|
216
|
+
"Agree callback format and validation"
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
],
|
|
220
|
+
"decisions": [
|
|
221
|
+
{
|
|
222
|
+
"id": "urn:decision:lumen:archive",
|
|
223
|
+
"alternative": "urn:option:lumen:archive",
|
|
224
|
+
"choice": "selected",
|
|
225
|
+
"reason": "Synthetic user wants archival delivery in the proposed composition.",
|
|
226
|
+
"by": "Synthetic user",
|
|
227
|
+
"at": "2026-11-04T09:00:00Z"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"id": "urn:decision:lumen:identity",
|
|
231
|
+
"alternative": "urn:option:lumen:identity",
|
|
232
|
+
"choice": "selected",
|
|
233
|
+
"reason": "Synthetic user selects a shared identity role; actual issuer remains unknown.",
|
|
234
|
+
"by": "Synthetic user",
|
|
235
|
+
"at": "2026-11-04T09:00:00Z"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "urn:decision:lumen:callback",
|
|
239
|
+
"alternative": "urn:option:lumen:callback",
|
|
240
|
+
"choice": "deferred",
|
|
241
|
+
"reason": "Wait for the human to decide whether callbacks belong in the definition.",
|
|
242
|
+
"by": "Synthetic user",
|
|
243
|
+
"at": "2026-11-04T09:00:00Z"
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"questions": [
|
|
247
|
+
{
|
|
248
|
+
"id": "urn:question:lumen:batch",
|
|
249
|
+
"text": "Which batch limit applies to the intended version?",
|
|
250
|
+
"findings": [
|
|
251
|
+
"urn:finding:lumen:batchLimit"
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "urn:question:lumen:model",
|
|
256
|
+
"text": "Which inference implementation and model are intended?",
|
|
257
|
+
"findings": [
|
|
258
|
+
"urn:finding:lumen:modelVersion"
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"notes": [
|
|
263
|
+
{
|
|
264
|
+
"by": "Synthetic researcher",
|
|
265
|
+
"at": "2026-11-04T09:00:00Z",
|
|
266
|
+
"text": "Imported source markup is data: \u003cscript\u003ealert(\"source text only\")\u003c/script\u003e"
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
}</script>
|
|
270
|
+
</body>
|
|
271
|
+
</html>
|