drivethrough-cli 0.1.37 → 0.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/main.mjs +9 -9
  2. package/package.json +1 -1
package/dist/main.mjs CHANGED
@@ -41197,7 +41197,7 @@ function registerTools(server, ctx) {
41197
41197
  {
41198
41198
  outputSchema: OUTPUT_SCHEMAS.get_integrations,
41199
41199
  title: "Get integrations",
41200
- description: `Show a site's connections to other services' APIs (Pro plan) and how they last went: which secrets are set (never their values), the declared routes, actions, schedules (next run, last result, failures) and webhooks (URL, last event), and the latest 20 outcomes, including real page use. Read-only. Pass reference: true for the drivethrough.json format these are declared in, with two complete examples \u2014 read it before adding one to a site.`,
41200
+ description: `Show a site's connections to other services' APIs (Plus plan) and how they last went: which secrets are set (never their values), the declared routes, actions, schedules (next run, last result, failures) and webhooks (URL, last event), and the latest 20 outcomes, including real page use. Read-only. Pass reference: true for the drivethrough.json format these are declared in, with two complete examples \u2014 read it before adding one to a site.`,
41201
41201
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
41202
41202
  inputSchema: {
41203
41203
  site: external_exports.string().describe("Site name or id"),
@@ -41218,7 +41218,7 @@ function registerTools(server, ctx) {
41218
41218
  {
41219
41219
  outputSchema: OUTPUT_SCHEMAS.create_integration_setup_link,
41220
41220
  title: "Create integration setup link",
41221
- description: `Get a one-time link where the user sets the API keys a site's integrations need (Pro plan) \u2014 two steps, like create_upload. Call it with the site: it returns a link (10 minutes, one use, no sign-in). Send it to the user as a clickable link and have them paste the keys there. NEVER ask for a key in the chat, and never put one in a file \u2014 this tool never receives or returns a key's value. When they say they're done, call again with the returned session: it reports which names are set. A deploy that needs an unset secret is refused with a fresh link already in the error \u2014 relay that one instead. Pass names to rotate a key that is already set. A webhook's secret comes FROM the other service: tell the user to add a webhook there pointing at its URL (get_integrations and the deploy error give it) and paste the signing secret it shows into the link page; a url_token secret is generated on the link page, which then shows the full URL to paste.`,
41221
+ description: `Get a one-time link where the user sets the API keys a site's integrations need (Plus plan) \u2014 two steps, like create_upload. Call it with the site: it returns a link (10 minutes, one use, no sign-in). Send it to the user as a clickable link and have them paste the keys there. NEVER ask for a key in the chat, and never put one in a file \u2014 this tool never receives or returns a key's value. When they say they're done, call again with the returned session: it reports which names are set. A deploy that needs an unset secret is refused with a fresh link already in the error \u2014 relay that one instead. Pass names to rotate a key that is already set. A webhook's secret comes FROM the other service: tell the user to add a webhook there pointing at its URL (get_integrations and the deploy error give it) and paste the signing secret it shows into the link page; a url_token secret is generated on the link page, which then shows the full URL to paste.`,
41222
41222
  // Destructive: a link can replace a key that is already set, and the old
41223
41223
  // value is gone once the user saves (OpenAI's guidelines reserve false
41224
41224
  // for purely additive writes).
@@ -41273,7 +41273,7 @@ function registerTools(server, ctx) {
41273
41273
  {
41274
41274
  outputSchema: OUTPUT_SCHEMAS.preview_action,
41275
41275
  title: "Preview action",
41276
- description: `Show the exact request one of a site's declared actions would send for a sample row (Pro plan) \u2014 method, URL, headers and JSON body, with every secret value redacted \u2014 or why it can't be built (a secret not set, a bad URL). Nothing is sent, stored or charged. Check that the {{field}} values landed where they should. ${liveCheck}`,
41276
+ description: `Show the exact request one of a site's declared actions would send for a sample row (Plus plan) \u2014 method, URL, headers and JSON body, with every secret value redacted \u2014 or why it can't be built (a secret not set, a bad URL). Nothing is sent, stored or charged. Check that the {{field}} values landed where they should. ${liveCheck}`,
41277
41277
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
41278
41278
  inputSchema: {
41279
41279
  site: external_exports.string().describe("Site name or id"),
@@ -41294,7 +41294,7 @@ function registerTools(server, ctx) {
41294
41294
  {
41295
41295
  outputSchema: OUTPUT_SCHEMAS.preview_schedule,
41296
41296
  title: "Preview schedule",
41297
- description: `Show what a site's declared schedule would send on its next run (Pro plan), with every secret value redacted: for "rotate", the row that comes next and the request its action would send; for "pull", the GET it would make and the type and map its response would fill. Nothing is sent, stored or charged, and the rotation doesn't move. get_integrations shows when it next runs and how its last run went.`,
41297
+ description: `Show what a site's declared schedule would send on its next run (Plus plan), with every secret value redacted: for "rotate", the row that comes next and the request its action would send; for "pull", the GET it would make and the type and map its response would fill. Nothing is sent, stored or charged, and the rotation doesn't move. get_integrations shows when it next runs and how its last run went.`,
41298
41298
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
41299
41299
  inputSchema: {
41300
41300
  site: external_exports.string().describe("Site name or id"),
@@ -41314,7 +41314,7 @@ function registerTools(server, ctx) {
41314
41314
  {
41315
41315
  outputSchema: OUTPUT_SCHEMAS.preview_webhook,
41316
41316
  title: "Preview webhook",
41317
- description: `Dry-run one of a site's declared webhooks (Pro plan): builds an event from sample field values, takes it through the same mapping and validation a real delivery gets, and returns the row it would store and the URL the other service must POST to. Nothing is stored, sent or charged. Real delivery is proven by the other service's own "send test event", then get_integrations (last event).`,
41317
+ description: `Dry-run one of a site's declared webhooks (Plus plan): builds an event from sample field values, takes it through the same mapping and validation a real delivery gets, and returns the row it would store and the URL the other service must POST to. Nothing is stored, sent or charged. Real delivery is proven by the other service's own "send test event", then get_integrations (last event).`,
41318
41318
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
41319
41319
  inputSchema: {
41320
41320
  site: external_exports.string().describe("Site name or id"),
@@ -41336,7 +41336,7 @@ function registerTools(server, ctx) {
41336
41336
  {
41337
41337
  outputSchema: OUTPUT_SCHEMAS.test_route,
41338
41338
  title: "Test route",
41339
- description: `Send one GET through a site's declared API route now, exactly as a page would (Pro plan), and return the other service's HTTP status and the first 1 KB of its response with every secret redacted. Only GET is ever sent, only to a path the route allows, and it counts as one call against the month's integration allowance. Read the preview before telling the user it works \u2014 a 200 with an error body is still a failure.`,
41339
+ description: `Send one GET through a site's declared API route now, exactly as a page would (Plus plan), and return the other service's HTTP status and the first 1 KB of its response with every secret redacted. Only GET is ever sent, only to a path the route allows, and it counts as one call against the month's integration allowance. Read the preview before telling the user it works \u2014 a 200 with an error body is still a failure.`,
41340
41340
  // Not read-only: it reaches a third party (some GETs have effects there)
41341
41341
  // and spends one of the month's metered calls. Open-world for the same reason.
41342
41342
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
@@ -41358,7 +41358,7 @@ function registerTools(server, ctx) {
41358
41358
  {
41359
41359
  outputSchema: OUTPUT_SCHEMAS.run_action,
41360
41360
  title: "Run action",
41361
- description: `Run one of a site's declared actions now, for real (Pro plan): it sends the action's POST to the other service with fields standing in for the row that would normally trigger it, and returns that service's HTTP status and a redacted preview of its response. The other service acts on it as it would on any request \u2014 a display shows the text, a message is sent \u2014 so confirm with the user before running anything that can't be taken back. preview_action shows the same request without sending it.`,
41361
+ description: `Run one of a site's declared actions now, for real (Plus plan): it sends the action's POST to the other service with fields standing in for the row that would normally trigger it, and returns that service's HTTP status and a redacted preview of its response. The other service acts on it as it would on any request \u2014 a display shows the text, a message is sent \u2014 so confirm with the user before running anything that can't be taken back. preview_action shows the same request without sending it.`,
41362
41362
  // Destructive + open-world: the other service may act irreversibly on the request.
41363
41363
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
41364
41364
  inputSchema: {
@@ -41380,7 +41380,7 @@ function registerTools(server, ctx) {
41380
41380
  {
41381
41381
  outputSchema: OUTPUT_SCHEMAS.run_schedule,
41382
41382
  title: "Run schedule",
41383
- description: `Run one of a site's declared schedules once, now, for real (Pro plan), and return the outcome. A "pull" schedule calls its route and saves the response as a new row; a "rotate" schedule sends the next row through its action (the other service acts on it) and advances the rotation. A successful run also re-enables a schedule that was paused after repeated failures. The regular timetable is unchanged. preview_schedule shows the same run without sending anything.`,
41383
+ description: `Run one of a site's declared schedules once, now, for real (Plus plan), and return the outcome. A "pull" schedule calls its route and saves the response as a new row; a "rotate" schedule sends the next row through its action (the other service acts on it) and advances the rotation. A successful run also re-enables a schedule that was paused after repeated failures. The regular timetable is unchanged. preview_schedule shows the same run without sending anything.`,
41384
41384
  // Destructive + open-world: a rotate run fires an action the other service acts on.
41385
41385
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
41386
41386
  inputSchema: {
@@ -41478,7 +41478,7 @@ RECIPE \u2014 a searchable, filterable list (catalogue, directory, archive)
41478
41478
  whose query the config doesn't declare (it will render empty for visitors),
41479
41479
  and a declaration no page uses (pure cost on every insert).
41480
41480
 
41481
- Connecting a site to another service's API (Pro plan): this is site configuration, not something you run. The site's drivethrough.json declares it and deploy_site deploys it, like any other file; get_integrations {reference: true} returns the format with two complete examples. The integration tools: get_integrations (what is declared and how it went), create_integration_setup_link (a one-time link where the user sets API keys \u2014 never ask for a key in the chat), and preview_action, preview_schedule, preview_webhook (show what would be sent or stored; nothing is sent). Preview each piece, then have the user use the page once and confirm the outcome in get_integrations before telling them it works.
41481
+ Connecting a site to another service's API (Plus plan): this is site configuration, not something you run. The site's drivethrough.json declares it and deploy_site deploys it, like any other file; get_integrations {reference: true} returns the format with two complete examples. The integration tools: get_integrations (what is declared and how it went), create_integration_setup_link (a one-time link where the user sets API keys \u2014 never ask for a key in the chat), and preview_action, preview_schedule, preview_webhook (show what would be sent or stored; nothing is sent). Preview each piece, then have the user use the page once and confirm the outcome in get_integrations before telling them it works.
41482
41482
 
41483
41483
  Custom domains (paid plans): manage_domain attaches a domain the user already owns. After attaching, check_domain {action: "connect"} looks up one-click setup at their registrar (relay the URL when offered, else the exact DNS records from attach), and check_domain {action: "status"} polls until "active" \u2014 DNS seen, then TLS issued.`;
41484
41484
  INTEGRATION_EXAMPLE_A = JSON.stringify({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drivethrough-cli",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "Agent-first hosting CLI. Say what you want. Stay in the car.",
5
5
  "type": "module",
6
6
  "license": "MIT",