@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,105 @@
|
|
|
1
|
+
# Skeleton Surface v0.1
|
|
2
|
+
|
|
3
|
+
This is a provisional output profile within the AI Surface Model. Produce a
|
|
4
|
+
compact Markdown Surface working draft, not validated JSON/HTML or a deployment
|
|
5
|
+
recipe. The profile version describes these rules; the skill version identifies
|
|
6
|
+
the instructions used. Neither is the revision of the particular Surface/setup.
|
|
7
|
+
|
|
8
|
+
## Select and bound the brief
|
|
9
|
+
|
|
10
|
+
Use this profile when asked for a skeleton or brief Surface. Broad discovery
|
|
11
|
+
starts shallow; a narrow question takes precedence over a general inventory.
|
|
12
|
+
Security is the focus of this profile, while the model supports other purposes.
|
|
13
|
+
The useful question is: where could a security integration inspect or intervene
|
|
14
|
+
in LLM and actual tool calls, with what powers, coverage and gaps?
|
|
15
|
+
|
|
16
|
+
Retain a node or distinction when removing it hides a key capability, a material
|
|
17
|
+
security boundary, or a place an Experiment could change or observe behavior.
|
|
18
|
+
Keep required supporting roles such as application persistence when they explain
|
|
19
|
+
the setup. Features can be capability nodes; do not turn every setting into a node.
|
|
20
|
+
Use a role such as MCP server or vector store when no instance is selected. Source
|
|
21
|
+
evidence may identify supported products/transports without identifying a binding.
|
|
22
|
+
An empty template field does not establish that every deployment lacks a binding.
|
|
23
|
+
|
|
24
|
+
Preserve stable node and relationship identities from supplied descriptions.
|
|
25
|
+
Different serialization or vocabulary requires an explicit mapping, not silent
|
|
26
|
+
renaming. Keep shared nodes, parallel routes and cycles. A historical claim not
|
|
27
|
+
re-established at the selected revision must stay qualified or move to a clearly
|
|
28
|
+
linked historical/gap record; it cannot become a current supported capability.
|
|
29
|
+
|
|
30
|
+
## Keep the graph small without losing meaning
|
|
31
|
+
|
|
32
|
+
Lead with a short identity/scope line and a graph or edge table. Retain source
|
|
33
|
+
revision, Surface revision and profile name/version. Show key nodes, directed
|
|
34
|
+
relationships, purposes and relevant execution/authority boundaries. Label
|
|
35
|
+
supported possibilities separately from selected composition and observed setup.
|
|
36
|
+
No source-only graph establishes reachability or exercise.
|
|
37
|
+
|
|
38
|
+
Use concise claim references to linked research or source sections. Identify the
|
|
39
|
+
supporting revision and locator where available. Summarize coverage and unresolved
|
|
40
|
+
questions once where shared; retain exceptions beside the affected edge. Avoid
|
|
41
|
+
repeating boilerplate unknown bindings for every node, but never make an omitted
|
|
42
|
+
value imply absence. No arbitrary node count, depth ceiling or file-size minimum
|
|
43
|
+
applies. A smaller output is not permission to discard a condition or bypass.
|
|
44
|
+
|
|
45
|
+
| In the brief | In linked records |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Nodes, directed edges, roles, material conditions and uncertainty | Detailed source excerpts, inspected ranges and investigation narrative |
|
|
48
|
+
| Claim basis and usable evidence references | Full provenance, conflicts and supporting findings |
|
|
49
|
+
| Interception location, visibility, powers and coverage gaps | Hook signatures, configuration details and vendor compatibility research |
|
|
50
|
+
| Binding status and reference when relevant | Protected resource bindings, nonsecret configuration and secret requirements/references |
|
|
51
|
+
| Observation summary with applicability, when supplied | Dated runtime observations, traces, tests and Experiment Run results |
|
|
52
|
+
|
|
53
|
+
Use existing evidence records when they suffice. Do not create a large companion
|
|
54
|
+
record just to satisfy a template; direct versioned source references can suffice.
|
|
55
|
+
Keep links portable or state which accompanying files are needed. Never invent
|
|
56
|
+
records or imply their contents were read. Credential values do not belong in
|
|
57
|
+
the brief or research evidence.
|
|
58
|
+
|
|
59
|
+
## Map interception opportunities
|
|
60
|
+
|
|
61
|
+
For each relevant candidate, state compactly:
|
|
62
|
+
|
|
63
|
+
- **Location and stage:** node/edge, before/after model dispatch or tool execution.
|
|
64
|
+
- **Visible context:** messages, tool arguments/results, principal, or unknown.
|
|
65
|
+
- **Powers:** observe, modify, block or require approval, only as supported.
|
|
66
|
+
- **Coverage:** covered routes, conditions, bypasses and unresolved continuations.
|
|
67
|
+
- **Basis:** proposed placement, documented/implemented extension, configured
|
|
68
|
+
integration, or exercised behavior; link evidence and preserve its limits.
|
|
69
|
+
|
|
70
|
+
A proxy only sees traffic routed through it. Seeing tool schemas, model-proposed
|
|
71
|
+
calls or returned results in model traffic does not prove mediation of the actual
|
|
72
|
+
tool invocation or downstream effects. Trace the tool executor separately. Keep
|
|
73
|
+
browser-direct routes, scheduled workers and other known alternate paths visible.
|
|
74
|
+
|
|
75
|
+
A hook's presence does not establish its timing, veto power or complete coverage.
|
|
76
|
+
A sidecar is placement, not an interception mechanism: identify routing, hooks or
|
|
77
|
+
event delivery and how a decision reaches execution. Observation-only telemetry
|
|
78
|
+
is not enforcement. Record failure behavior if known, or as a gap relevant to
|
|
79
|
+
later setup selection; a documented claim is not a runtime test.
|
|
80
|
+
|
|
81
|
+
Record potential cross-service observation points and correlation gaps without
|
|
82
|
+
claiming end-to-end trace coverage. Do not select a vendor or infer product
|
|
83
|
+
compatibility from names or protocols. If evidence supports only an opportunity,
|
|
84
|
+
say so. Stop once the brief answers the question with gaps visible. Do not install,
|
|
85
|
+
bind resources, configure proxies/hooks or run integration tests as part of it.
|
|
86
|
+
|
|
87
|
+
## Continue and reconcile
|
|
88
|
+
|
|
89
|
+
Size and deployment knowledge are independent. A bound setup can have a skeleton;
|
|
90
|
+
a detailed product description can remain unbound. When saving or continuing,
|
|
91
|
+
follow [working notes](working-notes.md), preserving predecessors and evidence.
|
|
92
|
+
|
|
93
|
+
For Lab-managed changes, the intended consumer behavior is to record a successor
|
|
94
|
+
setup/binding revision with the change and its evidence; an Experiment requests
|
|
95
|
+
resources from its Lab, which owns bindings. This skill does not implement that
|
|
96
|
+
automation. A request is not proof that configuration succeeded. Keep effective
|
|
97
|
+
setup unknown until supported by observation.
|
|
98
|
+
|
|
99
|
+
Changes outside the Lab do not automatically update saved descriptions. On an
|
|
100
|
+
explicit reconciliation request, read current identified evidence, compare it
|
|
101
|
+
with the predecessor and save an authorized successor. Preserve stable identities,
|
|
102
|
+
explain changed declarations/bindings and retain uncertainty about effective use.
|
|
103
|
+
Reference an unchanged definition when only bindings change; use a successor
|
|
104
|
+
definition when composition or intended settings change. Keep profile version
|
|
105
|
+
unchanged unless the output rules change. Do not retrospectively rebind prior Runs.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Working research notes
|
|
2
|
+
|
|
3
|
+
Use Markdown for the first portable research increment. These are readable
|
|
4
|
+
working notes, not a released interchange schema or a validated experimental
|
|
5
|
+
HTML/Surface artefact. Use the user's requested prose format when practical;
|
|
6
|
+
retain the same evidence and limitations. Do not impose a large empty template.
|
|
7
|
+
|
|
8
|
+
## Where notes live
|
|
9
|
+
|
|
10
|
+
Use a user-selected destination first. For work explicitly scoped to a recognized
|
|
11
|
+
Surface workspace, keep new notes under `research/<source-slug>/` within that
|
|
12
|
+
workspace, creating directories only on an authorized save. Do not redirect that
|
|
13
|
+
work to a global vault or the default below. When continuing a supplied note,
|
|
14
|
+
retain its folder unless the user asks to move it. Workspace setup itself creates
|
|
15
|
+
no notes or content directories. When an applicable vault convention places
|
|
16
|
+
Surface descriptions under `surfaces/<source-slug>/`, propose a numbered file
|
|
17
|
+
such as `surface-draft-001.md` there. A save offer does not create directories or
|
|
18
|
+
files; wait for acceptance. Without that convention, use the default below for
|
|
19
|
+
the same Markdown working draft. When continuing a saved note, use its
|
|
20
|
+
folder unless the user requests a move. Otherwise, on a host with a persistent
|
|
21
|
+
user-owned local filesystem, use:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
~/Documents/n8r-surface/research/<source-slug>/<topic>-001.md
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Derive short lowercase hyphenated slugs from the source and question. For a
|
|
28
|
+
LibreChat authentication investigation, use `librechat/authentication-001.md`.
|
|
29
|
+
Resolve the user's actual home directory through the host, expand `~`, and show
|
|
30
|
+
the absolute folder and filename before writing. Create missing directories as
|
|
31
|
+
part of an authorized save. Keep that local locator in the conversation, not in
|
|
32
|
+
portable note content. Do not treat a temporary execution container as the user's
|
|
33
|
+
persistent filesystem. If local saving is unavailable, explain that limitation
|
|
34
|
+
and offer a named Markdown download or text without claiming the default exists.
|
|
35
|
+
|
|
36
|
+
List existing notes for that topic first. Use the next unused three-digit number
|
|
37
|
+
(`002`, `003`, and so on; grow beyond three digits if needed). An existing filename
|
|
38
|
+
is never permission to overwrite. For continuation, read the predecessor and any
|
|
39
|
+
human edits, name it in the successor and record the change. Recheck its bytes
|
|
40
|
+
before saving; if they changed, reread and reconcile before choosing a new output.
|
|
41
|
+
Check that existing notes describe the same source before continuing them;
|
|
42
|
+
matching directory names alone do not establish source identity.
|
|
43
|
+
|
|
44
|
+
Provide the actual saved file as a clickable link after readback. On a local
|
|
45
|
+
host, use an absolute file link. The user should be able to open it without
|
|
46
|
+
searching the plugin cache or scrolling back through tool output. Skill removal
|
|
47
|
+
must leave this research folder and every previous note intact.
|
|
48
|
+
|
|
49
|
+
## What a note retains
|
|
50
|
+
|
|
51
|
+
A saved note should let another person or a fresh chat continue the task:
|
|
52
|
+
|
|
53
|
+
- Identify the question, scope, date, skill version and host/tool capabilities
|
|
54
|
+
actually used. Do not guess a hidden model ID or application version.
|
|
55
|
+
- Identify the supplied sources using portable relative names or public locators.
|
|
56
|
+
Record available revision/version information and exact hashes for inspected
|
|
57
|
+
files when supported. Explicitly mark unavailable identity evidence.
|
|
58
|
+
- Lead with the partial AI Surface graph or edge table, stable component labels
|
|
59
|
+
and evidence locations. Keep supported possibilities separate from selected
|
|
60
|
+
connections. Include only settings needed to explain the graph, not an app-wide
|
|
61
|
+
configuration inventory.
|
|
62
|
+
- Preserve conflicting claims, unknowns, coverage limits and scoped absences.
|
|
63
|
+
- Retain human decisions and unanswered questions separately from source evidence.
|
|
64
|
+
- State what was actually read or exercised and what remains to be done. Include
|
|
65
|
+
**Recommended next steps** as described below, and a useful next question when
|
|
66
|
+
a user decision is needed.
|
|
67
|
+
|
|
68
|
+
Keep source links usable when the notes are moved, or explain what accompanying
|
|
69
|
+
source files are needed. Do not copy whole repositories or credentials into the
|
|
70
|
+
notes. A source digest identifies bytes, not truth, completeness or compatibility.
|
|
71
|
+
|
|
72
|
+
## Recommended next steps
|
|
73
|
+
|
|
74
|
+
Include a **Recommended next steps** section in the latest Surface note for the
|
|
75
|
+
same source and scope. If no Surface note exists, include it in the latest research
|
|
76
|
+
note. A Surface note here is a saved prose description of the Surface; this rule
|
|
77
|
+
does not add validated structured-output support or require creating one.
|
|
78
|
+
|
|
79
|
+
For each recommendation, state:
|
|
80
|
+
|
|
81
|
+
- **Next investigation:** the concrete question or connection to investigate.
|
|
82
|
+
- **Why it matters:** which uncertainty or user decision it would resolve.
|
|
83
|
+
- **Where to resume:** the relevant source file/section, component ID, saved note
|
|
84
|
+
or permitted view, plus any access or missing evidence needed to proceed.
|
|
85
|
+
|
|
86
|
+
Use portable references, not local absolute paths or credentials. For example:
|
|
87
|
+
|
|
88
|
+
> **Next investigation:** establish the selected document-search target.
|
|
89
|
+
> **Why it matters:** the optional search path has no address in the supplied
|
|
90
|
+
> settings, so its selected connection remains unresolved.
|
|
91
|
+
> **Where to resume:** `current.env`, `DOCUMENT_SEARCH_URL`, and `system.md` →
|
|
92
|
+
> Uploaded documents; request applicable deployment settings if available.
|
|
93
|
+
|
|
94
|
+
When continuing, read this section alongside the predecessor and human edits,
|
|
95
|
+
re-establish source identity, and use it to choose the next investigation within
|
|
96
|
+
the user's current scope. Recommendations are proposed work, not permission for
|
|
97
|
+
new access or evidence that a connection exists. If the needed evidence is
|
|
98
|
+
unavailable, retain the blocker and a concrete resumption point.
|
|
99
|
+
|
|
100
|
+
In the saved successor, update the section to reflect what was resolved, what
|
|
101
|
+
remains and the next useful investigation. Explain a changed priority or superseded
|
|
102
|
+
recommendation briefly. Preserve earlier notes unchanged. If an older note has
|
|
103
|
+
no recommendations, derive them from its supported gaps and current evidence in
|
|
104
|
+
the successor; do not retrofit the predecessor. If no further investigation is
|
|
105
|
+
needed within scope, say so and explain why rather than inventing work.
|
|
106
|
+
|
|
107
|
+
## Save and read back
|
|
108
|
+
|
|
109
|
+
If the destination already exists or changed since it was read, stop that write
|
|
110
|
+
and propose a new file or a reviewed merge. Do not claim atomic guarded storage
|
|
111
|
+
or byte-conflict guarantees that the host has not provided.
|
|
112
|
+
|
|
113
|
+
After saving, read the saved bytes through an available tool and check that the
|
|
114
|
+
findings, references, uncertainties, human choices and current recommendations
|
|
115
|
+
survived. Provide the actual path or download and report any readback limitation. Merely printing a filename
|
|
116
|
+
is not a save. Reopening in a fresh chat is a separate continuation check.
|
|
117
|
+
|
|
118
|
+
Installing or removing the skill changes its availability in the host. User notes
|
|
119
|
+
belong to the user and must remain outside the plugin installation/cache folders.
|
|
120
|
+
Never delete research as part of skill removal. Uninstallation does not erase
|
|
121
|
+
instructions or source content already present in an old conversation.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Workspace operations
|
|
2
|
+
|
|
3
|
+
Use this mode for setup, repeated setup, readiness and fresh-chat recognition.
|
|
4
|
+
A workspace is a user-owned folder, independent of a vault, source checkout,
|
|
5
|
+
Lab or app project. The only initial file is `.n8r/workspace.json`.
|
|
6
|
+
|
|
7
|
+
If the user means starting research in a web Project rather than creating a local
|
|
8
|
+
folder, use [first-use access](first-use-access.md) and begin from supplied sources.
|
|
9
|
+
If explicit local setup is requested but the host cannot access a persistent local
|
|
10
|
+
filesystem or supported Node runtime, report that operation blocked. Keep useful
|
|
11
|
+
source research available; do not ask for a laptop path the host cannot access.
|
|
12
|
+
|
|
13
|
+
## Run the shared helper
|
|
14
|
+
|
|
15
|
+
Requires a local persistent filesystem and Node.js 22, 24 or 26 on macOS/Linux.
|
|
16
|
+
Use the helper **from this installed skill**, resolving its absolute path relative
|
|
17
|
+
to this reference, not from a developer checkout. Invoke it through `node`:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
node /installed/skill/scripts/workspace.mjs inspect /selected/workspace
|
|
21
|
+
node /installed/skill/scripts/workspace.mjs setup /selected/workspace --purpose 'Investigate LibreChat'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The paths above are placeholders. Quote actual paths and supplied text safely;
|
|
25
|
+
never interpolate untrusted metadata into shell code. `inspect` only reads.
|
|
26
|
+
`setup` requires the user's explicit setup request. Supply `--name` only if the
|
|
27
|
+
user supplied a display name; otherwise the folder name is used. Supply a brief
|
|
28
|
+
nonsecret `--purpose` from the stated intent when available; it is optional.
|
|
29
|
+
Do not put credentials, private bindings or absolute source paths in metadata.
|
|
30
|
+
No naming/schema questionnaire is needed. Ask for a destination only when the
|
|
31
|
+
user's selected/current folder cannot be established.
|
|
32
|
+
|
|
33
|
+
If Node, the helper, local access or persistent storage is unavailable, explain
|
|
34
|
+
that blocker and the concrete prerequisite. Do not install a runtime, recreate
|
|
35
|
+
the helper's filesystem logic by hand, or claim a download is a local workspace.
|
|
36
|
+
A host without shell/local persistence cannot perform this workspace operation.
|
|
37
|
+
The standalone research CLI and Labs do not yet expose this capability.
|
|
38
|
+
|
|
39
|
+
## Interpret the result
|
|
40
|
+
|
|
41
|
+
The helper prints one JSON object with `status`, `message`, absolute `directory`
|
|
42
|
+
when available, and `record` for a supported workspace. Exit 0 means created or
|
|
43
|
+
recognized; exit 3 means missing, empty or awaiting a destination choice; exit 2
|
|
44
|
+
means invalid input, malformed/unsupported metadata, conflict or I/O failure.
|
|
45
|
+
These are helper results, not permission to expand the task.
|
|
46
|
+
|
|
47
|
+
- `created`: report the actual location and a useful next research action. The
|
|
48
|
+
helper has read back the complete record. No research has started.
|
|
49
|
+
- `recognized`: reuse the saved ID, name and optional purpose without rewriting
|
|
50
|
+
or asking again. Report readiness for research, not proof of prior research or
|
|
51
|
+
a configured target. For a readiness question, offer a next action based on
|
|
52
|
+
saved purpose or relevant existing notes without starting it. Read notes only
|
|
53
|
+
as needed; do not infer findings from metadata or generic filenames.
|
|
54
|
+
- `missing` / `empty`: inspection found no workspace. Explain this; recognition
|
|
55
|
+
alone does not authorize creation. An explicit setup request can call `setup`.
|
|
56
|
+
- `needs-choice`: explain that files already exist and ask “Initialize here, or
|
|
57
|
+
use another folder?” Make no writes before the choice. Only an explicit
|
|
58
|
+
initialize-here choice permits `setup PATH --adopt` (with supplied name/purpose).
|
|
59
|
+
If another folder is chosen, run normal setup there without `--adopt`.
|
|
60
|
+
- `malformed` / `unsupported` / `conflict`: explain the helper's specific reason
|
|
61
|
+
and offer another destination or separately requested repair assessment. Make
|
|
62
|
+
no changes; no automatic migration, downgrade, replacement or cleanup.
|
|
63
|
+
- `invalid-input` / `io-error`: report the specific limitation; do not claim
|
|
64
|
+
success. An interrupted operation may leave metadata staging files. Inspect
|
|
65
|
+
read-only if needed; repair is separate and never implied by a retry.
|
|
66
|
+
|
|
67
|
+
For recognized/created results, identify the saved format and stable ID without
|
|
68
|
+
requiring the user to understand their encoding. Keep the interaction short.
|
|
69
|
+
Filesystem creation does not attach the folder to an app project. Say attachment
|
|
70
|
+
is separate; only claim it if a supported host action actually occurred. Setup
|
|
71
|
+
does not require attachment, Git, credentials, global settings or a vault.
|
|
72
|
+
Do not create README, AGENTS.md, `.gitkeep`, models or content directories during
|
|
73
|
+
setup. Research remains a separate requested action.
|
|
74
|
+
|
|
75
|
+
## Shared metadata meaning
|
|
76
|
+
|
|
77
|
+
`n8r.workspace/1` is independent of plugin and AI Surface Model versions. The
|
|
78
|
+
helper validates a JSON object with that exact `format`, generated UUID v4 `id`,
|
|
79
|
+
nonempty text `name`, and optional text `purpose`. Unknown fields are preserved
|
|
80
|
+
and confer no capabilities. The ID survives setup repetition, rename, move and
|
|
81
|
+
fresh sessions. Invalid JSON/required fields are malformed; a different format
|
|
82
|
+
token is unsupported. Recognition is always read-only, never repair.
|
|
83
|
+
|
|
84
|
+
The bundled `scripts/workspace.mjs` exports `validateWorkspace`,
|
|
85
|
+
`inspectWorkspace` and `setupWorkspace` for future consumers. It owns the
|
|
86
|
+
filesystem decisions; do not fork them into host-specific implementations.
|
|
87
|
+
It publishes complete metadata without overwriting a target. Interrupted staging
|
|
88
|
+
is never accepted as a valid record. Concurrent writers, adversarial filesystem
|
|
89
|
+
mutation, migration and power-loss durability are not supported guarantees.
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
Bundled third-party code and schemas
|
|
2
|
+
|
|
3
|
+
CycloneDX 1.7 schemas: OWASP Foundation / CycloneDX contributors, Apache-2.0.
|
|
4
|
+
Source commit 4b3f59453366e27c8073fd24e98bf21ef8892c8e. See bundled LICENSE for Apache-2.0 terms.
|
|
5
|
+
|
|
6
|
+
ajv 8.20.0 (MIT)
|
|
7
|
+
The MIT License (MIT)
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2015-2021 Evgeny Poberezkin
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
ajv-formats 3.0.1 (MIT)
|
|
32
|
+
MIT License
|
|
33
|
+
|
|
34
|
+
Copyright (c) 2020 Evgeny Poberezkin
|
|
35
|
+
|
|
36
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
37
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
38
|
+
in the Software without restriction, including without limitation the rights
|
|
39
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
40
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
41
|
+
furnished to do so, subject to the following conditions:
|
|
42
|
+
|
|
43
|
+
The above copyright notice and this permission notice shall be included in all
|
|
44
|
+
copies or substantial portions of the Software.
|
|
45
|
+
|
|
46
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
47
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
48
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
49
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
50
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
51
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
52
|
+
SOFTWARE.
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
ajv-formats-draft2019 1.6.1 (MIT)
|
|
56
|
+
MIT License
|
|
57
|
+
|
|
58
|
+
Copyright (c) 2020 Carlo Q
|
|
59
|
+
|
|
60
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
61
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
62
|
+
in the Software without restriction, including without limitation the rights
|
|
63
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
64
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
65
|
+
furnished to do so, subject to the following conditions:
|
|
66
|
+
|
|
67
|
+
The above copyright notice and this permission notice shall be included in all
|
|
68
|
+
copies or substantial portions of the Software.
|
|
69
|
+
|
|
70
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
71
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
72
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
73
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
74
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
75
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
76
|
+
SOFTWARE.
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
extend 3.0.2 (MIT)
|
|
80
|
+
The MIT License (MIT)
|
|
81
|
+
|
|
82
|
+
Copyright (c) 2014 Stefan Thomas
|
|
83
|
+
|
|
84
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
85
|
+
a copy of this software and associated documentation files (the
|
|
86
|
+
"Software"), to deal in the Software without restriction, including
|
|
87
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
88
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
89
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
90
|
+
the following conditions:
|
|
91
|
+
|
|
92
|
+
The above copyright notice and this permission notice shall be
|
|
93
|
+
included in all copies or substantial portions of the Software.
|
|
94
|
+
|
|
95
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
96
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
97
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
98
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
99
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
100
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
101
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
fast-deep-equal 3.1.3 (MIT)
|
|
106
|
+
MIT License
|
|
107
|
+
|
|
108
|
+
Copyright (c) 2017 Evgeny Poberezkin
|
|
109
|
+
|
|
110
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
111
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
112
|
+
in the Software without restriction, including without limitation the rights
|
|
113
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
114
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
115
|
+
furnished to do so, subject to the following conditions:
|
|
116
|
+
|
|
117
|
+
The above copyright notice and this permission notice shall be included in all
|
|
118
|
+
copies or substantial portions of the Software.
|
|
119
|
+
|
|
120
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
121
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
122
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
123
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
124
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
125
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
126
|
+
SOFTWARE.
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
fast-uri 3.1.9 (BSD-3-Clause)
|
|
130
|
+
Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
|
|
131
|
+
Copyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>
|
|
132
|
+
All rights reserved.
|
|
133
|
+
|
|
134
|
+
Redistribution and use in source and binary forms, with or without
|
|
135
|
+
modification, are permitted provided that the following conditions are met:
|
|
136
|
+
* Redistributions of source code must retain the above copyright
|
|
137
|
+
notice, this list of conditions and the following disclaimer.
|
|
138
|
+
* Redistributions in binary form must reproduce the above copyright
|
|
139
|
+
notice, this list of conditions and the following disclaimer in the
|
|
140
|
+
documentation and/or other materials provided with the distribution.
|
|
141
|
+
* The names of any contributors may not be used to endorse or promote
|
|
142
|
+
products derived from this software without specific prior written
|
|
143
|
+
permission.
|
|
144
|
+
|
|
145
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
146
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
147
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
148
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
|
|
149
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
150
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
151
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
152
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
153
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
154
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
155
|
+
|
|
156
|
+
* * *
|
|
157
|
+
|
|
158
|
+
The complete list of contributors can be found at:
|
|
159
|
+
- https://github.com/garycourt/uri-js/graphs/contributors
|
|
160
|
+
|
|
161
|
+
json-schema-traverse 1.0.0 (MIT)
|
|
162
|
+
MIT License
|
|
163
|
+
|
|
164
|
+
Copyright (c) 2017 Evgeny Poberezkin
|
|
165
|
+
|
|
166
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
167
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
168
|
+
in the Software without restriction, including without limitation the rights
|
|
169
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
170
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
171
|
+
furnished to do so, subject to the following conditions:
|
|
172
|
+
|
|
173
|
+
The above copyright notice and this permission notice shall be included in all
|
|
174
|
+
copies or substantial portions of the Software.
|
|
175
|
+
|
|
176
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
177
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
178
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
179
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
180
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
181
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
182
|
+
SOFTWARE.
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
nearley 2.20.1 (MIT)
|
|
186
|
+
The MIT License (MIT)
|
|
187
|
+
|
|
188
|
+
Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019 Kartik Chandra, Tim Radvan
|
|
189
|
+
|
|
190
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
191
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
192
|
+
in the Software without restriction, including without limitation the rights
|
|
193
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
194
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
195
|
+
furnished to do so, subject to the following conditions:
|
|
196
|
+
|
|
197
|
+
The above copyright notice and this permission notice shall be included in all
|
|
198
|
+
copies or substantial portions of the Software.
|
|
199
|
+
|
|
200
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
201
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
202
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
203
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
204
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
205
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
206
|
+
SOFTWARE.
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
schemes 1.4.0 (MIT)
|
|
210
|
+
|
|
211
|
+
(The MIT License)
|
|
212
|
+
|
|
213
|
+
Copyright (c) 2015 Peter Müller <munter@fumle.dk>
|
|
214
|
+
|
|
215
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
216
|
+
|
|
217
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
218
|
+
|
|
219
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
smtp-address-parser 1.1.1 (MIT)
|
|
223
|
+
MIT License
|
|
224
|
+
|
|
225
|
+
Copyright (c) 2021 Gene Hightower
|
|
226
|
+
|
|
227
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
228
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
229
|
+
in the Software without restriction, including without limitation the rights
|
|
230
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
231
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
232
|
+
furnished to do so, subject to the following conditions:
|
|
233
|
+
|
|
234
|
+
The above copyright notice and this permission notice shall be included in all
|
|
235
|
+
copies or substantial portions of the Software.
|
|
236
|
+
|
|
237
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
238
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
239
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
240
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
241
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
242
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
243
|
+
SOFTWARE.
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
uri-js 4.4.1 (BSD-2-Clause)
|
|
247
|
+
Copyright 2011 Gary Court. All rights reserved.
|
|
248
|
+
|
|
249
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
250
|
+
|
|
251
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
252
|
+
|
|
253
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
254
|
+
|
|
255
|
+
THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
256
|
+
|
|
257
|
+
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court.
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
yaml 2.9.1 (ISC)
|
|
261
|
+
Copyright Eemeli Aro <eemeli@gmail.com>
|
|
262
|
+
|
|
263
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose
|
|
264
|
+
with or without fee is hereby granted, provided that the above copyright notice
|
|
265
|
+
and this permission notice appear in all copies.
|
|
266
|
+
|
|
267
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
268
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
269
|
+
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
270
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
271
|
+
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
272
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
273
|
+
THIS SOFTWARE.
|