@marsbdigital/paperclip-content-sprint-plugin 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  npm package **`@marsbdigital/paperclip-content-sprint-plugin`** — generates five structured social posts from product context (two authority, two engagement, one conversion) for **LinkedIn** or **X (Twitter)**.
4
4
 
5
+ **Latest release:** `0.1.3` — labeled form fields, `id`/`htmlFor`, modal `aria-labelledby`, and explicit light-theme colors for readable UI on dark Paperclip shells. Upgrade from `0.1.1` / `0.1.2` via Install Plugin or reinstall the package.
6
+
5
7
  ## Paperclip manifest id
6
8
 
7
9
  The host requires plugin ids to match `^[a-z0-9][a-z0-9._-]*$`. This plugin’s manifest id is **`marsbdigital.paperclip-content-sprint-plugin`** (see `plugin.json`). The scoped npm name stays **`@marsbdigital/paperclip-content-sprint-plugin`**.
@@ -20,6 +22,15 @@ This manifest does **not** set `minimumHostVersion`. That field is optional; off
20
22
  | `src/ui/ToolbarButton.tsx` | `globalToolbarButton` slot — **⚡ Content Sprint** |
21
23
  | `src/ui/ContentSprintPanel.tsx` | `dashboardWidget` — form, generate, loading, output |
22
24
 
