@framers/agentos-extensions 1.0.4 → 1.0.6

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 (3) hide show
  1. package/README.md +23 -25
  2. package/package.json +2 -6
  3. package/registry.json +76 -155
package/README.md CHANGED
@@ -119,20 +119,19 @@ independently. Version bumps here do **not** affect curated extension versions.
119
119
 
120
120
  ### Curated Extensions (this submodule)
121
121
 
122
- ~107 packages inside `registry/curated/` use coordinated versioning via
123
- [Changesets](https://github.com/changesets/changesets). These are the full
124
- extension catalog: channel adapters, integrations, research tools, media tools,
125
- and more.
126
-
127
- Version bumps here are batched into "Version Packages" PRs and published together.
122
+ The packages inside `registry/curated/` are the full extension catalog: channel
123
+ adapters, integrations, research tools, media tools, and more. Each is versioned
124
+ on its own, and a push to `master` that changes a package's shipped files
125
+ publishes it in the same run ([RELEASING.md](./RELEASING.md)).
128
126
 
129
127
  ### Why two tiers?
130
128
 
131
129
  - **Core extensions** are safety-critical guardrails and foundational infrastructure.
132
130
  They need independent semver to signal breaking changes without forcing a catalog-wide
133
131
  release. Their CI runs on every PR to the monorepo root.
134
- - **Curated extensions** are the broader catalog. Coordinated changesets keep their
135
- interdependencies aligned and simplify bulk releases.
132
+ - **Curated extensions** are the broader catalog. The release keeps their
133
+ interdependencies aligned: when a package's new version leaves a dependent's
134
+ range on it, the same run raises that range and publishes the dependent.
136
135
 
137
136
  ### Where do safety guardrails live?
138
137
 
@@ -147,7 +146,6 @@ have not yet been merged upstream to the root packages.
147
146
 
148
147
  ```
149
148
  agentos-extensions/
150
- ├── .changeset/ # Changesets for versioning & publishing
151
149
  ├── .github/workflows/ # CI, release, TypeDoc pages
152
150
  ├── logos/ # Branding assets
153
151
  ├── templates/ # Starter templates for new extensions
@@ -171,7 +169,7 @@ agentos-extensions/
171
169
  │ │ └── productivity/ # Google Calendar, Gmail
172
170
  │ └── community/ # Community-contributed extensions
173
171
  ├── scripts/ # Registry build & scaffolding tools
174
- ├── registry.json # Auto-generated extension manifest
172
+ ├── registry.json # generated by pnpm run build; the published catalog ships in the npm package
175
173
  ├── pnpm-workspace.yaml # Workspace packages for publishing
176
174
  └── typedoc.json # API docs config
177
175
  ```
@@ -389,7 +387,8 @@ const manifest = await createCuratedManifest({
389
387
  ### Create a new extension
390
388
 
391
389
  ```bash
392
- # Copy the template
390
+ # Copy the template, then give the copy its name, its role and its own CHANGELOG.md,
391
+ # as CONTRIBUTING.md's "Adding an extension pack" says
393
392
  cp -r templates/basic-tool registry/curated/category/my-extension
394
393
  cd registry/curated/category/my-extension
395
394
  pnpm install
@@ -398,21 +397,20 @@ pnpm run dev
398
397
 
399
398
  ## Releasing & Publishing
400
399
 
401
- This repo uses [Changesets](https://github.com/changesets/changesets) for multi-package versioning and npm publishing. See [RELEASING.md](./RELEASING.md) for the full workflow.
400
+ A push to `master` publishes every package whose shipped files changed since its newest version on npm, from the tarball CI built and tested, and tags and releases each version on GitHub. Nobody writes a changeset or a release note: the merged pull request's title is the note. See [RELEASING.md](./RELEASING.md) for the full workflow.
402
401
 
403
402
  ### TL;DR
404
403
 
405
404
  ```bash
406
- # 1. Make your changes to one or more extensions
407
-
408
- # 2. Add a changeset describing what changed
409
- pnpm changeset
405
+ # 1. Change one or more extensions on a branch, and open a pull request titled in
406
+ # the Conventional Commits form: fix(web-search): ..., or feat(web-search)!: ...
407
+ # for a change that breaks users (a minor in place of a patch)
410
408
 
411
- # 3. Commit and push to master
412
- git add . && git commit -m "feat: my changes" && git push
409
+ # 2. Read the summary of CI's step "The packages this push would publish":
410
+ # each package the merge publishes, with its version and the reason
413
411
 
414
- # 4. The GitHub Action opens a "Version Packages" PR
415
- # → Merge it to publish updated packages to npm
412
+ # 3. Merge it: the push to master publishes those packages to npm, tags each
413
+ # version <name>@<version> and makes its GitHub release
416
414
  ```
417
415
 
418
416
  Each extension is versioned and published independently. A change to `web-search` does not bump `telegram`.
@@ -428,12 +426,12 @@ Each extension is versioned and published independently. A change to `web-search
428
426
 
429
427
  All extensions get free CI/CD via GitHub Actions:
430
428
 
431
- - **CI** (`ci.yml`): builds the AgentOS core and every pack, runs the release-script tests and each pack's tests, and runs the pack guard on every pull request
432
- - **Release** (`release.yml`): runs CI, then opens the "chore: version packages" pull request or publishes to npm
429
+ - **CI** (`ci.yml`): plans what the push would publish (`scripts/release-plan.mjs`), builds the AgentOS core and every pack, runs the release-script tests and each pack's tests, and runs the pack guard on the planned packages, on every pull request
430
+ - **Release** (`release.yml`): runs CI on a push to `master`, then publishes the tarballs CI tested for the packages the push changed, tags each version, makes its GitHub release, and writes the images' version tags
433
431
  - **TypeDoc** (`pages-typedoc.yml`): API docs deployed to [framerslab.github.io/agentos-extensions](https://framerslab.github.io/agentos-extensions/) on a push to `master`, one deploy at a time: a deploy that has started runs to the end, and a push that lands during it waits, the last push to come in replacing any earlier one still waiting
434
432
  - **Lockfile** (`lockfile.yml`): resolves the workspace's dependency ranges and offers `pnpm-lock.yaml` as an artifact to commit, run by hand on a branch whose `package.json` files changed
435
433
  - **Meeting bot image** (`meeting-bot-image.yml`): builds the browser meeting bot's container image and runs its lifecycle test on every pull request that touches `registry/curated/meetings/browser/`, and pushes the image to GHCR from `master`; the bot's nightly real-join check (`nightly-real-join.yml`) runs daily and by hand, and its capacity measurement on a worker (`measure-meeting-bots.yml`) by hand only, as [the pack's README](./registry/curated/meetings/browser/README.md) describes
436
- - **Document parser image** (`document-parser-image.yml`): builds the document parser's container image and runs its lifecycle test on a pull request that touches `registry/curated/tools/document-parser/` or `pnpm-lock.yaml`, once it is ready for review, and on a push to `master` that touches the pack, which also pushes the tested image to GHCR as `ghcr.io/framerslab/agentos-document-parser:sha-<commit>`, and once as `:<version>` from the version pull request's merge, as [the release guide](./RELEASING.md) and [the pack's README](./registry/curated/tools/document-parser/README.md) describe. `document-parser.yml` runs the pack's tests on Node 24, beside CI's Node 22, when a pull request or a push to `master` touches the pack, `pnpm-lock.yaml` or `pnpm-workspace.yaml`
434
+ - **Document parser image** (`document-parser-image.yml`): builds the document parser's container image and runs its lifecycle test on a pull request that touches `registry/curated/tools/document-parser/` or `pnpm-lock.yaml`, once it is ready for review, and on a push to `master` that touches the pack, which also pushes the tested image to GHCR as `ghcr.io/framerslab/agentos-document-parser:sha-<commit>`; the release workflow tags a released version's image `:<version>`, as [the release guide](./RELEASING.md) and [the pack's README](./registry/curated/tools/document-parser/README.md) describe. `document-parser.yml` runs the pack's tests on Node 24, beside CI's Node 22, when a pull request or a push to `master` touches the pack, `pnpm-lock.yaml` or `pnpm-workspace.yaml`
437
435
  - **Dependabot**: weekly dependency updates. `dependabot-auto-merge.yml` labels an npm minor or patch update `landing`, and posts one comment for its head commit naming the guards that passed, when CI's `build` check and the `links` check have succeeded on that commit, no other workflow check there is pending or failed (skipped and neutral count as passed), every commit is Dependabot's, its review threads are settled and ten minutes have passed since its last push. It never merges: a labelled update lands once its review comments on GitHub are read, those that name a failing input fixed and the rest answered, and its threads resolved. It decides again when a CI or Links run of the update is requested, starts or finishes, when a review is submitted or a comment is made on its diff, and every hour; when a push moves the head or a guard fails, it takes off a label it added, and a label a maintainer added, took off or put back stays. A thread resolved or reopened sends no event a workflow can take, so the next of those runs decides it; a landing waits for every thread to be resolved whatever the label says. Major updates, GitHub Actions updates, and a pull request whose head commit message names a different version than its title (left from an older update after a rebase) wait for a maintainer. The decision is `scripts/dependabot-merge-lib.mjs`. Dependabot updates `pnpm-lock.yaml` with pnpm's `minimumReleaseAge` at three days; `pnpm-workspace.yaml` exempts `@framers/*`, the family whose pins the weekly bump (`bump-framers-deps.yml`) moves to the newest release, and the bump runs Dependabot's update before it opens its pull request
438
436
 
439
437
  ## Quality Standards
@@ -468,8 +466,8 @@ All extensions get free CI/CD via GitHub Actions:
468
466
 
469
467
  | Guide | What |
470
468
  |---|---|
471
- | [Contributing](https://github.com/framerslab/agentos-extensions/blob/master/CONTRIBUTING.md) | Development setup, adding a pack, changesets, pull request rules, review threads, contribution licensing |
472
- | [Release guide](https://github.com/framerslab/agentos-extensions/blob/master/RELEASING.md) | How changesets become npm releases |
469
+ | [Contributing](https://github.com/framerslab/agentos-extensions/blob/master/CONTRIBUTING.md) | Development setup, adding a pack, commit messages and releases, pull request rules, review threads, contribution licensing |
470
+ | [Release guide](https://github.com/framerslab/agentos-extensions/blob/master/RELEASING.md) | What a push to `master` publishes, and at which version |
473
471
  | [Agent instructions](https://github.com/framerslab/agentos-extensions/blob/master/AGENTS.md) | Commands and conventions for coding agents |
474
472
  | [Maintainers](https://github.com/framerslab/agentos-extensions/blob/master/MAINTAINERS.md) | Who reviews and merges changes |
475
473
  | [Code of Conduct](https://github.com/framerslab/agentos-extensions/blob/master/.github/CODE_OF_CONDUCT.md) | Community standards |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos-extensions",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "files": [
5
5
  "index.mjs",
6
6
  "registry.json",
@@ -71,19 +71,15 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@atproto/api": "^0.13.0",
74
- "@changesets/changelog-github": "^0.5.2",
75
- "@changesets/cli": "^3.0.3",
76
74
  "masto": "^8.0.0",
77
75
  "typedoc": "^0.28.19",
78
76
  "typescript": "^5.4.5"
79
77
  },
78
+ "gitHead": "b68f182cff59e875ec545b65fb5f936414f3f166",
80
79
  "scripts": {
81
80
  "build": "node scripts/build-extensions.js && node scripts/update-registry.js",
82
81
  "update-registry": "node scripts/update-registry.js",
83
82
  "docs": "npx typedoc",
84
- "changeset": "changeset",
85
- "version-packages": "changeset version && node scripts/sync-manifest-versions.mjs",
86
- "release": "changeset publish",
87
83
  "test": "node --test scripts/__tests__/*.test.mjs",
88
84
  "pack-guard": "node scripts/pack-guard.mjs"
89
85
  }
package/registry.json CHANGED
@@ -1,14 +1,11 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "updated": "2026-10-24T23:29:10.066Z",
3
+ "updated": "2026-10-31T17:56:22.764Z",
4
4
  "categories": {
5
5
  "templates": [
6
- "basic-tool",
7
- "guardrail",
8
- "multi-tool"
6
+ "basic-tool"
9
7
  ],
10
8
  "curated": [
11
- "auth",
12
9
  "channels",
13
10
  "cloud",
14
11
  "communications",
@@ -16,7 +13,6 @@
16
13
  "integrations",
17
14
  "media",
18
15
  "meetings",
19
- "memory",
20
16
  "productivity",
21
17
  "provenance",
22
18
  "research",
@@ -165,7 +161,7 @@
165
161
  "id": "com.framers.channels.email",
166
162
  "name": "Email Channel Extension",
167
163
  "package": "@framers/agentos-ext-channel-email",
168
- "version": "0.5.0",
164
+ "version": "0.6.0",
169
165
  "category": "channels",
170
166
  "path": "registry/curated/channels/email",
171
167
  "description": "Bidirectional email integration: send through SMTP or Resend's HTTPS API; read, search, extract verification codes, reply, move, label, flag and delete through IMAP; keep a suppression record and unsubscribe tokens on a SQL database.",
@@ -190,7 +186,7 @@
190
186
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-channel-email",
191
187
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/channels/email",
192
188
  "verified": true,
193
- "verifiedAt": "2026-10-24T23:29:10.066Z",
189
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
194
190
  "verificationChecklistVersion": "1.0.0",
195
191
  "downloads": 0
196
192
  },
@@ -732,7 +728,7 @@
732
728
  "id": "com.framers.channels.nostr",
733
729
  "name": "Nostr Channel Extension",
734
730
  "package": "@framers/agentos-ext-channel-nostr",
735
- "version": "0.1.5",
731
+ "version": "0.1.6",
736
732
  "category": "channels",
737
733
  "path": "registry/curated/channels/nostr",
738
734
  "description": "Nostr relay messaging via nostr-tools — decentralized, censorship-resistant encrypted DMs (NIP-04).",
@@ -758,7 +754,7 @@
758
754
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-channel-nostr",
759
755
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/channels/nostr",
760
756
  "verified": true,
761
- "verifiedAt": "2026-10-18T17:11:31.345Z",
757
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
762
758
  "verificationChecklistVersion": "1.0.0",
763
759
  "downloads": 0
764
760
  },
@@ -883,7 +879,7 @@
883
879
  "id": "com.framers.channels.slack",
884
880
  "name": "Slack Channel Extension",
885
881
  "package": "@framers/agentos-ext-channel-slack",
886
- "version": "0.1.3",
882
+ "version": "0.2.0",
887
883
  "category": "channels",
888
884
  "path": "registry/curated/channels/slack",
889
885
  "description": "Bidirectional Slack messaging via @slack/bolt — supports text, rich text, images, documents, threads, reactions, and group chat.",
@@ -900,7 +896,8 @@
900
896
  "Group chat and channel support",
901
897
  "Message editing and deletion",
902
898
  "Emoji reactions",
903
- "Mentions support"
899
+ "Mentions support",
900
+ "Posting to a person's own incoming webhook or workflow webhook link through the ./outbound entry, with no Bolt app"
904
901
  ],
905
902
  "tools": [
906
903
  "slackChannelSendMessage",
@@ -918,7 +915,7 @@
918
915
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-channel-slack",
919
916
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/channels/slack",
920
917
  "verified": true,
921
- "verifiedAt": "2026-10-18T17:11:31.345Z",
918
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
922
919
  "verificationChecklistVersion": "1.0.0",
923
920
  "downloads": 0
924
921
  },
@@ -2077,7 +2074,7 @@
2077
2074
  "id": "com.framers.integrations.github",
2078
2075
  "name": "GitHub Extension",
2079
2076
  "package": "@framers/agentos-ext-github",
2080
- "version": "0.8.0",
2077
+ "version": "0.10.0",
2081
2078
  "category": "integrations",
2082
2079
  "path": "registry/curated/integrations/github",
2083
2080
  "description": "GitHub API tools: 26 tools for repos, issues, PRs, branches, commits, releases, Actions, files, gists, and codebase indexing. Its ./documents entry adds a GitHub App's installation mode (the app's JWT, installation tokens, the user's web flow, webhook deliveries checked and read as typed events, a daily reconcile, every call under a deadline with rate limit timing) and a connector that reads a repository's documentation as account sources.",
@@ -2139,7 +2136,36 @@
2139
2136
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-github",
2140
2137
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/integrations/github",
2141
2138
  "verified": true,
2142
- "verifiedAt": "2026-10-24T23:29:10.066Z",
2139
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2140
+ "verificationChecklistVersion": "1.0.0",
2141
+ "downloads": 0
2142
+ },
2143
+ {
2144
+ "id": "com.framers.integrations.notion",
2145
+ "name": "Notion",
2146
+ "package": "@framers/agentos-ext-notion",
2147
+ "version": "0.1.0",
2148
+ "category": "integrations",
2149
+ "path": "registry/curated/integrations/notion",
2150
+ "description": "A public Notion connection's OAuth for a host that keeps its own grant, and pages written as typed plain-text blocks inside Notion's request limits",
2151
+ "author": {
2152
+ "name": "Frame",
2153
+ "email": "team@frame.dev",
2154
+ "url": "https://frame.dev"
2155
+ },
2156
+ "features": [],
2157
+ "tools": [
2158
+ "notion"
2159
+ ],
2160
+ "keywords": [
2161
+ "notion",
2162
+ "oauth",
2163
+ "pages"
2164
+ ],
2165
+ "npm": "https://www.npmjs.com/package/@framers/agentos-ext-notion",
2166
+ "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/integrations/notion",
2167
+ "verified": true,
2168
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2143
2169
  "verificationChecklistVersion": "1.0.0",
2144
2170
  "downloads": 0
2145
2171
  },
@@ -2354,7 +2380,7 @@
2354
2380
  "id": "com.framers.meetings.browser",
2355
2381
  "name": "Browser Meeting Bot Provider",
2356
2382
  "package": "@framers/agentos-ext-meeting-browser",
2357
- "version": "0.1.3",
2383
+ "version": "0.1.14",
2358
2384
  "category": "meetings",
2359
2385
  "path": "registry/curated/meetings/browser",
2360
2386
  "description": "A meeting-participant provider that joins Google Meet and Microsoft Teams through a browser in a container, posts a notice, publishes the call's audio into a LiveKit room, and leaves on any participant's stop command.",
@@ -2385,7 +2411,7 @@
2385
2411
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-meeting-browser",
2386
2412
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/meetings/browser",
2387
2413
  "verified": true,
2388
- "verifiedAt": "2026-10-24T23:29:10.066Z",
2414
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2389
2415
  "verificationChecklistVersion": "1.0.0",
2390
2416
  "downloads": 0
2391
2417
  },
@@ -2393,7 +2419,7 @@
2393
2419
  "id": "com.framers.meetings.zoom-rtms",
2394
2420
  "name": "Zoom Realtime Media Streams Meeting Provider",
2395
2421
  "package": "@framers/agentos-ext-meeting-zoom-rtms",
2396
- "version": "0.2.1",
2422
+ "version": "0.2.2",
2397
2423
  "category": "meetings",
2398
2424
  "path": "registry/curated/meetings/zoom-rtms",
2399
2425
  "description": "A meeting-participant provider for Zoom through Realtime Media Streams: no participant joins the meeting; your own Zoom app streams the meeting's audio to a media worker, which publishes it into a LiveKit room.",
@@ -2424,43 +2450,7 @@
2424
2450
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-meeting-zoom-rtms",
2425
2451
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/meetings/zoom-rtms",
2426
2452
  "verified": true,
2427
- "verifiedAt": "2026-10-18T17:11:31.345Z",
2428
- "verificationChecklistVersion": "1.0.0",
2429
- "downloads": 0
2430
- },
2431
- {
2432
- "id": "com.framers.memory.postgres-memory",
2433
- "name": "Postgres + pgvector memory provider extension for AgentOS",
2434
- "package": "@framers/agentos-ext-postgres-memory",
2435
- "version": "0.1.0",
2436
- "category": "memory",
2437
- "path": "registry/curated/memory/postgres-memory",
2438
- "description": "Postgres + pgvector memory provider extension for AgentOS",
2439
- "features": [],
2440
- "tools": [],
2441
- "keywords": [],
2442
- "npm": "https://www.npmjs.com/package/@framers/agentos-ext-postgres-memory",
2443
- "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/memory/postgres-memory",
2444
- "verified": true,
2445
- "verifiedAt": "2026-10-18T17:11:31.345Z",
2446
- "verificationChecklistVersion": "1.0.0",
2447
- "downloads": 0
2448
- },
2449
- {
2450
- "id": "com.framers.memory.relationship-memory",
2451
- "name": "Relationship memory tools for companion trust, boundaries, and anchor moments",
2452
- "package": "@framers/agentos-ext-relationship-memory",
2453
- "version": "0.1.0",
2454
- "category": "memory",
2455
- "path": "registry/curated/memory/relationship-memory",
2456
- "description": "Relationship memory tools for companion trust, boundaries, and anchor moments",
2457
- "features": [],
2458
- "tools": [],
2459
- "keywords": [],
2460
- "npm": "https://www.npmjs.com/package/@framers/agentos-ext-relationship-memory",
2461
- "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/memory/relationship-memory",
2462
- "verified": true,
2463
- "verifiedAt": "2026-10-18T17:11:31.345Z",
2453
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2464
2454
  "verificationChecklistVersion": "1.0.0",
2465
2455
  "downloads": 0
2466
2456
  },
@@ -2468,7 +2458,7 @@
2468
2458
  "id": "com.framers.productivity.document-export",
2469
2459
  "name": "Document Export",
2470
2460
  "package": "@framers/agentos-ext-document-export",
2471
- "version": "0.3.5",
2461
+ "version": "0.3.6",
2472
2462
  "category": "productivity",
2473
2463
  "path": "registry/curated/productivity/document-export",
2474
2464
  "description": "Generate PDF, DOCX, PPTX, CSV, and XLSX documents from structured content",
@@ -2493,59 +2483,7 @@
2493
2483
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-document-export",
2494
2484
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/productivity/document-export",
2495
2485
  "verified": true,
2496
- "verifiedAt": "2026-10-22T04:19:48.241Z",
2497
- "verificationChecklistVersion": "1.0.0",
2498
- "downloads": 0
2499
- },
2500
- {
2501
- "id": "com.framers.productivity.email-intelligence",
2502
- "name": "Email Intelligence Extension",
2503
- "package": "@framers/agentos-ext-email-intelligence",
2504
- "version": "0.1.0",
2505
- "category": "productivity",
2506
- "path": "registry/curated/productivity/email-intelligence",
2507
- "description": "Query email threads, projects, attachments and generate reports via backend REST API.",
2508
- "author": {
2509
- "name": "Framers AI",
2510
- "url": "https://frame.dev"
2511
- },
2512
- "features": [
2513
- "Full-text semantic search across email threads",
2514
- "Thread hierarchy and conversation view",
2515
- "Project-based email organization",
2516
- "Project summaries and timelines",
2517
- "Multi-account support",
2518
- "Attachment metadata retrieval",
2519
- "Project creation and thread assignment",
2520
- "Automated project reports",
2521
- "Digest previews",
2522
- "Account sync status monitoring"
2523
- ],
2524
- "tools": [
2525
- "searchAcrossThreads",
2526
- "getThreadHierarchy",
2527
- "listProjects",
2528
- "getProjectSummary",
2529
- "getProjectTimeline",
2530
- "listAccounts",
2531
- "getAttachment",
2532
- "createProject",
2533
- "addThreadToProject",
2534
- "generateReport",
2535
- "getDigestPreview",
2536
- "syncStatus"
2537
- ],
2538
- "keywords": [
2539
- "agentos",
2540
- "extension",
2541
- "email",
2542
- "intelligence",
2543
- "productivity"
2544
- ],
2545
- "npm": "https://www.npmjs.com/package/@framers/agentos-ext-email-intelligence",
2546
- "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/productivity/email-intelligence",
2547
- "verified": true,
2548
- "verifiedAt": "2026-10-18T17:11:31.345Z",
2486
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2549
2487
  "verificationChecklistVersion": "1.0.0",
2550
2488
  "downloads": 0
2551
2489
  },
@@ -2597,7 +2535,7 @@
2597
2535
  "id": "com.framers.productivity.gmail-source",
2598
2536
  "name": "Gmail Source",
2599
2537
  "package": "@framers/agentos-ext-gmail-source",
2600
- "version": "0.6.2",
2538
+ "version": "0.6.3",
2601
2539
  "category": "productivity",
2602
2540
  "path": "registry/curated/productivity/gmail-source",
2603
2541
  "description": "Read-only OAuth and bounded personal Gmail source helpers",
@@ -2618,7 +2556,7 @@
2618
2556
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-gmail-source",
2619
2557
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/productivity/gmail-source",
2620
2558
  "verified": true,
2621
- "verifiedAt": "2026-10-22T04:19:48.241Z",
2559
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2622
2560
  "verificationChecklistVersion": "1.0.0",
2623
2561
  "downloads": 0
2624
2562
  },
@@ -2626,7 +2564,7 @@
2626
2564
  "id": "com.framers.productivity.google-calendar",
2627
2565
  "name": "Google Calendar Extension",
2628
2566
  "package": "@framers/agentos-ext-calendar-google",
2629
- "version": "1.0.3",
2567
+ "version": "1.0.4",
2630
2568
  "category": "productivity",
2631
2569
  "path": "registry/curated/productivity/google-calendar",
2632
2570
  "description": "Google Calendar integration with OAuth2 auth and event management — supports event CRUD, free/busy queries, and multi-calendar listing.",
@@ -2662,7 +2600,7 @@
2662
2600
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-calendar-google",
2663
2601
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/productivity/google-calendar",
2664
2602
  "verified": true,
2665
- "verifiedAt": "2026-10-19T06:39:25.136Z",
2603
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2666
2604
  "verificationChecklistVersion": "1.0.0",
2667
2605
  "downloads": 0
2668
2606
  },
@@ -2670,7 +2608,7 @@
2670
2608
  "id": "com.framers.productivity.google-drive",
2671
2609
  "name": "Google Drive",
2672
2610
  "package": "@framers/agentos-ext-google-drive",
2673
- "version": "1.3.0",
2611
+ "version": "1.4.0",
2674
2612
  "category": "productivity",
2675
2613
  "path": "registry/curated/productivity/google-drive",
2676
2614
  "description": "Google Drive files a person picked, read under the drive.file scope: Google's grant on AgentOS's redirect OAuth flow, Drive's calls and an account source connector",
@@ -2692,7 +2630,7 @@
2692
2630
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-google-drive",
2693
2631
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/productivity/google-drive",
2694
2632
  "verified": true,
2695
- "verifiedAt": "2026-10-24T23:29:10.066Z",
2633
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2696
2634
  "verificationChecklistVersion": "1.0.0",
2697
2635
  "downloads": 0
2698
2636
  },
@@ -2772,7 +2710,7 @@
2772
2710
  "id": "com.framers.research.account-sources",
2773
2711
  "name": "Account Sources",
2774
2712
  "package": "@framers/agentos-ext-account-sources",
2775
- "version": "0.9.6",
2713
+ "version": "0.11.0",
2776
2714
  "category": "research",
2777
2715
  "path": "registry/curated/research/account-sources",
2778
2716
  "description": "A person's own accounts as sources: connector interfaces, passage attribution, capped reads and a shared limiter",
@@ -2793,7 +2731,7 @@
2793
2731
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-account-sources",
2794
2732
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/research/account-sources",
2795
2733
  "verified": true,
2796
- "verifiedAt": "2026-10-24T23:29:10.066Z",
2734
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2797
2735
  "verificationChecklistVersion": "1.0.0",
2798
2736
  "downloads": 0
2799
2737
  },
@@ -2801,7 +2739,7 @@
2801
2739
  "id": "com.framers.research.citation-check",
2802
2740
  "name": "Citation Check",
2803
2741
  "package": "@framers/agentos-ext-citation-check",
2804
- "version": "0.1.2",
2742
+ "version": "0.1.3",
2805
2743
  "category": "research",
2806
2744
  "path": "registry/curated/research/citation-check",
2807
2745
  "description": "Checks the quoted claims of a document against the pages they cite, with AgentOS's citation tooling: word for word first, then by embeddings when a model is configured",
@@ -2823,7 +2761,7 @@
2823
2761
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-citation-check",
2824
2762
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/research/citation-check",
2825
2763
  "verified": true,
2826
- "verifiedAt": "2026-10-22T04:19:48.241Z",
2764
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2827
2765
  "verificationChecklistVersion": "1.0.0",
2828
2766
  "downloads": 0
2829
2767
  },
@@ -2831,7 +2769,7 @@
2831
2769
  "id": "com.framers.tools.citation-verifier",
2832
2770
  "name": "Citation Verifier",
2833
2771
  "package": "@framers/agentos-ext-citation-verifier",
2834
- "version": "0.1.2",
2772
+ "version": "0.1.3",
2835
2773
  "category": "research",
2836
2774
  "path": "registry/curated/research/citation-verifier",
2837
2775
  "description": "DEPRECATED — thin tool wrapper around the first-class @framers/agentos CitationVerifier. Kept for backwards compatibility.",
@@ -2856,7 +2794,7 @@
2856
2794
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-citation-verifier",
2857
2795
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/research/citation-verifier",
2858
2796
  "verified": true,
2859
- "verifiedAt": "2026-10-18T17:11:31.345Z",
2797
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
2860
2798
  "verificationChecklistVersion": "1.0.0",
2861
2799
  "downloads": 0
2862
2800
  },
@@ -3230,7 +3168,7 @@
3230
3168
  "id": "com.framers.safety.ml-classifiers",
3231
3169
  "name": "ML-based content classifiers for AgentOS — toxicity, prompt injection, and NSFW detection via ONNX models or LLM fallback",
3232
3170
  "package": "@framers/agentos-ext-ml-classifiers",
3233
- "version": "0.2.1",
3171
+ "version": "0.3.2",
3234
3172
  "category": "safety",
3235
3173
  "path": "registry/curated/safety/ml-classifiers",
3236
3174
  "description": "ML-based content classifiers for AgentOS — toxicity, prompt injection, and NSFW detection via ONNX models or LLM fallback",
@@ -3241,7 +3179,7 @@
3241
3179
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-ml-classifiers",
3242
3180
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/safety/ml-classifiers",
3243
3181
  "verified": true,
3244
- "verifiedAt": "2026-10-18T17:11:31.345Z",
3182
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
3245
3183
  "verificationChecklistVersion": "1.0.0",
3246
3184
  "downloads": 0
3247
3185
  },
@@ -3249,7 +3187,7 @@
3249
3187
  "id": "com.framers.safety.topicality",
3250
3188
  "name": "Topic enforcement guardrail for AgentOS — embedding-based on/off-topic detection with LLM fallback",
3251
3189
  "package": "@framers/agentos-ext-topicality",
3252
- "version": "0.2.1",
3190
+ "version": "0.2.3",
3253
3191
  "category": "safety",
3254
3192
  "path": "registry/curated/safety/topicality",
3255
3193
  "description": "Topic enforcement guardrail for AgentOS — embedding-based on/off-topic detection with LLM fallback",
@@ -3260,7 +3198,7 @@
3260
3198
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-topicality",
3261
3199
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/safety/topicality",
3262
3200
  "verified": true,
3263
- "verifiedAt": "2026-10-18T17:11:31.345Z",
3201
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
3264
3202
  "verificationChecklistVersion": "1.0.0",
3265
3203
  "downloads": 0
3266
3204
  },
