askpillar 0.0.0-stage → 0.3.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 PILLAR
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,165 @@
1
- # Temporary Holding Version
1
+ # PILLAR
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ ![PILLAR](https://askpillar.ai/brand/tent.svg)
4
+
5
+ Scripture-grounded, independently reviewed Christian guidance from [PILLAR](https://askpillar.ai), available inside Claude and ChatGPT.
6
+
7
+ Both the npm CLI and the separate plugin package connect to **https://mcp.askpillar.ai/mcp**. The plugin’s `pillar-guidance` skill applies when the user explicitly requests PILLAR. It instructs the model to call `ask_pillar`, present PILLAR's answer exactly as returned, and send requested follow-ups back to PILLAR using the returned `conversation_id`. The model must preserve PILLAR's Scripture references and attribution, and must never supply additional verse quotations or translations from memory. `get_pillar_usage` is reserved for explicit PILLAR usage questions.
8
+
9
+ ## PILLAR CLI for coding agents
10
+
11
+ The CLI connects **Codex, Claude Code, and Cursor** to the same hosted PILLAR MCP and existing PILLAR accounts. It supports macOS/Linux with Node.js 22 and a browser on the same computer. No separate API key or new PILLAR account is needed.
12
+
13
+ Install the PILLAR CLI with:
14
+
15
+ ```sh
16
+ npx askpillar install
17
+ ```
18
+
19
+ The install command asks which client to connect, then opens browser sign-in and finishes automatically. Running without a command displays help. Coding agents can select the client without a terminal prompt:
20
+
21
+ ```sh
22
+ npx askpillar install --client codex
23
+ ```
24
+
25
+ Use `--client claude`, `--client cursor`, `--client codex,claude`, or `--client all` for other clients. The product and installed command remain **PILLAR / `pillar`**; the npm package is **`askpillar`**. The package exposes only the `pillar` executable; npx resolves that executable from the `askpillar` package automatically.
26
+
27
+ To build and test the local artifact before an authorized release:
28
+
29
+ ```sh
30
+ pnpm install --frozen-lockfile
31
+ pnpm pack:cli
32
+ npx --yes "file:$(pwd)/dist/askpillar-0.3.2.tgz" install
33
+ ```
34
+
35
+ Run the local build commands from the repository root, or pass an absolute tarball path from another directory. Publishing to npm is a separate, explicitly authorized release operation.
36
+
37
+ Installation opens PILLAR's existing browser sign-in. Choose **Google** or **email magic link**, complete any required PILLAR account setup, and approve access. Open email links in the same browser profile on this computer. Leave the terminal running; the loopback callback resumes setup automatically. Login expires after five minutes and can be retried. SSH/headless authentication and a browser on another device are not supported.
38
+
39
+ The CLI verifies a real authenticated `get_profile` MCP call before configuring the selected clients. This check does not generate guidance or consume inference quota. Authentication does not prove a guidance answer was generated. **Restart the selected client or start a new session** to load PILLAR. The CLI installs the MCP connection; the plugin's guidance skill remains available through the plugin installation instructions below.
40
+
41
+ Manage the connection with:
42
+
43
+ ```sh
44
+ npx askpillar login
45
+ npx askpillar status --json
46
+ npx askpillar logout
47
+ ```
48
+
49
+ `login` starts a fresh browser authorization. `install` reuses valid credentials and refreshes them as necessary. Repeating installation with the same bundle leaves matching client configuration byte-for-byte unchanged. Exact older CLI-generated Codex entries receive the new timeout settings automatically; custom settings are preserved. It preserves unrelated servers, settings, and comments, and refuses malformed configuration or an existing different `pillar` entry. Resolve that entry manually rather than replacing another connection silently. Concurrent edits detected before replacement fail with a retry message; clients should be closed while editing their configuration.
50
+
51
+ | Client | User configuration |
52
+ | --- | --- |
53
+ | Codex | `~/.codex/config.toml`, or `$CODEX_HOME/config.toml` |
54
+ | Claude Code | `~/.claude.json`, or `$CLAUDE_CONFIG_DIR/.claude.json` |
55
+ | Cursor | `~/.cursor/mcp.json` |
56
+
57
+ The installer writes user-level configuration and checks the current project separately. `status` distinguishes `userState` (what is installed globally) from `state` in the checked working directory. Claude local/project entries and Cursor project entries are preserved and reported as `shadowed` when they override this bridge. Codex project overrides are checked against the recorded project trust; unknown trust is reported as `project_override`. Unreadable project configuration is `scope_unknown`, not a claim that PILLAR is active. Other projects' Claude local entries do not block installation. The output names the checked directory, winning scope, and configuration file without printing server settings or credentials. Explicit launch flags, external profiles, and organization policies may further affect a client and are not evaluated by this inspection.
58
+
59
+ Codex entries use `startup_timeout_sec = 45` and `tool_timeout_sec = 210`, allowing overhead beyond the bridge's 20-second initialization and 180-second tool budgets. Custom shorter timeouts or disabled entries remain unchanged and produce warnings. The bridge preserves remote server instructions and capabilities during initialization. Its long-lived SSE connection has a response-header deadline but no fixed stream lifetime; process cancellation still closes it.
60
+
61
+ Client configuration contains the absolute Node executable path, the local bridge command, and the applicable client timeout settings. The bundled bridge is copied to `~/.pillar/runtime/pillar.mjs`, so deleting the source checkout or npx cache does not break it. If you move/remove the Node installation, remove the old `pillar` client entry and reinstall using the new Node executable.
62
+
63
+ Credentials live only in `~/.pillar/credentials.json` (mode `0600`, parent `0700`), outside the current project. This is an owner-readable file, **not an encrypted OS keychain**; applications running as your OS user can read it. Tokens, authorization codes, and provider error bodies are never printed. The CLI uses a public OAuth client with S256 PKCE and state validation, pins PILLAR's existing issuer, refuses credential-bearing HTTP redirects, and serializes token rotation across local processes. Refresh happens automatically when the bridge needs it; the bridge never opens a browser on its own. Browser sign-in holds no credential lock while waiting, so existing connections can continue and refresh. A protected, non-secret `login-generation.json` marker prevents an older browser login from overwriting a newer login or undoing logout. Lock recovery messages identify the exact path and owner PID; do not delete an active lock. Lock release checks that the path still belongs to the holder.
64
+
65
+ `logout` deletes this CLI's local credentials, including refresh credentials. Future bridge calls must sign in again; already in-flight calls may complete. It also invalidates pending browser logins and removes safely owned orphaned credential temporary files left by a crash. The non-secret generation marker remains. It leaves client configuration intact. **Server-side grant revocation is unavailable through the currently advertised OAuth metadata**, so logout reports `remoteRevoked: false`. It does not sign out PILLAR's website, mobile app, or independently configured native connectors.
66
+
67
+ Use `--json` for one JSON result on stdout; progress goes to stderr. Success uses `{ "ok": true, ... }`, failures use `{ "ok": false, "error": { "code": "...", "message": "..." } }` and exit 1. Signed-out `status` is a successful inspection with `authenticated: false`; authenticated status includes `verifiedTool: "get_profile"` and per-client configuration states. Setup errors do not print raw exceptions or credentials. Configuration of multiple clients is sequential. A failure after an earlier client write returns `partial_install`, the completed client records, the failed client, and `restartRequired: true`; rerunning resumes safely. SIGINT/SIGTERM cancel startup, verification, and active bridge work, and stdin EOF closes the bridge even during startup.
68
+
69
+ No backend or website changes are required for the existing OAuth flow. A production acceptance run still requires a human to complete Google or email sign-in and consent. Automated tests use a local callback and fixture OAuth/MCP services; they cannot establish that either external identity provider delivered a sign-in or magic link. Tests also exercise configuration precedence, preservation, concurrent authentication, refresh, logout, and packed npx execution without writing real client settings. Packed-process regressions drive initialize, tool listing, and authenticated tool calls through the actual extracted stdio executable, including first-signal cancellation and stdin EOF. The loopback fetch adapter used by those tests is excluded from the npm allowlist.
70
+
71
+ ## Package
72
+
73
+ ```text
74
+ .claude-plugin/plugin.json Claude manifest
75
+ .claude-plugin/marketplace.json Claude Code installation catalog
76
+ .mcp.json Claude HTTP MCP connection
77
+ plugin.json Portable Agent Plugins manifest
78
+ mcp.json Portable Streamable HTTP connection; ChatGPT OAuth DCR
79
+ skills/pillar-guidance/SKILL.md Shared, provider-neutral instructions
80
+ assets/ Official PILLAR logo files
81
+ LICENSE MIT license
82
+ ```
83
+
84
+ ## Install in Claude
85
+
86
+ For Claude Code, add this repository's marketplace and install the plugin:
87
+
88
+ ```sh
89
+ claude plugin marketplace add brandoncarneiro/pillar-plugin
90
+ claude plugin install pillar-plugin@pillar-plugins --scope user
91
+ ```
92
+
93
+ For a local checkout, replace the marketplace source with its absolute path. Restart the Claude Code session after installation. Run `/mcp` and authenticate the plugin's PILLAR server if prompted, then ask a question with `/pillar-plugin:pillar-guidance`.
94
+
95
+ Claude Desktop shares Claude Code's user-scoped plugins with local Code sessions. For Claude chat or Cowork, use **Customize → Plugins → Add plugin → Upload plugin** to upload the packaged ZIP where custom plugin installation is available, then connect PILLAR through its normal OAuth flow. A standalone MCP connector supplies tools; the packaged skill supplies the answer-presentation instructions.
96
+
97
+ ## Use in ChatGPT
98
+
99
+ Follow [OpenAI's plugin authoring and installation instructions](https://developers.openai.com/plugins/build/plugins) to install the portable package through the flow available in your ChatGPT workspace. The root `mcp.json` declares OAuth with `client.mode: "dcr"`; ChatGPT discovers PILLAR's authorization server and registers its client dynamically. Sign in to PILLAR and review the consent screen. No API key, client secret, or access token belongs in this package.
100
+
101
+ Ask PILLAR a question about faith, Scripture, or everyday life. Continue with follow-ups in the same conversation. Skills guide model behavior; verify the returned answer in the host when testing an installation.
102
+
103
+ The repository currently requires GitHub access. Building this package does not publish it to either provider's public directory.
104
+
105
+ ## Data sent to PILLAR
106
+
107
+ `ask_pillar` receives the user's question and, for follow-ups, the PILLAR conversation ID. The host manages OAuth credentials. PILLAR processes the question under the connected account and maintains conversation history and usage. Connector turns may add account memory; existing memory items cannot be overwritten, modified, or deleted by connector turns. See PILLAR's [privacy policy](https://askpillar.ai/privacy) and [terms](https://askpillar.ai/terms).
108
+
109
+ The successful guidance result contains exactly `answer`, `scripture_references`, and `conversation_id`. The MCP response also mirrors those same three fields in a JSON text block for hosts that expose only text content. The skill reads that mirror when structured content is unavailable, displays the answer once, preserves references and attribution, and keeps the ID for requested follow-ups. It does not display both answer copies or raw metadata unless explicitly requested. The conversation ID is needed to continue the correct PILLAR conversation and is not appended to the displayed answer. The skill does not send host transcripts or accumulated context. The authenticated `get_profile` tool identifies the connected profile with an opaque ID; it does not provide an account directory or user lookup.
110
+
111
+ ## Directory submission preparation
112
+
113
+ The portable manifest includes five positive and three negative review scenarios. These are expected behaviors for reviewers to execute, not evidence that the deployed connector or either host has passed them. Run them with a dedicated sample account after the hosted tools and their metadata are deployed, including `get_profile`.
114
+
115
+ Before OpenAI submission, supply a real reviewer-accessible video demonstrating the cases, verified publisher identity, domain verification, and reviewer account access through the secure dashboard. The package includes the public reviewer demo URL and omits all reviewer credentials. Keep the demo account available without MFA approval, email or SMS codes, magic links, or private-network access. Complete the required attestations only after verifying them. The current package is preparation material, not an approved or submitted listing.
116
+
117
+ For Claude's native Connectors Directory, submit the hosted MCP server separately through [the connector portal](https://claude.ai/directory/manage). This plugin package does not create a connector listing. Follow [Claude's submission requirements](https://claude.com/docs/connectors/building/submission) and [OpenAI's submission requirements](https://developers.openai.com/plugins/deploy/submission) for the remaining listing and review materials. The text-only connector does not have an interactive UI to screenshot.
118
+
119
+ ## Validate and package
120
+
121
+ This repository contains a declarative plugin package and the bundled CLI. The supported MCP service is hosted by `pillar-backend`; the CLI is a local stdio bridge to that service, not an implementation of the PILLAR backend. Existing plugin installation commands and OAuth connections are unchanged.
122
+
123
+ Use Node.js 22 and pnpm 11.28.2 for development tooling:
124
+
125
+ ```sh
126
+ pnpm install --frozen-lockfile
127
+ pnpm check
128
+ ```
129
+
130
+ `pnpm check` runs Claude's pinned CLI in strict validation mode for both Claude manifests, validates the portable manifest and MCP configuration, checks the OpenAI fields and OAuth DCR configuration, runs package and CLI regression tests, then builds and verifies `dist/pillar-plugin.zip` and the standalone CLI. These checks use fixture services; none calls PILLAR or performs model inference. `pnpm validate`, `pnpm test`, and `pnpm build` can also run separately; `build` includes package validation, while Claude's official validation is a separate `validate:claude` step.
131
+
132
+ The plugin ZIP build uses the explicit ten-file allowlist in `scripts/package.mjs`, preserving the prior upload layout. It includes both logos, both manifest formats, MCP configuration, the skill, README, and license. It excludes local configuration, credentials, dependencies, validation tooling, and obsolete runtime files. The ZIP is checked for unexpected, missing, duplicate, or changed entries and compared byte-for-byte with the source files. Package inputs cannot be symlinks. Known credential patterns in allowed files fail validation without printing their values. The allowlist excludes secret files; pattern checks are an additional safeguard, not a guarantee of detecting every possible secret embedded in prose or images.
133
+
134
+ Portable validation uses vendored Agent Plugins 1.0.0 schemas, so checks do not depend on a live schema fetch. The published MCP schema excludes per-server extensions; the validator checks the exact documented OpenAI OAuth DCR configuration separately and applies the schema to the remaining portable core. OpenAI interface/review fields, PILLAR identity/version, skill references, required assets, and package metadata receive additional package-specific checks. These static checks do not execute directory review scenarios or establish host behavior, OAuth success, or Scripture correctness.
135
+
136
+ The separate npm artifact has its own explicit allowlist: the standalone `dist/pillar.mjs` bundle, generated `dist/THIRD_PARTY_NOTICES.md` for bundled dependencies, package metadata, README, and license. The logo in this README uses a hosted URL so it also renders in the npm package. CLI dependencies are bundled during development; no dependency installation or postinstall script runs on the user machine. `pnpm pack:cli` creates the tarball without publishing it.
137
+
138
+
139
+ Independent CI runs `bash scripts/ci/validate.sh` with Node.js 22 and pinned
140
+ pnpm 11.28.2, preserves the frozen lockfile, and retains the validated ZIP with its
141
+ SHA-256 digest and execution log outside GitHub. The operator-owned controller
142
+ in `pillar-mobile/infrastructure/ci` polls GitHub directly and runs the reviewed
143
+ gate in an isolated Linux guest without GitHub credentials. It publishes genuine
144
+ `pillar-ci/validation` status on the exact head SHA and `pillar-ci/integration`
145
+ status after validating the head merged with the current base. Its evidence
146
+ records both commits and the tested tree; neither status authorizes publishing.
147
+
148
+ GitHub Actions are disabled and no hosted workflow, Actions scheduler, artifact
149
+ storage or cache is required. Keep CI independent of GitHub paid features and
150
+ payment settings. If the host is asleep or offline, validation waits; an old green
151
+ status does not validate a new commit or base. Gate updates require an explicit
152
+ reviewed installation into the controller's protected guest gate directory. `vercel.json` keeps Git-triggered deployment disabled; this package has no Vercel function or rewrite. Publishing, host acceptance tests, and directory submission remain separate actions.
153
+
154
+ ## Logo and license
155
+
156
+ The assets come from PILLAR's published [vector logo](https://askpillar.ai/brand/tent.svg) and [PNG logo](https://askpillar.ai/brand/library/v1/tent-blue-512.png). The vector retains its original paths, color, and viewBox, with a square 512px viewport for OpenAI's listing and composer icons. The PNG is unchanged. The package uses PILLAR's blue, `#2E5F86`.
157
+
158
+ Package code and documentation are licensed under [MIT](LICENSE). PILLAR branding remains owned by PILLAR.
159
+
160
+ ## Format references
161
+
162
+ - [Claude plugin manifest](https://code.claude.com/docs/en/plugins-reference)
163
+ - [Claude installation](https://code.claude.com/docs/en/discover-plugins)
164
+ - [OpenAI plugin packaging and DCR configuration](https://developers.openai.com/plugins/build/plugins)
165
+ - [OpenAI OAuth authentication](https://developers.openai.com/plugins/build/auth)
@@ -0,0 +1,358 @@
1
+ # Bundled dependency notices
2
+
3
+ ## @modelcontextprotocol/sdk@1.32.2
4
+
5
+ ### LICENSE
6
+
7
+ MIT License
8
+
9
+ Copyright (c) 2024 Anthropic, PBC
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
+ ## ajv-formats@3.0.1
31
+
32
+ ### LICENSE
33
+
34
+ MIT License
35
+
36
+ Copyright (c) 2020 Evgeny Poberezkin
37
+
38
+ Permission is hereby granted, free of charge, to any person obtaining a copy
39
+ of this software and associated documentation files (the "Software"), to deal
40
+ in the Software without restriction, including without limitation the rights
41
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
+ copies of the Software, and to permit persons to whom the Software is
43
+ furnished to do so, subject to the following conditions:
44
+
45
+ The above copyright notice and this permission notice shall be included in all
46
+ copies or substantial portions of the Software.
47
+
48
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
54
+ SOFTWARE.
55
+
56
+
57
+ ## ajv@8.20.0
58
+
59
+ ### LICENSE
60
+
61
+ The MIT License (MIT)
62
+
63
+ Copyright (c) 2015-2021 Evgeny Poberezkin
64
+
65
+ Permission is hereby granted, free of charge, to any person obtaining a copy
66
+ of this software and associated documentation files (the "Software"), to deal
67
+ in the Software without restriction, including without limitation the rights
68
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
69
+ copies of the Software, and to permit persons to whom the Software is
70
+ furnished to do so, subject to the following conditions:
71
+
72
+ The above copyright notice and this permission notice shall be included in all
73
+ copies or substantial portions of the Software.
74
+
75
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
76
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
77
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
78
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
79
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
80
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
81
+ SOFTWARE.
82
+
83
+
84
+
85
+ ## content-type@1.0.5
86
+
87
+ ### LICENSE
88
+
89
+ (The MIT License)
90
+
91
+ Copyright (c) 2015 Douglas Christopher Wilson
92
+
93
+ Permission is hereby granted, free of charge, to any person obtaining
94
+ a copy of this software and associated documentation files (the
95
+ 'Software'), to deal in the Software without restriction, including
96
+ without limitation the rights to use, copy, modify, merge, publish,
97
+ distribute, sublicense, and/or sell copies of the Software, and to
98
+ permit persons to whom the Software is furnished to do so, subject to
99
+ the following conditions:
100
+
101
+ The above copyright notice and this permission notice shall be
102
+ included in all copies or substantial portions of the Software.
103
+
104
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
105
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
106
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
107
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
108
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
109
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
110
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
111
+
112
+
113
+ ## eventsource-parser@3.1.1
114
+
115
+ ### LICENSE
116
+
117
+ MIT License
118
+
119
+ Copyright (c) 2026 Espen Hovlandsdal <espen@hovlandsdal.com>
120
+
121
+ Permission is hereby granted, free of charge, to any person obtaining a copy
122
+ of this software and associated documentation files (the "Software"), to deal
123
+ in the Software without restriction, including without limitation the rights
124
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
125
+ copies of the Software, and to permit persons to whom the Software is
126
+ furnished to do so, subject to the following conditions:
127
+
128
+ The above copyright notice and this permission notice shall be included in all
129
+ copies or substantial portions of the Software.
130
+
131
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
132
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
133
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
134
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
135
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
136
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
137
+ SOFTWARE.
138
+
139
+
140
+ ## fast-deep-equal@3.1.3
141
+
142
+ ### LICENSE
143
+
144
+ MIT License
145
+
146
+ Copyright (c) 2017 Evgeny Poberezkin
147
+
148
+ Permission is hereby granted, free of charge, to any person obtaining a copy
149
+ of this software and associated documentation files (the "Software"), to deal
150
+ in the Software without restriction, including without limitation the rights
151
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
152
+ copies of the Software, and to permit persons to whom the Software is
153
+ furnished to do so, subject to the following conditions:
154
+
155
+ The above copyright notice and this permission notice shall be included in all
156
+ copies or substantial portions of the Software.
157
+
158
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
159
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
160
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
161
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
162
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
163
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
164
+ SOFTWARE.
165
+
166
+
167
+ ## fast-uri@3.1.8
168
+
169
+ ### LICENSE
170
+
171
+ Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
172
+ Copyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>
173
+ All rights reserved.
174
+
175
+ Redistribution and use in source and binary forms, with or without
176
+ modification, are permitted provided that the following conditions are met:
177
+ * Redistributions of source code must retain the above copyright
178
+ notice, this list of conditions and the following disclaimer.
179
+ * Redistributions in binary form must reproduce the above copyright
180
+ notice, this list of conditions and the following disclaimer in the
181
+ documentation and/or other materials provided with the distribution.
182
+ * The names of any contributors may not be used to endorse or promote
183
+ products derived from this software without specific prior written
184
+ permission.
185
+
186
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
187
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
188
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
189
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
190
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
191
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
192
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
193
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
194
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
195
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
196
+
197
+ * * *
198
+
199
+ The complete list of contributors can be found at:
200
+ - https://github.com/garycourt/uri-js/graphs/contributors
201
+
202
+ ## json-schema-traverse@1.0.0
203
+
204
+ ### LICENSE
205
+
206
+ MIT License
207
+
208
+ Copyright (c) 2017 Evgeny Poberezkin
209
+
210
+ Permission is hereby granted, free of charge, to any person obtaining a copy
211
+ of this software and associated documentation files (the "Software"), to deal
212
+ in the Software without restriction, including without limitation the rights
213
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
214
+ copies of the Software, and to permit persons to whom the Software is
215
+ furnished to do so, subject to the following conditions:
216
+
217
+ The above copyright notice and this permission notice shall be included in all
218
+ copies or substantial portions of the Software.
219
+
220
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
221
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
222
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
223
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
224
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
225
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
226
+ SOFTWARE.
227
+
228
+
229
+ ## jsonc-parser@3.3.1
230
+
231
+ ### LICENSE.md
232
+
233
+ The MIT License (MIT)
234
+
235
+ Copyright (c) Microsoft
236
+
237
+ Permission is hereby granted, free of charge, to any person obtaining a copy
238
+ of this software and associated documentation files (the "Software"), to deal
239
+ in the Software without restriction, including without limitation the rights
240
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
241
+ copies of the Software, and to permit persons to whom the Software is
242
+ furnished to do so, subject to the following conditions:
243
+
244
+ The above copyright notice and this permission notice shall be included in all
245
+ copies or substantial portions of the Software.
246
+
247
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
248
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
249
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
250
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
251
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
252
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
253
+ SOFTWARE.
254
+
255
+
256
+ ## pkce-challenge@5.0.1
257
+
258
+ ### LICENSE
259
+
260
+ MIT License
261
+
262
+ Copyright (c) 2019
263
+
264
+ Permission is hereby granted, free of charge, to any person obtaining a copy
265
+ of this software and associated documentation files (the "Software"), to deal
266
+ in the Software without restriction, including without limitation the rights
267
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
268
+ copies of the Software, and to permit persons to whom the Software is
269
+ furnished to do so, subject to the following conditions:
270
+
271
+ The above copyright notice and this permission notice shall be included in all
272
+ copies or substantial portions of the Software.
273
+
274
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
275
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
276
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
277
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
278
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
279
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
280
+ SOFTWARE.
281
+
282
+
283
+ ## smol-toml@1.9.1
284
+
285
+ ### LICENSE
286
+
287
+ Copyright (c) Squirrel Chat et al., All rights reserved.
288
+
289
+ Redistribution and use in source and binary forms, with or without
290
+ modification, are permitted provided that the following conditions are met:
291
+
292
+ 1. Redistributions of source code must retain the above copyright notice, this
293
+ list of conditions and the following disclaimer.
294
+ 2. Redistributions in binary form must reproduce the above copyright notice,
295
+ this list of conditions and the following disclaimer in the
296
+ documentation and/or other materials provided with the distribution.
297
+ 3. Neither the name of the copyright holder nor the names of its contributors
298
+ may be used to endorse or promote products derived from this software without
299
+ specific prior written permission.
300
+
301
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
302
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
303
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
304
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
305
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
306
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
307
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
308
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
309
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
310
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
311
+
312
+
313
+ ## zod-to-json-schema@3.25.2
314
+
315
+ ### LICENSE
316
+
317
+ ISC License
318
+
319
+ Copyright (c) 2020, Stefan Terdell
320
+
321
+ Permission to use, copy, modify, and/or distribute this software for any
322
+ purpose with or without fee is hereby granted, provided that the above
323
+ copyright notice and this permission notice appear in all copies.
324
+
325
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
326
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
327
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
328
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
329
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
330
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
331
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
332
+
333
+ ## zod@4.6.7
334
+
335
+ ### LICENSE
336
+
337
+ MIT License
338
+
339
+ Copyright (c) 2025 Colin McDonnell
340
+
341
+ Permission is hereby granted, free of charge, to any person obtaining a copy
342
+ of this software and associated documentation files (the "Software"), to deal
343
+ in the Software without restriction, including without limitation the rights
344
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
345
+ copies of the Software, and to permit persons to whom the Software is
346
+ furnished to do so, subject to the following conditions:
347
+
348
+ The above copyright notice and this permission notice shall be included in all
349
+ copies or substantial portions of the Software.
350
+
351
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
352
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
353
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
354
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
355
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
356
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
357
+ SOFTWARE.
358
+