@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,283 @@
|
|
|
1
|
+
"contract": n8r.surface/0.1
|
|
2
|
+
"id": urn:surface:lumen-with-harbor
|
|
3
|
+
"title": Selected Lumen and Harbor composition
|
|
4
|
+
"revision":
|
|
5
|
+
"id": r1
|
|
6
|
+
"parent": null
|
|
7
|
+
"createdAt": 2026-11-04T09:00:00Z
|
|
8
|
+
"author": Synthetic researcher
|
|
9
|
+
"reason": Synthetic user selects a partial composition; no integration has been run
|
|
10
|
+
"scope": Desired composition from supplied fictional documents. Authentication, schemas and effective setup are incomplete.
|
|
11
|
+
"extensions":
|
|
12
|
+
"https://example.test/selection/v1":
|
|
13
|
+
"synthetic": true
|
|
14
|
+
"opaque":
|
|
15
|
+
"reviewed": true
|
|
16
|
+
"kind": definition
|
|
17
|
+
"records":
|
|
18
|
+
- "id": urn:research:lumen
|
|
19
|
+
"revision": r2
|
|
20
|
+
"digest": sha256:d7384fe64f1140815ddda3c7bbb2fe826a83140b445e70d839b07145c5840aca
|
|
21
|
+
- "id": urn:research:harbor
|
|
22
|
+
"revision": r2
|
|
23
|
+
"digest": sha256:8e5e492f7154b42b250ad3badea95cc73b571c6e22b4120cd957fcd9e57a0f2b
|
|
24
|
+
"vocabularies":
|
|
25
|
+
- "id": urn:n8r:vocabulary:researcher-example
|
|
26
|
+
"version": "0.1"
|
|
27
|
+
"nodes":
|
|
28
|
+
- "id": urn:component:lumen
|
|
29
|
+
"type":
|
|
30
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
31
|
+
"term": application
|
|
32
|
+
"label": Lumen Desk
|
|
33
|
+
"attributes":
|
|
34
|
+
"product":
|
|
35
|
+
"state": known
|
|
36
|
+
"note": Synthetic product
|
|
37
|
+
"value": Lumen Desk
|
|
38
|
+
"version":
|
|
39
|
+
"state": unknown
|
|
40
|
+
"note": No deployable revision supplied
|
|
41
|
+
"retries":
|
|
42
|
+
"state": omitted
|
|
43
|
+
"note": Relevant retry policy deliberately left for later research
|
|
44
|
+
"tenantLabel":
|
|
45
|
+
"state": redacted
|
|
46
|
+
"note": Withheld in this synthetic sharing case
|
|
47
|
+
"embeddedArchive":
|
|
48
|
+
"state": absent
|
|
49
|
+
"note": Settings note describes no embedded archive
|
|
50
|
+
"theme":
|
|
51
|
+
"state": out-of-scope
|
|
52
|
+
"note": UI design is outside this investigation
|
|
53
|
+
"basis":
|
|
54
|
+
- "record": urn:research:lumen
|
|
55
|
+
"revision": r2
|
|
56
|
+
"items":
|
|
57
|
+
- urn:finding:lumen:delivery
|
|
58
|
+
- urn:decision:lumen:archive
|
|
59
|
+
"requirements": []
|
|
60
|
+
- "id": urn:component:harbor
|
|
61
|
+
"type":
|
|
62
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
63
|
+
"term": service
|
|
64
|
+
"label": Harbor Archive
|
|
65
|
+
"attributes":
|
|
66
|
+
"product":
|
|
67
|
+
"state": known
|
|
68
|
+
"note": Synthetic product
|
|
69
|
+
"value": Harbor Archive
|
|
70
|
+
"version":
|
|
71
|
+
"state": unknown
|
|
72
|
+
"note": No implementation revision supplied
|
|
73
|
+
"basis":
|
|
74
|
+
- "record": urn:research:harbor
|
|
75
|
+
"revision": r2
|
|
76
|
+
"items":
|
|
77
|
+
- urn:finding:harbor:intake
|
|
78
|
+
- urn:decision:harbor:archive
|
|
79
|
+
"requirements": []
|
|
80
|
+
- "id": urn:component:identity
|
|
81
|
+
"type":
|
|
82
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
83
|
+
"term": service
|
|
84
|
+
"label": Shared identity service
|
|
85
|
+
"attributes":
|
|
86
|
+
"product":
|
|
87
|
+
"state": unknown
|
|
88
|
+
"note": Human selected a shared role; product unspecified
|
|
89
|
+
"basis":
|
|
90
|
+
- "record": urn:research:lumen
|
|
91
|
+
"revision": r2
|
|
92
|
+
"items":
|
|
93
|
+
- urn:finding:lumen:authentication
|
|
94
|
+
- urn:decision:lumen:identity
|
|
95
|
+
- "record": urn:research:harbor
|
|
96
|
+
"revision": r2
|
|
97
|
+
"items":
|
|
98
|
+
- urn:finding:harbor:authentication
|
|
99
|
+
- urn:decision:harbor:identity
|
|
100
|
+
"requirements":
|
|
101
|
+
- urn:requirement:identity
|
|
102
|
+
- "id": urn:component:inference
|
|
103
|
+
"type":
|
|
104
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
105
|
+
"term": inference-service
|
|
106
|
+
"label": Inference service
|
|
107
|
+
"attributes":
|
|
108
|
+
"modelVersion":
|
|
109
|
+
"state": unknown
|
|
110
|
+
"note": Not established by supplied sources
|
|
111
|
+
"basis":
|
|
112
|
+
- "record": urn:research:lumen
|
|
113
|
+
"revision": r2
|
|
114
|
+
"items":
|
|
115
|
+
- urn:finding:lumen:modelVersion
|
|
116
|
+
"requirements":
|
|
117
|
+
- urn:requirement:inference
|
|
118
|
+
"relationships":
|
|
119
|
+
- "id": urn:relationship:documents
|
|
120
|
+
"from": urn:component:lumen
|
|
121
|
+
"to": urn:component:harbor
|
|
122
|
+
"type":
|
|
123
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
124
|
+
"term": sends-documents
|
|
125
|
+
"claim": declared
|
|
126
|
+
"attributes":
|
|
127
|
+
"batchLimit":
|
|
128
|
+
"state": unknown
|
|
129
|
+
"note": Guide says 10; settings note says 25. Conflict remains unresolved.
|
|
130
|
+
"protocol":
|
|
131
|
+
"state": known
|
|
132
|
+
"note": Selected declared protocol
|
|
133
|
+
"value": HTTP
|
|
134
|
+
"basis":
|
|
135
|
+
- "record": urn:research:lumen
|
|
136
|
+
"revision": r2
|
|
137
|
+
"items":
|
|
138
|
+
- urn:finding:lumen:delivery
|
|
139
|
+
- urn:decision:lumen:archive
|
|
140
|
+
- "record": urn:research:harbor
|
|
141
|
+
"revision": r2
|
|
142
|
+
"items":
|
|
143
|
+
- urn:finding:harbor:intake
|
|
144
|
+
- urn:decision:harbor:archive
|
|
145
|
+
- "record": urn:research:lumen
|
|
146
|
+
"revision": r2
|
|
147
|
+
"items":
|
|
148
|
+
- urn:finding:lumen:batchLimit
|
|
149
|
+
"requirements":
|
|
150
|
+
- urn:requirement:archive-token
|
|
151
|
+
- urn:requirement:payload
|
|
152
|
+
- "id": urn:relationship:audit
|
|
153
|
+
"from": urn:component:lumen
|
|
154
|
+
"to": urn:component:harbor
|
|
155
|
+
"type":
|
|
156
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
157
|
+
"term": sends-audit
|
|
158
|
+
"claim": declared
|
|
159
|
+
"attributes":
|
|
160
|
+
"protocol":
|
|
161
|
+
"state": known
|
|
162
|
+
"note": Independent parallel route
|
|
163
|
+
"value": HTTP
|
|
164
|
+
"basis":
|
|
165
|
+
- "record": urn:research:lumen
|
|
166
|
+
"revision": r2
|
|
167
|
+
"items":
|
|
168
|
+
- urn:finding:lumen:delivery
|
|
169
|
+
- urn:decision:lumen:archive
|
|
170
|
+
- "record": urn:research:harbor
|
|
171
|
+
"revision": r2
|
|
172
|
+
"items":
|
|
173
|
+
- urn:finding:harbor:intake
|
|
174
|
+
- urn:decision:harbor:archive
|
|
175
|
+
"requirements":
|
|
176
|
+
- urn:requirement:archive-token
|
|
177
|
+
- urn:requirement:payload
|
|
178
|
+
- "id": urn:relationship:callback
|
|
179
|
+
"from": urn:component:harbor
|
|
180
|
+
"to": urn:component:lumen
|
|
181
|
+
"type":
|
|
182
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
183
|
+
"term": notifies
|
|
184
|
+
"claim": declared
|
|
185
|
+
"attributes":
|
|
186
|
+
"schema":
|
|
187
|
+
"state": unknown
|
|
188
|
+
"note": Both support callback possibilities; exact compatibility not established
|
|
189
|
+
"basis":
|
|
190
|
+
- "record": urn:research:lumen
|
|
191
|
+
"revision": r2
|
|
192
|
+
"items":
|
|
193
|
+
- urn:finding:lumen:callback
|
|
194
|
+
- urn:decision:lumen:callback
|
|
195
|
+
- "record": urn:research:harbor
|
|
196
|
+
"revision": r2
|
|
197
|
+
"items":
|
|
198
|
+
- urn:finding:harbor:callback
|
|
199
|
+
- urn:decision:harbor:callback
|
|
200
|
+
"requirements":
|
|
201
|
+
- urn:requirement:payload
|
|
202
|
+
- "id": urn:relationship:lumen-auth
|
|
203
|
+
"from": urn:component:lumen
|
|
204
|
+
"to": urn:component:identity
|
|
205
|
+
"type":
|
|
206
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
207
|
+
"term": uses-identity
|
|
208
|
+
"claim": declared
|
|
209
|
+
"attributes":
|
|
210
|
+
"protocol":
|
|
211
|
+
"state": known
|
|
212
|
+
"note": Selected option
|
|
213
|
+
"value": OIDC
|
|
214
|
+
"basis":
|
|
215
|
+
- "record": urn:research:lumen
|
|
216
|
+
"revision": r2
|
|
217
|
+
"items":
|
|
218
|
+
- urn:finding:lumen:authentication
|
|
219
|
+
- urn:decision:lumen:identity
|
|
220
|
+
"requirements":
|
|
221
|
+
- urn:requirement:identity
|
|
222
|
+
- "id": urn:relationship:harbor-auth
|
|
223
|
+
"from": urn:component:harbor
|
|
224
|
+
"to": urn:component:identity
|
|
225
|
+
"type":
|
|
226
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
227
|
+
"term": uses-identity
|
|
228
|
+
"claim": declared
|
|
229
|
+
"attributes":
|
|
230
|
+
"protocol":
|
|
231
|
+
"state": known
|
|
232
|
+
"note": Selected option
|
|
233
|
+
"value": OIDC bearer token
|
|
234
|
+
"basis":
|
|
235
|
+
- "record": urn:research:harbor
|
|
236
|
+
"revision": r2
|
|
237
|
+
"items":
|
|
238
|
+
- urn:finding:harbor:authentication
|
|
239
|
+
- urn:decision:harbor:identity
|
|
240
|
+
"requirements":
|
|
241
|
+
- urn:requirement:identity
|
|
242
|
+
- "id": urn:relationship:inference
|
|
243
|
+
"from": urn:component:lumen
|
|
244
|
+
"to": urn:component:inference
|
|
245
|
+
"type":
|
|
246
|
+
"vocabulary": urn:n8r:vocabulary:researcher-example
|
|
247
|
+
"term": uses-inference
|
|
248
|
+
"claim": declared
|
|
249
|
+
"attributes":
|
|
250
|
+
"model":
|
|
251
|
+
"state": unknown
|
|
252
|
+
"note": Source does not identify model
|
|
253
|
+
"basis":
|
|
254
|
+
- "record": urn:research:lumen
|
|
255
|
+
"revision": r2
|
|
256
|
+
"items":
|
|
257
|
+
- urn:finding:lumen:modelVersion
|
|
258
|
+
"requirements":
|
|
259
|
+
- urn:requirement:inference
|
|
260
|
+
"requirements":
|
|
261
|
+
- "id": urn:requirement:archive-token
|
|
262
|
+
"kind": secret
|
|
263
|
+
"description": Recipient supplies an appropriate local token binding; no secret value included.
|
|
264
|
+
"state": unknown
|
|
265
|
+
- "id": urn:requirement:identity
|
|
266
|
+
"kind": configuration
|
|
267
|
+
"description": Choose shared issuer, audiences and claim checks; selection does not configure a service.
|
|
268
|
+
"state": unknown
|
|
269
|
+
- "id": urn:requirement:payload
|
|
270
|
+
"kind": configuration
|
|
271
|
+
"description": Agree document/audit/callback schemas and limits.
|
|
272
|
+
"state": unknown
|
|
273
|
+
- "id": urn:requirement:inference
|
|
274
|
+
"kind": resource
|
|
275
|
+
"description": Select inference implementation, model and local bindings.
|
|
276
|
+
"state": unknown
|
|
277
|
+
"coverage":
|
|
278
|
+
- Two fictional products researched from supplied documents.
|
|
279
|
+
- Shared identity and inference roles remain partial.
|
|
280
|
+
"gaps":
|
|
281
|
+
- Integration not tested; no reachable or exercised connection evidence.
|
|
282
|
+
- Batch-limit conflict remains unresolved.
|
|
283
|
+
- No deployment bindings, effective setup or Experiment Runs supplied.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# CycloneDX exchange
|
|
2
|
+
|
|
3
|
+
CycloneDX 1.7 · BOM version 1 · bound Surface.
|
|
4
|
+
|
|
5
|
+
Open surface.cdx.json in a compatible consumer. Keep surface-records.json and mapping.json with it: they preserve the native evidence and explain the projection/losses. Configured dependencies do not establish runtime use. Coverage remains unknown.
|
|
6
|
+
|
|
7
|
+
Use the standalone helper read operation to verify this directory before continuation. Prior files must stay unchanged.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"predecessor": null,
|
|
4
|
+
"files": {
|
|
5
|
+
"surface.cdx.json": "sha256:fe84d5b0fa769d2c96710cdd627434b88cd1b6ce740b412ae492d51156f27a17",
|
|
6
|
+
"surface-records.json": "sha256:795a7b1fb33980888110f8ea0e67a67de5f98227b39f3104cfa7ed38fddba2a6",
|
|
7
|
+
"mapping.json": "sha256:65f69a776524ffc4d910b0199930e17b5b78ceb92e8dff45cd0fd8601578856d",
|
|
8
|
+
"README.md": "sha256:eb76d9f5cae1dce2d42d13239d011520c355695b1b3e23d15d78ae09704413e8"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "n8r.cyclonedx-exchange/1",
|
|
3
|
+
"standard": "CycloneDX 1.7",
|
|
4
|
+
"surface": {
|
|
5
|
+
"id": "urn:demo:relationship-bound",
|
|
6
|
+
"revision": "r1",
|
|
7
|
+
"digest": "sha256:21eda5c348102d1ceea09f202c645a3184cba240316344b2a034a681730a636b",
|
|
8
|
+
"kind": "bound"
|
|
9
|
+
},
|
|
10
|
+
"research": {
|
|
11
|
+
"id": "urn:demo:relationship-research",
|
|
12
|
+
"revision": "r1",
|
|
13
|
+
"digest": "sha256:615bc6f8f443b986f78a46414faf97822206bcfcc9781e8d7c03d2dcb83940a0"
|
|
14
|
+
},
|
|
15
|
+
"mapping": {
|
|
16
|
+
"nodes": [
|
|
17
|
+
{
|
|
18
|
+
"id": "urn:node:app",
|
|
19
|
+
"kind": "component",
|
|
20
|
+
"type": "application",
|
|
21
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "urn:node:mongodb",
|
|
25
|
+
"kind": "service",
|
|
26
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "urn:node:oidc",
|
|
30
|
+
"kind": "service",
|
|
31
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "urn:node:saml",
|
|
35
|
+
"kind": "service",
|
|
36
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "urn:node:inference",
|
|
40
|
+
"kind": "service",
|
|
41
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "urn:target:atlas",
|
|
45
|
+
"kind": "service",
|
|
46
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "urn:target:oidc",
|
|
50
|
+
"kind": "service",
|
|
51
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "urn:target:saml",
|
|
55
|
+
"kind": "service",
|
|
56
|
+
"rationale": "Synthetic consumer rehearsal classification."
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"dependencies": [
|
|
60
|
+
"urn:cap:database"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"relationships": [
|
|
64
|
+
{
|
|
65
|
+
"id": "urn:cap:database",
|
|
66
|
+
"projected": true,
|
|
67
|
+
"reason": "Explicit configured dependency projection; detailed semantics retained in native snapshot.",
|
|
68
|
+
"relationship": {
|
|
69
|
+
"id": "urn:cap:database",
|
|
70
|
+
"from": "urn:node:app",
|
|
71
|
+
"to": "urn:node:mongodb",
|
|
72
|
+
"type": {
|
|
73
|
+
"vocabulary": "urn:v:demo",
|
|
74
|
+
"term": "persists-data"
|
|
75
|
+
},
|
|
76
|
+
"basis": [
|
|
77
|
+
{
|
|
78
|
+
"record": "urn:demo:relationship-research",
|
|
79
|
+
"revision": "r1",
|
|
80
|
+
"items": [
|
|
81
|
+
"urn:f:database"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"conditions": [],
|
|
86
|
+
"note": "Supported possibility, not a selected composition",
|
|
87
|
+
"purpose": {
|
|
88
|
+
"state": "known",
|
|
89
|
+
"claims": [
|
|
90
|
+
{
|
|
91
|
+
"value": "Persist conversation history and user profiles.",
|
|
92
|
+
"basis": [
|
|
93
|
+
{
|
|
94
|
+
"record": "urn:demo:relationship-research",
|
|
95
|
+
"revision": "r1",
|
|
96
|
+
"items": [
|
|
97
|
+
"urn:f:database-purpose"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"note": "Supported by synthetic source pack."
|
|
104
|
+
},
|
|
105
|
+
"integration": {
|
|
106
|
+
"state": "known",
|
|
107
|
+
"claims": [
|
|
108
|
+
{
|
|
109
|
+
"value": "MongoDB client driver using the MongoDB wire protocol.",
|
|
110
|
+
"basis": [
|
|
111
|
+
{
|
|
112
|
+
"record": "urn:demo:relationship-research",
|
|
113
|
+
"revision": "r1",
|
|
114
|
+
"items": [
|
|
115
|
+
"urn:f:database-integration"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
"note": "Supported by synthetic source pack."
|
|
122
|
+
},
|
|
123
|
+
"configuration": {
|
|
124
|
+
"state": "known",
|
|
125
|
+
"claims": [
|
|
126
|
+
{
|
|
127
|
+
"value": [
|
|
128
|
+
{
|
|
129
|
+
"owner": "urn:node:app",
|
|
130
|
+
"mechanism": "environment-variable",
|
|
131
|
+
"key": "CHAT_STORE_URI",
|
|
132
|
+
"location": "config/assistant.env.example"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"basis": [
|
|
136
|
+
{
|
|
137
|
+
"record": "urn:demo:relationship-research",
|
|
138
|
+
"revision": "r1",
|
|
139
|
+
"items": [
|
|
140
|
+
"urn:f:database-configuration"
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"note": "Supported by synthetic source pack."
|
|
147
|
+
},
|
|
148
|
+
"binding": {
|
|
149
|
+
"state": "configured",
|
|
150
|
+
"claims": [
|
|
151
|
+
{
|
|
152
|
+
"target": "urn:target:atlas",
|
|
153
|
+
"basis": [
|
|
154
|
+
{
|
|
155
|
+
"record": "urn:demo:relationship-research",
|
|
156
|
+
"revision": "r1",
|
|
157
|
+
"items": [
|
|
158
|
+
"urn:f:database-bound"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"decisions": [],
|
|
165
|
+
"note": "Configuration sufficient; runtime unverified"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "urn:cap:oidc",
|
|
171
|
+
"projected": false,
|
|
172
|
+
"reason": "Not projected as a dependency; see native relationship and evidence.",
|
|
173
|
+
"relationship": {
|
|
174
|
+
"id": "urn:cap:oidc",
|
|
175
|
+
"from": "urn:node:app",
|
|
176
|
+
"to": "urn:node:oidc",
|
|
177
|
+
"type": {
|
|
178
|
+
"vocabulary": "urn:v:demo",
|
|
179
|
+
"term": "authenticates-via"
|
|
180
|
+
},
|
|
181
|
+
"basis": [
|
|
182
|
+
{
|
|
183
|
+
"record": "urn:demo:relationship-research",
|
|
184
|
+
"revision": "r1",
|
|
185
|
+
"items": [
|
|
186
|
+
"urn:f:oidc"
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"conditions": [
|
|
191
|
+
"OIDC and SAML are alternatives"
|
|
192
|
+
],
|
|
193
|
+
"note": "Supported possibility, not a selected composition",
|
|
194
|
+
"purpose": {
|
|
195
|
+
"state": "known",
|
|
196
|
+
"claims": [
|
|
197
|
+
{
|
|
198
|
+
"value": "Authenticate users through an identity service.",
|
|
199
|
+
"basis": [
|
|
200
|
+
{
|
|
201
|
+
"record": "urn:demo:relationship-research",
|
|
202
|
+
"revision": "r1",
|
|
203
|
+
"items": [
|
|
204
|
+
"urn:f:oidc-purpose"
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
"note": "Supported by synthetic source pack."
|
|
211
|
+
},
|
|
212
|
+
"integration": {
|
|
213
|
+
"state": "known",
|
|
214
|
+
"claims": [
|
|
215
|
+
{
|
|
216
|
+
"value": "OpenID Connect",
|
|
217
|
+
"basis": [
|
|
218
|
+
{
|
|
219
|
+
"record": "urn:demo:relationship-research",
|
|
220
|
+
"revision": "r1",
|
|
221
|
+
"items": [
|
|
222
|
+
"urn:f:oidc-integration"
|
|
223
|
+
]
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"note": "Supported by synthetic source pack."
|
|
229
|
+
},
|
|
230
|
+
"configuration": {
|
|
231
|
+
"state": "unknown",
|
|
232
|
+
"claims": [],
|
|
233
|
+
"note": "Not researched; no absence assertion."
|
|
234
|
+
},
|
|
235
|
+
"binding": {
|
|
236
|
+
"state": "conflicting",
|
|
237
|
+
"claims": [
|
|
238
|
+
{
|
|
239
|
+
"target": "urn:target:oidc",
|
|
240
|
+
"basis": [
|
|
241
|
+
{
|
|
242
|
+
"record": "urn:demo:relationship-research",
|
|
243
|
+
"revision": "r1",
|
|
244
|
+
"items": [
|
|
245
|
+
"urn:f:identity"
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"target": "urn:target:saml",
|
|
252
|
+
"basis": [
|
|
253
|
+
{
|
|
254
|
+
"record": "urn:demo:relationship-research",
|
|
255
|
+
"revision": "r1",
|
|
256
|
+
"items": [
|
|
257
|
+
"urn:f:identity"
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"decisions": [
|
|
264
|
+
{
|
|
265
|
+
"record": "urn:demo:relationship-research",
|
|
266
|
+
"revision": "r1",
|
|
267
|
+
"items": [
|
|
268
|
+
"urn:decision:oidc"
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
],
|
|
272
|
+
"note": "Preference retained separately; configuration sources disagree"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "urn:cap:inference",
|
|
278
|
+
"projected": false,
|
|
279
|
+
"reason": "Not projected as a dependency; see native relationship and evidence.",
|
|
280
|
+
"relationship": {
|
|
281
|
+
"id": "urn:cap:inference",
|
|
282
|
+
"from": "urn:node:app",
|
|
283
|
+
"to": "urn:node:inference",
|
|
284
|
+
"type": {
|
|
285
|
+
"vocabulary": "urn:v:demo",
|
|
286
|
+
"term": "uses"
|
|
287
|
+
},
|
|
288
|
+
"basis": [],
|
|
289
|
+
"conditions": [],
|
|
290
|
+
"note": "Unknown support",
|
|
291
|
+
"purpose": {
|
|
292
|
+
"state": "unknown",
|
|
293
|
+
"claims": [],
|
|
294
|
+
"note": "Not researched; no absence assertion."
|
|
295
|
+
},
|
|
296
|
+
"integration": {
|
|
297
|
+
"state": "unknown",
|
|
298
|
+
"claims": [],
|
|
299
|
+
"note": "Not researched; no absence assertion."
|
|
300
|
+
},
|
|
301
|
+
"configuration": {
|
|
302
|
+
"state": "unknown",
|
|
303
|
+
"claims": [],
|
|
304
|
+
"note": "Not researched; no absence assertion."
|
|
305
|
+
},
|
|
306
|
+
"binding": {
|
|
307
|
+
"state": "unknown",
|
|
308
|
+
"claims": [],
|
|
309
|
+
"decisions": [],
|
|
310
|
+
"note": "Missing evidence is not unbound"
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
],
|
|
315
|
+
"losses": [
|
|
316
|
+
"Dependency projection does not encode purpose, integration mechanism, configuration evidence, binding states, alternatives or decisions; retained in surface-records.json and relationship report.",
|
|
317
|
+
"Node versions, package identifiers, upstream SBOM contents and transitive dependency completeness are not inferred from labels.",
|
|
318
|
+
"No runtime, control conformance, complete inventory or round-trip compatibility claim. Native records remain authoritative."
|
|
319
|
+
],
|
|
320
|
+
"gaps": [
|
|
321
|
+
"Authentication conflict; inference unknown; runtime unverified"
|
|
322
|
+
]
|
|
323
|
+
}
|