@@ -3381,10 +3319,10 @@
3381
3319
  "id": "com.framers.system.operations",
3382
3320
  "name": "Operations",
3383
3321
  "package": "@framers/agentos-ext-operations",
3384
- "version": "0.1.0",
3322
+ "version": "0.2.0",
3385
3323
  "category": "system",
3386
3324
  "path": "registry/curated/system/operations",
3387
- "description": "Operations records in a product's own database through the SQL storage adapter: a log table with search, an events table with daily totals over the product's figures, and the jobs that keep them, under a table prefix of its own. Support requests, error capture and health checks are typed stubs until the next minor release.",
3325
+ "description": "Operations records in a product's own database through the SQL storage adapter: support requests with a per-request anonymous id, a live stream, mail and bell outboxes, pictures, deletions and an export; a log table with search; an events table with daily totals over the product's figures; and the jobs that keep them, under a table prefix of its own. Error capture and health checks are typed stubs until the next minor release.",
3388
3326
  "author": {
3389
3327
  "name": "Frame",
3390
3328
  "email": "team@frame.dev",
@@ -3395,8 +3333,9 @@
3395
3333
  "Logs: the lines the product already writes, checked against the keys it declares, kept 14 days and searched by kind, path, status, process and time",
3396
3334
  "Events: counts by kind and plan with the time cut to the hour, kept 90 days, and daily totals of the product's figures by day and by plan, kept two years, with a funnel, retention by sign-up cohort and revenue against cost",
3397
3335
  "A field rule every line and event is checked against: a closed list of keys the product declares, with refusals counted and never stored",
3398
- "Shared jobs under try-locks: the nightly totals at 00:20 UTC and an hourly sweep of every retention",
3399
- "Support requests, error capture and health checks: their tables and types ship now, and their functions throw not_built until the next minor release",
3336
+ "Shared jobs under try-locks: the nightly totals at 00:20 UTC and an hourly sweep that resolves and closes requests by their silence and runs every retention",
3337
+ "Support requests: a thread a person opens from the app and staff work from the admin, each request under an anonymous id of its own, with a live stream, mail to a person who has not read a reply, the product's bell, pictures decoded and written again as WebP with no metadata, links to token paths cut before they are stored, deletion of one request or a whole account, and an export as a zip",
3338
+ "Error capture and health checks: their tables and types ship now, and their functions throw not_built until the next minor release",
3400
3339
  "An adoption guide in the README for the next product"
3401
3340
  ],
