@opentabs-dev/opentabs-plugin-onenote 0.0.76 → 0.0.78
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 +42 -134
- package/dist/adapter.iife.js +4 -2
- package/dist/adapter.iife.js.map +2 -2
- package/dist/tools.json +1 -1
- package/package.json +10 -4
package/README.md
CHANGED
|
@@ -1,159 +1,67 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Microsoft OneNote
|
|
2
2
|
|
|
3
|
-
OpenTabs plugin for Microsoft OneNote
|
|
3
|
+
OpenTabs plugin for Microsoft OneNote — gives AI agents access to Microsoft OneNote through your authenticated browser session.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
|
+
```bash
|
|
8
|
+
opentabs plugin install onenote
|
|
7
9
|
```
|
|
8
|
-
onenote/
|
|
9
|
-
├── package.json # Plugin metadata (name, opentabs field, dependencies)
|
|
10
|
-
├── icon.svg # Optional custom icon (square SVG, max 8KB)
|
|
11
|
-
├── icon-inactive.svg # Optional manual inactive icon override
|
|
12
|
-
├── src/
|
|
13
|
-
│ ├── index.ts # Plugin class (extends OpenTabsPlugin)
|
|
14
|
-
│ └── tools/ # One file per tool (using defineTool)
|
|
15
|
-
│ └── example.ts
|
|
16
|
-
└── dist/ # Build output (generated)
|
|
17
|
-
├── adapter.iife.js # Bundled adapter injected into matching tabs
|
|
18
|
-
└── tools.json # Tool schemas for MCP registration
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Configuration
|
|
22
|
-
|
|
23
|
-
Plugin metadata is defined in `package.json` under the `opentabs` field:
|
|
24
|
-
|
|
25
|
-
```json
|
|
26
|
-
{
|
|
27
|
-
"name": "opentabs-plugin-onenote",
|
|
28
|
-
"main": "dist/adapter.iife.js",
|
|
29
|
-
"opentabs": {
|
|
30
|
-
"displayName": "Microsoft OneNote",
|
|
31
|
-
"description": "OpenTabs plugin for Microsoft OneNote",
|
|
32
|
-
"urlPatterns": ["*://*.onenote.cloud.microsoft/*"]
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
- **`main`** — entry point for the bundled adapter IIFE
|
|
38
|
-
- **`opentabs.displayName`** — human-readable name shown in the side panel
|
|
39
|
-
- **`opentabs.description`** — short description of what the plugin does
|
|
40
|
-
- **`opentabs.urlPatterns`** — Chrome match patterns for tabs where the adapter is injected
|
|
41
|
-
|
|
42
|
-
## Custom Icons
|
|
43
|
-
|
|
44
|
-
By default, the side panel shows a colored letter avatar for your plugin. To use a custom icon, place an `icon.svg` file in the plugin root (next to `package.json`):
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
onenote/
|
|
48
|
-
├── package.json
|
|
49
|
-
├── icon.svg ← custom icon (optional)
|
|
50
|
-
├── icon-inactive.svg ← manual inactive override (optional, requires icon.svg)
|
|
51
|
-
├── src/
|
|
52
|
-
│ └── ...
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**How it works:**
|
|
56
|
-
|
|
57
|
-
- `opentabs-plugin build` reads `icon.svg`, validates it, auto-generates a grayscale inactive variant, and embeds both in `dist/tools.json`
|
|
58
|
-
- To override the auto-generated inactive icon, provide `icon-inactive.svg` (must use only grayscale colors)
|
|
59
|
-
- If no `icon.svg` is provided, the letter avatar is used automatically
|
|
60
|
-
|
|
61
|
-
**Icon requirements:**
|
|
62
10
|
|
|
63
|
-
|
|
64
|
-
- Maximum 8 KB file size
|
|
65
|
-
- No embedded `<image>`, `<script>`, or event handler attributes (`onclick`, etc.)
|
|
66
|
-
- Manual `icon-inactive.svg` must use only achromatic (grayscale) colors
|
|
67
|
-
|
|
68
|
-
## Development
|
|
11
|
+
Or install globally via npm:
|
|
69
12
|
|
|
70
13
|
```bash
|
|
71
|
-
npm install
|
|
72
|
-
npm run build # tsc && opentabs-plugin build
|
|
73
|
-
npm run dev # watch mode (tsc --watch + opentabs-plugin build --watch)
|
|
74
|
-
npm run type-check # tsc --noEmit
|
|
75
|
-
npm run lint # biome
|
|
14
|
+
npm install -g @opentabs-dev/opentabs-plugin-onenote
|
|
76
15
|
```
|
|
77
16
|
|
|
78
|
-
##
|
|
79
|
-
|
|
80
|
-
Create a new file in `src/tools/` using `defineTool`:
|
|
81
|
-
|
|
82
|
-
```ts
|
|
83
|
-
import { z } from 'zod';
|
|
84
|
-
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
85
|
-
|
|
86
|
-
export const myTool = defineTool({
|
|
87
|
-
name: 'my_tool',
|
|
88
|
-
displayName: 'My Tool',
|
|
89
|
-
description: 'What this tool does',
|
|
90
|
-
icon: 'wrench',
|
|
91
|
-
input: z.object({ /* ... */ }),
|
|
92
|
-
output: z.object({ /* ... */ }),
|
|
93
|
-
handle: async (params) => {
|
|
94
|
-
// Tool implementation runs in the browser tab context
|
|
95
|
-
return { /* ... */ };
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
```
|
|
17
|
+
## Setup
|
|
99
18
|
|
|
100
|
-
|
|
19
|
+
1. Open [onenote.cloud.microsoft](https://onenote.cloud.microsoft/) in Chrome and log in
|
|
20
|
+
2. Open the OpenTabs side panel — the Microsoft OneNote plugin should appear as **ready**
|
|
101
21
|
|
|
102
|
-
##
|
|
22
|
+
## Tools (12)
|
|
103
23
|
|
|
104
|
-
|
|
24
|
+
### Notebooks (4)
|
|
105
25
|
|
|
106
|
-
|
|
107
|
-
|
|
26
|
+
| Tool | Description | Type |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `list_notebooks` | List all OneNote notebooks | Read |
|
|
29
|
+
| `get_notebook` | Get a notebook by ID | Read |
|
|
30
|
+
| `create_notebook` | Create a new notebook | Write |
|
|
31
|
+
| `get_recent_notebooks` | Get recently accessed notebooks | Read |
|
|
108
32
|
|
|
109
|
-
|
|
110
|
-
const token = getLocalStorage('token');
|
|
33
|
+
### Sections (3)
|
|
111
34
|
|
|
112
|
-
|
|
113
|
-
|
|
35
|
+
| Tool | Description | Type |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `list_sections` | List sections in a notebook or across all notebooks | Read |
|
|
38
|
+
| `get_section` | Get a section by ID | Read |
|
|
39
|
+
| `create_section` | Create a new section in a notebook | Write |
|
|
114
40
|
|
|
115
|
-
|
|
116
|
-
const appState = getPageGlobal('__APP_STATE__');
|
|
117
|
-
```
|
|
41
|
+
### Section Groups (3)
|
|
118
42
|
|
|
119
|
-
|
|
43
|
+
| Tool | Description | Type |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `list_section_groups` | List section groups in a notebook or across all notebooks | Read |
|
|
46
|
+
| `get_section_group` | Get a section group by ID | Read |
|
|
47
|
+
| `create_section_group` | Create a section group in a notebook | Write |
|
|
120
48
|
|
|
121
|
-
|
|
49
|
+
### Pages (1)
|
|
122
50
|
|
|
123
|
-
|
|
51
|
+
| Tool | Description | Type |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `create_page` | Create a new page in a section with HTML content | Write |
|
|
124
54
|
|
|
125
|
-
|
|
55
|
+
### Account (1)
|
|
126
56
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
57
|
+
| Tool | Description | Type |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `get_current_user` | Get the current user profile | Read |
|
|
130
60
|
|
|
131
|
-
|
|
132
|
-
id: z.string().describe('Channel ID'),
|
|
133
|
-
name: z.string().describe('Channel name'),
|
|
134
|
-
});
|
|
61
|
+
## How It Works
|
|
135
62
|
|
|
136
|
-
|
|
137
|
-
```
|
|
63
|
+
This plugin runs inside your Microsoft OneNote tab through the [OpenTabs](https://opentabs.dev) Chrome extension. It uses your existing browser session — no API tokens or OAuth apps required. All operations happen as you, with your permissions.
|
|
138
64
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
```ts
|
|
142
|
-
// src/tools/list-channels.ts
|
|
143
|
-
import { channelSchema } from '../schemas/channel.js';
|
|
144
|
-
|
|
145
|
-
export const listChannels = defineTool({
|
|
146
|
-
name: 'list_channels',
|
|
147
|
-
displayName: 'List Channels',
|
|
148
|
-
description: 'List all available channels',
|
|
149
|
-
icon: 'list',
|
|
150
|
-
input: z.object({}),
|
|
151
|
-
output: z.object({ channels: z.array(channelSchema) }),
|
|
152
|
-
handle: async () => {
|
|
153
|
-
// ...
|
|
154
|
-
return { channels: [] };
|
|
155
|
-
},
|
|
156
|
-
});
|
|
157
|
-
```
|
|
65
|
+
## License
|
|
158
66
|
|
|
159
|
-
|
|
67
|
+
MIT
|
package/dist/adapter.iife.js
CHANGED
|
@@ -345,6 +345,8 @@
|
|
|
345
345
|
* (e.g., 'https://github.com'), not a match pattern.
|
|
346
346
|
*/
|
|
347
347
|
homepage;
|
|
348
|
+
/** Typed configuration schema — declares settings that users provide via config.json or the side panel. */
|
|
349
|
+
configSchema;
|
|
348
350
|
};
|
|
349
351
|
|
|
350
352
|
// src/onenote-api.ts
|
|
@@ -14658,7 +14660,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14658
14660
|
};
|
|
14659
14661
|
var src_default = new OneNotePlugin();
|
|
14660
14662
|
|
|
14661
|
-
// dist/
|
|
14663
|
+
// dist/_adapter_entry_5442000b-2d96-4856-aef2-681775e39cd7.ts
|
|
14662
14664
|
if (!globalThis.__openTabs) {
|
|
14663
14665
|
globalThis.__openTabs = {};
|
|
14664
14666
|
} else {
|
|
@@ -14874,5 +14876,5 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14874
14876
|
};
|
|
14875
14877
|
delete src_default.onDeactivate;
|
|
14876
14878
|
}
|
|
14877
|
-
})();(function(){var o=(globalThis).__openTabs;if(o&&o.adapters&&o.adapters["onenote"]){var a=o.adapters["onenote"];a.__adapterHash="
|
|
14879
|
+
})();(function(){var o=(globalThis).__openTabs;if(o&&o.adapters&&o.adapters["onenote"]){var a=o.adapters["onenote"];a.__adapterHash="122d1d9ae919d0558bed2a7d8d4ccd66b802bad9226e65bf153d8e2daca13aa7";if(a.tools&&Array.isArray(a.tools)){for(var i=0;i<a.tools.length;i++){Object.freeze(a.tools[i]);}Object.freeze(a.tools);}Object.freeze(a);Object.defineProperty(o.adapters,"onenote",{value:a,writable:false,configurable:false,enumerable:true});Object.defineProperty(o,"adapters",{value:o.adapters,writable:false,configurable:false});}})();
|
|
14878
14880
|
//# sourceMappingURL=adapter.iife.js.map
|