@zackbart/connecta 0.34.1 → 0.35.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.
Files changed (429) hide show
  1. package/CHANGELOG.md +363 -0
  2. package/README.md +62 -106
  3. package/SECURITY.md +3 -2
  4. package/bin/connecta.mjs +41 -16
  5. package/bin/version.mjs +1 -1
  6. package/dist/access-tokens.d.ts +2 -1
  7. package/dist/access-tokens.js +66 -30
  8. package/dist/activity.d.ts +1 -1
  9. package/dist/activity.js +2 -0
  10. package/dist/agent-config.d.ts +23 -0
  11. package/dist/agent-config.js +59 -0
  12. package/dist/agent-description.js +16 -0
  13. package/dist/agent-identity.js +4 -4
  14. package/dist/agent-observation.js +39 -0
  15. package/dist/auth/clerk-sdk/client.d.ts +2 -0
  16. package/dist/auth/clerk-sdk/generated.js +554 -563
  17. package/dist/auth/clerk-transport.js +70 -3
  18. package/dist/auth/clerk.d.ts +13 -0
  19. package/dist/auth/clerk.js +653 -246
  20. package/dist/auth/cloudflare-access.js +46 -42
  21. package/dist/auth/downstream-client-metadata.js +2 -2
  22. package/dist/auth/downstream-oauth.js +2051 -1160
  23. package/dist/auth/downstream-revocation.js +88 -88
  24. package/dist/auth/native-call.js +20 -0
  25. package/dist/auth/native.js +184 -0
  26. package/dist/auth/oauth-start-reset.js +11 -5
  27. package/dist/auth/oauth-token-response.js +121 -102
  28. package/dist/auth/oauth-v2-migration.js +97 -78
  29. package/dist/auth/renewable-grant.js +10 -0
  30. package/dist/auth/static-oauth.js +663 -271
  31. package/dist/auth/vercel-agent.js +266 -0
  32. package/dist/auth-admission.js +204 -0
  33. package/dist/auth-elicitation.js +350 -241
  34. package/dist/authorization-handoff.js +164 -90
  35. package/dist/call-admission-context.js +3 -10
  36. package/dist/call-admission.js +2 -0
  37. package/dist/call-classification.js +9 -0
  38. package/dist/call-recovery.js +32 -13
  39. package/dist/canonical-json.js +8 -0
  40. package/dist/catalog-cache.js +369 -213
  41. package/dist/catalog-service.js +659 -530
  42. package/dist/catalog.js +5 -1
  43. package/dist/concurrency.js +0 -25
  44. package/dist/config-defaults.d.ts +1 -0
  45. package/dist/config-defaults.js +1 -0
  46. package/dist/config-schema.d.ts +3 -1
  47. package/dist/config-schema.js +13 -3
  48. package/dist/config.d.ts +40 -6
  49. package/dist/config.js +40 -26
  50. package/dist/connector-caller.d.ts +4 -0
  51. package/dist/connector-caller.js +17 -4
  52. package/dist/connectors/api-connector.d.ts +12 -7
  53. package/dist/connectors/api-connector.js +142 -56
  54. package/dist/connectors/guarded-fetch.d.ts +51 -17
  55. package/dist/connectors/guarded-fetch.js +215 -121
  56. package/dist/connectors/negotiation-cache.js +20 -10
  57. package/dist/connectors/remote-mcp.d.ts +10 -30
  58. package/dist/connectors/remote-mcp.js +955 -563
  59. package/dist/d1.js +10 -243
  60. package/dist/derived-context.js +5 -0
  61. package/dist/describe-config.d.ts +3 -1
  62. package/dist/describe-config.js +2 -0
  63. package/dist/downstream-input.js +347 -260
  64. package/dist/errors.d.ts +87 -6
  65. package/dist/errors.js +114 -4
  66. package/dist/execute.js +87 -50
  67. package/dist/executor-admission.js +3 -0
  68. package/dist/executors/quickjs.js +163 -112
  69. package/dist/guarded-transport.js +50 -0
  70. package/dist/guest-runtime.js +1 -1
  71. package/dist/http/client.js +439 -0
  72. package/dist/http/errors.js +558 -0
  73. package/dist/http/fields.js +49 -0
  74. package/dist/http/hatch-paging.js +318 -0
  75. package/dist/http/hatch.js +1279 -0
  76. package/dist/http/json-schema.js +267 -0
  77. package/dist/http/node-transport.js +241 -0
  78. package/dist/http/oauth.js +162 -0
  79. package/dist/http/paging.js +228 -0
  80. package/dist/http/provider.js +221 -0
  81. package/dist/http/safety.js +82 -0
  82. package/dist/http/services.js +79 -0
  83. package/dist/http/tools.js +383 -0
  84. package/dist/http/vendor-index.js +138 -0
  85. package/dist/http/vendor.js +448 -0
  86. package/dist/http/write-request.js +66 -0
  87. package/dist/http-policy.d.ts +11 -0
  88. package/dist/http-policy.js +45 -0
  89. package/dist/inbound-credential.js +1 -1
  90. package/dist/index.d.ts +2 -2
  91. package/dist/index.js +4 -0
  92. package/dist/invocation-auth.js +30 -19
  93. package/dist/invocation.js +218 -85
  94. package/dist/mcp-result.js +0 -4
  95. package/dist/membership.d.ts +4 -0
  96. package/dist/meta-output.js +1 -1
  97. package/dist/meta-tools.js +531 -406
  98. package/dist/native-recovery.js +52 -0
  99. package/dist/native-tools.js +382 -0
  100. package/dist/node.d.ts +4 -3
  101. package/dist/node.js +45 -8
  102. package/dist/oauth-handoff.js +177 -104
  103. package/dist/oauth-partition.js +6 -20
  104. package/dist/oauth-sealing.js +6 -7
  105. package/dist/operation-vocabulary.js +101 -0
  106. package/dist/operator-record.d.ts +2 -2
  107. package/dist/operator-record.js +17 -4
  108. package/dist/operator-ui/agents.d.ts +5 -4
  109. package/dist/operator-ui/agents.js +17 -7
  110. package/dist/operator-ui/config-summary.js +5 -4
  111. package/dist/operator-ui/connection-map.js +7 -5
  112. package/dist/operator-ui/contract.d.ts +7 -3
  113. package/dist/operator-ui/endpoints.js +4 -13
  114. package/dist/operator-ui/fix-prompts.d.ts +1 -1
  115. package/dist/operator-ui/fix-prompts.js +0 -8
  116. package/dist/operator-ui/generated.js +3 -3
  117. package/dist/operator-ui/model.d.ts +2 -3
  118. package/dist/operator-ui/overview.js +5 -2
  119. package/dist/operator-ui/setup-commands.js +0 -4
  120. package/dist/operator-ui/view.d.ts +2 -25
  121. package/dist/operator-ui/view.js +2 -76
  122. package/dist/program-writes.js +47 -26
  123. package/dist/provider-call-facts.d.ts +115 -0
  124. package/dist/provider-call-facts.js +182 -0
  125. package/dist/provider-call.d.ts +112 -0
  126. package/dist/provider-call.js +271 -0
  127. package/dist/provider.d.ts +65 -31
  128. package/dist/provider.js +116 -39
  129. package/dist/providers/_shared/google/hatch.js +91 -0
  130. package/dist/providers/_shared/google/kit.js +537 -0
  131. package/dist/providers/_shared/google/result-size.js +15 -2
  132. package/dist/providers/_shared/google/service-account.d.ts +2 -1
  133. package/dist/providers/_shared/google/service-account.js +8 -4
  134. package/dist/providers/_shared/google/workspace.d.ts +6 -210
  135. package/dist/providers/_shared/google/workspace.js +6 -425
  136. package/dist/providers/_shared/rest/compact-index.js +86 -0
  137. package/dist/providers/_shared/rest/dispatch.js +3 -23
  138. package/dist/providers/_shared/rest/kit.js +546 -0
  139. package/dist/providers/_shared/rest/operation-index.js +230 -14
  140. package/dist/providers/_shared/rest/response-media.js +11 -0
  141. package/dist/providers/_shared/rest/tools.js +101 -78
  142. package/dist/providers/_shared/rest/value-safety.js +353 -195
  143. package/dist/providers/_shared/sensitive-fields.js +27 -0
  144. package/dist/providers/breeze/api.js +584 -0
  145. package/dist/providers/breeze/index.d.ts +1 -3
  146. package/dist/providers/breeze/index.js +67 -1420
  147. package/dist/providers/breeze/openapi.generated.js +60 -0
  148. package/dist/providers/breeze/skill.generated.js +2 -6
  149. package/dist/providers/breeze/tools.js +696 -0
  150. package/dist/providers/ccb/api.js +496 -0
  151. package/dist/providers/ccb/index.d.ts +15 -37
  152. package/dist/providers/ccb/index.js +77 -1702
  153. package/dist/providers/ccb/lib/constants.d.ts +34 -0
  154. package/dist/providers/ccb/lib/constants.js +74 -0
  155. package/dist/providers/ccb/lib/guide.js +9 -0
  156. package/dist/providers/ccb/lib/verdicts.js +387 -0
  157. package/dist/providers/ccb/openapi.generated.js +397 -0
  158. package/dist/providers/ccb/safety.js +295 -0
  159. package/dist/providers/ccb/skill.generated.js +2 -6
  160. package/dist/providers/ccb/tools.js +853 -0
  161. package/dist/providers/cloudflare/api.js +1066 -0
  162. package/dist/providers/cloudflare/index.d.ts +5 -22
  163. package/dist/providers/cloudflare/index.js +79 -197
  164. package/dist/providers/cloudflare/lib/config.d.ts +16 -0
  165. package/dist/providers/cloudflare/lib/config.js +2 -0
  166. package/dist/providers/cloudflare/lib/discovery.js +29 -0
  167. package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
  168. package/dist/providers/cloudflare/lib/hatch.js +103 -0
  169. package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
  170. package/dist/providers/cloudflare/lib/response-media.js +75 -0
  171. package/dist/providers/cloudflare/openapi.generated.js +4 -3
  172. package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
  173. package/dist/providers/cloudflare/skill.generated.js +2 -10
  174. package/dist/providers/cloudflare/tools.js +360 -0
  175. package/dist/providers/docs/api.js +51 -0
  176. package/dist/providers/docs/index.d.ts +1 -12
  177. package/dist/providers/docs/index.js +53 -1165
  178. package/dist/providers/docs/lib/constants.d.ts +18 -0
  179. package/dist/providers/docs/lib/constants.js +18 -0
  180. package/dist/providers/docs/lib/discovery.js +26 -0
  181. package/dist/providers/docs/lib/requests.js +48 -0
  182. package/dist/providers/docs/lib/schemas.js +168 -0
  183. package/dist/providers/docs/openapi.generated.js +16 -0
  184. package/dist/providers/docs/safety.js +54 -0
  185. package/dist/providers/docs/skill.generated.js +2 -6
  186. package/dist/providers/docs/tools.js +802 -0
  187. package/dist/providers/drive/api.js +177 -0
  188. package/dist/providers/drive/index.d.ts +1 -12
  189. package/dist/providers/drive/index.js +38 -1448
  190. package/dist/providers/drive/lib/constants.d.ts +6 -0
  191. package/dist/providers/drive/lib/constants.js +6 -0
  192. package/dist/providers/drive/lib/contracts.js +532 -0
  193. package/dist/providers/drive/lib/hatch.js +197 -0
  194. package/dist/providers/drive/openapi.generated.js +77 -0
  195. package/dist/providers/drive/safety.js +90 -0
  196. package/dist/providers/drive/skill.generated.js +2 -6
  197. package/dist/providers/drive/tools.js +1290 -0
  198. package/dist/providers/forms/api.js +71 -0
  199. package/dist/providers/forms/index.d.ts +1 -12
  200. package/dist/providers/forms/index.js +49 -1145
  201. package/dist/providers/forms/lib/constants.d.ts +14 -0
  202. package/dist/providers/forms/lib/constants.js +19 -0
  203. package/dist/providers/forms/lib/hatch.js +72 -0
  204. package/dist/providers/forms/openapi.generated.js +23 -0
  205. package/dist/providers/forms/safety.js +34 -0
  206. package/dist/providers/forms/skill.generated.js +2 -8
  207. package/dist/providers/forms/tools.js +1024 -0
  208. package/dist/providers/github/api.js +150 -0
  209. package/dist/providers/github/index.d.ts +4 -5
  210. package/dist/providers/github/index.js +30 -87
  211. package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
  212. package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
  213. package/dist/providers/github/lib/discovery.js +132 -0
  214. package/dist/providers/github/lib/operations.js +58 -0
  215. package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
  216. package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
  217. package/dist/providers/github/openapi.generated.js +1216 -0
  218. package/dist/providers/github/safety.js +216 -0
  219. package/dist/providers/github/skill.generated.js +2 -5
  220. package/dist/providers/github/tools.js +506 -0
  221. package/dist/providers/gmail/api.js +114 -0
  222. package/dist/providers/gmail/index.d.ts +1 -12
  223. package/dist/providers/gmail/index.js +73 -1621
  224. package/dist/providers/gmail/lib/constants.d.ts +13 -0
  225. package/dist/providers/gmail/lib/constants.js +16 -0
  226. package/dist/providers/gmail/lib/index.js +173 -0
  227. package/dist/providers/gmail/lib/schemas.js +176 -0
  228. package/dist/providers/gmail/lib/threading.js +120 -0
  229. package/dist/providers/gmail/openapi.generated.js +92 -0
  230. package/dist/providers/gmail/safety.js +21 -0
  231. package/dist/providers/gmail/skill.generated.js +2 -6
  232. package/dist/providers/gmail/tools.js +1435 -0
  233. package/dist/providers/overflow/api.js +1008 -0
  234. package/dist/providers/overflow/index.d.ts +1 -17
  235. package/dist/providers/overflow/index.js +60 -1488
  236. package/dist/providers/overflow/skill.generated.js +2 -5
  237. package/dist/providers/overflow/tools.js +873 -0
  238. package/dist/providers/planning-center/api.js +467 -0
  239. package/dist/providers/planning-center/index.d.ts +4 -35
  240. package/dist/providers/planning-center/index.js +69 -2445
  241. package/dist/providers/planning-center/lib/constants.d.ts +58 -0
  242. package/dist/providers/planning-center/lib/constants.js +83 -0
  243. package/dist/providers/planning-center/lib/discovery.js +40 -0
  244. package/dist/providers/planning-center/lib/guide.js +39 -0
  245. package/dist/providers/planning-center/lib/json-api.js +83 -0
  246. package/dist/providers/planning-center/lib/verdicts.js +1758 -0
  247. package/dist/providers/planning-center/openapi.generated.js +1764 -0
  248. package/dist/providers/planning-center/safety.js +188 -0
  249. package/dist/providers/planning-center/skill.generated.js +2 -27
  250. package/dist/providers/planning-center/tools.js +1010 -0
  251. package/dist/providers/sheets/api.js +133 -0
  252. package/dist/providers/sheets/index.d.ts +4 -16
  253. package/dist/providers/sheets/index.js +61 -1172
  254. package/dist/providers/sheets/lib/constants.d.ts +14 -0
  255. package/dist/providers/sheets/lib/constants.js +14 -0
  256. package/dist/providers/sheets/lib/hatch.js +163 -0
  257. package/dist/providers/sheets/lib/requests.js +105 -0
  258. package/dist/providers/sheets/lib/schemas.js +138 -0
  259. package/dist/providers/sheets/openapi.generated.js +30 -0
  260. package/dist/providers/sheets/safety.js +27 -0
  261. package/dist/providers/sheets/skill.generated.js +2 -7
  262. package/dist/providers/sheets/tools.js +734 -0
  263. package/dist/providers/slides/api.js +147 -0
  264. package/dist/providers/slides/index.d.ts +2 -10
  265. package/dist/providers/slides/index.js +48 -2555
  266. package/dist/providers/slides/lib/constants.d.ts +11 -0
  267. package/dist/providers/slides/lib/constants.js +11 -0
  268. package/dist/providers/slides/lib/requests.js +60 -0
  269. package/dist/providers/slides/lib/schemas.js +565 -0
  270. package/dist/providers/slides/openapi.generated.js +18 -0
  271. package/dist/providers/slides/skill.generated.js +2 -6
  272. package/dist/providers/slides/tools.js +1968 -0
  273. package/dist/providers/stripe/api.js +401 -0
  274. package/dist/providers/stripe/index.d.ts +5 -27
  275. package/dist/providers/stripe/index.js +74 -210
  276. package/dist/providers/stripe/lib/config.d.ts +4 -0
  277. package/dist/providers/stripe/lib/config.js +2 -0
  278. package/dist/providers/stripe/openapi.generated.js +4 -3
  279. package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
  280. package/dist/providers/stripe/skill.generated.js +2 -11
  281. package/dist/providers/stripe/tools.js +77 -0
  282. package/dist/providers/tithely/api.js +531 -0
  283. package/dist/providers/tithely/index.d.ts +17 -0
  284. package/dist/providers/tithely/index.js +86 -965
  285. package/dist/providers/tithely/skill.generated.js +2 -5
  286. package/dist/providers/tithely/tools.js +426 -0
  287. package/dist/providers/vercel/api.js +551 -0
  288. package/dist/providers/vercel/index.d.ts +9 -25
  289. package/dist/providers/vercel/index.js +66 -260
  290. package/dist/providers/vercel/lib/config.d.ts +2 -0
  291. package/dist/providers/vercel/lib/config.js +2 -0
  292. package/dist/providers/vercel/lib/index.js +117 -0
  293. package/dist/providers/vercel/lib/logs.js +100 -0
  294. package/dist/providers/vercel/lib/pin.js +270 -0
  295. package/dist/providers/vercel/openapi.generated.js +10 -5
  296. package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
  297. package/dist/providers/vercel/skill.generated.js +2 -7
  298. package/dist/providers/vercel/tools.js +642 -0
  299. package/dist/redaction-identity.js +47 -0
  300. package/dist/redaction-marker.js +125 -0
  301. package/dist/registry.d.ts +21 -15
  302. package/dist/registry.js +409 -376
  303. package/dist/routes/access-tokens.js +1 -1
  304. package/dist/routes/actor-labels.js +1 -1
  305. package/dist/routes/connect.js +1 -1
  306. package/dist/routes/dispatch.js +103 -0
  307. package/dist/routes/mcp.js +170 -79
  308. package/dist/routes/oauth.js +3 -1
  309. package/dist/routes/operator.js +2 -2
  310. package/dist/routes/shared.d.ts +5 -4
  311. package/dist/routes/shared.js +244 -177
  312. package/dist/routes/skills.js +10 -8
  313. package/dist/routes/ui-config.js +27 -3
  314. package/dist/routes/ui-data.js +21 -20
  315. package/dist/routes/ui.js +1 -1
  316. package/dist/runtime/call-admission.js +0 -26
  317. package/dist/runtime/call-entry.js +30 -0
  318. package/dist/runtime/call.js +556 -0
  319. package/dist/runtime/connector-scope.js +7 -0
  320. package/dist/runtime/credential-probe.js +34 -0
  321. package/dist/runtime/executor.js +40 -0
  322. package/dist/runtime/native-storage.js +63 -0
  323. package/dist/runtime/registry.js +27 -0
  324. package/dist/runtime/request-scope.js +72 -0
  325. package/dist/runtime/run.js +15 -7
  326. package/dist/runtime/shared-read.js +34 -5
  327. package/dist/runtime/storage.js +34 -21
  328. package/dist/sent-secrets.d.ts +194 -37
  329. package/dist/sent-secrets.js +1743 -340
  330. package/dist/server.js +5 -56
  331. package/dist/skills.js +322 -222
  332. package/dist/sqlite.js +15 -14
  333. package/dist/storage/d1-copy.js +255 -0
  334. package/dist/storage/d1-driver.js +15 -0
  335. package/dist/storage/keys.js +28 -0
  336. package/dist/storage/sql-driver.js +88 -0
  337. package/dist/storage/sql-native.js +544 -0
  338. package/dist/storage/sql-schema.d.ts +6 -0
  339. package/dist/storage/sql-schema.js +15 -0
  340. package/dist/storage/sql.d.ts +14 -20
  341. package/dist/storage/sql.js +29 -535
  342. package/dist/timeout.js +0 -26
  343. package/dist/tool-safety.js +20 -10
  344. package/dist/types.d.ts +7 -109
  345. package/dist/upward.js +3 -0
  346. package/dist/usage-guide.js +3 -1
  347. package/dist/validate.d.ts +4 -2
  348. package/dist/validate.js +86 -9
  349. package/dist/version.d.ts +1 -1
  350. package/dist/version.js +1 -1
  351. package/dist/worker.js +312 -292
  352. package/dist/workspace-subject.js +5 -1
  353. package/dist/write-outcome.js +454 -34
  354. package/documentation/README.md +27 -7
  355. package/documentation/architecture.md +2547 -226
  356. package/documentation/auth.md +821 -98
  357. package/documentation/code-mode.md +49 -16
  358. package/documentation/deploying.md +164 -20
  359. package/documentation/hosted-mcp-migration.md +460 -0
  360. package/documentation/integrating.md +129 -144
  361. package/documentation/meta-tools.md +409 -32
  362. package/documentation/operating.md +27 -3
  363. package/documentation/operator-tests.md +3 -0
  364. package/documentation/operator-ui.md +68 -45
  365. package/documentation/provider-auth-migration.md +16 -63
  366. package/documentation/provider-migration-0.29.md +10 -5
  367. package/documentation/provider-migration-0.35.md +975 -0
  368. package/documentation/providers.md +965 -0
  369. package/examples/worker/AGENTS.md +23 -9
  370. package/examples/worker/README.md +254 -135
  371. package/examples/worker/alchemy.run.ts +116 -0
  372. package/examples/worker/gitignore +10 -0
  373. package/examples/worker/src/connecta.config.ts +23 -21
  374. package/examples/worker/wrangler.jsonc +14 -5
  375. package/guides/connecting-agents.md +157 -0
  376. package/guides/how-it-works.md +156 -0
  377. package/guides/safety-and-trust.md +153 -0
  378. package/package.json +27 -46
  379. package/templates/node/.env.example +3 -0
  380. package/templates/node/README.md +22 -2
  381. package/templates/node/docker-compose.yml +1 -0
  382. package/templates/node/package.json +3 -2
  383. package/templates/node/src/connecta.config.ts +8 -0
  384. package/dist/catalog-drift.d.ts +0 -138
  385. package/dist/catalog-drift.js +0 -578
  386. package/dist/providers/_shared/request-token.js +0 -83
  387. package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
  388. package/dist/providers/_shared/rest/tools.d.ts +0 -141
  389. package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
  390. package/dist/providers/basecamp/index.d.ts +0 -45
  391. package/dist/providers/basecamp/index.js +0 -997
  392. package/dist/providers/basecamp/skill.generated.js +0 -9
  393. package/dist/providers/cloudflare/rest.d.ts +0 -37
  394. package/dist/providers/cloudflare/rest.js +0 -1097
  395. package/dist/providers/github/hosted.js +0 -218
  396. package/dist/providers/github/rest.js +0 -321
  397. package/dist/providers/infisical/index.d.ts +0 -7
  398. package/dist/providers/infisical/index.js +0 -713
  399. package/dist/providers/infisical/skill.generated.js +0 -8
  400. package/dist/providers/intercom/index.d.ts +0 -24
  401. package/dist/providers/intercom/index.js +0 -121
  402. package/dist/providers/intercom/skill.generated.js +0 -8
  403. package/dist/providers/linear/index.d.ts +0 -55
  404. package/dist/providers/linear/index.js +0 -537
  405. package/dist/providers/linear/skill.generated.js +0 -8
  406. package/dist/providers/mixpanel/index.d.ts +0 -59
  407. package/dist/providers/mixpanel/index.js +0 -472
  408. package/dist/providers/mixpanel/operations.js +0 -20
  409. package/dist/providers/mixpanel/rest.js +0 -603
  410. package/dist/providers/mixpanel/skill.generated.js +0 -10
  411. package/dist/providers/mixpanel/value-safety.js +0 -16
  412. package/dist/providers/notion/index.d.ts +0 -67
  413. package/dist/providers/notion/index.js +0 -368
  414. package/dist/providers/notion/openapi.generated.js +0 -75
  415. package/dist/providers/notion/rest.d.ts +0 -24
  416. package/dist/providers/notion/rest.js +0 -1226
  417. package/dist/providers/notion/skill.generated.js +0 -11
  418. package/dist/providers/notion/value-safety.js +0 -56
  419. package/dist/providers/revenuecat/index.d.ts +0 -51
  420. package/dist/providers/revenuecat/index.js +0 -697
  421. package/dist/providers/revenuecat/skill.generated.js +0 -11
  422. package/dist/providers/stripe/rest.d.ts +0 -14
  423. package/dist/providers/stripe/rest.js +0 -402
  424. package/dist/providers/vercel/rest.d.ts +0 -20
  425. package/dist/providers/vercel/rest.js +0 -1020
  426. package/dist/providers/wispr-flow/index.d.ts +0 -14
  427. package/dist/providers/wispr-flow/index.js +0 -117
  428. package/dist/providers/wispr-flow/skill.generated.js +0 -8
  429. /package/dist/providers/github/{key.js → lib/key.js} +0 -0