3402
3341
  "tools": [
@@ -3414,7 +3353,7 @@
3414
3353
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-operations",
3415
3354
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/system/operations",
3416
3355
  "verified": true,
3417
- "verifiedAt": "2026-10-24T23:29:10.066Z",
3356
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
3418
3357
  "verificationChecklistVersion": "1.0.0",
3419
3358
  "downloads": 0
3420
3359
  },
@@ -3502,7 +3441,7 @@
3502
3441
  "id": "com.framers.tools.document-parser",
3503
3442
  "name": "Document Parser",
3504
3443
  "package": "@framers/agentos-ext-document-parser",
3505
- "version": "0.1.1",
3444
+ "version": "0.1.2",
3506
3445
  "category": "tools",
3507
3446
  "path": "registry/curated/tools/document-parser",
3508
3447
  "description": "A document reader over a Unix socket: PDF, Word and text files read with AgentOS's isolated loader inside a container of their own",
@@ -3525,7 +3464,7 @@
3525
3464
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-document-parser",
3526
3465
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/tools/document-parser",
3527
3466
  "verified": true,
3528
- "verifiedAt": "2026-10-24T23:29:10.066Z",
3467
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
3529
3468
  "verificationChecklistVersion": "1.0.0",
3530
3469
  "downloads": 0
