@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,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "urn:demo:research",
|
|
3
|
+
"title": "Synthetic capability and binding evidence",
|
|
4
|
+
"scope": "Synthetic role/product identities only; runtime unverified.",
|
|
5
|
+
"revision": {
|
|
6
|
+
"id": "r1",
|
|
7
|
+
"parent": null,
|
|
8
|
+
"createdAt": "2026-11-08T00:00:00Z",
|
|
9
|
+
"author": "Synthetic author",
|
|
10
|
+
"reason": "Initial synthetic example"
|
|
11
|
+
},
|
|
12
|
+
"extensions": {},
|
|
13
|
+
"contract": "n8r.research/0.1",
|
|
14
|
+
"sources": [
|
|
15
|
+
{
|
|
16
|
+
"id": "urn:source:summary",
|
|
17
|
+
"location": "sources.md",
|
|
18
|
+
"version": "synthetic-1",
|
|
19
|
+
"digest": "sha256:892be031542be26860afe70102a0293aa30b6cfaf15d091e95549c0e11277e49",
|
|
20
|
+
"inspectedAt": "2026-11-08T00:00:00Z",
|
|
21
|
+
"coverage": [
|
|
22
|
+
{
|
|
23
|
+
"path": "sources.md",
|
|
24
|
+
"status": "inspected",
|
|
25
|
+
"note": "Sanitized synthetic source pack, not raw configuration."
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"findings": [
|
|
31
|
+
{
|
|
32
|
+
"id": "urn:f:database",
|
|
33
|
+
"subject": "urn:node:app",
|
|
34
|
+
"property": "supports",
|
|
35
|
+
"state": "known",
|
|
36
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
37
|
+
"claims": [
|
|
38
|
+
{
|
|
39
|
+
"value": "urn:node:mongodb",
|
|
40
|
+
"evidence": [
|
|
41
|
+
{
|
|
42
|
+
"source": "urn:source:summary",
|
|
43
|
+
"locator": "Product guide"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "urn:f:oidc",
|
|
51
|
+
"subject": "urn:node:app",
|
|
52
|
+
"property": "supports",
|
|
53
|
+
"state": "known",
|
|
54
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
55
|
+
"claims": [
|
|
56
|
+
{
|
|
57
|
+
"value": "urn:node:oidc",
|
|
58
|
+
"evidence": [
|
|
59
|
+
{
|
|
60
|
+
"source": "urn:source:summary",
|
|
61
|
+
"locator": "Product guide"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "urn:f:saml",
|
|
69
|
+
"subject": "urn:node:app",
|
|
70
|
+
"property": "supports",
|
|
71
|
+
"state": "known",
|
|
72
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
73
|
+
"claims": [
|
|
74
|
+
{
|
|
75
|
+
"value": "urn:node:saml",
|
|
76
|
+
"evidence": [
|
|
77
|
+
{
|
|
78
|
+
"source": "urn:source:summary",
|
|
79
|
+
"locator": "Product guide"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "urn:f:database-bound",
|
|
87
|
+
"subject": "urn:instance:demo",
|
|
88
|
+
"property": "urn:cap:database",
|
|
89
|
+
"state": "known",
|
|
90
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
91
|
+
"claims": [
|
|
92
|
+
{
|
|
93
|
+
"value": "urn:target:atlas",
|
|
94
|
+
"evidence": [
|
|
95
|
+
{
|
|
96
|
+
"source": "urn:source:summary",
|
|
97
|
+
"locator": "Sanitized instance configuration summary, revision 1"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "urn:f:identity",
|
|
105
|
+
"subject": "urn:instance:demo",
|
|
106
|
+
"property": "urn:cap:oidc",
|
|
107
|
+
"state": "conflicting",
|
|
108
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
109
|
+
"claims": [
|
|
110
|
+
{
|
|
111
|
+
"value": "urn:target:oidc",
|
|
112
|
+
"evidence": [
|
|
113
|
+
{
|
|
114
|
+
"source": "urn:source:summary",
|
|
115
|
+
"locator": "Sanitized instance configuration summary, revision 1"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"value": "urn:target:saml",
|
|
121
|
+
"evidence": [
|
|
122
|
+
{
|
|
123
|
+
"source": "urn:source:summary",
|
|
124
|
+
"locator": "Sanitized instance configuration summary, revision 1"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"alternatives": [
|
|
132
|
+
{
|
|
133
|
+
"id": "urn:option:oidc",
|
|
134
|
+
"title": "Prefer OIDC",
|
|
135
|
+
"findings": [
|
|
136
|
+
"urn:f:identity"
|
|
137
|
+
],
|
|
138
|
+
"requirements": []
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"decisions": [
|
|
142
|
+
{
|
|
143
|
+
"id": "urn:decision:oidc",
|
|
144
|
+
"alternative": "urn:option:oidc",
|
|
145
|
+
"choice": "selected",
|
|
146
|
+
"reason": "Synthetic human preference; conflict unresolved.",
|
|
147
|
+
"by": "Synthetic reviewer",
|
|
148
|
+
"at": "2026-11-08T00:00:00Z"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"questions": [],
|
|
152
|
+
"notes": []
|
|
153
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "urn:demo:research",
|
|
3
|
+
"title": "Synthetic capability and binding evidence",
|
|
4
|
+
"scope": "Synthetic role/product identities only; runtime unverified.",
|
|
5
|
+
"revision": {
|
|
6
|
+
"id": "r2",
|
|
7
|
+
"parent": {
|
|
8
|
+
"id": "urn:demo:research",
|
|
9
|
+
"revision": "r1",
|
|
10
|
+
"digest": "sha256:628d3c612d4afbb09852ec51436cf8b51f4fb96f02407c2b99e45dc06a3dfec0"
|
|
11
|
+
},
|
|
12
|
+
"createdAt": "2026-11-08T00:00:00Z",
|
|
13
|
+
"author": "Synthetic author",
|
|
14
|
+
"reason": "Changed database binding evidence"
|
|
15
|
+
},
|
|
16
|
+
"extensions": {},
|
|
17
|
+
"contract": "n8r.research/0.1",
|
|
18
|
+
"sources": [
|
|
19
|
+
{
|
|
20
|
+
"id": "urn:source:summary",
|
|
21
|
+
"location": "sources.md",
|
|
22
|
+
"version": "synthetic-1",
|
|
23
|
+
"digest": "sha256:892be031542be26860afe70102a0293aa30b6cfaf15d091e95549c0e11277e49",
|
|
24
|
+
"inspectedAt": "2026-11-08T00:00:00Z",
|
|
25
|
+
"coverage": [
|
|
26
|
+
{
|
|
27
|
+
"path": "sources.md",
|
|
28
|
+
"status": "inspected",
|
|
29
|
+
"note": "Sanitized synthetic source pack, not raw configuration."
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"findings": [
|
|
35
|
+
{
|
|
36
|
+
"id": "urn:f:database",
|
|
37
|
+
"subject": "urn:node:app",
|
|
38
|
+
"property": "supports",
|
|
39
|
+
"state": "known",
|
|
40
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
41
|
+
"claims": [
|
|
42
|
+
{
|
|
43
|
+
"value": "urn:node:mongodb",
|
|
44
|
+
"evidence": [
|
|
45
|
+
{
|
|
46
|
+
"source": "urn:source:summary",
|
|
47
|
+
"locator": "Product guide"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "urn:f:oidc",
|
|
55
|
+
"subject": "urn:node:app",
|
|
56
|
+
"property": "supports",
|
|
57
|
+
"state": "known",
|
|
58
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
59
|
+
"claims": [
|
|
60
|
+
{
|
|
61
|
+
"value": "urn:node:oidc",
|
|
62
|
+
"evidence": [
|
|
63
|
+
{
|
|
64
|
+
"source": "urn:source:summary",
|
|
65
|
+
"locator": "Product guide"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "urn:f:saml",
|
|
73
|
+
"subject": "urn:node:app",
|
|
74
|
+
"property": "supports",
|
|
75
|
+
"state": "known",
|
|
76
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
77
|
+
"claims": [
|
|
78
|
+
{
|
|
79
|
+
"value": "urn:node:saml",
|
|
80
|
+
"evidence": [
|
|
81
|
+
{
|
|
82
|
+
"source": "urn:source:summary",
|
|
83
|
+
"locator": "Product guide"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "urn:f:database-bound",
|
|
91
|
+
"subject": "urn:instance:demo",
|
|
92
|
+
"property": "urn:cap:database",
|
|
93
|
+
"state": "known",
|
|
94
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
95
|
+
"claims": [
|
|
96
|
+
{
|
|
97
|
+
"value": "urn:target:mongodb",
|
|
98
|
+
"evidence": [
|
|
99
|
+
{
|
|
100
|
+
"source": "urn:source:summary",
|
|
101
|
+
"locator": "Sanitized instance configuration summary, revision 2"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "urn:f:identity",
|
|
109
|
+
"subject": "urn:instance:demo",
|
|
110
|
+
"property": "urn:cap:oidc",
|
|
111
|
+
"state": "conflicting",
|
|
112
|
+
"note": "Synthetic source assertion; not runtime evidence.",
|
|
113
|
+
"claims": [
|
|
114
|
+
{
|
|
115
|
+
"value": "urn:target:oidc",
|
|
116
|
+
"evidence": [
|
|
117
|
+
{
|
|
118
|
+
"source": "urn:source:summary",
|
|
119
|
+
"locator": "Sanitized instance configuration summary, revision 1"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"value": "urn:target:saml",
|
|
125
|
+
"evidence": [
|
|
126
|
+
{
|
|
127
|
+
"source": "urn:source:summary",
|
|
128
|
+
"locator": "Sanitized instance configuration summary, revision 1"
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"alternatives": [
|
|
136
|
+
{
|
|
137
|
+
"id": "urn:option:oidc",
|
|
138
|
+
"title": "Prefer OIDC",
|
|
139
|
+
"findings": [
|
|
140
|
+
"urn:f:identity"
|
|
141
|
+
],
|
|
142
|
+
"requirements": []
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"decisions": [
|
|
146
|
+
{
|
|
147
|
+
"id": "urn:decision:oidc",
|
|
148
|
+
"alternative": "urn:option:oidc",
|
|
149
|
+
"choice": "selected",
|
|
150
|
+
"reason": "Synthetic human preference; conflict unresolved.",
|
|
151
|
+
"by": "Synthetic reviewer",
|
|
152
|
+
"at": "2026-11-08T00:00:00Z"
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"questions": [],
|
|
156
|
+
"notes": []
|
|
157
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Fictional assistant source pack
|
|
2
|
+
|
|
3
|
+
## Product guide
|
|
4
|
+
|
|
5
|
+
The assistant supports MongoDB storage, OIDC authentication, and SAML authentication.
|
|
6
|
+
OIDC and SAML are mutually exclusive for this example instance. Inference support
|
|
7
|
+
has not been researched.
|
|
8
|
+
|
|
9
|
+
## Sanitized instance configuration summary, revision 1
|
|
10
|
+
|
|
11
|
+
The database relationship is configured for MongoDB Atlas. No endpoint, username,
|
|
12
|
+
password or key is included. The two permitted summaries disagree about identity:
|
|
13
|
+
one identifies the OIDC service, the other the SAML service. Neither establishes
|
|
14
|
+
runtime use. Inference binding evidence is missing.
|
|
15
|
+
|
|
16
|
+
## Human decision
|
|
17
|
+
|
|
18
|
+
A synthetic reviewer prefers OIDC. This decision does not resolve the contradictory
|
|
19
|
+
configuration summaries.
|
|
20
|
+
|
|
21
|
+
## Sanitized instance configuration summary, revision 2
|
|
22
|
+
|
|
23
|
+
The database relationship is now configured for a self-hosted MongoDB service.
|
|
24
|
+
The other evidence remains unchanged. No actual setting values are supplied.
|
|
@@ -0,0 +1,193 @@
|
|
|
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>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: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></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>unknown</span></dd><dt>claims</dt><dd><p class="empty">No entries recorded.</p></dd><dt>note</dt><dd><span>Initial interface note does not establish authentication.</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>deferred</span></dd><dt>reason</dt><dd><span>Source evidence is incomplete.</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:harbor:auth</span></dd><dt>text</dt><dd><span>What authentication does intake support?</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></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": "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:harbor-api",
|
|
48
|
+
"location": "sources/harbor-api.md",
|
|
49
|
+
"version": "fixture-1",
|
|
50
|
+
"digest": "sha256:b2b87be7df05374c4cc574a1f308bd3b3444f63cd95e894121b9ea1e7be3d681",
|
|
51
|
+
"inspectedAt": "2026-11-04T09:00:00Z",
|
|
52
|
+
"coverage": [
|
|
53
|
+
{
|
|
54
|
+
"path": "harbor-api.md",
|
|
55
|
+
"status": "inspected",
|
|
56
|
+
"note": "Whole supplied synthetic document; no repository or runtime inspected."
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"findings": [
|
|
62
|
+
{
|
|
63
|
+
"id": "urn:finding:harbor:intake",
|
|
64
|
+
"subject": "urn:component:harbor",
|
|
65
|
+
"property": "intake",
|
|
66
|
+
"state": "known",
|
|
67
|
+
"claims": [
|
|
68
|
+
{
|
|
69
|
+
"value": [
|
|
70
|
+
"document HTTP route",
|
|
71
|
+
"audit HTTP route"
|
|
72
|
+
],
|
|
73
|
+
"evidence": [
|
|
74
|
+
{
|
|
75
|
+
"source": "urn:source:harbor-api",
|
|
76
|
+
"locator": "Intake"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"note": "Possible JSON routes; request schema unknown."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "urn:finding:harbor:callback",
|
|
85
|
+
"subject": "urn:component:harbor",
|
|
86
|
+
"property": "callback",
|
|
87
|
+
"state": "known",
|
|
88
|
+
"claims": [
|
|
89
|
+
{
|
|
90
|
+
"value": "optional outbound HTTP callback",
|
|
91
|
+
"evidence": [
|
|
92
|
+
{
|
|
93
|
+
"source": "urn:source:harbor-api",
|
|
94
|
+
"locator": "Notifications"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"note": "No compatibility claim."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "urn:finding:harbor:authentication",
|
|
103
|
+
"subject": "urn:component:harbor",
|
|
104
|
+
"property": "authentication",
|
|
105
|
+
"state": "unknown",
|
|
106
|
+
"claims": [],
|
|
107
|
+
"note": "Initial interface note does not establish authentication."
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"alternatives": [
|
|
111
|
+
{
|
|
112
|
+
"id": "urn:option:harbor:archive",
|
|
113
|
+
"title": "Receive document and audit requests",
|
|
114
|
+
"findings": [
|
|
115
|
+
"urn:finding:harbor:intake"
|
|
116
|
+
],
|
|
117
|
+
"requirements": [
|
|
118
|
+
"Agree payloads, limits and authentication"
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "urn:option:harbor:callback",
|
|
123
|
+
"title": "Notify an HTTP receiver",
|
|
124
|
+
"findings": [
|
|
125
|
+
"urn:finding:harbor:callback"
|
|
126
|
+
],
|
|
127
|
+
"requirements": [
|
|
128
|
+
"Configure receiver and callback validation"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "urn:option:harbor:identity",
|
|
133
|
+
"title": "Investigate shared identity",
|
|
134
|
+
"findings": [
|
|
135
|
+
"urn:finding:harbor:authentication"
|
|
136
|
+
],
|
|
137
|
+
"requirements": [
|
|
138
|
+
"Obtain an authentication source"
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"decisions": [
|
|
143
|
+
{
|
|
144
|
+
"id": "urn:decision:harbor:archive",
|
|
145
|
+
"alternative": "urn:option:harbor:archive",
|
|
146
|
+
"choice": "selected",
|
|
147
|
+
"reason": "Synthetic user selects the archive role, pending interface checks.",
|
|
148
|
+
"by": "Synthetic user",
|
|
149
|
+
"at": "2026-11-04T09:00:00Z"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "urn:decision:harbor:callback",
|
|
153
|
+
"alternative": "urn:option:harbor:callback",
|
|
154
|
+
"choice": "selected",
|
|
155
|
+
"reason": "Synthetic user requests archival notifications.",
|
|
156
|
+
"by": "Synthetic user",
|
|
157
|
+
"at": "2026-11-04T09:00:00Z"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "urn:decision:harbor:identity",
|
|
161
|
+
"alternative": "urn:option:harbor:identity",
|
|
162
|
+
"choice": "deferred",
|
|
163
|
+
"reason": "Source evidence is incomplete.",
|
|
164
|
+
"by": "Synthetic user",
|
|
165
|
+
"at": "2026-11-04T09:00:00Z"
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"questions": [
|
|
169
|
+
{
|
|
170
|
+
"id": "urn:question:harbor:auth",
|
|
171
|
+
"text": "What authentication does intake support?",
|
|
172
|
+
"findings": [
|
|
173
|
+
"urn:finding:harbor:authentication"
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"id": "urn:question:harbor:schema",
|
|
178
|
+
"text": "Can these routes accept Lumen output after explicit mapping?",
|
|
179
|
+
"findings": [
|
|
180
|
+
"urn:finding:harbor:intake"
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"notes": [
|
|
185
|
+
{
|
|
186
|
+
"by": "Synthetic researcher",
|
|
187
|
+
"at": "2026-11-04T09:00:00Z",
|
|
188
|
+
"text": "Keep the two products independent until a human selects a composition."
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
}</script>
|
|
192
|
+
</body>
|
|
193
|
+
</html>
|