25
+ ## Where the UI appears (important)
26
+
27
+ **Instance Settings → Plugins** (and most operator / “settings-only” layouts) usually use a **different shell** than the main company workspace. The **`globalToolbarButton`** slot is wired to the **main app top bar** (the strip with breadcrumbs such as `Company > …`), not to the Plugin Manager screen.
28
+
29
+ - **⚡ Content Sprint (`globalToolbarButton`)** — Open a **company workspace** route (e.g. **Dashboard**, **Issues**, **Projects**, **Goals**) and check the **top bar** next to breadcrumbs. You should **not** expect this button on **Settings → Plugins** or other instance-admin pages that omit that chrome.
30
+ - **Content Sprint AI (`dashboardWidget`)** — Renders on the **company Dashboard** as a card/widget, not on the Plugin Manager list.
31
+
32
+ Official examples: [Hello World](https://github.com/paperclipai/paperclip/blob/master/packages/plugins/examples/plugin-hello-world-example/src/manifest.ts) only registers **`dashboardWidget`**. [Kitchen Sink](https://github.com/paperclipai/paperclip/blob/master/packages/plugins/examples/plugin-kitchen-sink-example/src/manifest.ts) registers **`toolbarButton`** on **project/issue** pages but does **not** use **`globalToolbarButton`**. This plugin’s manifest declares `exportName: "ToolbarButton"`, which matches `export { ToolbarButton }` from `src/ui/index.tsx`.
33
+
23
34
  ## Scripts
24
35
 
25
36
  ```bash
package/dist/manifest.js CHANGED
@@ -2,7 +2,7 @@
2
2
  var plugin_default = {
3
3
  id: "marsbdigital.paperclip-content-sprint-plugin",
4
4
  apiVersion: 1,
5
- version: "0.1.1",
5
+ version: "0.1.3",
6
6
  displayName: "Content Sprint AI",
7
7
  description: "Generate five structured social posts (authority, engagement, conversion) from product context for LinkedIn or X.",
8
8
  author: "Mars B Digital",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../plugin.json", "../src/manifest.ts"],
4
- "sourcesContent": ["{\n \"id\": \"marsbdigital.paperclip-content-sprint-plugin\",\n \"apiVersion\": 1,\n \"version\": \"0.1.1\",\n \"displayName\": \"Content Sprint AI\",\n \"description\": \"Generate five structured social posts (authority, engagement, conversion) from product context for LinkedIn or X.\",\n \"author\": \"Mars B Digital\",\n \"categories\": [\"automation\", \"ui\"],\n \"capabilities\": [\n \"agent.tools.register\",\n \"jobs.schedule\",\n \"ui.action.register\",\n \"ui.dashboardWidget.register\"\n ],\n \"entrypoints\": {\n \"worker\": \"dist/index.js\",\n \"ui\": \"dist/ui\"\n },\n \"tools\": [\n {\n \"name\": \"generate_content_batch\",\n \"displayName\": \"Generate content batch\",\n \"description\": \"Creates five social posts (2 authority, 2 engagement, 1 conversion) from product name, description, audience, and platform.\",\n \"parametersSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"productName\": { \"type\": \"string\", \"description\": \"Product or offer name\" },\n \"productDescription\": { \"type\": \"string\", \"description\": \"What the product does and why it matters\" },\n \"targetAudience\": { \"type\": \"string\", \"description\": \"Who you are writing for\" },\n \"platform\": {\n \"type\": \"string\",\n \"enum\": [\"linkedin\", \"twitter\"],\n \"description\": \"Target network\"\n }\n },\n \"required\": [\"productName\", \"productDescription\", \"targetAudience\", \"platform\"]\n }\n }\n ],\n \"jobs\": [\n {\n \"jobKey\": \"run_content_sprint\",\n \"displayName\": \"Run content sprint\",\n \"description\": \"Generates a sample batch using placeholder product input (for demos and smoke tests).\",\n \"schedule\": \"0 9 * * 1\"\n }\n ],\n \"ui\": {\n \"slots\": [\n {\n \"type\": \"globalToolbarButton\",\n \"id\": \"content-sprint-toolbar\",\n \"displayName\": \"Content Sprint\",\n \"exportName\": \"ToolbarButton\"\n },\n {\n \"type\": \"dashboardWidget\",\n \"id\": \"content-sprint-dashboard\",\n \"displayName\": \"Content Sprint AI\",\n \"exportName\": \"ContentSprintPanel\"\n }\n ]\n }\n}\n", "import type { PaperclipPluginManifestV1 } from \"@paperclipai/shared\";\nimport manifestJson from \"../plugin.json\" with { type: \"json\" };\n\nconst manifest = manifestJson as PaperclipPluginManifestV1;\n\nexport default manifest;\n"],
4
+ "sourcesContent": ["{\n \"id\": \"marsbdigital.paperclip-content-sprint-plugin\",\n \"apiVersion\": 1,\n \"version\": \"0.1.3\",\n \"displayName\": \"Content Sprint AI\",\n \"description\": \"Generate five structured social posts (authority, engagement, conversion) from product context for LinkedIn or X.\",\n \"author\": \"Mars B Digital\",\n \"categories\": [\"automation\", \"ui\"],\n \"capabilities\": [\n \"agent.tools.register\",\n \"jobs.schedule\",\n \"ui.action.register\",\n \"ui.dashboardWidget.register\"\n ],\n \"entrypoints\": {\n \"worker\": \"dist/index.js\",\n \"ui\": \"dist/ui\"\n },\n \"tools\": [\n {\n \"name\": \"generate_content_batch\",\n \"displayName\": \"Generate content batch\",\n \"description\": \"Creates five social posts (2 authority, 2 engagement, 1 conversion) from product name, description, audience, and platform.\",\n \"parametersSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"productName\": { \"type\": \"string\", \"description\": \"Product or offer name\" },\n \"productDescription\": { \"type\": \"string\", \"description\": \"What the product does and why it matters\" },\n \"targetAudience\": { \"type\": \"string\", \"description\": \"Who you are writing for\" },\n \"platform\": {\n \"type\": \"string\",\n \"enum\": [\"linkedin\", \"twitter\"],\n \"description\": \"Target network\"\n }\n },\n \"required\": [\"productName\", \"productDescription\", \"targetAudience\", \"platform\"]\n }\n }\n ],\n \"jobs\": [\n {\n \"jobKey\": \"run_content_sprint\",\n \"displayName\": \"Run content sprint\",\n \"description\": \"Generates a sample batch using placeholder product input (for demos and smoke tests).\",\n \"schedule\": \"0 9 * * 1\"\n }\n ],\n \"ui\": {\n \"slots\": [\n {\n \"type\": \"globalToolbarButton\",\n \"id\": \"content-sprint-toolbar\",\n \"displayName\": \"Content Sprint\",\n \"exportName\": \"ToolbarButton\"\n },\n {\n \"type\": \"dashboardWidget\",\n \"id\": \"content-sprint-dashboard\",\n \"displayName\": \"Content Sprint AI\",\n \"exportName\": \"ContentSprintPanel\"\n }\n ]\n }\n}\n", "import type { PaperclipPluginManifestV1 } from \"@paperclipai/shared\";\nimport manifestJson from \"../plugin.json\" with { type: \"json\" };\n\nconst manifest = manifestJson as PaperclipPluginManifestV1;\n\nexport default manifest;\n"],
5
5
  "mappings": ";AAAA;AAAA,EACE,IAAM;AAAA,EACN,YAAc;AAAA,EACd,SAAW;AAAA,EACX,aAAe;AAAA,EACf,aAAe;AAAA,EACf,QAAU;AAAA,EACV,YAAc,CAAC,cAAc,IAAI;AAAA,EACjC,cAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,aAAe;AAAA,IACb,QAAU;AAAA,IACV,IAAM;AAAA,EACR;AAAA,EACA,OAAS;AAAA,IACP;AAAA,MACE,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,aAAe;AAAA,MACf,kBAAoB;AAAA,QAClB,MAAQ;AAAA,QACR,YAAc;AAAA,UACZ,aAAe,EAAE,MAAQ,UAAU,aAAe,wBAAwB;AAAA,UAC1E,oBAAsB,EAAE,MAAQ,UAAU,aAAe,2CAA2C;AAAA,UACpG,gBAAkB,EAAE,MAAQ,UAAU,aAAe,0BAA0B;AAAA,UAC/E,UAAY;AAAA,YACV,MAAQ;AAAA,YACR,MAAQ,CAAC,YAAY,SAAS;AAAA,YAC9B,aAAe;AAAA,UACjB;AAAA,QACF;AAAA,QACA,UAAY,CAAC,eAAe,sBAAsB,kBAAkB,UAAU;AAAA,MAChF;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAQ;AAAA,IACN;AAAA,MACE,QAAU;AAAA,MACV,aAAe;AAAA,MACf,aAAe;AAAA,MACf,UAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,IAAM;AAAA,IACJ,OAAS;AAAA,MACP;AAAA,QACE,MAAQ;AAAA,QACR,IAAM;AAAA,QACN,aAAe;AAAA,QACf,YAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,MAAQ;AAAA,QACR,IAAM;AAAA,QACN,aAAe;AAAA,QACf,YAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF;;;AC5DA,IAAM,WAAW;AAEjB,IAAO,mBAAQ;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marsbdigital/paperclip-content-sprint-plugin",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Content Sprint AI — generate a batch of social posts from product context for Paperclip.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "marsbdigital.paperclip-content-sprint-plugin",
3
3
  "apiVersion": 1,
4
- "version": "0.1.1",
4
+ "version": "0.1.3",
5
5
  "displayName": "Content Sprint AI",
6
6
  "description": "Generate five structured social posts (authority, engagement, conversion) from product context for LinkedIn or X.",
7
7
  "author": "Mars B Digital",