3531
3470
  },
@@ -3920,7 +3859,7 @@
3920
3859
  "id": "com.framers.tools.zip-files",
3921
3860
  "name": "Zip Files",
3922
3861
  "package": "@framers/agentos-ext-zip-files",
3923
- "version": "0.1.3",
3862
+ "version": "0.1.4",
3924
3863
  "category": "tools",
3925
3864
  "path": "registry/curated/tools/zip-files",
3926
3865
  "description": "Create zip archives from local files for easy sharing via chat channels.",
@@ -3944,7 +3883,7 @@
3944
3883
  "npm": "https://www.npmjs.com/package/@framers/agentos-ext-zip-files",
3945
3884
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/tools/zip-files",
3946
3885
  "verified": true,
3947
- "verifiedAt": "2026-10-22T04:19:48.241Z",
3886
+ "verifiedAt": "2026-10-31T11:04:37.896Z",
3948
3887
  "verificationChecklistVersion": "1.0.0",
3949
3888
  "downloads": 0
3950
3889
  },
@@ -4325,32 +4264,14 @@
4325
4264
  "path": "templates/basic-tool",
4326
4265
  "description": "Template for creating AgentOS extensions",
4327
4266
  "repository": "https://github.com/framerslab/agentos-extensions/tree/master/templates/basic-tool"
