@n8r/surface 0.0.0-stage → 0.1.0-experimental.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE-DOCS +395 -0
  3. package/LICENSING.md +36 -0
  4. package/README.md +181 -2
  5. package/dist/activity.d.ts +16 -0
  6. package/dist/activity.js +44 -0
  7. package/dist/cli.d.ts +2 -0
  8. package/dist/cli.js +260 -0
  9. package/dist/codec.d.ts +4 -0
  10. package/dist/codec.js +41 -0
  11. package/dist/codex.d.ts +72 -0
  12. package/dist/codex.js +510 -0
  13. package/dist/contracts.d.ts +129 -0
  14. package/dist/contracts.js +1 -0
  15. package/dist/html.d.ts +5 -0
  16. package/dist/html.js +50 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.js +5 -0
  19. package/dist/notes.d.ts +52 -0
  20. package/dist/notes.js +184 -0
  21. package/dist/portable.d.ts +10 -0
  22. package/dist/portable.js +71 -0
  23. package/dist/revisions.d.ts +2 -0
  24. package/dist/revisions.js +18 -0
  25. package/dist/settings.d.ts +23 -0
  26. package/dist/settings.js +100 -0
  27. package/dist/setup.d.ts +9 -0
  28. package/dist/setup.js +161 -0
  29. package/dist/source-tools.d.ts +102 -0
  30. package/dist/source-tools.js +201 -0
  31. package/dist/startup.d.ts +7 -0
  32. package/dist/startup.js +74 -0
  33. package/dist/surface-draft.d.ts +19 -0
  34. package/dist/surface-draft.js +95 -0
  35. package/dist/surface-instructions.d.ts +2 -0
  36. package/dist/surface-instructions.js +23 -0
  37. package/dist/surface-store.d.ts +36 -0
  38. package/dist/surface-store.js +181 -0
  39. package/dist/validate.d.ts +4 -0
  40. package/dist/validate.js +184 -0
  41. package/docs/n8r-surface/README.md +133 -0
  42. package/docs/n8r-surface/codex-research-transcript.md +51 -0
  43. package/docs/n8r-surface/codex-research-verification.md +176 -0
  44. package/docs/n8r-surface/command-outcomes.md +564 -0
  45. package/docs/n8r-surface/contracts.md +210 -0
  46. package/docs/n8r-surface/critical-path.md +163 -0
  47. package/docs/n8r-surface/design.md +289 -0
  48. package/docs/n8r-surface/getting-started.md +107 -0
  49. package/docs/n8r-surface/host-contract.md +176 -0
  50. package/docs/n8r-surface/implementation-decisions.md +96 -0
  51. package/docs/n8r-surface/npm-distribution.md +137 -0
  52. package/docs/n8r-surface/npm-release.md +188 -0
  53. package/docs/n8r-surface/recreation-handoff.md +117 -0
  54. package/docs/n8r-surface/researcher-discovery.md +157 -0
  55. package/docs/n8r-surface/researcher-prepared-check.md +117 -0
  56. package/docs/n8r-surface/researcher-reconciliation-trial.md +149 -0
  57. package/docs/n8r-surface/researcher-repository-check.md +95 -0
  58. package/docs/n8r-surface/researcher-skeleton-check.md +84 -0
  59. package/docs/n8r-surface/researcher-skill-verification.md +725 -0
  60. package/docs/n8r-surface/researcher-skill.md +255 -0
  61. package/docs/n8r-surface/researcher-vault.md +134 -0
  62. package/docs/n8r-surface/save-reopen-transcript.md +211 -0
  63. package/docs/n8r-surface/save-reopen-verification.md +152 -0
  64. package/docs/n8r-surface/startup-human-check.md +172 -0
  65. package/docs/n8r-surface/startup-verification.md +161 -0
  66. package/docs/n8r-surface/startup.md +151 -0
  67. package/docs/n8r-surface/surface-revisions-transcript.md +552 -0
  68. package/docs/n8r-surface/surface-revisions-verification.md +161 -0
  69. package/docs/n8r-surface/vault-setup-verification.md +210 -0
  70. package/docs/n8r-surface/verification.md +117 -0
  71. package/docs/n8r-surface/versioning.md +183 -0
  72. package/examples/researcher/README.md +92 -0
  73. package/examples/researcher/composed.surface.json +430 -0
  74. package/examples/researcher/composed.surface.yaml +283 -0
  75. package/examples/researcher/harbor-r1.research.html +193 -0
  76. package/examples/researcher/harbor-r2.research.html +226 -0
  77. package/examples/researcher/lumen-manual-edit.pending.html +271 -0
  78. package/examples/researcher/lumen-r1.research.html +271 -0
  79. package/examples/researcher/lumen-r2.research.html +280 -0
  80. package/examples/researcher/sources/harbor-api.md +16 -0
  81. package/examples/researcher/sources/harbor-auth.md +8 -0
  82. package/examples/researcher/sources/lumen-guide.md +28 -0
  83. package/examples/researcher/sources/lumen-settings.md +9 -0
  84. package/package.json +45 -4
  85. package/plugins/n8r-surface/.codex-plugin/plugin.json +31 -0
  86. package/plugins/n8r-surface/LICENSE +202 -0
  87. package/plugins/n8r-surface/LICENSE-DOCS +395 -0
  88. package/plugins/n8r-surface/LICENSING.md +36 -0
  89. package/plugins/n8r-surface/assets/icon.svg +5 -0
  90. package/plugins/n8r-surface/plugin.json +27 -0
  91. package/plugins/n8r-surface/skills/research/SKILL.md +122 -0
  92. package/plugins/n8r-surface/skills/research/agents/openai.yaml +4 -0
  93. package/plugins/n8r-surface/skills/research/references/discovery-map.md +160 -0
  94. package/plugins/n8r-surface/skills/research/references/model-meanings.md +55 -0
  95. package/plugins/n8r-surface/skills/research/references/skeleton-surface.md +105 -0
  96. package/plugins/n8r-surface/skills/research/references/working-notes.md +116 -0