@@ -0,0 +1,11 @@
1
+ /** The Slides API root. Every path beneath it names a presentation by id. */
2
+ export declare const SLIDES_API_BASE_URL = "https://slides.googleapis.com/v1";
3
+ /**
4
+ * Exactly the scope this connection requests, and exactly what the Admin
5
+ * console's domain-wide delegation entry must list for it. `presentations`
6
+ * reads and writes every deck the user can open; Slides offers nothing
7
+ * narrower that can also write.
8
+ */
9
+ export declare const SLIDES_SCOPES: readonly ["https://www.googleapis.com/auth/presentations"];
10
+ /** A bounded whole presentation, including structural hatch reads. */
11
+ export declare const SLIDES_MAX_RESPONSE_BYTES: number;
@@ -0,0 +1,11 @@
1
+ /** The Slides API root. Every path beneath it names a presentation by id. */
2
+ export const SLIDES_API_BASE_URL = "https://slides.googleapis.com/v1";
3
+ /**
4
+ * Exactly the scope this connection requests, and exactly what the Admin
5
+ * console's domain-wide delegation entry must list for it. `presentations`
6
+ * reads and writes every deck the user can open; Slides offers nothing
7
+ * narrower that can also write.
8
+ */
9
+ export const SLIDES_SCOPES = ["https://www.googleapis.com/auth/presentations"];
10
+ /** A bounded whole presentation, including structural hatch reads. */
11
+ export const SLIDES_MAX_RESPONSE_BYTES = 16 * 1024 * 1024;
@@ -0,0 +1,60 @@
1
+ // Reviewed Request kinds from the archived Slides Discovery pin. No additional preview methods.
2
+ export const REQUEST_KINDS = [
3
+ "addCommentReply",
4
+ "createImage",
5
+ "createLine",
6
+ "createParagraphBullets",
7
+ "createShape",
8
+ "createSheetsChart",
9
+ "createSlide",
10
+ "createTable",
11
+ "createVideo",
12
+ "deleteComment",
13
+ "deleteCommentReply",
14
+ "deleteObject",
15
+ "deleteParagraphBullets",
16
+ "deleteTableColumn",
17
+ "deleteTableRow",
18
+ "deleteText",
19
+ "duplicateObject",
20
+ "groupObjects",
21
+ "insertComment",
22
+ "insertTableColumns",
23
+ "insertTableRows",
24
+ "insertText",
25
+ "mergeTableCells",
26
+ "refreshSheetsChart",
27
+ "replaceAllShapesWithImage",
28
+ "replaceAllShapesWithSheetsChart",
29
+ "replaceAllText",
30
+ "replaceImage",
31
+ "rerouteLine",
32
+ "ungroupObjects",
33
+ "unmergeTableCells",
34
+ "updateCommentPost",
35
+ "updateImageProperties",
36
+ "updateLineCategory",
37
+ "updateLineProperties",
38
+ "updatePageElementAltText",
39
+ "updatePageElementTransform",
40
+ "updatePageElementsZOrder",
41
+ "updatePageProperties",
42
+ "updateParagraphStyle",
43
+ "updateShapeProperties",
44
+ "updateSlideProperties",
45
+ "updateSlidesPosition",
46
+ "updateTableBorderProperties",
47
+ "updateTableCellProperties",
48
+ "updateTableColumnProperties",
49
+ "updateTableRowProperties",
50
+ "updateTextStyle",
51
+ "updateVideoProperties",
52
+ ];
53
+ export const COMMENT_KINDS = new Set([
54
+ "addCommentReply",
55
+ "deleteComment",
56
+ "deleteCommentReply",
57
+ "insertComment",
58
+ "updateCommentPost",
59
+ ]);
60
+ export const COMMENTS_UNSAVED = "Slides accepted the write but did not report its comment changes saved (commentUpdateState), so it was not all or none: other changes may have applied. Do not repeat it; re-read with list_comments to see what saved.";
@@ -0,0 +1,565 @@
1
+ // Google Slides named input/output contracts. Effect schemas own decoding and catalog rendering.
2
+ import { Schema } from "effect";
3
+ import { Integer, isMinChars, isMaxChars } from "../../../http/json-schema.js";
4
+ const matchesPattern = (pattern) => Schema.makeFilter((value) => pattern.test(value), {
5
+ expected: `a string matching ${pattern.source}`,
6
+ toJsonSchema: () => ({ pattern: pattern.source }),
7
+ });
8
+ export const get_presentation = {
9
+ input: Schema.Struct({
10
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
11
+ "limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100)).annotate({
12
+ "default": 20,
13
+ "description": "Slides per page, 1 to 100; defaults to 20. A page also ends before ~192 KB.",
14
+ })),
15
+ "cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(4096), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
16
+ "description": "Opaque page.nextCursor, or a textCursor-style cursor, this connection returned. Pass it back unchanged.",
17
+ })),
18
+ "maxCharsPerSlide": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(50000)).annotate({
19
+ "description": "Text kept per slide (notes apart), 0 to 50000; defaults to 4000. A cut gives a get_page cursor for the rest.",
20
+ })),
21
+ }),
22
+ output: Schema.Struct({
23
+ "presentationId": Schema.optionalKey(Schema.String),
24
+ "title": Schema.optionalKey(Schema.String),
25
+ "revisionId": Schema.optionalKey(Schema.String),
26
+ "url": Schema.optionalKey(Schema.String),
27
+ "locale": Schema.optionalKey(Schema.String),
28
+ "canvasSize": Schema.optionalKey(Schema.Struct({
29
+ "width": Schema.optionalKey(Schema.Struct({ "magnitude": Schema.optionalKey(Schema.Finite), "unit": Schema.optionalKey(Schema.String) })),
30
+ "height": Schema.optionalKey(Schema.Struct({ "magnitude": Schema.optionalKey(Schema.Finite), "unit": Schema.optionalKey(Schema.String) })),
31
+ })),
32
+ "slideCount": Schema.optionalKey(Integer),
33
+ "notesMasterId": Schema.optionalKey(Schema.String),
34
+ "layouts": Schema.optionalKey(Schema.Array(Schema.Struct({
35
+ "objectId": Schema.optionalKey(Schema.String),
36
+ "kind": Schema.optionalKey(Schema.Literals(["master", "layout"])),
37
+ "name": Schema.optionalKey(Schema.String),
38
+ "displayName": Schema.optionalKey(Schema.String),
39
+ "masterId": Schema.optionalKey(Schema.String),
40
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
41
+ }))),
42
+ "layoutsCursor": Schema.optionalKey(Schema.String),
43
+ "slides": Schema.optionalKey(Schema.Array(Schema.Struct({
44
+ "objectId": Schema.optionalKey(Schema.String),
45
+ "index": Schema.optionalKey(Integer),
46
+ "layout": Schema.optionalKey(Schema.String),
47
+ "layoutId": Schema.optionalKey(Schema.String),
48
+ "skipped": Schema.optionalKey(Schema.Boolean),
49
+ "title": Schema.optionalKey(Schema.String),
50
+ "elements": Schema.optionalKey(Schema.Array(Schema.Struct({
51
+ "objectId": Schema.optionalKey(Schema.String),
52
+ "kind": Schema.optionalKey(Schema.Literals(["shape", "table", "wordArt", "image", "video", "chart", "line", "other"])),
53
+ "placeholder": Schema.optionalKey(Schema.String),
54
+ "text": Schema.optionalKey(Schema.String),
55
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
56
+ "textCursor": Schema.optionalKey(Schema.String),
57
+ "altText": Schema.optionalKey(Schema.String),
58
+ "spreadsheetId": Schema.optionalKey(Schema.String),
59
+ }))),
60
+ "omittedElements": Schema.optionalKey(Integer),
61
+ "elementsCursor": Schema.optionalKey(Schema.String),
62
+ "notesPageId": Schema.optionalKey(Schema.String),
63
+ "notes": Schema.optionalKey(Schema.String),
64
+ "notesCursor": Schema.optionalKey(Schema.String),
65
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
66
+ }))),
67
+ "page": Schema.optionalKey(Schema.Struct({ "hasMore": Schema.optionalKey(Schema.Boolean), "nextCursor": Schema.optionalKey(Schema.String) })),
68
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
69
+ }),
70
+ };
71
+ export const get_page = {
72
+ input: Schema.Struct({
73
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
74
+ "pageObjectId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "A slide's, layout's, master's, or notes page's objectId." }),
75
+ "limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(500)).annotate({
76
+ "default": 50,
77
+ "description": "Elements per page, 1 to 500; defaults to 50. A page also ends before ~192 KB.",
78
+ })),
79
+ "cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(4096), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
80
+ "description": "Opaque page.nextCursor, or a textCursor-style cursor, this connection returned. Pass it back unchanged.",
81
+ })),
82
+ }),
83
+ output: Schema.Struct({
84
+ "presentationId": Schema.optionalKey(Schema.String),
85
+ "pageObjectId": Schema.optionalKey(Schema.String),
86
+ "revisionId": Schema.optionalKey(Schema.String),
87
+ "pageType": Schema.optionalKey(Schema.String),
88
+ "layoutId": Schema.optionalKey(Schema.String),
89
+ "masterId": Schema.optionalKey(Schema.String),
90
+ "notesPageId": Schema.optionalKey(Schema.String),
91
+ "skipped": Schema.optionalKey(Schema.Boolean),
92
+ "speakerNotesObjectId": Schema.optionalKey(Schema.String),
93
+ "name": Schema.optionalKey(Schema.String),
94
+ "displayName": Schema.optionalKey(Schema.String),
95
+ "elementCount": Schema.optionalKey(Integer),
96
+ "properties": Schema.optionalKey(Schema.Record(Schema.String, Schema.Unknown)),
97
+ "elements": Schema.optionalKey(Schema.Array(Schema.Struct({
98
+ "objectId": Schema.optionalKey(Schema.String),
99
+ "kind": Schema.optionalKey(Schema.Literals(["shape", "table", "wordArt", "image", "video", "chart", "line", "other"])),
100
+ "groupId": Schema.optionalKey(Schema.String),
101
+ "placeholder": Schema.optionalKey(Schema.String),
102
+ "placeholderIndex": Schema.optionalKey(Integer),
103
+ "placeholderParentId": Schema.optionalKey(Schema.String),
104
+ "text": Schema.optionalKey(Schema.String),
105
+ "textOffset": Schema.optionalKey(Integer),
106
+ "textLength": Schema.optionalKey(Integer),
107
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
108
+ "altText": Schema.optionalKey(Schema.String),
109
+ "spreadsheetId": Schema.optionalKey(Schema.String),
110
+ }))),
111
+ "page": Schema.optionalKey(Schema.Struct({ "hasMore": Schema.optionalKey(Schema.Boolean), "nextCursor": Schema.optionalKey(Schema.String) })),
112
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
113
+ }),
114
+ };
115
+ export const list_layouts = {
116
+ input: Schema.Struct({
117
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
118
+ "limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(500)).annotate({
119
+ "default": 100,
120
+ "description": "Masters and layouts per page, 1 to 500; defaults to 100. A page also ends before ~192 KB.",
121
+ })),
122
+ "cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(4096), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
123
+ "description": "Opaque page.nextCursor, or a textCursor-style cursor, this connection returned. Pass it back unchanged.",
124
+ })),
125
+ }),
126
+ output: Schema.Struct({
127
+ "presentationId": Schema.String,
128
+ "revisionId": Schema.optionalKey(Schema.String),
129
+ "notesMasterId": Schema.optionalKey(Schema.String),
130
+ "page": Schema.Struct({
131
+ "hasMore": Schema.Boolean,
132
+ "nextCursor": Schema.optionalKey(Schema.String),
133
+ "total": Schema.optionalKey(Integer),
134
+ }),
135
+ "items": Schema.Array(Schema.Struct({
136
+ "objectId": Schema.optionalKey(Schema.String),
137
+ "kind": Schema.optionalKey(Schema.Literals(["master", "layout"])),
138
+ "name": Schema.optionalKey(Schema.String),
139
+ "displayName": Schema.optionalKey(Schema.String),
140
+ "masterId": Schema.optionalKey(Schema.String),
141
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
142
+ })),
143
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
144
+ }),
145
+ };
146
+ export const list_comments = {
147
+ input: Schema.Struct({
148
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
149
+ "pageObjectId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "Only this slide's or notes page's threads; omit for the whole deck." })),
150
+ "limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(500)).annotate({
151
+ "default": 50,
152
+ "description": "Threads per page, 1 to 500; defaults to 50. A page also ends before ~192 KB.",
153
+ })),
154
+ "cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(4096), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
155
+ "description": "Opaque page.nextCursor, or a textCursor-style cursor, this connection returned. Pass it back unchanged.",
156
+ })),
157
+ }),
158
+ output: Schema.Struct({
159
+ "presentationId": Schema.String,
160
+ "pageObjectId": Schema.optionalKey(Schema.String),
161
+ "revisionId": Schema.optionalKey(Schema.String),
162
+ "page": Schema.Struct({
163
+ "hasMore": Schema.Boolean,
164
+ "nextCursor": Schema.optionalKey(Schema.String),
165
+ "total": Schema.optionalKey(Integer),
166
+ }),
167
+ "items": Schema.Array(Schema.Struct({
168
+ "commentId": Schema.optionalKey(Schema.String),
169
+ "anchorId": Schema.optionalKey(Schema.String),
170
+ "status": Schema.optionalKey(Schema.String),
171
+ "pageObjectIds": Schema.optionalKey(Schema.Array(Schema.String)),
172
+ "objectIds": Schema.optionalKey(Schema.Array(Schema.String)),
173
+ "replyCount": Schema.optionalKey(Integer),
174
+ "quote": Schema.optionalKey(Schema.String),
175
+ "quoteOffset": Schema.optionalKey(Integer),
176
+ "quoteLength": Schema.optionalKey(Integer),
177
+ "headPost": Schema.optionalKey(Schema.Struct({
178
+ "postId": Schema.optionalKey(Schema.String),
179
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
180
+ "author": Schema.optionalKey(Schema.Struct({
181
+ "user": Schema.optionalKey(Schema.String),
182
+ "displayName": Schema.optionalKey(Schema.String),
183
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
184
+ "me": Schema.optionalKey(Schema.Boolean),
185
+ "anonymous": Schema.optionalKey(Schema.Boolean),
186
+ })),
187
+ "content": Schema.optionalKey(Schema.String),
188
+ "contentOffset": Schema.optionalKey(Integer),
189
+ "contentLength": Schema.optionalKey(Integer),
190
+ "commentAction": Schema.optionalKey(Schema.String),
191
+ "assigneeEmail": Schema.optionalKey(Schema.String),
192
+ "createTime": Schema.optionalKey(Schema.String),
193
+ "updateTime": Schema.optionalKey(Schema.String),
194
+ "deleted": Schema.optionalKey(Schema.Boolean),
195
+ "imported": Schema.optionalKey(Schema.Boolean),
196
+ })),
197
+ "replies": Schema.optionalKey(Schema.Array(Schema.Struct({
198
+ "postId": Schema.optionalKey(Schema.String),
199
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
200
+ "author": Schema.optionalKey(Schema.Struct({
201
+ "user": Schema.optionalKey(Schema.String),
202
+ "displayName": Schema.optionalKey(Schema.String),
203
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
204
+ "me": Schema.optionalKey(Schema.Boolean),
205
+ "anonymous": Schema.optionalKey(Schema.Boolean),
206
+ })),
207
+ "content": Schema.optionalKey(Schema.String),
208
+ "contentOffset": Schema.optionalKey(Integer),
209
+ "contentLength": Schema.optionalKey(Integer),
210
+ "commentAction": Schema.optionalKey(Schema.String),
211
+ "assigneeEmail": Schema.optionalKey(Schema.String),
212
+ "createTime": Schema.optionalKey(Schema.String),
213
+ "updateTime": Schema.optionalKey(Schema.String),
214
+ "deleted": Schema.optionalKey(Schema.Boolean),
215
+ "imported": Schema.optionalKey(Schema.Boolean),
216
+ }))),
217
+ "repliesOffset": Schema.optionalKey(Integer),
218
+ "continued": Schema.optionalKey(Schema.Boolean),
219
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
220
+ "idsNotShown": Schema.optionalKey(Schema.Boolean),
221
+ })),
222
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
223
+ }),
224
+ };
225
+ export const get_slide_thumbnail = {
226
+ input: Schema.Struct({
227
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
228
+ "slideObjectId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "Slide objectId from get_presentation." }),
229
+ "size": Schema.optionalKey(Schema.Literals(["SMALL", "MEDIUM", "LARGE", "WIDTH2000_PX"]).annotate({
230
+ "description": "Width: SMALL 200px, MEDIUM 800px, LARGE 1600px, WIDTH2000_PX 2000px; Slides chooses when omitted.",
231
+ })),
232
+ }),
233
+ output: Schema.Struct({
234
+ "contentUrl": Schema.optionalKey(Schema.String),
235
+ "width": Schema.optionalKey(Integer),
236
+ "height": Schema.optionalKey(Integer),
237
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
238
+ }),
239
+ };
240
+ export const create_presentation = {
241
+ input: Schema.Struct({
242
+ "title": Schema.String.check(isMinChars(1), isMaxChars(1000), matchesPattern(new RegExp("^[^\\r\\n]*$"))).annotate({
243
+ "description": "The deck's title, as Drive shows it.",
244
+ }),
245
+ }),
246
+ output: Schema.Struct({
247
+ "presentationId": Schema.String,
248
+ "revisionId": Schema.optionalKey(Schema.String),
249
+ "title": Schema.optionalKey(Schema.String),
250
+ "url": Schema.optionalKey(Schema.String),
251
+ "slideObjectIds": Schema.optionalKey(Schema.Array(Schema.String)),
252
+ "slideObjectIdsNotShown": Schema.optionalKey(Integer),
253
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
254
+ }),
255
+ };
256
+ export const create_slide = {
257
+ input: Schema.Struct({
258
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
259
+ "layout": Schema.optionalKey(Schema.Literals([
260
+ "BLANK",
261
+ "CAPTION_ONLY",
262
+ "TITLE",
263
+ "TITLE_AND_BODY",
264
+ "TITLE_AND_TWO_COLUMNS",
265
+ "TITLE_ONLY",
266
+ "SECTION_HEADER",
267
+ "SECTION_TITLE_AND_DESCRIPTION",
268
+ "ONE_COLUMN_TEXT",
269
+ "MAIN_POINT",
270
+ "BIG_NUMBER",
271
+ ]).annotate({
272
+ "description": "Predefined layout; the deck's theme must have it. Omit both layout and layoutId for BLANK.",
273
+ })),
274
+ "layoutId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "A layouts[].objectId from get_presentation, instead of layout." })),
275
+ "insertionIndex": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(100000)).annotate({
276
+ "description": "0-based position, as get_presentation numbers slides; omit to append.",
277
+ })),
278
+ }),
279
+ output: Schema.Struct({
280
+ "presentationId": Schema.String,
281
+ "revisionId": Schema.optionalKey(Schema.String),
282
+ "slideObjectId": Schema.String,
283
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
284
+ }),
285
+ };
286
+ export const replace_all_text = {
287
+ input: Schema.Struct({
288
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
289
+ "replacements": Schema.Array(Schema.Struct({
290
+ "find": Schema.String.check(isMinChars(1), isMaxChars(1000)).annotate({
291
+ "description": "Literal text to find.",
292
+ }),
293
+ "replace": Schema.String.check(isMaxChars(10000)).annotate({
294
+ "description": "Replacement; empty deletes the match.",
295
+ }),
296
+ "matchCase": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Case-sensitive; defaults to true." })),
297
+ }).annotate({ "description": "One find-and-replace." }))
298
+ .check(Schema.isMinLength(1), Schema.isMaxLength(50))
299
+ .annotate({ "description": "Applied in order, 1 to 50 (connecta's bound)." }),
300
+ "slideObjectIds": Schema.optionalKey(Schema.Array(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "A slide objectId." }))
301
+ .check(Schema.isMinLength(1), Schema.isMaxLength(500))
302
+ .annotate({ "description": "Limit to these slides; omit for every slide." })),
303
+ "requiredRevisionId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(512), matchesPattern(new RegExp("^[^\\s]+$"))).annotate({
304
+ "description": "revisionId from get_presentation; the write is refused, unapplied, if the deck changed since.",
305
+ })),
306
+ }),
307
+ output: Schema.Struct({
308
+ "presentationId": Schema.String,
309
+ "revisionId": Schema.optionalKey(Schema.String),
310
+ "occurrencesChanged": Integer,
311
+ "replacements": Schema.Array(Schema.Struct({ "find": Schema.optionalKey(Schema.String), "occurrencesChanged": Schema.optionalKey(Integer) })),
312
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
313
+ }),
314
+ };
315
+ export const create_comment = {
316
+ input: Schema.Struct({
317
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
318
+ "objectId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_][A-Za-z0-9_:-]*$"))).annotate({ "description": "The page or element to comment on: the shape or table, for text or a cell." }),
319
+ "content": Schema.String.check(isMinChars(1), isMaxChars(2048)).annotate({
320
+ "description": "Plain text; Slides' cap is 2048 UTF-8 bytes.",
321
+ }),
322
+ "textRange": Schema.optionalKey(Schema.Struct({
323
+ "startIndex": Integer.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(10000000)).annotate({
324
+ "description": "First character.",
325
+ }),
326
+ "endIndex": Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(10000000)).annotate({
327
+ "description": "One past the last.",
328
+ }),
329
+ }).annotate({ "description": "Anchor to this text of the shape, or of the cell: 0-based, end exclusive." })),
330
+ "cell": Schema.optionalKey(Schema.Struct({
331
+ "rowIndex": Integer.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(100000)).annotate({
332
+ "description": "Row.",
333
+ }),
334
+ "columnIndex": Integer.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(100000)).annotate({
335
+ "description": "Column.",
336
+ }),
337
+ }).annotate({ "description": "A table cell, 0-based: with textRange, that text in it; else the whole cell." })),
338
+ "assigneeEmail": Schema.optionalKey(Schema.String.check(isMinChars(3), isMaxChars(320), matchesPattern(new RegExp("^[^\\s@]+@[^\\s@]+$"))).annotate({
339
+ "description": "Assign the thread to this address; Slides notifies them.",
340
+ })),
341
+ "requiredRevisionId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(512), matchesPattern(new RegExp("^[^\\s]+$"))).annotate({
342
+ "description": "Refuse, unapplied, if the deck changed since this revision.",
343
+ })),
344
+ }),
345
+ output: Schema.Struct({
346
+ "presentationId": Schema.String,
347
+ "revisionId": Schema.optionalKey(Schema.String),
348
+ "commentUpdateState": Schema.optionalKey(Schema.String),
349
+ "note": Schema.optionalKey(Schema.String),
350
+ "commentId": Schema.optionalKey(Schema.String),
351
+ "anchorId": Schema.optionalKey(Schema.String),
352
+ "status": Schema.optionalKey(Schema.String),
353
+ "quote": Schema.optionalKey(Schema.String),
354
+ "headPost": Schema.optionalKey(Schema.Struct({
355
+ "postId": Schema.optionalKey(Schema.String),
356
+ "author": Schema.optionalKey(Schema.Struct({
357
+ "user": Schema.optionalKey(Schema.String),
358
+ "displayName": Schema.optionalKey(Schema.String),
359
+ "me": Schema.optionalKey(Schema.Boolean),
360
+ "anonymous": Schema.optionalKey(Schema.Boolean),
361
+ })),
362
+ "content": Schema.optionalKey(Schema.String),
363
+ "contentOffset": Schema.optionalKey(Integer),
364
+ "contentLength": Schema.optionalKey(Integer),
365
+ "commentAction": Schema.optionalKey(Schema.String),
366
+ "assigneeEmail": Schema.optionalKey(Schema.String),
367
+ "createTime": Schema.optionalKey(Schema.String),
368
+ "updateTime": Schema.optionalKey(Schema.String),
369
+ "deleted": Schema.optionalKey(Schema.Boolean),
370
+ "imported": Schema.optionalKey(Schema.Boolean),
371
+ })),
372
+ "replies": Schema.optionalKey(Schema.Array(Schema.Struct({
373
+ "postId": Schema.optionalKey(Schema.String),
374
+ "author": Schema.optionalKey(Schema.Struct({
375
+ "user": Schema.optionalKey(Schema.String),
376
+ "displayName": Schema.optionalKey(Schema.String),
377
+ "me": Schema.optionalKey(Schema.Boolean),
378
+ "anonymous": Schema.optionalKey(Schema.Boolean),
379
+ })),
380
+ "content": Schema.optionalKey(Schema.String),
381
+ "contentOffset": Schema.optionalKey(Integer),
382
+ "contentLength": Schema.optionalKey(Integer),
383
+ "commentAction": Schema.optionalKey(Schema.String),
384
+ "assigneeEmail": Schema.optionalKey(Schema.String),
385
+ "createTime": Schema.optionalKey(Schema.String),
386
+ "updateTime": Schema.optionalKey(Schema.String),
387
+ "deleted": Schema.optionalKey(Schema.Boolean),
388
+ "imported": Schema.optionalKey(Schema.Boolean),
389
+ }))),
390
+ "idsNotShown": Schema.optionalKey(Schema.Boolean),
391
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
392
+ }),
393
+ };
394
+ export const create_comment_reply = {
395
+ input: Schema.Struct({
396
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
397
+ "commentId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
398
+ "description": "commentId from list_comments or create_comment.",
399
+ }),
400
+ "content": Schema.String.check(isMinChars(1), isMaxChars(2048)).annotate({
401
+ "description": "Plain text, up to 2048 UTF-8 bytes.",
402
+ }),
403
+ }),
404
+ output: Schema.Struct({
405
+ "presentationId": Schema.String,
406
+ "revisionId": Schema.optionalKey(Schema.String),
407
+ "commentUpdateState": Schema.optionalKey(Schema.String),
408
+ "note": Schema.optionalKey(Schema.String),
409
+ "commentId": Schema.String,
410
+ "post": Schema.optionalKey(Schema.Struct({
411
+ "postId": Schema.optionalKey(Schema.String),
412
+ "author": Schema.optionalKey(Schema.Struct({
413
+ "user": Schema.optionalKey(Schema.String),
414
+ "displayName": Schema.optionalKey(Schema.String),
415
+ "me": Schema.optionalKey(Schema.Boolean),
416
+ "anonymous": Schema.optionalKey(Schema.Boolean),
417
+ })),
418
+ "content": Schema.optionalKey(Schema.String),
419
+ "contentOffset": Schema.optionalKey(Integer),
420
+ "contentLength": Schema.optionalKey(Integer),
421
+ "commentAction": Schema.optionalKey(Schema.String),
422
+ "assigneeEmail": Schema.optionalKey(Schema.String),
423
+ "createTime": Schema.optionalKey(Schema.String),
424
+ "updateTime": Schema.optionalKey(Schema.String),
425
+ "deleted": Schema.optionalKey(Schema.Boolean),
426
+ "imported": Schema.optionalKey(Schema.Boolean),
427
+ })),
428
+ "idsNotShown": Schema.optionalKey(Schema.Boolean),
429
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
430
+ }),
431
+ };
432
+ export const update_comment_thread = {
433
+ input: Schema.Struct({
434
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
435
+ "commentId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
436
+ "description": "commentId from list_comments or create_comment.",
437
+ }),
438
+ "status": Schema.optionalKey(Schema.Literals(["RESOLVED", "OPEN"]).annotate({ "description": "Resolve the thread, or reopen it." })),
439
+ "assigneeEmail": Schema.optionalKey(Schema.String.check(isMinChars(3), isMaxChars(320), matchesPattern(new RegExp("^[^\\s@]+@[^\\s@]+$"))).annotate({
440
+ "description": "Reassign an assigned thread instead; needs content.",
441
+ })),
442
+ "content": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(2048)).annotate({
443
+ "description": "Note posted with it, up to 2048 UTF-8 bytes; required to reassign.",
444
+ })),
445
+ }),
446
+ output: Schema.Struct({
447
+ "presentationId": Schema.String,
448
+ "revisionId": Schema.optionalKey(Schema.String),
449
+ "commentUpdateState": Schema.optionalKey(Schema.String),
450
+ "note": Schema.optionalKey(Schema.String),
451
+ "commentId": Schema.String,
452
+ "post": Schema.optionalKey(Schema.Struct({
453
+ "postId": Schema.optionalKey(Schema.String),
454
+ "author": Schema.optionalKey(Schema.Struct({
455
+ "user": Schema.optionalKey(Schema.String),
456
+ "displayName": Schema.optionalKey(Schema.String),
457
+ "me": Schema.optionalKey(Schema.Boolean),
458
+ "anonymous": Schema.optionalKey(Schema.Boolean),
459
+ })),
460
+ "content": Schema.optionalKey(Schema.String),
461
+ "contentOffset": Schema.optionalKey(Integer),
462
+ "contentLength": Schema.optionalKey(Integer),
463
+ "commentAction": Schema.optionalKey(Schema.String),
464
+ "assigneeEmail": Schema.optionalKey(Schema.String),
465
+ "createTime": Schema.optionalKey(Schema.String),
466
+ "updateTime": Schema.optionalKey(Schema.String),
467
+ "deleted": Schema.optionalKey(Schema.Boolean),
468
+ "imported": Schema.optionalKey(Schema.Boolean),
469
+ })),
470
+ "idsNotShown": Schema.optionalKey(Schema.Boolean),
471
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
472
+ }),
473
+ };
474
+ export const update_comment_post = {
475
+ input: Schema.Struct({
476
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
477
+ "commentId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
478
+ "description": "commentId from list_comments or create_comment.",
479
+ }),
480
+ "postId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
481
+ "description": "postId of the post, from list_comments.",
482
+ }),
483
+ "content": Schema.String.check(isMinChars(1), isMaxChars(2048)).annotate({
484
+ "description": "The new plain text, up to 2048 UTF-8 bytes.",
485
+ }),
486
+ }),
487
+ output: Schema.Struct({
488
+ "presentationId": Schema.String,
489
+ "revisionId": Schema.optionalKey(Schema.String),
490
+ "commentUpdateState": Schema.optionalKey(Schema.String),
491
+ "note": Schema.optionalKey(Schema.String),
492
+ "commentId": Schema.String,
493
+ "postId": Schema.String,
494
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
495
+ }),
496
+ };
497
+ export const delete_comment = {
498
+ input: Schema.Struct({
499
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
500
+ "commentId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
501
+ "description": "commentId from list_comments or create_comment.",
502
+ }),
503
+ }),
504
+ output: Schema.Struct({
505
+ "presentationId": Schema.String,
506
+ "revisionId": Schema.optionalKey(Schema.String),
507
+ "commentUpdateState": Schema.optionalKey(Schema.String),
508
+ "note": Schema.optionalKey(Schema.String),
509
+ "commentId": Schema.String,
510
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
511
+ }),
512
+ };
513
+ export const delete_comment_reply = {
514
+ input: Schema.Struct({
515
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
516
+ "commentId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
517
+ "description": "commentId from list_comments or create_comment.",
518
+ }),
519
+ "postId": Schema.String.check(isMinChars(1), isMaxChars(1024), matchesPattern(new RegExp("^\\S+$"))).annotate({
520
+ "description": "postId of the reply, from list_comments.",
521
+ }),
522
+ }),
523
+ output: Schema.Struct({
524
+ "presentationId": Schema.String,
525
+ "revisionId": Schema.optionalKey(Schema.String),
526
+ "commentUpdateState": Schema.optionalKey(Schema.String),
527
+ "note": Schema.optionalKey(Schema.String),
528
+ "commentId": Schema.String,
529
+ "postId": Schema.String,
530
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
531
+ }),
532
+ };
533
+ export const batch_update_presentation = {
534
+ input: Schema.Struct({
535
+ "presentationId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Presentation id: the part after /presentation/d/ in its URL, or from Drive." }),
536
+ "requiredRevisionId": Schema.String.check(isMinChars(1), isMaxChars(512), matchesPattern(new RegExp("^[^\\s]+$"))).annotate({
537
+ "description": "revisionId from get_presentation; the write is refused, unapplied, if the deck changed since.",
538
+ }),
539
+ "requests": Schema.Array(Schema.Record(Schema.String, Schema.Unknown)
540
+ .check(Schema.makeFilter((value) => Object.keys(value).length >= 1, {
541
+ expected: "minProperties 1",
542
+ toJsonSchema: () => ({ minProperties: 1 }),
543
+ }), Schema.makeFilter((value) => Object.keys(value).length <= 1, {
544
+ expected: "maxProperties 1",
545
+ toJsonSchema: () => ({ maxProperties: 1 }),
546
+ }))
547
+ .annotate({
548
+ "description": 'One Request with one key, as the Slides reference defines it: {"insertText": {...}}.',
549
+ }))
550
+ .check(Schema.isMinLength(1), Schema.isMaxLength(100))
551
+ .annotate({
552
+ "description": "Slides Request objects, applied in order, all or none but comments; 1 to 100 (connecta's bound).",
553
+ }),
554
+ }),
555
+ output: Schema.Struct({
556
+ "presentationId": Schema.String,
557
+ "revisionId": Schema.optionalKey(Schema.String),
558
+ "replies": Schema.Array(Schema.Struct({ "truncated": Schema.optionalKey(Schema.Array(Schema.String)) })),
559
+ "commentUpdateState": Schema.optionalKey(Schema.String),
560
+ "note": Schema.optionalKey(Schema.String),
561
+ "truncated": Schema.optionalKey(Schema.Array(Schema.String)),
562
+ }),
563
+ };
564
+ export const LayoutRow = list_layouts.output.fields.items.value;
565
+ export const CommentRow = list_comments.output.fields.items.value;