4328
- },
4329
- {
4330
- "id": "com.framers.template.guardrail",
4331
- "name": "Template for creating guardrail AgentOS extensions",
4332
- "package": "@framers/agentos-template-guardrail",
4333
- "version": "1.0.0",
4334
- "path": "templates/guardrail",
4335
- "description": "Template for creating guardrail AgentOS extensions",
4336
- "repository": "https://github.com/framerslab/agentos-extensions/tree/master/templates/guardrail"
4337
- },
4338
- {
4339
- "id": "com.framers.template.multi-tool",
4340
- "name": "Template for creating multi-tool AgentOS extensions",
4341
- "package": "@framers/agentos-template-multi-tool",
4342
- "version": "1.0.0",
4343
- "path": "templates/multi-tool",
4344
- "description": "Template for creating multi-tool AgentOS extensions",
4345
- "repository": "https://github.com/framerslab/agentos-extensions/tree/master/templates/multi-tool"
4346
4267
  }
4347
4268
  ]
4348
4269
  },
4349
4270
  "stats": {
4350
- "totalExtensions": 126,
4351
- "curatedCount": 123,
4271
+ "totalExtensions": 122,
4272
+ "curatedCount": 121,
4352
4273
  "communityCount": 0,
4353
- "templateCount": 3,
4274
+ "templateCount": 1,
4354
4275
  "totalDownloads": 0
4355
4276
  }
4356
4277
  }