@aaronsb/google-workspace-mcp 2.6.1 → 2.7.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.
- package/README.md +2 -2
- package/build/__tests__/factory/calendar-patch.test.js +79 -0
- package/build/__tests__/factory/calendar-patch.test.js.map +1 -1
- package/build/__tests__/factory/drive-patch.test.js +224 -0
- package/build/__tests__/factory/drive-patch.test.js.map +1 -1
- package/build/__tests__/factory/sheets-patch.test.js +71 -6
- package/build/__tests__/factory/sheets-patch.test.js.map +1 -1
- package/build/__tests__/server/formatting/html-sanitize.test.d.ts +7 -0
- package/build/__tests__/server/formatting/html-sanitize.test.js +174 -0
- package/build/__tests__/server/formatting/html-sanitize.test.js.map +1 -0
- package/build/__tests__/server/formatting/markdown.test.js +55 -0
- package/build/__tests__/server/formatting/markdown.test.js.map +1 -1
- package/build/__tests__/server/handlers/calendar.test.js +2 -1
- package/build/__tests__/server/handlers/calendar.test.js.map +1 -1
- package/build/executor/gws.js +41 -20
- package/build/executor/gws.js.map +1 -1
- package/build/factory/generator.d.ts +11 -3
- package/build/factory/generator.js +41 -16
- package/build/factory/generator.js.map +1 -1
- package/build/factory/manifest/README.md +12 -0
- package/build/factory/manifest/calendar.yaml +204 -0
- package/build/factory/manifest/docs.yaml +77 -0
- package/build/factory/manifest/drive.yaml +314 -0
- package/build/factory/manifest/gmail.yaml +272 -0
- package/build/factory/manifest/meet.yaml +159 -0
- package/build/factory/manifest/sheets.yaml +225 -0
- package/build/factory/manifest/tasks.yaml +137 -0
- package/build/factory/registry.d.ts +3 -3
- package/build/factory/registry.js +5 -5
- package/build/factory/registry.js.map +1 -1
- package/build/factory/types.d.ts +6 -0
- package/build/server/formatting/html-sanitize.d.ts +40 -0
- package/build/server/formatting/html-sanitize.js +146 -0
- package/build/server/formatting/html-sanitize.js.map +1 -0
- package/build/server/formatting/markdown.d.ts +13 -3
- package/build/server/formatting/markdown.js +33 -6
- package/build/server/formatting/markdown.js.map +1 -1
- package/build/server/handlers/calendar.js +1 -1
- package/build/server/handlers/calendar.js.map +1 -1
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.d.ts +11 -0
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.js +187 -0
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.js.map +1 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.d.ts +16 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.js +213 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.js.map +1 -0
- package/build/server/scratchpad/adapters/import-doc.js +6 -3
- package/build/server/scratchpad/adapters/import-doc.js.map +1 -1
- package/build/server/scratchpad/adapters/send-calendar.js +1 -1
- package/build/server/scratchpad/adapters/send-calendar.js.map +1 -1
- package/build/server/scratchpad/docs-sync.d.ts +65 -0
- package/build/server/scratchpad/docs-sync.js +191 -0
- package/build/server/scratchpad/docs-sync.js.map +1 -0
- package/build/server/scratchpad/handler.js +95 -14
- package/build/server/scratchpad/handler.js.map +1 -1
- package/build/server/scratchpad/manager.d.ts +7 -0
- package/build/server/scratchpad/manager.js.map +1 -1
- package/build/services/calendar/patch.js +72 -1
- package/build/services/calendar/patch.js.map +1 -1
- package/build/services/drive/patch.js +170 -0
- package/build/services/drive/patch.js.map +1 -1
- package/build/services/gmail/patch.js +7 -2
- package/build/services/gmail/patch.js.map +1 -1
- package/build/services/sheets/patch.js +57 -6
- package/build/services/sheets/patch.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/package.json +4 -2
- package/build/factory/manifest.yaml +0 -1383
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gws.js","sourceRoot":"","sources":["../../src/executor/gws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAgB9D,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,2DAA2D;AAC5F,MAAM,aAAa,GAAG,MAAM,CAAC,CAAG,4CAA4C;AAC5C,mEAAmE;AAEnG,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"gws.js","sourceRoot":"","sources":["../../src/executor/gws.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,18 @@ import type { Manifest, ServiceDef, ServicePatch, GeneratedTool, GeneratedToolSc
|
|
|
11
11
|
/** Called by registry.ts to inject the ESM module directory. */
|
|
12
12
|
export declare function setModuleDir(dir: string): void;
|
|
13
13
|
/**
|
|
14
|
-
* Load
|
|
15
|
-
*
|
|
14
|
+
* Load the manifest from `src/factory/manifest/` — one YAML file per service,
|
|
15
|
+
* each file's root being that service's definition; the filename (minus
|
|
16
|
+
* `.yaml`) is the service key (ADR-304). Assembles a `Manifest` with the same
|
|
17
|
+
* shape the old single-file `manifest.yaml` produced.
|
|
18
|
+
*
|
|
19
|
+
* A malformed file fails the whole load (parseYaml throws) — same whole-or-
|
|
20
|
+
* nothing behavior as before the split.
|
|
21
|
+
*
|
|
22
|
+
* @param dir Optional explicit manifest directory (used by tests/tools);
|
|
23
|
+
* otherwise resolved relative to the built output, then cwd.
|
|
16
24
|
*/
|
|
17
|
-
export declare function loadManifest(
|
|
25
|
+
export declare function loadManifest(dir?: string): Manifest;
|
|
18
26
|
/** Generate all tools from the manifest with optional patches. */
|
|
19
27
|
export declare function generateTools(manifest: Manifest, patches?: Record<string, ServicePatch>): GeneratedTool[];
|
|
20
28
|
/** Generate the JSON Schema tool definition from a service declaration. */
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Patches are optional per-service hooks that override default behavior.
|
|
9
9
|
*/
|
|
10
|
-
import { readFileSync } from 'node:fs';
|
|
11
|
-
import { resolve } from 'node:path';
|
|
10
|
+
import { readFileSync, readdirSync } from 'node:fs';
|
|
11
|
+
import { basename, resolve } from 'node:path';
|
|
12
12
|
import { parse as parseYaml } from '../factory/yaml.js';
|
|
13
13
|
import { execute } from '../executor/gws.js';
|
|
14
14
|
import { requireEmail, clamp } from '../server/handlers/validate.js';
|
|
@@ -26,32 +26,53 @@ export function setModuleDir(dir) {
|
|
|
26
26
|
_moduleDir = dir;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Load
|
|
30
|
-
*
|
|
29
|
+
* Load the manifest from `src/factory/manifest/` — one YAML file per service,
|
|
30
|
+
* each file's root being that service's definition; the filename (minus
|
|
31
|
+
* `.yaml`) is the service key (ADR-304). Assembles a `Manifest` with the same
|
|
32
|
+
* shape the old single-file `manifest.yaml` produced.
|
|
33
|
+
*
|
|
34
|
+
* A malformed file fails the whole load (parseYaml throws) — same whole-or-
|
|
35
|
+
* nothing behavior as before the split.
|
|
36
|
+
*
|
|
37
|
+
* @param dir Optional explicit manifest directory (used by tests/tools);
|
|
38
|
+
* otherwise resolved relative to the built output, then cwd.
|
|
31
39
|
*/
|
|
32
|
-
export function loadManifest(
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
export function loadManifest(dir) {
|
|
41
|
+
const manifestDir = dir ?? resolveManifestDir();
|
|
42
|
+
const files = readdirSync(manifestDir).filter((f) => f.endsWith('.yaml')).sort();
|
|
43
|
+
if (files.length === 0) {
|
|
44
|
+
throw new Error(`No manifest files (*.yaml) found in ${manifestDir}`);
|
|
45
|
+
}
|
|
46
|
+
const services = {};
|
|
47
|
+
for (const file of files) {
|
|
48
|
+
const name = basename(file, '.yaml');
|
|
49
|
+
services[name] = parseYaml(readFileSync(resolve(manifestDir, file), 'utf-8'));
|
|
35
50
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
return { services };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Locate the manifest directory. moduleDir is injected by registry.ts using
|
|
55
|
+
* import.meta.url (ESM only); cwd fallbacks handle Jest/dev where cwd is the
|
|
56
|
+
* project root.
|
|
57
|
+
*/
|
|
58
|
+
function resolveManifestDir() {
|
|
39
59
|
const candidates = [];
|
|
40
60
|
if (_moduleDir) {
|
|
41
|
-
candidates.push(resolve(_moduleDir, 'manifest
|
|
42
|
-
candidates.push(resolve(_moduleDir, '../../src/factory/manifest
|
|
61
|
+
candidates.push(resolve(_moduleDir, 'manifest')); // build/factory/manifest/
|
|
62
|
+
candidates.push(resolve(_moduleDir, '../../src/factory/manifest')); // dev: from build/ to src/
|
|
43
63
|
}
|
|
44
|
-
candidates.push(resolve(process.cwd(), 'src/factory/manifest
|
|
45
|
-
candidates.push(resolve(process.cwd(), 'build/factory/manifest
|
|
64
|
+
candidates.push(resolve(process.cwd(), 'src/factory/manifest'));
|
|
65
|
+
candidates.push(resolve(process.cwd(), 'build/factory/manifest'));
|
|
46
66
|
for (const candidate of candidates) {
|
|
47
67
|
try {
|
|
48
|
-
|
|
68
|
+
if (readdirSync(candidate).some((f) => f.endsWith('.yaml')))
|
|
69
|
+
return candidate;
|
|
49
70
|
}
|
|
50
71
|
catch {
|
|
51
72
|
continue;
|
|
52
73
|
}
|
|
53
74
|
}
|
|
54
|
-
throw new Error(`Could not find manifest.
|
|
75
|
+
throw new Error(`Could not find the manifest directory. Searched:\n${candidates.join('\n')}`);
|
|
55
76
|
}
|
|
56
77
|
/** Generate all tools from the manifest with optional patches. */
|
|
57
78
|
export function generateTools(manifest, patches) {
|
|
@@ -212,6 +233,8 @@ function buildResourceArgs(gwsService, opDef, params) {
|
|
|
212
233
|
const gwsParams = { ...opDef.defaults };
|
|
213
234
|
if (opDef.params) {
|
|
214
235
|
for (const [paramName, paramDef] of Object.entries(opDef.params)) {
|
|
236
|
+
if (paramDef.client_only)
|
|
237
|
+
continue; // formatter-only; never reaches gws
|
|
215
238
|
const value = params[paramName];
|
|
216
239
|
const targetKey = paramDef.maps_to ?? paramName;
|
|
217
240
|
if (value !== undefined && value !== null) {
|
|
@@ -241,6 +264,8 @@ function buildHelperArgs(gwsService, opDef, params) {
|
|
|
241
264
|
// Check for required params that aren't in cli_args — those are positional
|
|
242
265
|
if (opDef.params) {
|
|
243
266
|
for (const [paramName, paramDef] of Object.entries(opDef.params)) {
|
|
267
|
+
if (paramDef.client_only)
|
|
268
|
+
continue; // formatter-only; never reaches gws
|
|
244
269
|
const value = params[paramName];
|
|
245
270
|
if (value === undefined || value === null)
|
|
246
271
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/factory/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/factory/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Service manifests
|
|
2
|
+
|
|
3
|
+
One file per service — the declarative registry for the tool factory (ADR-300, ADR-304).
|
|
4
|
+
Each file's YAML root *is* the service definition; the filename (minus `.yaml`) is the
|
|
5
|
+
service key. `loadManifest()` in `../generator.ts` enumerates this directory and assembles
|
|
6
|
+
the `Manifest`.
|
|
7
|
+
|
|
8
|
+
## Notes
|
|
9
|
+
|
|
10
|
+
- People (contacts) are supported by gws but excluded here because `gws auth login` does not
|
|
11
|
+
offer the `contacts.readonly` scope — see https://github.com/googleworkspace/cli/issues/556
|
|
12
|
+
- Meet scopes are resolved — authorize with `gws auth login -s ...,meet`.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
tool_name: manage_calendar
|
|
2
|
+
description: "List events, view agenda, check availability, or manage calendar events."
|
|
3
|
+
requires_email: true
|
|
4
|
+
gws_service: calendar
|
|
5
|
+
operations:
|
|
6
|
+
|
|
7
|
+
# --- Event viewing ---
|
|
8
|
+
|
|
9
|
+
list:
|
|
10
|
+
type: list
|
|
11
|
+
description: "upcoming events — defaults to primary calendar, use calendarId to target a specific calendar (use 'calendars' operation to discover IDs)"
|
|
12
|
+
resource: events.list
|
|
13
|
+
params:
|
|
14
|
+
calendarId:
|
|
15
|
+
type: string
|
|
16
|
+
description: "Calendar ID to query (default: 'primary'). Use 'calendars' operation to list available IDs."
|
|
17
|
+
timeMin:
|
|
18
|
+
type: string
|
|
19
|
+
description: "Start of range (ISO 8601) — defaults to today"
|
|
20
|
+
timeMax:
|
|
21
|
+
type: string
|
|
22
|
+
description: "End of range (ISO 8601)"
|
|
23
|
+
maxResults:
|
|
24
|
+
type: number
|
|
25
|
+
description: "Max events (default: 10, max: 50)"
|
|
26
|
+
default: 10
|
|
27
|
+
max: 50
|
|
28
|
+
query:
|
|
29
|
+
type: string
|
|
30
|
+
description: "Free-text search terms to filter events"
|
|
31
|
+
maps_to: q
|
|
32
|
+
defaults:
|
|
33
|
+
calendarId: primary
|
|
34
|
+
singleEvents: true
|
|
35
|
+
orderBy: startTime
|
|
36
|
+
|
|
37
|
+
agenda:
|
|
38
|
+
type: list
|
|
39
|
+
description: "today's schedule at a glance (all calendars). Returns calendarId per event for follow-up get calls."
|
|
40
|
+
helper: "+agenda"
|
|
41
|
+
params:
|
|
42
|
+
calendarId:
|
|
43
|
+
type: string
|
|
44
|
+
description: "Filter to a specific calendar name or ID"
|
|
45
|
+
days:
|
|
46
|
+
type: number
|
|
47
|
+
description: "Number of days ahead to show (default: today only)"
|
|
48
|
+
tomorrow:
|
|
49
|
+
type: boolean
|
|
50
|
+
description: "Show tomorrow's events instead of today"
|
|
51
|
+
week:
|
|
52
|
+
type: boolean
|
|
53
|
+
description: "Show this week's events"
|
|
54
|
+
|
|
55
|
+
get:
|
|
56
|
+
type: detail
|
|
57
|
+
description: "full event details by ID. For shared calendar events, calendarId is required (use agenda or list to discover it)."
|
|
58
|
+
resource: events.get
|
|
59
|
+
params:
|
|
60
|
+
calendarId:
|
|
61
|
+
type: string
|
|
62
|
+
description: "Calendar ID (default: 'primary'). Required for events on shared calendars."
|
|
63
|
+
eventId:
|
|
64
|
+
type: string
|
|
65
|
+
description: "Event ID"
|
|
66
|
+
required: true
|
|
67
|
+
defaults:
|
|
68
|
+
calendarId: primary
|
|
69
|
+
|
|
70
|
+
# --- Event management ---
|
|
71
|
+
|
|
72
|
+
create:
|
|
73
|
+
type: action
|
|
74
|
+
description: "create a new calendar event"
|
|
75
|
+
helper: "+insert"
|
|
76
|
+
params:
|
|
77
|
+
calendarId:
|
|
78
|
+
type: string
|
|
79
|
+
description: "Calendar ID (default: 'primary')"
|
|
80
|
+
summary:
|
|
81
|
+
type: string
|
|
82
|
+
description: "Event title"
|
|
83
|
+
required: true
|
|
84
|
+
start:
|
|
85
|
+
type: string
|
|
86
|
+
description: "Start time (ISO 8601)"
|
|
87
|
+
required: true
|
|
88
|
+
end:
|
|
89
|
+
type: string
|
|
90
|
+
description: "End time (ISO 8601)"
|
|
91
|
+
required: true
|
|
92
|
+
description:
|
|
93
|
+
type: string
|
|
94
|
+
description: "Event description or notes"
|
|
95
|
+
location:
|
|
96
|
+
type: string
|
|
97
|
+
description: "Event location"
|
|
98
|
+
attendees:
|
|
99
|
+
type: string
|
|
100
|
+
description: "Comma-separated attendee emails"
|
|
101
|
+
meet:
|
|
102
|
+
type: boolean
|
|
103
|
+
description: "Add a Google Meet video conference link to the event"
|
|
104
|
+
cli_args:
|
|
105
|
+
calendarId: "--calendar"
|
|
106
|
+
summary: "--summary"
|
|
107
|
+
start: "--start"
|
|
108
|
+
end: "--end"
|
|
109
|
+
description: "--description"
|
|
110
|
+
location: "--location"
|
|
111
|
+
attendees: "--attendee"
|
|
112
|
+
|
|
113
|
+
quickAdd:
|
|
114
|
+
type: action
|
|
115
|
+
description: "create event from natural language (e.g. 'Lunch with Alice tomorrow at noon')"
|
|
116
|
+
resource: events.quickAdd
|
|
117
|
+
params:
|
|
118
|
+
calendarId:
|
|
119
|
+
type: string
|
|
120
|
+
description: "Calendar ID (default: 'primary')"
|
|
121
|
+
text:
|
|
122
|
+
type: string
|
|
123
|
+
description: "Natural language event description"
|
|
124
|
+
required: true
|
|
125
|
+
defaults:
|
|
126
|
+
calendarId: primary
|
|
127
|
+
|
|
128
|
+
update:
|
|
129
|
+
type: action
|
|
130
|
+
description: "update an existing event (patch semantics — only changed fields needed)"
|
|
131
|
+
resource: events.patch
|
|
132
|
+
params:
|
|
133
|
+
calendarId:
|
|
134
|
+
type: string
|
|
135
|
+
description: "Calendar ID (default: 'primary')"
|
|
136
|
+
eventId:
|
|
137
|
+
type: string
|
|
138
|
+
description: "Event ID to update"
|
|
139
|
+
required: true
|
|
140
|
+
summary:
|
|
141
|
+
type: string
|
|
142
|
+
description: "Updated event title"
|
|
143
|
+
start:
|
|
144
|
+
type: string
|
|
145
|
+
description: "Updated start time (ISO 8601)"
|
|
146
|
+
end:
|
|
147
|
+
type: string
|
|
148
|
+
description: "Updated end time (ISO 8601)"
|
|
149
|
+
description:
|
|
150
|
+
type: string
|
|
151
|
+
description: "Updated description"
|
|
152
|
+
location:
|
|
153
|
+
type: string
|
|
154
|
+
description: "Updated location"
|
|
155
|
+
attendees:
|
|
156
|
+
type: string
|
|
157
|
+
description: "Comma-separated attendee emails. REPLACES the existing attendee list entirely (Google events.patch overwrites arrays). Pass an empty string to clear all attendees."
|
|
158
|
+
meet:
|
|
159
|
+
type: boolean
|
|
160
|
+
description: "Add a Google Meet video conference link. Note: Google Calendar does not allow removing an existing Meet link via patch; omit or set false to leave the link untouched."
|
|
161
|
+
defaults:
|
|
162
|
+
calendarId: primary
|
|
163
|
+
|
|
164
|
+
delete:
|
|
165
|
+
type: action
|
|
166
|
+
description: "delete an event"
|
|
167
|
+
resource: events.delete
|
|
168
|
+
params:
|
|
169
|
+
calendarId:
|
|
170
|
+
type: string
|
|
171
|
+
description: "Calendar ID (default: 'primary')"
|
|
172
|
+
eventId:
|
|
173
|
+
type: string
|
|
174
|
+
description: "Event ID to delete"
|
|
175
|
+
required: true
|
|
176
|
+
defaults:
|
|
177
|
+
calendarId: primary
|
|
178
|
+
|
|
179
|
+
# --- Calendar management ---
|
|
180
|
+
|
|
181
|
+
calendars:
|
|
182
|
+
type: list
|
|
183
|
+
description: "list all calendars the user has access to"
|
|
184
|
+
resource: calendarList.list
|
|
185
|
+
|
|
186
|
+
freebusy:
|
|
187
|
+
type: detail
|
|
188
|
+
description: "check availability (free/busy) for a time range. Automatically includes own calendar; add attendees to check others."
|
|
189
|
+
resource: freebusy.query
|
|
190
|
+
params:
|
|
191
|
+
timeMin:
|
|
192
|
+
type: string
|
|
193
|
+
description: "Start of range (ISO 8601)"
|
|
194
|
+
required: true
|
|
195
|
+
timeMax:
|
|
196
|
+
type: string
|
|
197
|
+
description: "End of range (ISO 8601)"
|
|
198
|
+
required: true
|
|
199
|
+
attendees:
|
|
200
|
+
type: string
|
|
201
|
+
description: "Comma-separated email addresses to check availability for"
|
|
202
|
+
calendarId:
|
|
203
|
+
type: string
|
|
204
|
+
description: "Comma-separated calendar IDs to check (in addition to own calendar)"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
tool_name: manage_docs
|
|
2
|
+
description: "Read, write, insert, and find-replace text in Google Docs documents."
|
|
3
|
+
requires_email: true
|
|
4
|
+
gws_service: docs
|
|
5
|
+
operations:
|
|
6
|
+
|
|
7
|
+
get:
|
|
8
|
+
type: detail
|
|
9
|
+
description: "get document content and metadata"
|
|
10
|
+
resource: documents.get
|
|
11
|
+
params:
|
|
12
|
+
documentId:
|
|
13
|
+
type: string
|
|
14
|
+
description: "Document ID"
|
|
15
|
+
required: true
|
|
16
|
+
|
|
17
|
+
create:
|
|
18
|
+
type: action
|
|
19
|
+
description: "create a new blank document"
|
|
20
|
+
resource: documents.create
|
|
21
|
+
|
|
22
|
+
write:
|
|
23
|
+
type: action
|
|
24
|
+
description: "append text to the end of a document"
|
|
25
|
+
helper: "+write"
|
|
26
|
+
params:
|
|
27
|
+
documentId:
|
|
28
|
+
type: string
|
|
29
|
+
description: "Document ID"
|
|
30
|
+
required: true
|
|
31
|
+
text:
|
|
32
|
+
type: string
|
|
33
|
+
description: "Text to append (plain text)"
|
|
34
|
+
required: true
|
|
35
|
+
cli_args:
|
|
36
|
+
documentId: "--document"
|
|
37
|
+
text: "--text"
|
|
38
|
+
|
|
39
|
+
insertText:
|
|
40
|
+
type: action
|
|
41
|
+
description: "insert text at a specific position in a document"
|
|
42
|
+
resource: documents.batchUpdate
|
|
43
|
+
params:
|
|
44
|
+
documentId:
|
|
45
|
+
type: string
|
|
46
|
+
description: "Document ID"
|
|
47
|
+
required: true
|
|
48
|
+
text:
|
|
49
|
+
type: string
|
|
50
|
+
description: "Text to insert"
|
|
51
|
+
required: true
|
|
52
|
+
index:
|
|
53
|
+
type: number
|
|
54
|
+
description: "Character index to insert at (1 = start of document body)"
|
|
55
|
+
required: true
|
|
56
|
+
|
|
57
|
+
replaceText:
|
|
58
|
+
type: action
|
|
59
|
+
description: "find and replace text in a document"
|
|
60
|
+
resource: documents.batchUpdate
|
|
61
|
+
params:
|
|
62
|
+
documentId:
|
|
63
|
+
type: string
|
|
64
|
+
description: "Document ID"
|
|
65
|
+
required: true
|
|
66
|
+
findText:
|
|
67
|
+
type: string
|
|
68
|
+
description: "Text to find"
|
|
69
|
+
required: true
|
|
70
|
+
replaceWith:
|
|
71
|
+
type: string
|
|
72
|
+
description: "Replacement text"
|
|
73
|
+
required: true
|
|
74
|
+
matchCase:
|
|
75
|
+
type: boolean
|
|
76
|
+
description: "Case-sensitive match (default: true)"
|
|
77
|
+
default: true
|