@@ -0,0 +1,430 @@
1
+ {
2
+ "contract": "n8r.surface/0.1",
3
+ "id": "urn:surface:lumen-with-harbor",
4
+ "title": "Selected Lumen and Harbor composition",
5
+ "revision": {
6
+ "id": "r1",
7
+ "parent": null,
8
+ "createdAt": "2026-11-04T09:00:00Z",
9
+ "author": "Synthetic researcher",
10
+ "reason": "Synthetic user selects a partial composition; no integration has been run"
11
+ },
12
+ "scope": "Desired composition from supplied fictional documents. Authentication, schemas and effective setup are incomplete.",
13
+ "extensions": {
14
+ "https://example.test/selection/v1": {
15
+ "synthetic": true,
16
+ "opaque": {
17
+ "reviewed": true
18
+ }
19
+ }
20
+ },
21
+ "kind": "definition",
22
+ "records": [
23
+ {
24
+ "id": "urn:research:lumen",
25
+ "revision": "r2",
26
+ "digest": "sha256:d7384fe64f1140815ddda3c7bbb2fe826a83140b445e70d839b07145c5840aca"
27
+ },
28
+ {
29
+ "id": "urn:research:harbor",
30
+ "revision": "r2",
31
+ "digest": "sha256:8e5e492f7154b42b250ad3badea95cc73b571c6e22b4120cd957fcd9e57a0f2b"
32
+ }
33
+ ],
34
+ "vocabularies": [
35
+ {
36
+ "id": "urn:n8r:vocabulary:researcher-example",
37
+ "version": "0.1"
38
+ }
39
+ ],
40
+ "nodes": [
41
+ {
42
+ "id": "urn:component:lumen",
43
+ "type": {
44
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
45
+ "term": "application"
46
+ },
47
+ "label": "Lumen Desk",
48
+ "attributes": {
49
+ "product": {
50
+ "state": "known",
51
+ "note": "Synthetic product",
52
+ "value": "Lumen Desk"
53
+ },
54
+ "version": {
55
+ "state": "unknown",
56
+ "note": "No deployable revision supplied"
57
+ },
58
+ "retries": {
59
+ "state": "omitted",
60
+ "note": "Relevant retry policy deliberately left for later research"
61
+ },
62
+ "tenantLabel": {
63
+ "state": "redacted",
64
+ "note": "Withheld in this synthetic sharing case"
65
+ },
66
+ "embeddedArchive": {
67
+ "state": "absent",
68
+ "note": "Settings note describes no embedded archive"
69
+ },
70
+ "theme": {
71
+ "state": "out-of-scope",
72
+ "note": "UI design is outside this investigation"
73
+ }
74
+ },
75
+ "basis": [
76
+ {
77
+ "record": "urn:research:lumen",
78
+ "revision": "r2",
79
+ "items": [
80
+ "urn:finding:lumen:delivery",
81
+ "urn:decision:lumen:archive"
82
+ ]
83
+ }
84
+ ],
85
+ "requirements": []
86
+ },
87
+ {
88
+ "id": "urn:component:harbor",
89
+ "type": {
90
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
91
+ "term": "service"
92
+ },
93
+ "label": "Harbor Archive",
94
+ "attributes": {
95
+ "product": {
96
+ "state": "known",
97
+ "note": "Synthetic product",
98
+ "value": "Harbor Archive"
99
+ },
100
+ "version": {
101
+ "state": "unknown",
102
+ "note": "No implementation revision supplied"
103
+ }
104
+ },
105
+ "basis": [
106
+ {
107
+ "record": "urn:research:harbor",
108
+ "revision": "r2",
109
+ "items": [
110
+ "urn:finding:harbor:intake",
111
+ "urn:decision:harbor:archive"
112
+ ]
113
+ }
114
+ ],
115
+ "requirements": []
116
+ },
117
+ {
118
+ "id": "urn:component:identity",
119
+ "type": {
120
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
121
+ "term": "service"
122
+ },
123
+ "label": "Shared identity service",
124
+ "attributes": {
125
+ "product": {
126
+ "state": "unknown",
127
+ "note": "Human selected a shared role; product unspecified"
128
+ }
129
+ },
130
+ "basis": [
131
+ {
132
+ "record": "urn:research:lumen",
133
+ "revision": "r2",
134
+ "items": [
135
+ "urn:finding:lumen:authentication",
136
+ "urn:decision:lumen:identity"
137
+ ]
138
+ },
139
+ {
140
+ "record": "urn:research:harbor",
141
+ "revision": "r2",
142
+ "items": [
143
+ "urn:finding:harbor:authentication",
144
+ "urn:decision:harbor:identity"
145
+ ]
146
+ }
147
+ ],
148
+ "requirements": [
149
+ "urn:requirement:identity"
150
+ ]
151
+ },
152
+ {
153
+ "id": "urn:component:inference",
154
+ "type": {
155
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
156
+ "term": "inference-service"
157
+ },
158
+ "label": "Inference service",
159
+ "attributes": {
160
+ "modelVersion": {
161
+ "state": "unknown",
162
+ "note": "Not established by supplied sources"
163
+ }
164
+ },
165
+ "basis": [
166
+ {
167
+ "record": "urn:research:lumen",
168
+ "revision": "r2",
169
+ "items": [
170
+ "urn:finding:lumen:modelVersion"
171
+ ]
172
+ }
173
+ ],
174
+ "requirements": [
175
+ "urn:requirement:inference"
176
+ ]
177
+ }
178
+ ],
179
+ "relationships": [
180
+ {
181
+ "id": "urn:relationship:documents",
182
+ "from": "urn:component:lumen",
183
+ "to": "urn:component:harbor",
184
+ "type": {
185
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
186
+ "term": "sends-documents"
187
+ },
188
+ "claim": "declared",
189
+ "attributes": {
190
+ "batchLimit": {
191
+ "state": "unknown",
192
+ "note": "Guide says 10; settings note says 25. Conflict remains unresolved."
193
+ },
194
+ "protocol": {
195
+ "state": "known",
196
+ "note": "Selected declared protocol",
197
+ "value": "HTTP"
198
+ }
199
+ },
200
+ "basis": [
201
+ {
202
+ "record": "urn:research:lumen",
203
+ "revision": "r2",
204
+ "items": [
205
+ "urn:finding:lumen:delivery",
206
+ "urn:decision:lumen:archive"
207
+ ]
208
+ },
209
+ {
210
+ "record": "urn:research:harbor",
211
+ "revision": "r2",
212
+ "items": [
213
+ "urn:finding:harbor:intake",
214
+ "urn:decision:harbor:archive"
215
+ ]
216
+ },
217
+ {
218
+ "record": "urn:research:lumen",
219
+ "revision": "r2",
220
+ "items": [
221
+ "urn:finding:lumen:batchLimit"
222
+ ]
223
+ }
224
+ ],
225
+ "requirements": [
226
+ "urn:requirement:archive-token",
227
+ "urn:requirement:payload"
228
+ ]
229
+ },
230
+ {
231
+ "id": "urn:relationship:audit",
232
+ "from": "urn:component:lumen",
233
+ "to": "urn:component:harbor",
234
+ "type": {
235
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
236
+ "term": "sends-audit"
237
+ },
238
+ "claim": "declared",
239
+ "attributes": {
240
+ "protocol": {
241
+ "state": "known",
242
+ "note": "Independent parallel route",
243
+ "value": "HTTP"
244
+ }
245
+ },
246
+ "basis": [
247
+ {
248
+ "record": "urn:research:lumen",
249
+ "revision": "r2",
250
+ "items": [
251
+ "urn:finding:lumen:delivery",
252
+ "urn:decision:lumen:archive"
253
+ ]
254
+ },
255
+ {
256
+ "record": "urn:research:harbor",
257
+ "revision": "r2",
258
+ "items": [
259
+ "urn:finding:harbor:intake",
260
+ "urn:decision:harbor:archive"
261
+ ]
262
+ }
263
+ ],
264
+ "requirements": [
265
+ "urn:requirement:archive-token",
266
+ "urn:requirement:payload"
267
+ ]
268
+ },
269
+ {
270
+ "id": "urn:relationship:callback",
271
+ "from": "urn:component:harbor",
272
+ "to": "urn:component:lumen",
273
+ "type": {
274
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
275
+ "term": "notifies"
276
+ },
277
+ "claim": "declared",
278
+ "attributes": {
279
+ "schema": {
280
+ "state": "unknown",
281
+ "note": "Both support callback possibilities; exact compatibility not established"
282
+ }
283
+ },
284
+ "basis": [
285
+ {
286
+ "record": "urn:research:lumen",
287
+ "revision": "r2",
288
+ "items": [
289
+ "urn:finding:lumen:callback",
290
+ "urn:decision:lumen:callback"
291
+ ]
292
+ },
293
+ {
294
+ "record": "urn:research:harbor",
295
+ "revision": "r2",
296
+ "items": [
297
+ "urn:finding:harbor:callback",
298
+ "urn:decision:harbor:callback"
299
+ ]
300
+ }
301
+ ],
302
+ "requirements": [
303
+ "urn:requirement:payload"
304
+ ]
305
+ },
306
+ {
307
+ "id": "urn:relationship:lumen-auth",
308
+ "from": "urn:component:lumen",
309
+ "to": "urn:component:identity",
310
+ "type": {
311
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
312
+ "term": "uses-identity"
313
+ },
314
+ "claim": "declared",
315
+ "attributes": {
316
+ "protocol": {
317
+ "state": "known",
318
+ "note": "Selected option",
319
+ "value": "OIDC"
320
+ }
321
+ },
322
+ "basis": [
323
+ {
324
+ "record": "urn:research:lumen",
325
+ "revision": "r2",
326
+ "items": [
327
+ "urn:finding:lumen:authentication",
328
+ "urn:decision:lumen:identity"
329
+ ]
330
+ }
331
+ ],
332
+ "requirements": [
333
+ "urn:requirement:identity"
334
+ ]
335
+ },
336
+ {
337
+ "id": "urn:relationship:harbor-auth",
338
+ "from": "urn:component:harbor",
339
+ "to": "urn:component:identity",
340
+ "type": {
341
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
342
+ "term": "uses-identity"
343
+ },
344
+ "claim": "declared",
345
+ "attributes": {
346
+ "protocol": {
347
+ "state": "known",
348
+ "note": "Selected option",
349
+ "value": "OIDC bearer token"
350
+ }
351
+ },
352
+ "basis": [
353
+ {
354
+ "record": "urn:research:harbor",
355
+ "revision": "r2",
356
+ "items": [
357
+ "urn:finding:harbor:authentication",
358
+ "urn:decision:harbor:identity"
359
+ ]
360
+ }
361
+ ],
362
+ "requirements": [
363
+ "urn:requirement:identity"
364
+ ]
365
+ },
366
+ {
367
+ "id": "urn:relationship:inference",
368
+ "from": "urn:component:lumen",
369
+ "to": "urn:component:inference",
370
+ "type": {
371
+ "vocabulary": "urn:n8r:vocabulary:researcher-example",
372
+ "term": "uses-inference"
373
+ },
374
+ "claim": "declared",
375
+ "attributes": {
376
+ "model": {
377
+ "state": "unknown",
378
+ "note": "Source does not identify model"
379
+ }
380
+ },
381
+ "basis": [
382
+ {
383
+ "record": "urn:research:lumen",
384
+ "revision": "r2",
385
+ "items": [
386
+ "urn:finding:lumen:modelVersion"
387
+ ]
388
+ }
389
+ ],
390
+ "requirements": [
391
+ "urn:requirement:inference"
392
+ ]
393
+ }
394
+ ],
395
+ "requirements": [
396
+ {
397
+ "id": "urn:requirement:archive-token",
398
+ "kind": "secret",
399
+ "description": "Recipient supplies an appropriate local token binding; no secret value included.",
400
+ "state": "unknown"
401
+ },
402
+ {
403
+ "id": "urn:requirement:identity",
404
+ "kind": "configuration",
405
+ "description": "Choose shared issuer, audiences and claim checks; selection does not configure a service.",
406
+ "state": "unknown"
407
+ },
408
+ {
409
+ "id": "urn:requirement:payload",
410
+ "kind": "configuration",
411
+ "description": "Agree document/audit/callback schemas and limits.",
412
+ "state": "unknown"
413
+ },
414
+ {
415
+ "id": "urn:requirement:inference",
416
+ "kind": "resource",
417
+ "description": "Select inference implementation, model and local bindings.",
418
+ "state": "unknown"
419
+ }
420
+ ],
421
+ "coverage": [
422
+ "Two fictional products researched from supplied documents.",
423
+ "Shared identity and inference roles remain partial."
424
+ ],
425
+ "gaps": [
426
+ "Integration not tested; no reachable or exercised connection evidence.",
427
+ "Batch-limit conflict remains unresolved.",
428
+ "No deployment bindings, effective setup or Experiment Runs supplied."
429
+ ]
430
+ }