@tickernelz/paperclip-pro-shared 2026.925.0
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/dist/.paperclip-build-complete +1 -0
- package/dist/account-handle.d.ts +26 -0
- package/dist/account-handle.d.ts.map +1 -0
- package/dist/account-handle.js +48 -0
- package/dist/account-handle.js.map +1 -0
- package/dist/account-handle.test.d.ts +2 -0
- package/dist/account-handle.test.d.ts.map +1 -0
- package/dist/account-handle.test.js +62 -0
- package/dist/account-handle.test.js.map +1 -0
- package/dist/adapter-agnostic-keys.test.d.ts +2 -0
- package/dist/adapter-agnostic-keys.test.d.ts.map +1 -0
- package/dist/adapter-agnostic-keys.test.js +33 -0
- package/dist/adapter-agnostic-keys.test.js.map +1 -0
- package/dist/adapter-auth-check-code.d.ts +13 -0
- package/dist/adapter-auth-check-code.d.ts.map +1 -0
- package/dist/adapter-auth-check-code.js +13 -0
- package/dist/adapter-auth-check-code.js.map +1 -0
- package/dist/adapter-auth-check-code.test.d.ts +2 -0
- package/dist/adapter-auth-check-code.test.d.ts.map +1 -0
- package/dist/adapter-auth-check-code.test.js +8 -0
- package/dist/adapter-auth-check-code.test.js.map +1 -0
- package/dist/adapter-auth-session.d.ts +16 -0
- package/dist/adapter-auth-session.d.ts.map +1 -0
- package/dist/adapter-auth-session.js +37 -0
- package/dist/adapter-auth-session.js.map +1 -0
- package/dist/adapter-type.d.ts +4 -0
- package/dist/adapter-type.d.ts.map +1 -0
- package/dist/adapter-type.js +14 -0
- package/dist/adapter-type.js.map +1 -0
- package/dist/adapter-types.test.d.ts +2 -0
- package/dist/adapter-types.test.d.ts.map +1 -0
- package/dist/adapter-types.test.js +46 -0
- package/dist/adapter-types.test.js.map +1 -0
- package/dist/agent-appearance.d.ts +53 -0
- package/dist/agent-appearance.d.ts.map +1 -0
- package/dist/agent-appearance.js +51 -0
- package/dist/agent-appearance.js.map +1 -0
- package/dist/agent-appearance.test.d.ts +2 -0
- package/dist/agent-appearance.test.d.ts.map +1 -0
- package/dist/agent-appearance.test.js +32 -0
- package/dist/agent-appearance.test.js.map +1 -0
- package/dist/agent-eligibility.d.ts +67 -0
- package/dist/agent-eligibility.d.ts.map +1 -0
- package/dist/agent-eligibility.js +171 -0
- package/dist/agent-eligibility.js.map +1 -0
- package/dist/agent-eligibility.test.d.ts +2 -0
- package/dist/agent-eligibility.test.d.ts.map +1 -0
- package/dist/agent-eligibility.test.js +187 -0
- package/dist/agent-eligibility.test.js.map +1 -0
- package/dist/agent-url-key.d.ts +4 -0
- package/dist/agent-url-key.d.ts.map +1 -0
- package/dist/agent-url-key.js +22 -0
- package/dist/agent-url-key.js.map +1 -0
- package/dist/ai-connections.d.ts +220 -0
- package/dist/ai-connections.d.ts.map +1 -0
- package/dist/ai-connections.js +152 -0
- package/dist/ai-connections.js.map +1 -0
- package/dist/announcements.d.ts +146 -0
- package/dist/announcements.d.ts.map +1 -0
- package/dist/announcements.js +72 -0
- package/dist/announcements.js.map +1 -0
- package/dist/announcements.test.d.ts +2 -0
- package/dist/announcements.test.d.ts.map +1 -0
- package/dist/announcements.test.js +53 -0
- package/dist/announcements.test.js.map +1 -0
- package/dist/api.d.ts +69 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +69 -0
- package/dist/api.js.map +1 -0
- package/dist/app-definitions/agentmail.json +49 -0
- package/dist/app-definitions/airtable.json +41 -0
- package/dist/app-definitions/anthropic.json +75 -0
- package/dist/app-definitions/api-key-generic.json +43 -0
- package/dist/app-definitions/arcade.json +36 -0
- package/dist/app-definitions/asana.json +42 -0
- package/dist/app-definitions/beehiiv.json +41 -0
- package/dist/app-definitions/bitly.json +78 -0
- package/dist/app-definitions/box.json +42 -0
- package/dist/app-definitions/brex.json +43 -0
- package/dist/app-definitions/candid.json +41 -0
- package/dist/app-definitions/clickhouse.json +59 -0
- package/dist/app-definitions/cloudflare.json +78 -0
- package/dist/app-definitions/cloudinary.json +42 -0
- package/dist/app-definitions/coda.json +80 -0
- package/dist/app-definitions/composio.json +39 -0
- package/dist/app-definitions/context7.json +33 -0
- package/dist/app-definitions/discord.json +66 -0
- package/dist/app-definitions/egnyte.json +41 -0
- package/dist/app-definitions/embat.json +41 -0
- package/dist/app-definitions/executor.json +36 -0
- package/dist/app-definitions/fireflies.json +82 -0
- package/dist/app-definitions/github.json +124 -0
- package/dist/app-definitions/gmail.json +182 -0
- package/dist/app-definitions/google-calendar.json +188 -0
- package/dist/app-definitions/google-chat.json +189 -0
- package/dist/app-definitions/google-docs.json +187 -0
- package/dist/app-definitions/google-drive.json +183 -0
- package/dist/app-definitions/google-people.json +110 -0
- package/dist/app-definitions/google-sheets.json +211 -0
- package/dist/app-definitions/google-slides.json +187 -0
- package/dist/app-definitions/google-workspace-search.json +113 -0
- package/dist/app-definitions/hugging-face.json +44 -0
- package/dist/app-definitions/imessage-photon.json +50 -0
- package/dist/app-definitions/jira.json +65 -0
- package/dist/app-definitions/kernel.json +78 -0
- package/dist/app-definitions/linear.json +62 -0
- package/dist/app-definitions/local-falcon.json +41 -0
- package/dist/app-definitions/make.json +42 -0
- package/dist/app-definitions/manufact.json +42 -0
- package/dist/app-definitions/mem0.json +56 -0
- package/dist/app-definitions/microsoft-teams.json +67 -0
- package/dist/app-definitions/miro.json +41 -0
- package/dist/app-definitions/mixpanel.json +43 -0
- package/dist/app-definitions/netlify.json +42 -0
- package/dist/app-definitions/notion.json +57 -0
- package/dist/app-definitions/oauth-generic.json +47 -0
- package/dist/app-definitions/openai.json +74 -0
- package/dist/app-definitions/openrouter.json +53 -0
- package/dist/app-definitions/oreilly.json +78 -0
- package/dist/app-definitions/pagerduty.json +93 -0
- package/dist/app-definitions/planetscale.json +91 -0
- package/dist/app-definitions/posthog.json +278 -0
- package/dist/app-definitions/postman.json +224 -0
- package/dist/app-definitions/railway.json +61 -0
- package/dist/app-definitions/razorpay.json +81 -0
- package/dist/app-definitions/resend.json +42 -0
- package/dist/app-definitions/sanity.json +79 -0
- package/dist/app-definitions/sentry.json +42 -0
- package/dist/app-definitions/shopify.json +117 -0
- package/dist/app-definitions/similarweb.json +57 -0
- package/dist/app-definitions/slack.json +86 -0
- package/dist/app-definitions/stripe.json +80 -0
- package/dist/app-definitions/supabase.json +164 -0
- package/dist/app-definitions/telegram.json +53 -0
- package/dist/app-definitions/ticket-tailor.json +42 -0
- package/dist/app-definitions/ticktick.json +41 -0
- package/dist/app-definitions/todoist.json +41 -0
- package/dist/app-definitions/vercel.json +43 -0
- package/dist/app-definitions/webflow.json +41 -0
- package/dist/app-definitions/wix.json +42 -0
- package/dist/app-definitions/xai.json +74 -0
- package/dist/app-definitions/xero.json +53 -0
- package/dist/app-definitions/youcom.json +100 -0
- package/dist/app-definitions/zapier.json +32 -0
- package/dist/app-definitions-url.test.d.ts +2 -0
- package/dist/app-definitions-url.test.d.ts.map +1 -0
- package/dist/app-definitions-url.test.js +43 -0
- package/dist/app-definitions-url.test.js.map +1 -0
- package/dist/app-definitions.d.ts +41 -0
- package/dist/app-definitions.d.ts.map +1 -0
- package/dist/app-definitions.generated.d.ts +3 -0
- package/dist/app-definitions.generated.d.ts.map +1 -0
- package/dist/app-definitions.generated.js +77 -0
- package/dist/app-definitions.generated.js.map +1 -0
- package/dist/app-definitions.js +212 -0
- package/dist/app-definitions.js.map +1 -0
- package/dist/app-definitions.test.d.ts +2 -0
- package/dist/app-definitions.test.d.ts.map +1 -0
- package/dist/app-definitions.test.js +774 -0
- package/dist/app-definitions.test.js.map +1 -0
- package/dist/cliplab/LICENSE +22 -0
- package/dist/cliplab/PROVENANCE.md +18 -0
- package/dist/cliplab/character.d.ts +4 -0
- package/dist/cliplab/character.d.ts.map +1 -0
- package/dist/cliplab/character.js +2324 -0
- package/dist/cliplab/character.js.map +1 -0
- package/dist/cliplab/definition.d.ts +13 -0
- package/dist/cliplab/definition.d.ts.map +1 -0
- package/dist/cliplab/definition.js +28 -0
- package/dist/cliplab/definition.js.map +1 -0
- package/dist/cliplab/face-morph.d.ts +26 -0
- package/dist/cliplab/face-morph.d.ts.map +1 -0
- package/dist/cliplab/face-morph.js +301 -0
- package/dist/cliplab/face-morph.js.map +1 -0
- package/dist/cliplab/gaze.d.ts +42 -0
- package/dist/cliplab/gaze.d.ts.map +1 -0
- package/dist/cliplab/gaze.js +57 -0
- package/dist/cliplab/gaze.js.map +1 -0
- package/dist/cliplab/model.d.ts +176 -0
- package/dist/cliplab/model.d.ts.map +1 -0
- package/dist/cliplab/model.js +337 -0
- package/dist/cliplab/model.js.map +1 -0
- package/dist/cliplab/palette-tokens.d.ts +75 -0
- package/dist/cliplab/palette-tokens.d.ts.map +1 -0
- package/dist/cliplab/palette-tokens.js +76 -0
- package/dist/cliplab/palette-tokens.js.map +1 -0
- package/dist/cliplab/particles.d.ts +15 -0
- package/dist/cliplab/particles.d.ts.map +1 -0
- package/dist/cliplab/particles.js +23 -0
- package/dist/cliplab/particles.js.map +1 -0
- package/dist/cliplab/renderer.d.ts +129 -0
- package/dist/cliplab/renderer.d.ts.map +1 -0
- package/dist/cliplab/renderer.js +762 -0
- package/dist/cliplab/renderer.js.map +1 -0
- package/dist/cliplab/runtime.d.ts +21 -0
- package/dist/cliplab/runtime.d.ts.map +1 -0
- package/dist/cliplab/runtime.js +140 -0
- package/dist/cliplab/runtime.js.map +1 -0
- package/dist/cliplab/static.d.ts +4 -0
- package/dist/cliplab/static.d.ts.map +1 -0
- package/dist/cliplab/static.js +16 -0
- package/dist/cliplab/static.js.map +1 -0
- package/dist/cliplab/svg-canvas.d.ts +56 -0
- package/dist/cliplab/svg-canvas.d.ts.map +1 -0
- package/dist/cliplab/svg-canvas.js +134 -0
- package/dist/cliplab/svg-canvas.js.map +1 -0
- package/dist/cliplab/svg-path.d.ts +24 -0
- package/dist/cliplab/svg-path.d.ts.map +1 -0
- package/dist/cliplab/svg-path.js +151 -0
- package/dist/cliplab/svg-path.js.map +1 -0
- package/dist/cliplab/svg-snapshot.d.ts +28 -0
- package/dist/cliplab/svg-snapshot.d.ts.map +1 -0
- package/dist/cliplab/svg-snapshot.js +168 -0
- package/dist/cliplab/svg-snapshot.js.map +1 -0
- package/dist/company-import-transfer.d.ts +80 -0
- package/dist/company-import-transfer.d.ts.map +1 -0
- package/dist/company-import-transfer.js +63 -0
- package/dist/company-import-transfer.js.map +1 -0
- package/dist/company-import-transfer.test.d.ts +2 -0
- package/dist/company-import-transfer.test.d.ts.map +1 -0
- package/dist/company-import-transfer.test.js +15 -0
- package/dist/company-import-transfer.test.js.map +1 -0
- package/dist/config-schema.d.ts +252 -0
- package/dist/config-schema.d.ts.map +1 -0
- package/dist/config-schema.js +268 -0
- package/dist/config-schema.js.map +1 -0
- package/dist/config-schema.test.d.ts +2 -0
- package/dist/config-schema.test.d.ts.map +1 -0
- package/dist/config-schema.test.js +126 -0
- package/dist/config-schema.test.js.map +1 -0
- package/dist/connection-intent-guidance.d.ts +12 -0
- package/dist/connection-intent-guidance.d.ts.map +1 -0
- package/dist/connection-intent-guidance.js +35 -0
- package/dist/connection-intent-guidance.js.map +1 -0
- package/dist/connection-intent-guidance.test.d.ts +2 -0
- package/dist/connection-intent-guidance.test.d.ts.map +1 -0
- package/dist/connection-intent-guidance.test.js +60 -0
- package/dist/connection-intent-guidance.test.js.map +1 -0
- package/dist/constants.d.ts +556 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +1363 -0
- package/dist/constants.js.map +1 -0
- package/dist/decision.test.d.ts +2 -0
- package/dist/decision.test.d.ts.map +1 -0
- package/dist/decision.test.js +142 -0
- package/dist/decision.test.js.map +1 -0
- package/dist/document-anchors.d.ts +37 -0
- package/dist/document-anchors.d.ts.map +1 -0
- package/dist/document-anchors.js +351 -0
- package/dist/document-anchors.js.map +1 -0
- package/dist/document-anchors.test.d.ts +2 -0
- package/dist/document-anchors.test.d.ts.map +1 -0
- package/dist/document-anchors.test.js +151 -0
- package/dist/document-anchors.test.js.map +1 -0
- package/dist/document-export.d.ts +4 -0
- package/dist/document-export.d.ts.map +1 -0
- package/dist/document-export.js +27 -0
- package/dist/document-export.js.map +1 -0
- package/dist/env-file.d.ts +16 -0
- package/dist/env-file.d.ts.map +1 -0
- package/dist/env-file.js +149 -0
- package/dist/env-file.js.map +1 -0
- package/dist/env-file.test.d.ts +2 -0
- package/dist/env-file.test.d.ts.map +1 -0
- package/dist/env-file.test.js +72 -0
- package/dist/env-file.test.js.map +1 -0
- package/dist/environment-custom-images.d.ts +17 -0
- package/dist/environment-custom-images.d.ts.map +1 -0
- package/dist/environment-custom-images.js +88 -0
- package/dist/environment-custom-images.js.map +1 -0
- package/dist/environment-custom-images.test.d.ts +2 -0
- package/dist/environment-custom-images.test.d.ts.map +1 -0
- package/dist/environment-custom-images.test.js +136 -0
- package/dist/environment-custom-images.test.js.map +1 -0
- package/dist/environment-support.d.ts +58 -0
- package/dist/environment-support.d.ts.map +1 -0
- package/dist/environment-support.js +128 -0
- package/dist/environment-support.js.map +1 -0
- package/dist/environment-support.test.d.ts +2 -0
- package/dist/environment-support.test.d.ts.map +1 -0
- package/dist/environment-support.test.js +77 -0
- package/dist/environment-support.test.js.map +1 -0
- package/dist/execution-workspace-guards.d.ts +6 -0
- package/dist/execution-workspace-guards.d.ts.map +1 -0
- package/dist/execution-workspace-guards.js +12 -0
- package/dist/execution-workspace-guards.js.map +1 -0
- package/dist/external-objects-server.d.ts +12 -0
- package/dist/external-objects-server.d.ts.map +1 -0
- package/dist/external-objects-server.js +176 -0
- package/dist/external-objects-server.js.map +1 -0
- package/dist/external-objects.d.ts +32 -0
- package/dist/external-objects.d.ts.map +1 -0
- package/dist/external-objects.js +17 -0
- package/dist/external-objects.js.map +1 -0
- package/dist/external-objects.test.d.ts +2 -0
- package/dist/external-objects.test.d.ts.map +1 -0
- package/dist/external-objects.test.js +93 -0
- package/dist/external-objects.test.js.map +1 -0
- package/dist/feature-catalog.d.ts +59 -0
- package/dist/feature-catalog.d.ts.map +1 -0
- package/dist/feature-catalog.js +301 -0
- package/dist/feature-catalog.js.map +1 -0
- package/dist/feature-catalog.test.d.ts +2 -0
- package/dist/feature-catalog.test.d.ts.map +1 -0
- package/dist/feature-catalog.test.js +89 -0
- package/dist/feature-catalog.test.js.map +1 -0
- package/dist/frontmatter-runner-contract.test.d.ts +2 -0
- package/dist/frontmatter-runner-contract.test.d.ts.map +1 -0
- package/dist/frontmatter-runner-contract.test.js +10 -0
- package/dist/frontmatter-runner-contract.test.js.map +1 -0
- package/dist/frontmatter.d.ts +68 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +559 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/frontmatter.test.d.ts +2 -0
- package/dist/frontmatter.test.d.ts.map +1 -0
- package/dist/frontmatter.test.js +297 -0
- package/dist/frontmatter.test.js.map +1 -0
- package/dist/github-connectors.d.ts +10 -0
- package/dist/github-connectors.d.ts.map +1 -0
- package/dist/github-connectors.js +15 -0
- package/dist/github-connectors.js.map +1 -0
- package/dist/gitignore-runtime.test.d.ts +2 -0
- package/dist/gitignore-runtime.test.d.ts.map +1 -0
- package/dist/gitignore-runtime.test.js +14 -0
- package/dist/gitignore-runtime.test.js.map +1 -0
- package/dist/google-workspace-connectors.d.ts +10 -0
- package/dist/google-workspace-connectors.d.ts.map +1 -0
- package/dist/google-workspace-connectors.js +31 -0
- package/dist/google-workspace-connectors.js.map +1 -0
- package/dist/home-paths.d.ts +41 -0
- package/dist/home-paths.d.ts.map +1 -0
- package/dist/home-paths.js +57 -0
- package/dist/home-paths.js.map +1 -0
- package/dist/home-paths.test.d.ts +2 -0
- package/dist/home-paths.test.d.ts.map +1 -0
- package/dist/home-paths.test.js +25 -0
- package/dist/home-paths.test.js.map +1 -0
- package/dist/humanize-connection.d.ts +36 -0
- package/dist/humanize-connection.d.ts.map +1 -0
- package/dist/humanize-connection.js +95 -0
- package/dist/humanize-connection.js.map +1 -0
- package/dist/humanize-connection.test.d.ts +2 -0
- package/dist/humanize-connection.test.d.ts.map +1 -0
- package/dist/humanize-connection.test.js +48 -0
- package/dist/humanize-connection.test.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +94 -0
- package/dist/index.js.map +1 -0
- package/dist/issue-attribution.d.ts +27 -0
- package/dist/issue-attribution.d.ts.map +1 -0
- package/dist/issue-attribution.js +25 -0
- package/dist/issue-attribution.js.map +1 -0
- package/dist/issue-attribution.test.d.ts +2 -0
- package/dist/issue-attribution.test.d.ts.map +1 -0
- package/dist/issue-attribution.test.js +72 -0
- package/dist/issue-attribution.test.js.map +1 -0
- package/dist/issue-references.d.ts +16 -0
- package/dist/issue-references.d.ts.map +1 -0
- package/dist/issue-references.js +160 -0
- package/dist/issue-references.js.map +1 -0
- package/dist/issue-references.test.d.ts +2 -0
- package/dist/issue-references.test.d.ts.map +1 -0
- package/dist/issue-references.test.js +56 -0
- package/dist/issue-references.test.js.map +1 -0
- package/dist/issue-thread-interactions.test.d.ts +2 -0
- package/dist/issue-thread-interactions.test.d.ts.map +1 -0
- package/dist/issue-thread-interactions.test.js +546 -0
- package/dist/issue-thread-interactions.test.js.map +1 -0
- package/dist/issue-write-denial.d.ts +92 -0
- package/dist/issue-write-denial.d.ts.map +1 -0
- package/dist/issue-write-denial.js +227 -0
- package/dist/issue-write-denial.js.map +1 -0
- package/dist/issue-write-denial.test.d.ts +2 -0
- package/dist/issue-write-denial.test.d.ts.map +1 -0
- package/dist/issue-write-denial.test.js +159 -0
- package/dist/issue-write-denial.test.js.map +1 -0
- package/dist/markdown-work-products.d.ts +26 -0
- package/dist/markdown-work-products.d.ts.map +1 -0
- package/dist/markdown-work-products.js +70 -0
- package/dist/markdown-work-products.js.map +1 -0
- package/dist/markdown-work-products.test.d.ts +2 -0
- package/dist/markdown-work-products.test.d.ts.map +1 -0
- package/dist/markdown-work-products.test.js +122 -0
- package/dist/markdown-work-products.test.js.map +1 -0
- package/dist/mcp-config-help-prompt.d.ts +21 -0
- package/dist/mcp-config-help-prompt.d.ts.map +1 -0
- package/dist/mcp-config-help-prompt.js +56 -0
- package/dist/mcp-config-help-prompt.js.map +1 -0
- package/dist/mcp-remote-headers.d.ts +49 -0
- package/dist/mcp-remote-headers.d.ts.map +1 -0
- package/dist/mcp-remote-headers.js +127 -0
- package/dist/mcp-remote-headers.js.map +1 -0
- package/dist/mcp-remote-headers.test.d.ts +2 -0
- package/dist/mcp-remote-headers.test.d.ts.map +1 -0
- package/dist/mcp-remote-headers.test.js +112 -0
- package/dist/mcp-remote-headers.test.js.map +1 -0
- package/dist/network-bind.d.ts +27 -0
- package/dist/network-bind.d.ts.map +1 -0
- package/dist/network-bind.js +75 -0
- package/dist/network-bind.js.map +1 -0
- package/dist/node-version.d.ts +6 -0
- package/dist/node-version.d.ts.map +1 -0
- package/dist/node-version.js +48 -0
- package/dist/node-version.js.map +1 -0
- package/dist/oauth-endpoint-url.d.ts +74 -0
- package/dist/oauth-endpoint-url.d.ts.map +1 -0
- package/dist/oauth-endpoint-url.js +142 -0
- package/dist/oauth-endpoint-url.js.map +1 -0
- package/dist/oauth-endpoint-url.test.d.ts +2 -0
- package/dist/oauth-endpoint-url.test.d.ts.map +1 -0
- package/dist/oauth-endpoint-url.test.js +163 -0
- package/dist/oauth-endpoint-url.test.js.map +1 -0
- package/dist/pipeline-case-type.d.ts +23 -0
- package/dist/pipeline-case-type.d.ts.map +1 -0
- package/dist/pipeline-case-type.js +26 -0
- package/dist/pipeline-case-type.js.map +1 -0
- package/dist/pipeline-health.d.ts +80 -0
- package/dist/pipeline-health.d.ts.map +1 -0
- package/dist/pipeline-health.js +249 -0
- package/dist/pipeline-health.js.map +1 -0
- package/dist/pipeline-health.test.d.ts +2 -0
- package/dist/pipeline-health.test.d.ts.map +1 -0
- package/dist/pipeline-health.test.js +140 -0
- package/dist/pipeline-health.test.js.map +1 -0
- package/dist/portability-fidelity.d.ts +19 -0
- package/dist/portability-fidelity.d.ts.map +1 -0
- package/dist/portability-fidelity.js +46 -0
- package/dist/portability-fidelity.js.map +1 -0
- package/dist/portability-fidelity.test.d.ts +2 -0
- package/dist/portability-fidelity.test.d.ts.map +1 -0
- package/dist/portability-fidelity.test.js +66 -0
- package/dist/portability-fidelity.test.js.map +1 -0
- package/dist/portability-hash.d.ts +5 -0
- package/dist/portability-hash.d.ts.map +1 -0
- package/dist/portability-hash.js +20 -0
- package/dist/portability-hash.js.map +1 -0
- package/dist/portability-zip.d.ts +15 -0
- package/dist/portability-zip.d.ts.map +1 -0
- package/dist/portability-zip.js +262 -0
- package/dist/portability-zip.js.map +1 -0
- package/dist/portability-zip.test.d.ts +2 -0
- package/dist/portability-zip.test.d.ts.map +1 -0
- package/dist/portability-zip.test.js +227 -0
- package/dist/portability-zip.test.js.map +1 -0
- package/dist/project-mentions.d.ts +47 -0
- package/dist/project-mentions.d.ts.map +1 -0
- package/dist/project-mentions.js +291 -0
- package/dist/project-mentions.js.map +1 -0
- package/dist/project-mentions.test.d.ts +2 -0
- package/dist/project-mentions.test.d.ts.map +1 -0
- package/dist/project-mentions.test.js +43 -0
- package/dist/project-mentions.test.js.map +1 -0
- package/dist/project-url-key.d.ts +5 -0
- package/dist/project-url-key.d.ts.map +1 -0
- package/dist/project-url-key.js +39 -0
- package/dist/project-url-key.js.map +1 -0
- package/dist/railway-connection.d.ts +20 -0
- package/dist/railway-connection.d.ts.map +1 -0
- package/dist/railway-connection.js +7 -0
- package/dist/railway-connection.js.map +1 -0
- package/dist/remote-mcp-connectors.d.ts +11 -0
- package/dist/remote-mcp-connectors.d.ts.map +1 -0
- package/dist/remote-mcp-connectors.js +14 -0
- package/dist/remote-mcp-connectors.js.map +1 -0
- package/dist/remote-mcp-connectors.test.d.ts +2 -0
- package/dist/remote-mcp-connectors.test.d.ts.map +1 -0
- package/dist/remote-mcp-connectors.test.js +39 -0
- package/dist/remote-mcp-connectors.test.js.map +1 -0
- package/dist/resource-memberships.test.d.ts +2 -0
- package/dist/resource-memberships.test.d.ts.map +1 -0
- package/dist/resource-memberships.test.js +23 -0
- package/dist/resource-memberships.test.js.map +1 -0
- package/dist/responsible-user-denial.d.ts +46 -0
- package/dist/responsible-user-denial.d.ts.map +1 -0
- package/dist/responsible-user-denial.js +66 -0
- package/dist/responsible-user-denial.js.map +1 -0
- package/dist/responsible-user-denial.test.d.ts +2 -0
- package/dist/responsible-user-denial.test.d.ts.map +1 -0
- package/dist/responsible-user-denial.test.js +65 -0
- package/dist/responsible-user-denial.test.js.map +1 -0
- package/dist/retired-composio.d.ts +7 -0
- package/dist/retired-composio.d.ts.map +1 -0
- package/dist/retired-composio.js +7 -0
- package/dist/retired-composio.js.map +1 -0
- package/dist/routine-variables.d.ts +23 -0
- package/dist/routine-variables.d.ts.map +1 -0
- package/dist/routine-variables.js +127 -0
- package/dist/routine-variables.js.map +1 -0
- package/dist/routine-variables.test.d.ts +2 -0
- package/dist/routine-variables.test.d.ts.map +1 -0
- package/dist/routine-variables.test.js +98 -0
- package/dist/routine-variables.test.js.map +1 -0
- package/dist/runner-goal.d.ts +105 -0
- package/dist/runner-goal.d.ts.map +1 -0
- package/dist/runner-goal.js +74 -0
- package/dist/runner-goal.js.map +1 -0
- package/dist/runtime-exposure/loopback-bind.d.ts +52 -0
- package/dist/runtime-exposure/loopback-bind.d.ts.map +1 -0
- package/dist/runtime-exposure/loopback-bind.js +93 -0
- package/dist/runtime-exposure/loopback-bind.js.map +1 -0
- package/dist/runtime-exposure/loopback-bind.test.d.ts +2 -0
- package/dist/runtime-exposure/loopback-bind.test.d.ts.map +1 -0
- package/dist/runtime-exposure/loopback-bind.test.js +94 -0
- package/dist/runtime-exposure/loopback-bind.test.js.map +1 -0
- package/dist/runtime-exposure/ports.d.ts +61 -0
- package/dist/runtime-exposure/ports.d.ts.map +1 -0
- package/dist/runtime-exposure/ports.js +96 -0
- package/dist/runtime-exposure/ports.js.map +1 -0
- package/dist/runtime-exposure/ports.test.d.ts +2 -0
- package/dist/runtime-exposure/ports.test.d.ts.map +1 -0
- package/dist/runtime-exposure/ports.test.js +46 -0
- package/dist/runtime-exposure/ports.test.js.map +1 -0
- package/dist/self-serve-mcp-research.d.ts +5 -0
- package/dist/self-serve-mcp-research.d.ts.map +1 -0
- package/dist/self-serve-mcp-research.js +5 -0
- package/dist/self-serve-mcp-research.js.map +1 -0
- package/dist/self-serve-mcp-research.json +54 -0
- package/dist/setting-defaults.d.ts +72 -0
- package/dist/setting-defaults.d.ts.map +1 -0
- package/dist/setting-defaults.js +132 -0
- package/dist/setting-defaults.js.map +1 -0
- package/dist/setting-defaults.test.d.ts +2 -0
- package/dist/setting-defaults.test.d.ts.map +1 -0
- package/dist/setting-defaults.test.js +102 -0
- package/dist/setting-defaults.test.js.map +1 -0
- package/dist/settings-visibility.d.ts +86 -0
- package/dist/settings-visibility.d.ts.map +1 -0
- package/dist/settings-visibility.js +138 -0
- package/dist/settings-visibility.js.map +1 -0
- package/dist/settings-visibility.test.d.ts +2 -0
- package/dist/settings-visibility.test.d.ts.map +1 -0
- package/dist/settings-visibility.test.js +85 -0
- package/dist/settings-visibility.test.js.map +1 -0
- package/dist/slack-tools.d.ts +557 -0
- package/dist/slack-tools.d.ts.map +1 -0
- package/dist/slack-tools.js +146 -0
- package/dist/slack-tools.js.map +1 -0
- package/dist/summary-slot.test.d.ts +2 -0
- package/dist/summary-slot.test.d.ts.map +1 -0
- package/dist/summary-slot.test.js +76 -0
- package/dist/summary-slot.test.js.map +1 -0
- package/dist/telemetry/client-contract.test.d.ts +2 -0
- package/dist/telemetry/client-contract.test.d.ts.map +1 -0
- package/dist/telemetry/client-contract.test.js +166 -0
- package/dist/telemetry/client-contract.test.js.map +1 -0
- package/dist/telemetry/client-types.test.d.ts +2 -0
- package/dist/telemetry/client-types.test.d.ts.map +1 -0
- package/dist/telemetry/client-types.test.js +18 -0
- package/dist/telemetry/client-types.test.js.map +1 -0
- package/dist/telemetry/client.d.ts +101 -0
- package/dist/telemetry/client.d.ts.map +1 -0
- package/dist/telemetry/client.js +426 -0
- package/dist/telemetry/client.js.map +1 -0
- package/dist/telemetry/client.test.d.ts +2 -0
- package/dist/telemetry/client.test.d.ts.map +1 -0
- package/dist/telemetry/client.test.js +507 -0
- package/dist/telemetry/client.test.js.map +1 -0
- package/dist/telemetry/config.d.ts +35 -0
- package/dist/telemetry/config.d.ts.map +1 -0
- package/dist/telemetry/config.js +51 -0
- package/dist/telemetry/config.js.map +1 -0
- package/dist/telemetry/events.d.ts +103 -0
- package/dist/telemetry/events.d.ts.map +1 -0
- package/dist/telemetry/events.js +121 -0
- package/dist/telemetry/events.js.map +1 -0
- package/dist/telemetry/generated/paperclip-telemetry.d.ts +406 -0
- package/dist/telemetry/generated/paperclip-telemetry.d.ts.map +1 -0
- package/dist/telemetry/generated/paperclip-telemetry.js +297 -0
- package/dist/telemetry/generated/paperclip-telemetry.js.map +1 -0
- package/dist/telemetry/index.d.ts +10 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +6 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/proposed-connector-events.test.d.ts +2 -0
- package/dist/telemetry/proposed-connector-events.test.d.ts.map +1 -0
- package/dist/telemetry/proposed-connector-events.test.js +96 -0
- package/dist/telemetry/proposed-connector-events.test.js.map +1 -0
- package/dist/telemetry/readme-contract.test.d.ts +2 -0
- package/dist/telemetry/readme-contract.test.d.ts.map +1 -0
- package/dist/telemetry/readme-contract.test.js +17 -0
- package/dist/telemetry/readme-contract.test.js.map +1 -0
- package/dist/telemetry/retention.d.ts +44 -0
- package/dist/telemetry/retention.d.ts.map +1 -0
- package/dist/telemetry/retention.js +46 -0
- package/dist/telemetry/retention.js.map +1 -0
- package/dist/telemetry/retention.test.d.ts +2 -0
- package/dist/telemetry/retention.test.d.ts.map +1 -0
- package/dist/telemetry/retention.test.js +20 -0
- package/dist/telemetry/retention.test.js.map +1 -0
- package/dist/telemetry/state.d.ts +3 -0
- package/dist/telemetry/state.d.ts.map +1 -0
- package/dist/telemetry/state.js +28 -0
- package/dist/telemetry/state.js.map +1 -0
- package/dist/telemetry/types.d.ts +62 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +2 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/trust-policy.d.ts +68 -0
- package/dist/trust-policy.d.ts.map +1 -0
- package/dist/trust-policy.js +11 -0
- package/dist/trust-policy.js.map +1 -0
- package/dist/types/access.d.ts +142 -0
- package/dist/types/access.d.ts.map +1 -0
- package/dist/types/access.js +2 -0
- package/dist/types/access.js.map +1 -0
- package/dist/types/activity.d.ts +15 -0
- package/dist/types/activity.d.ts.map +1 -0
- package/dist/types/activity.js +2 -0
- package/dist/types/activity.js.map +1 -0
- package/dist/types/adapter-registry.d.ts +31 -0
- package/dist/types/adapter-registry.d.ts.map +1 -0
- package/dist/types/adapter-registry.js +2 -0
- package/dist/types/adapter-registry.js.map +1 -0
- package/dist/types/adapter-skills.d.ts +38 -0
- package/dist/types/adapter-skills.d.ts.map +1 -0
- package/dist/types/adapter-skills.js +2 -0
- package/dist/types/adapter-skills.js.map +1 -0
- package/dist/types/agent.adapter-auth-session.test.d.ts +2 -0
- package/dist/types/agent.adapter-auth-session.test.d.ts.map +1 -0
- package/dist/types/agent.adapter-auth-session.test.js +103 -0
- package/dist/types/agent.adapter-auth-session.test.js.map +1 -0
- package/dist/types/agent.d.ts +194 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +51 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/app-definition.d.ts +153 -0
- package/dist/types/app-definition.d.ts.map +1 -0
- package/dist/types/app-definition.js +2 -0
- package/dist/types/app-definition.js.map +1 -0
- package/dist/types/approval.d.ts +26 -0
- package/dist/types/approval.d.ts.map +1 -0
- package/dist/types/approval.js +2 -0
- package/dist/types/approval.js.map +1 -0
- package/dist/types/artifact.d.ts +52 -0
- package/dist/types/artifact.d.ts.map +1 -0
- package/dist/types/artifact.js +2 -0
- package/dist/types/artifact.js.map +1 -0
- package/dist/types/asset.d.ts +16 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/asset.js +2 -0
- package/dist/types/asset.js.map +1 -0
- package/dist/types/attention.d.ts +222 -0
- package/dist/types/attention.d.ts.map +1 -0
- package/dist/types/attention.js +15 -0
- package/dist/types/attention.js.map +1 -0
- package/dist/types/budget.d.ts +86 -0
- package/dist/types/budget.d.ts.map +1 -0
- package/dist/types/budget.js +2 -0
- package/dist/types/budget.js.map +1 -0
- package/dist/types/chat-channels.d.ts +402 -0
- package/dist/types/chat-channels.d.ts.map +1 -0
- package/dist/types/chat-channels.js +105 -0
- package/dist/types/chat-channels.js.map +1 -0
- package/dist/types/chat-github.d.ts +123 -0
- package/dist/types/chat-github.d.ts.map +1 -0
- package/dist/types/chat-github.js +55 -0
- package/dist/types/chat-github.js.map +1 -0
- package/dist/types/company-portability.d.ts +408 -0
- package/dist/types/company-portability.d.ts.map +1 -0
- package/dist/types/company-portability.js +2 -0
- package/dist/types/company-portability.js.map +1 -0
- package/dist/types/company-skill.d.ts +623 -0
- package/dist/types/company-skill.d.ts.map +1 -0
- package/dist/types/company-skill.js +2 -0
- package/dist/types/company-skill.js.map +1 -0
- package/dist/types/company.d.ts +30 -0
- package/dist/types/company.d.ts.map +1 -0
- package/dist/types/company.js +2 -0
- package/dist/types/company.js.map +1 -0
- package/dist/types/connection-intent.d.ts +53 -0
- package/dist/types/connection-intent.d.ts.map +1 -0
- package/dist/types/connection-intent.js +2 -0
- package/dist/types/connection-intent.js.map +1 -0
- package/dist/types/cost.d.ts +126 -0
- package/dist/types/cost.d.ts.map +1 -0
- package/dist/types/cost.js +2 -0
- package/dist/types/cost.js.map +1 -0
- package/dist/types/dashboard.d.ts +54 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +2 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/decision-queue.d.ts +55 -0
- package/dist/types/decision-queue.d.ts.map +1 -0
- package/dist/types/decision-queue.js +2 -0
- package/dist/types/decision-queue.js.map +1 -0
- package/dist/types/decision-training.d.ts +65 -0
- package/dist/types/decision-training.d.ts.map +1 -0
- package/dist/types/decision-training.js +2 -0
- package/dist/types/decision-training.js.map +1 -0
- package/dist/types/decision.d.ts +100 -0
- package/dist/types/decision.d.ts.map +1 -0
- package/dist/types/decision.js +15 -0
- package/dist/types/decision.js.map +1 -0
- package/dist/types/document-annotation.d.ts +223 -0
- package/dist/types/document-annotation.d.ts.map +1 -0
- package/dist/types/document-annotation.js +2 -0
- package/dist/types/document-annotation.js.map +1 -0
- package/dist/types/email.d.ts +50 -0
- package/dist/types/email.d.ts.map +1 -0
- package/dist/types/email.js +2 -0
- package/dist/types/email.js.map +1 -0
- package/dist/types/environment.d.ts +150 -0
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/environment.js +2 -0
- package/dist/types/environment.js.map +1 -0
- package/dist/types/execution-continuation.d.ts +67 -0
- package/dist/types/execution-continuation.d.ts.map +1 -0
- package/dist/types/execution-continuation.js +2 -0
- package/dist/types/execution-continuation.js.map +1 -0
- package/dist/types/execution-projection.d.ts +33 -0
- package/dist/types/execution-projection.d.ts.map +1 -0
- package/dist/types/execution-projection.js +24 -0
- package/dist/types/execution-projection.js.map +1 -0
- package/dist/types/external-object.d.ts +84 -0
- package/dist/types/external-object.d.ts.map +1 -0
- package/dist/types/external-object.js +2 -0
- package/dist/types/external-object.js.map +1 -0
- package/dist/types/feedback.d.ts +95 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/dist/types/feedback.js +7 -0
- package/dist/types/feedback.js.map +1 -0
- package/dist/types/finance.d.ts +57 -0
- package/dist/types/finance.d.ts.map +1 -0
- package/dist/types/finance.js +2 -0
- package/dist/types/finance.js.map +1 -0
- package/dist/types/folder.d.ts +52 -0
- package/dist/types/folder.d.ts.map +1 -0
- package/dist/types/folder.js +2 -0
- package/dist/types/folder.js.map +1 -0
- package/dist/types/goal.d.ts +14 -0
- package/dist/types/goal.d.ts.map +1 -0
- package/dist/types/goal.js +2 -0
- package/dist/types/goal.js.map +1 -0
- package/dist/types/heartbeat.d.ts +325 -0
- package/dist/types/heartbeat.d.ts.map +1 -0
- package/dist/types/heartbeat.js +2 -0
- package/dist/types/heartbeat.js.map +1 -0
- package/dist/types/inbox-agent-policy.d.ts +12 -0
- package/dist/types/inbox-agent-policy.d.ts.map +1 -0
- package/dist/types/inbox-agent-policy.js +2 -0
- package/dist/types/inbox-agent-policy.js.map +1 -0
- package/dist/types/inbox-dismissal.d.ts +13 -0
- package/dist/types/inbox-dismissal.d.ts.map +1 -0
- package/dist/types/inbox-dismissal.js +2 -0
- package/dist/types/inbox-dismissal.js.map +1 -0
- package/dist/types/index.d.ts +69 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instance.d.ts +170 -0
- package/dist/types/instance.d.ts.map +1 -0
- package/dist/types/instance.js +10 -0
- package/dist/types/instance.js.map +1 -0
- package/dist/types/issue-tree-control.d.ts +109 -0
- package/dist/types/issue-tree-control.d.ts.map +1 -0
- package/dist/types/issue-tree-control.js +2 -0
- package/dist/types/issue-tree-control.js.map +1 -0
- package/dist/types/issue.d.ts +1312 -0
- package/dist/types/issue.d.ts.map +1 -0
- package/dist/types/issue.js +2 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/live.d.ts +9 -0
- package/dist/types/live.d.ts.map +1 -0
- package/dist/types/live.js +2 -0
- package/dist/types/live.js.map +1 -0
- package/dist/types/native-finalization.d.ts +29 -0
- package/dist/types/native-finalization.d.ts.map +1 -0
- package/dist/types/native-finalization.js +2 -0
- package/dist/types/native-finalization.js.map +1 -0
- package/dist/types/pipeline.d.ts +268 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +2 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/plugin.d.ts +894 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +2 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/project.d.ts +116 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +2 -0
- package/dist/types/project.js.map +1 -0
- package/dist/types/quota.d.ts +28 -0
- package/dist/types/quota.d.ts.map +1 -0
- package/dist/types/quota.js +2 -0
- package/dist/types/quota.js.map +1 -0
- package/dist/types/resource-memberships.d.ts +26 -0
- package/dist/types/resource-memberships.d.ts.map +1 -0
- package/dist/types/resource-memberships.js +2 -0
- package/dist/types/resource-memberships.js.map +1 -0
- package/dist/types/routine.d.ts +237 -0
- package/dist/types/routine.d.ts.map +1 -0
- package/dist/types/routine.js +2 -0
- package/dist/types/routine.js.map +1 -0
- package/dist/types/runtime-exposure.d.ts +74 -0
- package/dist/types/runtime-exposure.d.ts.map +1 -0
- package/dist/types/runtime-exposure.js +12 -0
- package/dist/types/runtime-exposure.js.map +1 -0
- package/dist/types/search.d.ts +135 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +6 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/secrets.d.ts +374 -0
- package/dist/types/secrets.d.ts.map +1 -0
- package/dist/types/secrets.js +2 -0
- package/dist/types/secrets.js.map +1 -0
- package/dist/types/server-info.d.ts +27 -0
- package/dist/types/server-info.d.ts.map +1 -0
- package/dist/types/server-info.js +2 -0
- package/dist/types/server-info.js.map +1 -0
- package/dist/types/sidebar-badges.d.ts +7 -0
- package/dist/types/sidebar-badges.d.ts.map +1 -0
- package/dist/types/sidebar-badges.js +2 -0
- package/dist/types/sidebar-badges.js.map +1 -0
- package/dist/types/sidebar-preferences.d.ts +5 -0
- package/dist/types/sidebar-preferences.d.ts.map +1 -0
- package/dist/types/sidebar-preferences.js +2 -0
- package/dist/types/sidebar-preferences.js.map +1 -0
- package/dist/types/smoke-lab.d.ts +41 -0
- package/dist/types/smoke-lab.d.ts.map +1 -0
- package/dist/types/smoke-lab.js +5 -0
- package/dist/types/smoke-lab.js.map +1 -0
- package/dist/types/summary-slot.d.ts +91 -0
- package/dist/types/summary-slot.d.ts.map +1 -0
- package/dist/types/summary-slot.js +2 -0
- package/dist/types/summary-slot.js.map +1 -0
- package/dist/types/teams-catalog.d.ts +163 -0
- package/dist/types/teams-catalog.d.ts.map +1 -0
- package/dist/types/teams-catalog.js +2 -0
- package/dist/types/teams-catalog.js.map +1 -0
- package/dist/types/tool-access.d.ts +1515 -0
- package/dist/types/tool-access.d.ts.map +1 -0
- package/dist/types/tool-access.js +13 -0
- package/dist/types/tool-access.js.map +1 -0
- package/dist/types/user-profile.d.ts +81 -0
- package/dist/types/user-profile.d.ts.map +1 -0
- package/dist/types/user-profile.js +2 -0
- package/dist/types/user-profile.js.map +1 -0
- package/dist/types/work-product.d.ts +57 -0
- package/dist/types/work-product.d.ts.map +1 -0
- package/dist/types/work-product.js +2 -0
- package/dist/types/work-product.js.map +1 -0
- package/dist/types/work-timeline.d.ts +77 -0
- package/dist/types/work-timeline.d.ts.map +1 -0
- package/dist/types/work-timeline.js +2 -0
- package/dist/types/work-timeline.js.map +1 -0
- package/dist/types/workspace-file-resource.d.ts +138 -0
- package/dist/types/workspace-file-resource.d.ts.map +1 -0
- package/dist/types/workspace-file-resource.js +2 -0
- package/dist/types/workspace-file-resource.js.map +1 -0
- package/dist/types/workspace-operation.d.ts +27 -0
- package/dist/types/workspace-operation.d.ts.map +1 -0
- package/dist/types/workspace-operation.js +2 -0
- package/dist/types/workspace-operation.js.map +1 -0
- package/dist/types/workspace-readiness.d.ts +74 -0
- package/dist/types/workspace-readiness.d.ts.map +1 -0
- package/dist/types/workspace-readiness.js +28 -0
- package/dist/types/workspace-readiness.js.map +1 -0
- package/dist/types/workspace-runtime.d.ts +365 -0
- package/dist/types/workspace-runtime.d.ts.map +1 -0
- package/dist/types/workspace-runtime.js +2 -0
- package/dist/types/workspace-runtime.js.map +1 -0
- package/dist/validators/access.d.ts +215 -0
- package/dist/validators/access.d.ts.map +1 -0
- package/dist/validators/access.js +146 -0
- package/dist/validators/access.js.map +1 -0
- package/dist/validators/access.test.d.ts +2 -0
- package/dist/validators/access.test.d.ts.map +1 -0
- package/dist/validators/access.test.js +166 -0
- package/dist/validators/access.test.js.map +1 -0
- package/dist/validators/adapter-auth-session.d.ts +118 -0
- package/dist/validators/adapter-auth-session.d.ts.map +1 -0
- package/dist/validators/adapter-auth-session.js +37 -0
- package/dist/validators/adapter-auth-session.js.map +1 -0
- package/dist/validators/adapter-registry.d.ts +21 -0
- package/dist/validators/adapter-registry.d.ts.map +1 -0
- package/dist/validators/adapter-registry.js +14 -0
- package/dist/validators/adapter-registry.js.map +1 -0
- package/dist/validators/adapter-registry.test.d.ts +2 -0
- package/dist/validators/adapter-registry.test.d.ts.map +1 -0
- package/dist/validators/adapter-registry.test.js +31 -0
- package/dist/validators/adapter-registry.test.js.map +1 -0
- package/dist/validators/adapter-skills.d.ts +114 -0
- package/dist/validators/adapter-skills.d.ts.map +1 -0
- package/dist/validators/adapter-skills.js +62 -0
- package/dist/validators/adapter-skills.js.map +1 -0
- package/dist/validators/agent.d.ts +884 -0
- package/dist/validators/agent.d.ts.map +1 -0
- package/dist/validators/agent.js +224 -0
- package/dist/validators/agent.js.map +1 -0
- package/dist/validators/app-definition.d.ts +965 -0
- package/dist/validators/app-definition.d.ts.map +1 -0
- package/dist/validators/app-definition.js +39 -0
- package/dist/validators/app-definition.js.map +1 -0
- package/dist/validators/approval.d.ts +30 -0
- package/dist/validators/approval.d.ts.map +1 -0
- package/dist/validators/approval.js +22 -0
- package/dist/validators/approval.js.map +1 -0
- package/dist/validators/approval.test.d.ts +2 -0
- package/dist/validators/approval.test.d.ts.map +1 -0
- package/dist/validators/approval.test.js +25 -0
- package/dist/validators/approval.test.js.map +1 -0
- package/dist/validators/artifact.d.ts +305 -0
- package/dist/validators/artifact.d.ts.map +1 -0
- package/dist/validators/artifact.js +71 -0
- package/dist/validators/artifact.js.map +1 -0
- package/dist/validators/artifact.test.d.ts +2 -0
- package/dist/validators/artifact.test.d.ts.map +1 -0
- package/dist/validators/artifact.test.js +76 -0
- package/dist/validators/artifact.test.js.map +1 -0
- package/dist/validators/asset.d.ts +21 -0
- package/dist/validators/asset.d.ts.map +1 -0
- package/dist/validators/asset.js +70 -0
- package/dist/validators/asset.js.map +1 -0
- package/dist/validators/asset.test.d.ts +2 -0
- package/dist/validators/asset.test.d.ts.map +1 -0
- package/dist/validators/asset.test.js +130 -0
- package/dist/validators/asset.test.js.map +1 -0
- package/dist/validators/budget.d.ts +32 -0
- package/dist/validators/budget.d.ts.map +1 -0
- package/dist/validators/budget.js +27 -0
- package/dist/validators/budget.js.map +1 -0
- package/dist/validators/chat-channels.d.ts +215 -0
- package/dist/validators/chat-channels.d.ts.map +1 -0
- package/dist/validators/chat-channels.js +181 -0
- package/dist/validators/chat-channels.js.map +1 -0
- package/dist/validators/chat-channels.test.d.ts +2 -0
- package/dist/validators/chat-channels.test.d.ts.map +1 -0
- package/dist/validators/chat-channels.test.js +84 -0
- package/dist/validators/chat-channels.test.js.map +1 -0
- package/dist/validators/chat-github.d.ts +315 -0
- package/dist/validators/chat-github.d.ts.map +1 -0
- package/dist/validators/chat-github.js +149 -0
- package/dist/validators/chat-github.js.map +1 -0
- package/dist/validators/claude-setup-token-session.d.ts +160 -0
- package/dist/validators/claude-setup-token-session.d.ts.map +1 -0
- package/dist/validators/claude-setup-token-session.js +131 -0
- package/dist/validators/claude-setup-token-session.js.map +1 -0
- package/dist/validators/claude-setup-token-session.test.d.ts +2 -0
- package/dist/validators/claude-setup-token-session.test.d.ts.map +1 -0
- package/dist/validators/claude-setup-token-session.test.js +107 -0
- package/dist/validators/claude-setup-token-session.test.js.map +1 -0
- package/dist/validators/company-portability.d.ts +913 -0
- package/dist/validators/company-portability.d.ts.map +1 -0
- package/dist/validators/company-portability.js +301 -0
- package/dist/validators/company-portability.js.map +1 -0
- package/dist/validators/company-skill.d.ts +1450 -0
- package/dist/validators/company-skill.d.ts.map +1 -0
- package/dist/validators/company-skill.js +520 -0
- package/dist/validators/company-skill.js.map +1 -0
- package/dist/validators/company-skill.test.d.ts +2 -0
- package/dist/validators/company-skill.test.d.ts.map +1 -0
- package/dist/validators/company-skill.test.js +165 -0
- package/dist/validators/company-skill.test.js.map +1 -0
- package/dist/validators/company.d.ts +198 -0
- package/dist/validators/company.d.ts.map +1 -0
- package/dist/validators/company.js +46 -0
- package/dist/validators/company.js.map +1 -0
- package/dist/validators/company.test.d.ts +2 -0
- package/dist/validators/company.test.d.ts.map +1 -0
- package/dist/validators/company.test.js +60 -0
- package/dist/validators/company.test.js.map +1 -0
- package/dist/validators/connection-intent.d.ts +18 -0
- package/dist/validators/connection-intent.d.ts.map +1 -0
- package/dist/validators/connection-intent.js +14 -0
- package/dist/validators/connection-intent.js.map +1 -0
- package/dist/validators/connection-intent.test.d.ts +2 -0
- package/dist/validators/connection-intent.test.d.ts.map +1 -0
- package/dist/validators/connection-intent.test.js +55 -0
- package/dist/validators/connection-intent.test.js.map +1 -0
- package/dist/validators/cost.d.ts +69 -0
- package/dist/validators/cost.d.ts.map +1 -0
- package/dist/validators/cost.js +27 -0
- package/dist/validators/cost.js.map +1 -0
- package/dist/validators/decision-queue.d.ts +90 -0
- package/dist/validators/decision-queue.d.ts.map +1 -0
- package/dist/validators/decision-queue.js +60 -0
- package/dist/validators/decision-queue.js.map +1 -0
- package/dist/validators/decision.d.ts +403 -0
- package/dist/validators/decision.d.ts.map +1 -0
- package/dist/validators/decision.js +130 -0
- package/dist/validators/decision.js.map +1 -0
- package/dist/validators/document-annotation.d.ts +74 -0
- package/dist/validators/document-annotation.d.ts.map +1 -0
- package/dist/validators/document-annotation.js +53 -0
- package/dist/validators/document-annotation.js.map +1 -0
- package/dist/validators/email.d.ts +43 -0
- package/dist/validators/email.d.ts.map +1 -0
- package/dist/validators/email.js +70 -0
- package/dist/validators/email.js.map +1 -0
- package/dist/validators/environment-custom-images.d.ts +140 -0
- package/dist/validators/environment-custom-images.d.ts.map +1 -0
- package/dist/validators/environment-custom-images.js +80 -0
- package/dist/validators/environment-custom-images.js.map +1 -0
- package/dist/validators/environment.d.ts +129 -0
- package/dist/validators/environment.d.ts.map +1 -0
- package/dist/validators/environment.js +35 -0
- package/dist/validators/environment.js.map +1 -0
- package/dist/validators/execution-workspace.d.ts +304 -0
- package/dist/validators/execution-workspace.d.ts.map +1 -0
- package/dist/validators/execution-workspace.js +161 -0
- package/dist/validators/execution-workspace.js.map +1 -0
- package/dist/validators/external-object.d.ts +70 -0
- package/dist/validators/external-object.d.ts.map +1 -0
- package/dist/validators/external-object.js +25 -0
- package/dist/validators/external-object.js.map +1 -0
- package/dist/validators/feedback.d.ts +35 -0
- package/dist/validators/feedback.d.ts.map +1 -0
- package/dist/validators/feedback.js +14 -0
- package/dist/validators/feedback.js.map +1 -0
- package/dist/validators/finance.d.ts +126 -0
- package/dist/validators/finance.d.ts.map +1 -0
- package/dist/validators/finance.js +32 -0
- package/dist/validators/finance.js.map +1 -0
- package/dist/validators/folder.d.ts +108 -0
- package/dist/validators/folder.d.ts.map +1 -0
- package/dist/validators/folder.js +56 -0
- package/dist/validators/folder.js.map +1 -0
- package/dist/validators/goal.d.ts +40 -0
- package/dist/validators/goal.d.ts.map +1 -0
- package/dist/validators/goal.js +13 -0
- package/dist/validators/goal.js.map +1 -0
- package/dist/validators/inbox-agent-policy.d.ts +16 -0
- package/dist/validators/inbox-agent-policy.d.ts.map +1 -0
- package/dist/validators/inbox-agent-policy.js +15 -0
- package/dist/validators/inbox-agent-policy.js.map +1 -0
- package/dist/validators/index.d.ts +50 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +50 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/instance.d.ts +200 -0
- package/dist/validators/instance.d.ts.map +1 -0
- package/dist/validators/instance.js +112 -0
- package/dist/validators/instance.js.map +1 -0
- package/dist/validators/instance.test.d.ts +2 -0
- package/dist/validators/instance.test.d.ts.map +1 -0
- package/dist/validators/instance.test.js +137 -0
- package/dist/validators/instance.test.js.map +1 -0
- package/dist/validators/issue-tree-control.d.ts +61 -0
- package/dist/validators/issue-tree-control.d.ts.map +1 -0
- package/dist/validators/issue-tree-control.js +31 -0
- package/dist/validators/issue-tree-control.js.map +1 -0
- package/dist/validators/issue.d.ts +3028 -0
- package/dist/validators/issue.d.ts.map +1 -0
- package/dist/validators/issue.js +1824 -0
- package/dist/validators/issue.js.map +1 -0
- package/dist/validators/issue.test.d.ts +2 -0
- package/dist/validators/issue.test.d.ts.map +1 -0
- package/dist/validators/issue.test.js +454 -0
- package/dist/validators/issue.test.js.map +1 -0
- package/dist/validators/native-finalization.d.ts +91 -0
- package/dist/validators/native-finalization.d.ts.map +1 -0
- package/dist/validators/native-finalization.js +33 -0
- package/dist/validators/native-finalization.js.map +1 -0
- package/dist/validators/native-finalization.test.d.ts +2 -0
- package/dist/validators/native-finalization.test.d.ts.map +1 -0
- package/dist/validators/native-finalization.test.js +52 -0
- package/dist/validators/native-finalization.test.js.map +1 -0
- package/dist/validators/onboarding-seed.d.ts +30 -0
- package/dist/validators/onboarding-seed.d.ts.map +1 -0
- package/dist/validators/onboarding-seed.js +33 -0
- package/dist/validators/onboarding-seed.js.map +1 -0
- package/dist/validators/partial.d.ts +4 -0
- package/dist/validators/partial.d.ts.map +1 -0
- package/dist/validators/partial.js +35 -0
- package/dist/validators/partial.js.map +1 -0
- package/dist/validators/pipeline.d.ts +358 -0
- package/dist/validators/pipeline.d.ts.map +1 -0
- package/dist/validators/pipeline.js +133 -0
- package/dist/validators/pipeline.js.map +1 -0
- package/dist/validators/plugin.d.ts +1257 -0
- package/dist/validators/plugin.d.ts.map +1 -0
- package/dist/validators/plugin.js +1067 -0
- package/dist/validators/plugin.js.map +1 -0
- package/dist/validators/plugin.test.d.ts +2 -0
- package/dist/validators/plugin.test.d.ts.map +1 -0
- package/dist/validators/plugin.test.js +352 -0
- package/dist/validators/plugin.test.js.map +1 -0
- package/dist/validators/project.d.ts +510 -0
- package/dist/validators/project.d.ts.map +1 -0
- package/dist/validators/project.js +111 -0
- package/dist/validators/project.js.map +1 -0
- package/dist/validators/provider-trace.d.ts +135 -0
- package/dist/validators/provider-trace.d.ts.map +1 -0
- package/dist/validators/provider-trace.js +108 -0
- package/dist/validators/provider-trace.js.map +1 -0
- package/dist/validators/resource-memberships.d.ts +18 -0
- package/dist/validators/resource-memberships.d.ts.map +1 -0
- package/dist/validators/resource-memberships.js +16 -0
- package/dist/validators/resource-memberships.js.map +1 -0
- package/dist/validators/routine.d.ts +566 -0
- package/dist/validators/routine.d.ts.map +1 -0
- package/dist/validators/routine.js +151 -0
- package/dist/validators/routine.js.map +1 -0
- package/dist/validators/routine.test.d.ts +2 -0
- package/dist/validators/routine.test.d.ts.map +1 -0
- package/dist/validators/routine.test.js +115 -0
- package/dist/validators/routine.test.js.map +1 -0
- package/dist/validators/runtime-exposure.d.ts +100 -0
- package/dist/validators/runtime-exposure.d.ts.map +1 -0
- package/dist/validators/runtime-exposure.js +138 -0
- package/dist/validators/runtime-exposure.js.map +1 -0
- package/dist/validators/runtime-exposure.test.d.ts +2 -0
- package/dist/validators/runtime-exposure.test.d.ts.map +1 -0
- package/dist/validators/runtime-exposure.test.js +112 -0
- package/dist/validators/runtime-exposure.test.js.map +1 -0
- package/dist/validators/search.d.ts +40 -0
- package/dist/validators/search.d.ts.map +1 -0
- package/dist/validators/search.js +233 -0
- package/dist/validators/search.js.map +1 -0
- package/dist/validators/secret.d.ts +359 -0
- package/dist/validators/secret.d.ts.map +1 -0
- package/dist/validators/secret.js +344 -0
- package/dist/validators/secret.js.map +1 -0
- package/dist/validators/secret.test.d.ts +2 -0
- package/dist/validators/secret.test.d.ts.map +1 -0
- package/dist/validators/secret.test.js +208 -0
- package/dist/validators/secret.test.js.map +1 -0
- package/dist/validators/sidebar-preferences.d.ts +10 -0
- package/dist/validators/sidebar-preferences.d.ts.map +1 -0
- package/dist/validators/sidebar-preferences.js +10 -0
- package/dist/validators/sidebar-preferences.js.map +1 -0
- package/dist/validators/skill-policy.d.ts +248 -0
- package/dist/validators/skill-policy.d.ts.map +1 -0
- package/dist/validators/skill-policy.js +123 -0
- package/dist/validators/skill-policy.js.map +1 -0
- package/dist/validators/skill-policy.test.d.ts +2 -0
- package/dist/validators/skill-policy.test.d.ts.map +1 -0
- package/dist/validators/skill-policy.test.js +92 -0
- package/dist/validators/skill-policy.test.js.map +1 -0
- package/dist/validators/smoke-lab.d.ts +67 -0
- package/dist/validators/smoke-lab.d.ts.map +1 -0
- package/dist/validators/smoke-lab.js +23 -0
- package/dist/validators/smoke-lab.js.map +1 -0
- package/dist/validators/status-card.d.ts +329 -0
- package/dist/validators/status-card.d.ts.map +1 -0
- package/dist/validators/status-card.js +166 -0
- package/dist/validators/status-card.js.map +1 -0
- package/dist/validators/status-card.test.d.ts +2 -0
- package/dist/validators/status-card.test.d.ts.map +1 -0
- package/dist/validators/status-card.test.js +23 -0
- package/dist/validators/status-card.test.js.map +1 -0
- package/dist/validators/summary-slot.d.ts +46 -0
- package/dist/validators/summary-slot.d.ts.map +1 -0
- package/dist/validators/summary-slot.js +51 -0
- package/dist/validators/summary-slot.js.map +1 -0
- package/dist/validators/teams-catalog.d.ts +322 -0
- package/dist/validators/teams-catalog.d.ts.map +1 -0
- package/dist/validators/teams-catalog.js +147 -0
- package/dist/validators/teams-catalog.js.map +1 -0
- package/dist/validators/text.d.ts +4 -0
- package/dist/validators/text.d.ts.map +1 -0
- package/dist/validators/text.js +9 -0
- package/dist/validators/text.js.map +1 -0
- package/dist/validators/tool-access.d.ts +1925 -0
- package/dist/validators/tool-access.d.ts.map +1 -0
- package/dist/validators/tool-access.js +819 -0
- package/dist/validators/tool-access.js.map +1 -0
- package/dist/validators/tool-access.test.d.ts +2 -0
- package/dist/validators/tool-access.test.d.ts.map +1 -0
- package/dist/validators/tool-access.test.js +172 -0
- package/dist/validators/tool-access.test.js.map +1 -0
- package/dist/validators/trust-policy.d.ts +120 -0
- package/dist/validators/trust-policy.d.ts.map +1 -0
- package/dist/validators/trust-policy.js +59 -0
- package/dist/validators/trust-policy.js.map +1 -0
- package/dist/validators/trust-policy.test.d.ts +2 -0
- package/dist/validators/trust-policy.test.d.ts.map +1 -0
- package/dist/validators/trust-policy.test.js +26 -0
- package/dist/validators/trust-policy.test.js.map +1 -0
- package/dist/validators/work-product.d.ts +178 -0
- package/dist/validators/work-product.d.ts.map +1 -0
- package/dist/validators/work-product.js +88 -0
- package/dist/validators/work-product.js.map +1 -0
- package/dist/validators/work-product.test.d.ts +2 -0
- package/dist/validators/work-product.test.d.ts.map +1 -0
- package/dist/validators/work-product.test.js +38 -0
- package/dist/validators/work-product.test.js.map +1 -0
- package/dist/validators/workspace-file-resource.d.ts +268 -0
- package/dist/validators/workspace-file-resource.d.ts.map +1 -0
- package/dist/validators/workspace-file-resource.js +116 -0
- package/dist/validators/workspace-file-resource.js.map +1 -0
- package/dist/work-product.test.d.ts +2 -0
- package/dist/work-product.test.d.ts.map +1 -0
- package/dist/work-product.test.js +120 -0
- package/dist/work-product.test.js.map +1 -0
- package/dist/workspace-commands.d.ts +9 -0
- package/dist/workspace-commands.d.ts.map +1 -0
- package/dist/workspace-commands.js +177 -0
- package/dist/workspace-commands.js.map +1 -0
- package/dist/workspace-commands.test.d.ts +2 -0
- package/dist/workspace-commands.test.d.ts.map +1 -0
- package/dist/workspace-commands.test.js +155 -0
- package/dist/workspace-commands.test.js.map +1 -0
- package/dist/workspace-file-resource.test.d.ts +2 -0
- package/dist/workspace-file-resource.test.d.ts.map +1 -0
- package/dist/workspace-file-resource.test.js +52 -0
- package/dist/workspace-file-resource.test.js.map +1 -0
- package/dist/worktree-port-registry.d.ts +5 -0
- package/dist/worktree-port-registry.d.ts.map +1 -0
- package/dist/worktree-port-registry.js +382 -0
- package/dist/worktree-port-registry.js.map +1 -0
- package/dist/worktree-port-registry.test.d.ts +2 -0
- package/dist/worktree-port-registry.test.d.ts.map +1 -0
- package/dist/worktree-port-registry.test.js +118 -0
- package/dist/worktree-port-registry.test.js.map +1 -0
- package/dist/worktree-seed-source.d.ts +43 -0
- package/dist/worktree-seed-source.d.ts.map +1 -0
- package/dist/worktree-seed-source.js +180 -0
- package/dist/worktree-seed-source.js.map +1 -0
- package/dist/worktree-seed-source.test.d.ts +2 -0
- package/dist/worktree-seed-source.test.d.ts.map +1 -0
- package/dist/worktree-seed-source.test.js +166 -0
- package/dist/worktree-seed-source.test.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { describe, expect, it } from "vitest";
|
|
5
|
+
import { analyzeFrontmatterBlock, detectFrontmatterRoundTripIssues, getSkillFrontmatterUnknownKeys, joinFrontmatterBlock, parseFrontmatterFields, parseFrontmatterMarkdown, skillFrontmatterSchema, splitFrontmatterBlock, stringifyFrontmatter, } from "./frontmatter.js";
|
|
6
|
+
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../..");
|
|
7
|
+
const skillMarkdownSearchRoots = [
|
|
8
|
+
"packages/skills-catalog/catalog",
|
|
9
|
+
"packages/teams-catalog/catalog",
|
|
10
|
+
"packages/adapters/hermes/skills",
|
|
11
|
+
"packages/plugins/plugin-llm-wiki/skills",
|
|
12
|
+
"skills",
|
|
13
|
+
];
|
|
14
|
+
describe("parseFrontmatterMarkdown", () => {
|
|
15
|
+
it("parses folded and literal YAML block scalars", () => {
|
|
16
|
+
const folded = parseFrontmatterMarkdown([
|
|
17
|
+
"---",
|
|
18
|
+
"name: Folded",
|
|
19
|
+
"description: >",
|
|
20
|
+
" First line",
|
|
21
|
+
" second line",
|
|
22
|
+
"",
|
|
23
|
+
" Third paragraph",
|
|
24
|
+
"---",
|
|
25
|
+
"",
|
|
26
|
+
"Body",
|
|
27
|
+
].join("\n"));
|
|
28
|
+
expect(folded.frontmatter.description).toBe("First line second line\n\nThird paragraph\n");
|
|
29
|
+
const literal = parseFrontmatterMarkdown([
|
|
30
|
+
"---",
|
|
31
|
+
"name: Literal",
|
|
32
|
+
"description: |",
|
|
33
|
+
" First line",
|
|
34
|
+
" second line",
|
|
35
|
+
"---",
|
|
36
|
+
"",
|
|
37
|
+
"Body",
|
|
38
|
+
].join("\n"));
|
|
39
|
+
expect(literal.frontmatter.description).toBe("First line\nsecond line\n");
|
|
40
|
+
});
|
|
41
|
+
it("respects block-scalar chomping indicators", () => {
|
|
42
|
+
const foldedStrip = parseFrontmatterMarkdown([
|
|
43
|
+
"---",
|
|
44
|
+
"description: >-",
|
|
45
|
+
" First line",
|
|
46
|
+
" second line",
|
|
47
|
+
"",
|
|
48
|
+
" Third paragraph",
|
|
49
|
+
"---",
|
|
50
|
+
"",
|
|
51
|
+
"Body",
|
|
52
|
+
].join("\n"));
|
|
53
|
+
expect(foldedStrip.frontmatter.description).toBe("First line second line\n\nThird paragraph");
|
|
54
|
+
const literalKeep = parseFrontmatterMarkdown([
|
|
55
|
+
"---",
|
|
56
|
+
"description: |+",
|
|
57
|
+
" First line",
|
|
58
|
+
" second line",
|
|
59
|
+
"",
|
|
60
|
+
"",
|
|
61
|
+
"---",
|
|
62
|
+
"",
|
|
63
|
+
"Body",
|
|
64
|
+
].join("\n"));
|
|
65
|
+
expect(literalKeep.frontmatter.description).toBe("First line\nsecond line\n\n");
|
|
66
|
+
});
|
|
67
|
+
it("parses inline object array items nested under frontmatter keys", () => {
|
|
68
|
+
const parsed = parseFrontmatterMarkdown([
|
|
69
|
+
"---",
|
|
70
|
+
"metadata:",
|
|
71
|
+
" sources:",
|
|
72
|
+
" - kind: github-dir",
|
|
73
|
+
" repo: paperclipai/paperclip",
|
|
74
|
+
" path: skills/paperclip",
|
|
75
|
+
"---",
|
|
76
|
+
"",
|
|
77
|
+
"Body",
|
|
78
|
+
].join("\n"));
|
|
79
|
+
expect(parsed.frontmatter).toMatchObject({
|
|
80
|
+
metadata: {
|
|
81
|
+
sources: [
|
|
82
|
+
{
|
|
83
|
+
kind: "github-dir",
|
|
84
|
+
repo: "paperclipai/paperclip",
|
|
85
|
+
path: "skills/paperclip",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
it("does not treat trailing-dot decimals as numbers", () => {
|
|
92
|
+
const parsed = parseFrontmatterMarkdown([
|
|
93
|
+
"---",
|
|
94
|
+
"version: 1.",
|
|
95
|
+
"---",
|
|
96
|
+
"",
|
|
97
|
+
].join("\n"));
|
|
98
|
+
expect(parsed.frontmatter.version).toBe("1.");
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe("splitFrontmatterBlock", () => {
|
|
102
|
+
it("splits every bundled skill markdown file without losing bytes", () => {
|
|
103
|
+
const skillMarkdownFiles = collectSkillMarkdownFiles();
|
|
104
|
+
expect(skillMarkdownFiles.length).toBeGreaterThan(0);
|
|
105
|
+
for (const filePath of skillMarkdownFiles) {
|
|
106
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
107
|
+
const split = splitFrontmatterBlock(raw);
|
|
108
|
+
const joined = split.hasFrontmatter
|
|
109
|
+
? `---\n${split.frontmatterText}\n---\n${split.body}`
|
|
110
|
+
: split.body;
|
|
111
|
+
expect(joined, path.relative(repoRoot, filePath)).toBe(raw);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
it("leaves files without frontmatter untouched", () => {
|
|
115
|
+
const raw = "Body starts immediately.\n\n---\nThis is not frontmatter.\n";
|
|
116
|
+
const split = splitFrontmatterBlock(raw);
|
|
117
|
+
expect(split).toEqual({
|
|
118
|
+
frontmatterText: "",
|
|
119
|
+
body: raw,
|
|
120
|
+
hasFrontmatter: false,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
it("treats an empty opening block as frontmatter", () => {
|
|
124
|
+
const raw = "---\n---\nBody\n";
|
|
125
|
+
expect(splitFrontmatterBlock(raw)).toEqual({
|
|
126
|
+
frontmatterText: "",
|
|
127
|
+
body: "Body\n",
|
|
128
|
+
hasFrontmatter: true,
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe("stringifyFrontmatter", () => {
|
|
133
|
+
it.each([
|
|
134
|
+
{
|
|
135
|
+
label: "nested metadata",
|
|
136
|
+
value: {
|
|
137
|
+
name: "demo-skill",
|
|
138
|
+
description: "Demo skill",
|
|
139
|
+
metadata: {
|
|
140
|
+
source: {
|
|
141
|
+
kind: "github-dir",
|
|
142
|
+
repo: "paperclipai/paperclip",
|
|
143
|
+
path: "skills/paperclip",
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
label: "arrays",
|
|
150
|
+
value: {
|
|
151
|
+
name: "tool-skill",
|
|
152
|
+
description: "Tool skill",
|
|
153
|
+
"allowed-tools": ["Read", "Write", "Bash"],
|
|
154
|
+
tags: ["skills", "frontmatter"],
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
label: "block scalars",
|
|
159
|
+
value: {
|
|
160
|
+
name: "block-skill",
|
|
161
|
+
description: "First line\nsecond line\n\nThird paragraph\n",
|
|
162
|
+
metadata: {
|
|
163
|
+
notes: "Keep\nall\nline breaks",
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
])("serializes parser-compatible YAML for $label", ({ value }) => {
|
|
168
|
+
const first = parseFrontmatterMarkdown(`---\n${stringifyFrontmatter(value)}\n---\n`).frontmatter;
|
|
169
|
+
const second = parseFrontmatterMarkdown(`---\n${stringifyFrontmatter(first)}\n---\n`).frontmatter;
|
|
170
|
+
expect(second).toEqual(first);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe("skillFrontmatterSchema", () => {
|
|
174
|
+
it("validates core skill frontmatter fields while allowing unknown keys", () => {
|
|
175
|
+
const parsed = skillFrontmatterSchema.parse({
|
|
176
|
+
name: "demo-skill",
|
|
177
|
+
description: "A demo skill.",
|
|
178
|
+
"allowed-tools": ["Read", "Write"],
|
|
179
|
+
metadata: { nested: { enabled: true } },
|
|
180
|
+
tags: ["demo"],
|
|
181
|
+
});
|
|
182
|
+
expect(parsed.tags).toEqual(["demo"]);
|
|
183
|
+
expect(getSkillFrontmatterUnknownKeys(parsed)).toEqual(["tags"]);
|
|
184
|
+
});
|
|
185
|
+
it("rejects non-slug skill names", () => {
|
|
186
|
+
expect(() => skillFrontmatterSchema.parse({
|
|
187
|
+
name: "Demo Skill",
|
|
188
|
+
description: "A demo skill.",
|
|
189
|
+
})).toThrow();
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
describe("detectFrontmatterRoundTripIssues", () => {
|
|
193
|
+
it("reports YAML constructs that fields mode cannot preserve", () => {
|
|
194
|
+
const issues = detectFrontmatterRoundTripIssues([
|
|
195
|
+
"# leading comment",
|
|
196
|
+
"\"quoted-key\": value",
|
|
197
|
+
"base: &base",
|
|
198
|
+
"copy: *base",
|
|
199
|
+
].join("\n"));
|
|
200
|
+
expect(issues.map((issue) => issue.kind)).toEqual([
|
|
201
|
+
"comment",
|
|
202
|
+
"quoted_key",
|
|
203
|
+
"anchor",
|
|
204
|
+
"alias",
|
|
205
|
+
]);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe("joinFrontmatterBlock", () => {
|
|
209
|
+
it("is the exact inverse of splitFrontmatterBlock (byte-identity round-trip)", () => {
|
|
210
|
+
const samples = [
|
|
211
|
+
"---\nname: reflection-coach\ndescription: A coach\n---\n# Body\n\nHello\n",
|
|
212
|
+
"---\nname: x\n---\nno trailing newline",
|
|
213
|
+
"---\nname: x\n---\n", // empty body
|
|
214
|
+
"---\ndescription: >\n folded\n text\n---\nBody with comment: value\n",
|
|
215
|
+
"# just markdown, no frontmatter\n",
|
|
216
|
+
"---\nunterminated frontmatter\nstill body",
|
|
217
|
+
"---\nmetadata:\n author: Paperclip\n # comment stays\n---\nbody\n",
|
|
218
|
+
];
|
|
219
|
+
for (const raw of samples) {
|
|
220
|
+
expect(joinFrontmatterBlock(splitFrontmatterBlock(raw))).toBe(raw);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
it("returns the body untouched when there is no frontmatter", () => {
|
|
224
|
+
expect(joinFrontmatterBlock({ frontmatterText: "", body: "just body", hasFrontmatter: false })).toBe("just body");
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe("parseFrontmatterFields", () => {
|
|
228
|
+
it("parses the raw block text into an object and is lenient on garbage", () => {
|
|
229
|
+
expect(parseFrontmatterFields("name: foo\ndescription: bar")).toEqual({
|
|
230
|
+
name: "foo",
|
|
231
|
+
description: "bar",
|
|
232
|
+
});
|
|
233
|
+
expect(parseFrontmatterFields("")).toEqual({});
|
|
234
|
+
expect(parseFrontmatterFields("# only a comment")).toEqual({});
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
describe("analyzeFrontmatterBlock", () => {
|
|
238
|
+
it("marks a simple inline block as round-trippable", () => {
|
|
239
|
+
const result = analyzeFrontmatterBlock("name: reflection-coach\ndescription: A coach");
|
|
240
|
+
expect(result.canRoundTrip).toBe(true);
|
|
241
|
+
expect(result.issues).toEqual([]);
|
|
242
|
+
expect(result.parsed).toEqual({ name: "reflection-coach", description: "A coach" });
|
|
243
|
+
});
|
|
244
|
+
it("marks a block with allowed-tools and metadata as round-trippable", () => {
|
|
245
|
+
const raw = [
|
|
246
|
+
"name: coach",
|
|
247
|
+
"description: A coach",
|
|
248
|
+
"allowed-tools:",
|
|
249
|
+
" - Read",
|
|
250
|
+
" - Grep",
|
|
251
|
+
"metadata:",
|
|
252
|
+
" author: Paperclip",
|
|
253
|
+
" version: 2",
|
|
254
|
+
].join("\n");
|
|
255
|
+
const result = analyzeFrontmatterBlock(raw);
|
|
256
|
+
expect(result.canRoundTrip).toBe(true);
|
|
257
|
+
expect(result.parsed["allowed-tools"]).toEqual(["Read", "Grep"]);
|
|
258
|
+
});
|
|
259
|
+
it("refuses fields mode when comments are present (would be dropped)", () => {
|
|
260
|
+
const result = analyzeFrontmatterBlock("name: coach # inline note\ndescription: x");
|
|
261
|
+
expect(result.canRoundTrip).toBe(false);
|
|
262
|
+
expect(result.issues.some((issue) => issue.kind === "comment")).toBe(true);
|
|
263
|
+
});
|
|
264
|
+
it("refuses fields mode for folded scalars the serializer cannot reproduce", () => {
|
|
265
|
+
const raw = ["description: >", " first line", " second line"].join("\n");
|
|
266
|
+
const result = analyzeFrontmatterBlock(raw);
|
|
267
|
+
// No detector "issue", but re-serialization is not byte-identical, so it is
|
|
268
|
+
// still not round-trippable — the strict serialize-back gate catches it.
|
|
269
|
+
expect(result.canRoundTrip).toBe(false);
|
|
270
|
+
});
|
|
271
|
+
it("treats an empty block as round-trippable", () => {
|
|
272
|
+
const result = analyzeFrontmatterBlock("");
|
|
273
|
+
expect(result.canRoundTrip).toBe(true);
|
|
274
|
+
expect(result.parsed).toEqual({});
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
function collectSkillMarkdownFiles() {
|
|
278
|
+
return skillMarkdownSearchRoots.flatMap((relativeRoot) => {
|
|
279
|
+
const absoluteRoot = path.join(repoRoot, relativeRoot);
|
|
280
|
+
return fs.existsSync(absoluteRoot) ? collectSkillMarkdownFilesUnder(absoluteRoot) : [];
|
|
281
|
+
}).sort();
|
|
282
|
+
}
|
|
283
|
+
function collectSkillMarkdownFilesUnder(root) {
|
|
284
|
+
const files = [];
|
|
285
|
+
for (const entry of fs.readdirSync(root, { withFileTypes: true })) {
|
|
286
|
+
const absolutePath = path.join(root, entry.name);
|
|
287
|
+
if (entry.isDirectory()) {
|
|
288
|
+
files.push(...collectSkillMarkdownFilesUnder(absolutePath));
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
if (entry.isFile() && entry.name === "SKILL.md") {
|
|
292
|
+
files.push(absolutePath);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return files;
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=frontmatter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.test.js","sourceRoot":"","sources":["../src/frontmatter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const GITHUB_CONNECTOR_PROFILE_IDS: readonly ["github.code"];
|
|
2
|
+
export type GitHubConnectorProfileId = (typeof GITHUB_CONNECTOR_PROFILE_IDS)[number];
|
|
3
|
+
export declare const GITHUB_CONNECTOR_PROFILES: Readonly<Record<GitHubConnectorProfileId, {
|
|
4
|
+
appSlug: "github";
|
|
5
|
+
serverUrl: string;
|
|
6
|
+
scopes: readonly string[];
|
|
7
|
+
writeTools: readonly string[];
|
|
8
|
+
}>>;
|
|
9
|
+
export declare function isGitHubConnectorProfileId(value: string): value is GitHubConnectorProfileId;
|
|
10
|
+
//# sourceMappingURL=github-connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-connectors.d.ts","sourceRoot":"","sources":["../src/github-connectors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,YAAI,aAAa,CAAU,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAErF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE;IAChF,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC,CASD,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,wBAAwB,CAE3F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const GITHUB_CONNECTOR_PROFILE_IDS = ["github.code"];
|
|
2
|
+
export const GITHUB_CONNECTOR_PROFILES = {
|
|
3
|
+
"github.code": {
|
|
4
|
+
appSlug: "github",
|
|
5
|
+
serverUrl: "https://api.githubcopilot.com/mcp/",
|
|
6
|
+
// GitHub App permissions are configured on the App registration. GitHub
|
|
7
|
+
// returns an empty OAuth scope string for user-to-server tokens.
|
|
8
|
+
scopes: [],
|
|
9
|
+
writeTools: [],
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
export function isGitHubConnectorProfileId(value) {
|
|
13
|
+
return Object.prototype.hasOwnProperty.call(GITHUB_CONNECTOR_PROFILES, value);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=github-connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-connectors.js","sourceRoot":"","sources":["../src/github-connectors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,aAAa,CAAU,CAAC;AAIrE,MAAM,CAAC,MAAM,yBAAyB,GAKhC;IACJ,aAAa,EAAE;QACb,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,oCAAoC;QAC/C,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore-runtime.test.d.ts","sourceRoot":"","sources":["../src/gitignore-runtime.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
// packages/shared/src/ is three levels below the repo root
|
|
5
|
+
const REPO_ROOT = fileURLToPath(new URL("../../../", import.meta.url));
|
|
6
|
+
describe("gitignore: .paperclip-runtime/", () => {
|
|
7
|
+
it("ignores files under .paperclip-runtime/ via the explicit gitignore rule", () => {
|
|
8
|
+
const output = execSync("git check-ignore -v .paperclip-runtime/codex/home/auth.json", { cwd: REPO_ROOT, encoding: "utf8" }).trim();
|
|
9
|
+
// Output format: <source>:<line>:<pattern>\t<path>
|
|
10
|
+
// Asserts that the rule comes from .gitignore and matches .paperclip-runtime/
|
|
11
|
+
expect(output).toMatch(/^\.gitignore:\d+:\.paperclip-runtime\//);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=gitignore-runtime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore-runtime.test.js","sourceRoot":"","sources":["../src/gitignore-runtime.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvE,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG,QAAQ,CACrB,6DAA6D,EAC7D,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QACT,mDAAmD;QACnD,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const GOOGLE_WORKSPACE_CONNECTOR_PROFILE_IDS: readonly ["gmail.read", "gmail.draft", "drive.read", "drive.write", "docs.read", "docs.write", "sheets.read", "sheets.write", "slides.read", "slides.write", "calendar.read", "calendar.write", "chat.read", "chat.write", "people.read", "workspace-search.read"];
|
|
2
|
+
export type GoogleWorkspaceConnectorProfileId = (typeof GOOGLE_WORKSPACE_CONNECTOR_PROFILE_IDS)[number];
|
|
3
|
+
export declare const GOOGLE_WORKSPACE_CONNECTOR_PROFILES: Readonly<Record<GoogleWorkspaceConnectorProfileId, {
|
|
4
|
+
appSlug: string;
|
|
5
|
+
serverUrl: string;
|
|
6
|
+
scopes: readonly string[];
|
|
7
|
+
writeTools: readonly string[];
|
|
8
|
+
}>>;
|
|
9
|
+
export declare function isGoogleWorkspaceConnectorProfileId(value: string): value is GoogleWorkspaceConnectorProfileId;
|
|
10
|
+
//# sourceMappingURL=google-workspace-connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-workspace-connectors.d.ts","sourceRoot":"","sources":["../src/google-workspace-connectors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sCAAsC,YACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EACnF,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAC7E,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,CAC3E,CAAC;AAEX,MAAM,MAAM,iCAAiC,GAAG,CAAC,OAAO,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxG,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,MAAM,CAAC,iCAAiC,EAAE;IACnG,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC,CAiBD,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iCAAiC,CAE7G"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const GOOGLE_WORKSPACE_CONNECTOR_PROFILE_IDS = [
|
|
2
|
+
"gmail.read", "gmail.draft", "drive.read", "drive.write", "docs.read", "docs.write",
|
|
3
|
+
"sheets.read", "sheets.write", "slides.read", "slides.write", "calendar.read",
|
|
4
|
+
"calendar.write", "chat.read", "chat.write", "people.read", "workspace-search.read",
|
|
5
|
+
];
|
|
6
|
+
const auth = (scope) => `https://www.googleapis.com/auth/${scope}`;
|
|
7
|
+
export const GOOGLE_WORKSPACE_CONNECTOR_PROFILES = {
|
|
8
|
+
"gmail.read": def("gmail", "https://gmailmcp.googleapis.com/mcp/v1", [auth("gmail.readonly")]),
|
|
9
|
+
"gmail.draft": def("gmail", "https://gmailmcp.googleapis.com/mcp/v1", [auth("gmail.readonly"), auth("gmail.compose")], ["create_draft"]),
|
|
10
|
+
"drive.read": def("google-drive", "https://drivemcp.googleapis.com/mcp/v1", [auth("drive.readonly")]),
|
|
11
|
+
"drive.write": def("google-drive", "https://drivemcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("drive.file")], ["copy_file", "create_file"]),
|
|
12
|
+
"docs.read": def("google-docs", "https://docsmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("documents.readonly")]),
|
|
13
|
+
"docs.write": def("google-docs", "https://docsmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("drive.file"), auth("documents")], ["update_doc"]),
|
|
14
|
+
"sheets.read": def("google-sheets", "https://sheetsmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("spreadsheets.readonly")]),
|
|
15
|
+
"sheets.write": def("google-sheets", "https://sheetsmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("drive.file"), auth("spreadsheets")], ["update_spreadsheet", "update_values", "update_formulas", "insert_dimension"]),
|
|
16
|
+
"slides.read": def("google-slides", "https://slidesmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("presentations.readonly")]),
|
|
17
|
+
"slides.write": def("google-slides", "https://slidesmcp.googleapis.com/mcp/v1", [auth("drive.readonly"), auth("drive.file"), auth("presentations")], ["update_presentation"]),
|
|
18
|
+
"calendar.read": def("google-calendar", "https://calendarmcp.googleapis.com/mcp/v1", [auth("calendar.calendarlist.readonly"), auth("calendar.events.freebusy"), auth("calendar.events.readonly")]),
|
|
19
|
+
"calendar.write": def("google-calendar", "https://calendarmcp.googleapis.com/mcp/v1", [auth("calendar.calendarlist.readonly"), auth("calendar.events.freebusy"), auth("calendar.events")], ["create_event", "update_event", "delete_event", "respond_to_event"]),
|
|
20
|
+
"chat.read": def("google-chat", "https://chatmcp.googleapis.com/mcp/v1", [auth("chat.spaces.readonly"), auth("chat.messages.readonly")]),
|
|
21
|
+
"chat.write": def("google-chat", "https://chatmcp.googleapis.com/mcp/v1", [auth("chat.spaces.readonly"), auth("chat.messages.readonly"), auth("chat.messages.create")], ["send_message"]),
|
|
22
|
+
"people.read": def("google-people", "https://people.googleapis.com/mcp/v1", [auth("directory.readonly"), auth("userinfo.profile"), auth("contacts.readonly")]),
|
|
23
|
+
"workspace-search.read": def("google-workspace-search", "https://workspacemcp.googleapis.com/mcp/v1", [auth("gmail.readonly"), auth("drive.readonly"), auth("calendar.readonly"), auth("chat.messages.readonly")]),
|
|
24
|
+
};
|
|
25
|
+
export function isGoogleWorkspaceConnectorProfileId(value) {
|
|
26
|
+
return Object.prototype.hasOwnProperty.call(GOOGLE_WORKSPACE_CONNECTOR_PROFILES, value);
|
|
27
|
+
}
|
|
28
|
+
function def(appSlug, serverUrl, scopes, writeTools = []) {
|
|
29
|
+
return { appSlug, serverUrl, scopes, writeTools };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=google-workspace-connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-workspace-connectors.js","sourceRoot":"","sources":["../src/google-workspace-connectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const DEFAULT_PAPERCLIP_INSTANCE_ID = "default";
|
|
2
|
+
export declare const PAPERCLIP_CONFIG_BASENAME = "config.json";
|
|
3
|
+
export declare const PAPERCLIP_ENV_FILENAME = ".env";
|
|
4
|
+
export declare function expandHomePrefix(value: string): string;
|
|
5
|
+
export declare function resolvePaperclipHomeDir(homeOverride?: string): string;
|
|
6
|
+
export declare function resolvePaperclipInstanceId(instanceIdOverride?: string): string;
|
|
7
|
+
export declare function resolvePaperclipInstanceRoot(input?: {
|
|
8
|
+
homeDir?: string;
|
|
9
|
+
instanceId?: string;
|
|
10
|
+
}): string;
|
|
11
|
+
export declare function resolvePaperclipInstanceConfigPath(input?: {
|
|
12
|
+
homeDir?: string;
|
|
13
|
+
instanceId?: string;
|
|
14
|
+
}): string;
|
|
15
|
+
export declare function resolvePaperclipConfigPathForInstance(input?: {
|
|
16
|
+
homeDir?: string;
|
|
17
|
+
instanceId?: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function resolvePaperclipEnvPathForConfig(configPath: string): string;
|
|
20
|
+
export declare function resolveDefaultEmbeddedPostgresDir(input?: {
|
|
21
|
+
homeDir?: string;
|
|
22
|
+
instanceId?: string;
|
|
23
|
+
}): string;
|
|
24
|
+
export declare function resolveDefaultLogsDir(input?: {
|
|
25
|
+
homeDir?: string;
|
|
26
|
+
instanceId?: string;
|
|
27
|
+
}): string;
|
|
28
|
+
export declare function resolveDefaultSecretsKeyFilePath(input?: {
|
|
29
|
+
homeDir?: string;
|
|
30
|
+
instanceId?: string;
|
|
31
|
+
}): string;
|
|
32
|
+
export declare function resolveDefaultStorageDir(input?: {
|
|
33
|
+
homeDir?: string;
|
|
34
|
+
instanceId?: string;
|
|
35
|
+
}): string;
|
|
36
|
+
export declare function resolveDefaultBackupDir(input?: {
|
|
37
|
+
homeDir?: string;
|
|
38
|
+
instanceId?: string;
|
|
39
|
+
}): string;
|
|
40
|
+
export declare function resolveHomeAwarePath(value: string): string;
|
|
41
|
+
//# sourceMappingURL=home-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-paths.d.ts","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,6BAA6B,YAAY,CAAC;AACvD,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AACvD,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAI7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,0BAA0B,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,GAAE;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,kCAAkC,CAAC,KAAK,GAAE;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,qCAAqC,CAAC,KAAK,GAAE;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,iCAAiC,CAAC,KAAK,GAAE;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,qBAAqB,CAAC,KAAK,GAAE;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,gCAAgC,CAAC,KAAK,GAAE;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,wBAAwB,CAAC,KAAK,GAAE;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,uBAAuB,CAAC,KAAK,GAAE;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAEd;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export const DEFAULT_PAPERCLIP_INSTANCE_ID = "default";
|
|
4
|
+
export const PAPERCLIP_CONFIG_BASENAME = "config.json";
|
|
5
|
+
export const PAPERCLIP_ENV_FILENAME = ".env";
|
|
6
|
+
const PATH_SEGMENT_RE = /^[a-zA-Z0-9_-]+$/;
|
|
7
|
+
export function expandHomePrefix(value) {
|
|
8
|
+
if (value === "~")
|
|
9
|
+
return os.homedir();
|
|
10
|
+
if (value.startsWith("~/"))
|
|
11
|
+
return path.resolve(os.homedir(), value.slice(2));
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
export function resolvePaperclipHomeDir(homeOverride) {
|
|
15
|
+
const raw = homeOverride?.trim() || process.env.PAPERCLIP_HOME?.trim();
|
|
16
|
+
if (raw)
|
|
17
|
+
return path.resolve(expandHomePrefix(raw));
|
|
18
|
+
return path.resolve(os.homedir(), ".paperclip-pro");
|
|
19
|
+
}
|
|
20
|
+
export function resolvePaperclipInstanceId(instanceIdOverride) {
|
|
21
|
+
const raw = instanceIdOverride?.trim() || process.env.PAPERCLIP_INSTANCE_ID?.trim() || DEFAULT_PAPERCLIP_INSTANCE_ID;
|
|
22
|
+
if (!PATH_SEGMENT_RE.test(raw)) {
|
|
23
|
+
throw new Error(`Invalid PAPERCLIP_INSTANCE_ID '${raw}'.`);
|
|
24
|
+
}
|
|
25
|
+
return raw;
|
|
26
|
+
}
|
|
27
|
+
export function resolvePaperclipInstanceRoot(input = {}) {
|
|
28
|
+
return path.resolve(resolvePaperclipHomeDir(input.homeDir), "instances", resolvePaperclipInstanceId(input.instanceId));
|
|
29
|
+
}
|
|
30
|
+
export function resolvePaperclipInstanceConfigPath(input = {}) {
|
|
31
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), PAPERCLIP_CONFIG_BASENAME);
|
|
32
|
+
}
|
|
33
|
+
export function resolvePaperclipConfigPathForInstance(input = {}) {
|
|
34
|
+
return resolvePaperclipInstanceConfigPath(input);
|
|
35
|
+
}
|
|
36
|
+
export function resolvePaperclipEnvPathForConfig(configPath) {
|
|
37
|
+
return path.resolve(path.dirname(configPath), PAPERCLIP_ENV_FILENAME);
|
|
38
|
+
}
|
|
39
|
+
export function resolveDefaultEmbeddedPostgresDir(input = {}) {
|
|
40
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), "db");
|
|
41
|
+
}
|
|
42
|
+
export function resolveDefaultLogsDir(input = {}) {
|
|
43
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), "logs");
|
|
44
|
+
}
|
|
45
|
+
export function resolveDefaultSecretsKeyFilePath(input = {}) {
|
|
46
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), "secrets", "master.key");
|
|
47
|
+
}
|
|
48
|
+
export function resolveDefaultStorageDir(input = {}) {
|
|
49
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), "data", "storage");
|
|
50
|
+
}
|
|
51
|
+
export function resolveDefaultBackupDir(input = {}) {
|
|
52
|
+
return path.resolve(resolvePaperclipInstanceRoot(input), "data", "backups");
|
|
53
|
+
}
|
|
54
|
+
export function resolveHomeAwarePath(value) {
|
|
55
|
+
return path.resolve(expandHomePrefix(value));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=home-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-paths.js","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-paths.test.d.ts","sourceRoot":"","sources":["../src/home-paths.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { resolveDefaultBackupDir, resolveDefaultEmbeddedPostgresDir, resolveDefaultLogsDir, resolveDefaultSecretsKeyFilePath, resolveDefaultStorageDir, resolvePaperclipConfigPathForInstance, resolvePaperclipInstanceRoot, } from "./home-paths.js";
|
|
6
|
+
const ORIGINAL_ENV = { ...process.env };
|
|
7
|
+
afterEach(() => {
|
|
8
|
+
process.env = { ...ORIGINAL_ENV };
|
|
9
|
+
});
|
|
10
|
+
describe("home path resolution", () => {
|
|
11
|
+
it("resolves config and runtime data directly under the instance root", () => {
|
|
12
|
+
const home = fs.mkdtempSync(path.join(os.tmpdir(), "paperclip-home-paths-"));
|
|
13
|
+
process.env.PAPERCLIP_HOME = home;
|
|
14
|
+
delete process.env.PAPERCLIP_INSTANCE_ID;
|
|
15
|
+
const instanceRoot = path.join(home, "instances", "default");
|
|
16
|
+
expect(resolvePaperclipInstanceRoot()).toBe(instanceRoot);
|
|
17
|
+
expect(resolvePaperclipConfigPathForInstance()).toBe(path.join(instanceRoot, "config.json"));
|
|
18
|
+
expect(resolveDefaultEmbeddedPostgresDir()).toBe(path.join(instanceRoot, "db"));
|
|
19
|
+
expect(resolveDefaultBackupDir()).toBe(path.join(instanceRoot, "data", "backups"));
|
|
20
|
+
expect(resolveDefaultLogsDir()).toBe(path.join(instanceRoot, "logs"));
|
|
21
|
+
expect(resolveDefaultStorageDir()).toBe(path.join(instanceRoot, "data", "storage"));
|
|
22
|
+
expect(resolveDefaultSecretsKeyFilePath()).toBe(path.join(instanceRoot, "secrets", "master.key"));
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=home-paths.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-paths.test.js","sourceRoot":"","sources":["../src/home-paths.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,gCAAgC,EAChC,wBAAwB,EACxB,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAExC,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,CAAC,qCAAqC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,iCAAiC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,gCAAgC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Humanize engineering connection / tool identifiers for the prosumer Apps
|
|
3
|
+
* surfaces (PAP-10897).
|
|
4
|
+
*
|
|
5
|
+
* `connection.name` (and tool ids) can carry raw IPs, `Plugin:` prefixes with
|
|
6
|
+
* dotted package paths, and `vendor:tool` ids. None of that vocabulary may leak
|
|
7
|
+
* into `/apps`, `/apps/attention`, or the App-detail header — only `/apps/advanced`
|
|
8
|
+
* is allowed to show the raw identifiers. This module turns those identifiers
|
|
9
|
+
* into recognizable, plain-language labels.
|
|
10
|
+
*/
|
|
11
|
+
export interface HumanizableConnection {
|
|
12
|
+
name: string;
|
|
13
|
+
}
|
|
14
|
+
type ConnectionLike = HumanizableConnection | string | null | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Turn an app/connection identifier (or a tool id) into a prosumer-friendly
|
|
17
|
+
* label. Pass `options.title` (e.g. a catalog entry's `title`) to prefer a
|
|
18
|
+
* known human title over any derivation.
|
|
19
|
+
*
|
|
20
|
+
* `127.0.0.1` → `Custom app`
|
|
21
|
+
* `Plugin: paperclipai.plugin-briefs` → `Briefs`
|
|
22
|
+
* `mcp-remote-fixture:update_note` → `Update Note`
|
|
23
|
+
* `Zapier` / `Notion` → unchanged
|
|
24
|
+
*/
|
|
25
|
+
export declare function humanizeConnectionDisplayName(input: ConnectionLike, options?: {
|
|
26
|
+
title?: string | null;
|
|
27
|
+
}): string;
|
|
28
|
+
/**
|
|
29
|
+
* Optional secondary line for the App-detail page only: when the raw name is a
|
|
30
|
+
* network address we hide it from the header but may still show `hosted at …`
|
|
31
|
+
* underneath as a small trust/clarity hint. Returns null when there's nothing
|
|
32
|
+
* worth surfacing.
|
|
33
|
+
*/
|
|
34
|
+
export declare function connectionDisplaySecondaryHint(input: ConnectionLike): string | null;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=humanize-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanize-connection.d.ts","sourceRoot":"","sources":["../src/humanize-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,cAAc,GAAG,qBAAqB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAqCxE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACtC,MAAM,CAyBR;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAInF"}
|