patchwork-os 0.2.0-beta.10.canary.104 → 0.2.0-beta.10.canary.105

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.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Google Docs tools — docs.get_document, docs.get_document_text
3
+ *
4
+ * Self-registering tool modules for the recipe tool registry. The
5
+ * google-docs connector (src/connectors/googleDocs.ts) follows a
6
+ * module-function pattern (standalone exported async functions) rather
7
+ * than a class+accessor, so each tool lazily `await import`s the module
8
+ * and calls the exported function directly.
9
+ *
10
+ * Both exported functions accept a Doc ID *or* a Google Docs URL — they
11
+ * call `extractDocumentId(urlOrId)` internally — so the `documentId`
12
+ * param is passed through verbatim.
13
+ *
14
+ * Namespace is "docs" (the parent wires the docs → google-docs alias in
15
+ * the parity ratchet, matching how "calendar" → google-calendar and
16
+ * "drive" → google-drive are aliased).
17
+ */
18
+ export {};
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Google Docs tools — docs.get_document, docs.get_document_text
3
+ *
4
+ * Self-registering tool modules for the recipe tool registry. The
5
+ * google-docs connector (src/connectors/googleDocs.ts) follows a
6
+ * module-function pattern (standalone exported async functions) rather
7
+ * than a class+accessor, so each tool lazily `await import`s the module
8
+ * and calls the exported function directly.
9
+ *
10
+ * Both exported functions accept a Doc ID *or* a Google Docs URL — they
11
+ * call `extractDocumentId(urlOrId)` internally — so the `documentId`
12
+ * param is passed through verbatim.
13
+ *
14
+ * Namespace is "docs" (the parent wires the docs → google-docs alias in
15
+ * the parity ratchet, matching how "calendar" → google-calendar and
16
+ * "drive" → google-drive are aliased).
17
+ */
18
+ import { CommonSchemas, registerTool } from "../toolRegistry.js";
19
+ // ============================================================================
20
+ // docs.get_document
21
+ // ============================================================================
22
+ registerTool({
23
+ id: "docs.get_document",
24
+ namespace: "docs",
25
+ description: "Fetch the structured Google Docs document tree by document ID or URL. Returns the raw Docs API document (documentId, title, body, headers, footers, revisionId).",
26
+ paramsSchema: {
27
+ type: "object",
28
+ properties: {
29
+ documentId: {
30
+ type: "string",
31
+ description: "Google Docs document ID or a Google Docs URL",
32
+ },
33
+ into: CommonSchemas.into,
34
+ },
35
+ required: ["documentId"],
36
+ },
37
+ outputSchema: {
38
+ type: "object",
39
+ properties: {
40
+ documentId: { type: "string" },
41
+ title: { type: "string" },
42
+ body: { type: "object" },
43
+ headers: { type: "object" },
44
+ footers: { type: "object" },
45
+ revisionId: { type: "string" },
46
+ },
47
+ required: ["documentId"],
48
+ },
49
+ riskDefault: "low",
50
+ isWrite: false,
51
+ isConnector: true,
52
+ execute: async ({ params }) => {
53
+ const { getDocument } = await import("../../connectors/googleDocs.js");
54
+ return JSON.stringify(await getDocument(params.documentId));
55
+ },
56
+ });
57
+ // ============================================================================
58
+ // docs.get_document_text
59
+ // ============================================================================
60
+ registerTool({
61
+ id: "docs.get_document_text",
62
+ namespace: "docs",
63
+ description: "Fetch a Google Docs document by ID or URL and return its flat plain-text content (paragraphs, tables and table-of-contents text concatenated).",
64
+ paramsSchema: {
65
+ type: "object",
66
+ properties: {
67
+ documentId: {
68
+ type: "string",
69
+ description: "Google Docs document ID or a Google Docs URL",
70
+ },
71
+ into: CommonSchemas.into,
72
+ },
73
+ required: ["documentId"],
74
+ },
75
+ outputSchema: {
76
+ type: "object",
77
+ properties: {
78
+ text: {
79
+ type: "string",
80
+ description: "Flat plain-text content of the document",
81
+ },
82
+ },
83
+ required: ["text"],
84
+ },
85
+ riskDefault: "low",
86
+ isWrite: false,
87
+ isConnector: true,
88
+ execute: async ({ params }) => {
89
+ const { getDocumentText } = await import("../../connectors/googleDocs.js");
90
+ const text = await getDocumentText(params.documentId);
91
+ return JSON.stringify({ text });
92
+ },
93
+ });
94
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/recipes/tools/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC;IACX,EAAE,EAAE,mBAAmB;IACvB,SAAS,EAAE,MAAM;IACjB,WAAW,EACT,kKAAkK;IACpK,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;SACzB;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;IACD,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC,CAAC;IACxE,CAAC;CACF,CAAC,CAAC;AAEH,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,YAAY,CAAC;IACX,EAAE,EAAE,wBAAwB;IAC5B,SAAS,EAAE,MAAM;IACjB,WAAW,EACT,gJAAgJ;IAClJ,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;SACzB;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;CACF,CAAC,CAAC"}
@@ -27,6 +27,9 @@ import "./jira.js";
27
27
  import "./pagerduty.js";
28
28
  import "./sentry.js";
29
29
  import "./stripe.js";
30
+ import "./docs.js";
31
+ import "./monday.js";
32
+ import "./salesforce.js";
30
33
  import "./elasticsearch.js";
31
34
  import "./postgres.js";
32
35
  import "./redis.js";
@@ -29,6 +29,9 @@ import "./jira.js";
29
29
  import "./pagerduty.js";
30
30
  import "./sentry.js";
31
31
  import "./stripe.js";
32
+ import "./docs.js";
33
+ import "./monday.js";
34
+ import "./salesforce.js";
32
35
  import "./elasticsearch.js";
33
36
  import "./postgres.js";
34
37
  import "./redis.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/recipes/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AAErB,wBAAwB;AACxB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,WAAW,CAAC;AACnB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,mBAAmB,CAAC;AAQ3B,qCAAqC;AACrC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/recipes/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AAErB,wBAAwB;AACxB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,WAAW,CAAC;AACnB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AACzB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,mBAAmB,CAAC;AAQ3B,qCAAqC;AACrC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Monday.com tools — read wrappers (list_boards, list_items, get_item) plus a
3
+ * single write (create_item).
4
+ *
5
+ * Self-registering tool module for the recipe tool registry. The Monday
6
+ * connector (src/connectors/monday.ts) uses a MODULE-FUNCTION pattern: it
7
+ * exports standalone async functions rather than a class + `getMondayConnector()`
8
+ * accessor. Each tool lazily imports the connector module and destructures the
9
+ * specific exported function, returning the connector result verbatim via
10
+ * JSON.stringify.
11
+ *
12
+ * Connector functions mirrored (see src/connectors/monday.ts):
13
+ * - listBoards(limit?) -> MondayBoardSummary[]
14
+ * - listItems(boardId, limit?, cursor?) -> MondayItemsPage ({ cursor, items })
15
+ * - getItem(itemId) -> MondayItemDetail | null
16
+ * - createItem(boardId, groupId, itemName, columnValues?) -> MondayCreatedItem ({ id, name })
17
+ *
18
+ * Read tools declare `isWrite: false` / `riskDefault: "low"`; create_item
19
+ * declares `isWrite: true` / `riskDefault: "medium"` so the approval queue and
20
+ * kill-switch gate it appropriately.
21
+ */
22
+ export {};
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Monday.com tools — read wrappers (list_boards, list_items, get_item) plus a
3
+ * single write (create_item).
4
+ *
5
+ * Self-registering tool module for the recipe tool registry. The Monday
6
+ * connector (src/connectors/monday.ts) uses a MODULE-FUNCTION pattern: it
7
+ * exports standalone async functions rather than a class + `getMondayConnector()`
8
+ * accessor. Each tool lazily imports the connector module and destructures the
9
+ * specific exported function, returning the connector result verbatim via
10
+ * JSON.stringify.
11
+ *
12
+ * Connector functions mirrored (see src/connectors/monday.ts):
13
+ * - listBoards(limit?) -> MondayBoardSummary[]
14
+ * - listItems(boardId, limit?, cursor?) -> MondayItemsPage ({ cursor, items })
15
+ * - getItem(itemId) -> MondayItemDetail | null
16
+ * - createItem(boardId, groupId, itemName, columnValues?) -> MondayCreatedItem ({ id, name })
17
+ *
18
+ * Read tools declare `isWrite: false` / `riskDefault: "low"`; create_item
19
+ * declares `isWrite: true` / `riskDefault: "medium"` so the approval queue and
20
+ * kill-switch gate it appropriately.
21
+ */
22
+ import { CommonSchemas, registerTool } from "../toolRegistry.js";
23
+ // ============================================================================
24
+ // monday.list_boards
25
+ // ============================================================================
26
+ registerTool({
27
+ id: "monday.list_boards",
28
+ namespace: "monday",
29
+ description: "List Monday.com boards the authenticated user can access (id, name, description, state, board_kind, workspace).",
30
+ paramsSchema: {
31
+ type: "object",
32
+ properties: {
33
+ limit: {
34
+ type: "number",
35
+ description: "Max number of boards to return (default 50)",
36
+ default: 50,
37
+ },
38
+ into: CommonSchemas.into,
39
+ },
40
+ required: [],
41
+ },
42
+ outputSchema: {
43
+ type: "array",
44
+ items: {
45
+ type: "object",
46
+ properties: {
47
+ id: { type: "string" },
48
+ name: { type: "string" },
49
+ description: { type: "string" },
50
+ state: { type: "string" },
51
+ board_kind: { type: "string" },
52
+ workspace: {
53
+ type: ["object", "null"],
54
+ properties: {
55
+ id: { type: "string" },
56
+ name: { type: "string" },
57
+ },
58
+ },
59
+ },
60
+ },
61
+ },
62
+ riskDefault: "low",
63
+ isWrite: false,
64
+ isConnector: true,
65
+ execute: async ({ params }) => {
66
+ const { listBoards } = await import("../../connectors/monday.js");
67
+ const limit = typeof params.limit === "number" ? params.limit : undefined;
68
+ const boards = await listBoards(limit);
69
+ return JSON.stringify(boards);
70
+ },
71
+ });
72
+ // ============================================================================
73
+ // monday.list_items
74
+ // ============================================================================
75
+ registerTool({
76
+ id: "monday.list_items",
77
+ namespace: "monday",
78
+ description: "List items on a Monday.com board (cursor-paginated). Returns { cursor, items } where each item has id, name, state, created_at, updated_at.",
79
+ paramsSchema: {
80
+ type: "object",
81
+ properties: {
82
+ boardId: {
83
+ type: "string",
84
+ description: "Monday board id to list items from",
85
+ },
86
+ limit: {
87
+ type: "number",
88
+ description: "Max number of items per page (default 50)",
89
+ default: 50,
90
+ },
91
+ cursor: {
92
+ type: "string",
93
+ description: "Opaque pagination cursor from a previous page",
94
+ },
95
+ into: CommonSchemas.into,
96
+ },
97
+ required: ["boardId"],
98
+ },
99
+ outputSchema: {
100
+ type: "object",
101
+ properties: {
102
+ cursor: { type: ["string", "null"] },
103
+ items: {
104
+ type: "array",
105
+ items: {
106
+ type: "object",
107
+ properties: {
108
+ id: { type: "string" },
109
+ name: { type: "string" },
110
+ state: { type: "string" },
111
+ created_at: { type: "string" },
112
+ updated_at: { type: "string" },
113
+ },
114
+ },
115
+ },
116
+ },
117
+ },
118
+ riskDefault: "low",
119
+ isWrite: false,
120
+ isConnector: true,
121
+ execute: async ({ params }) => {
122
+ const { listItems } = await import("../../connectors/monday.js");
123
+ const limit = typeof params.limit === "number" ? params.limit : undefined;
124
+ const cursor = typeof params.cursor === "string" ? params.cursor : undefined;
125
+ const page = await listItems(params.boardId, limit, cursor);
126
+ return JSON.stringify(page);
127
+ },
128
+ });
129
+ // ============================================================================
130
+ // monday.get_item
131
+ // ============================================================================
132
+ registerTool({
133
+ id: "monday.get_item",
134
+ namespace: "monday",
135
+ description: "Fetch a single Monday.com item by id, including board, group, column values, subitems, and updates. Returns null when the item is not found.",
136
+ paramsSchema: {
137
+ type: "object",
138
+ properties: {
139
+ itemId: {
140
+ type: "string",
141
+ description: "Monday item id",
142
+ },
143
+ into: CommonSchemas.into,
144
+ },
145
+ required: ["itemId"],
146
+ },
147
+ outputSchema: {
148
+ type: ["object", "null"],
149
+ properties: {
150
+ id: { type: "string" },
151
+ name: { type: "string" },
152
+ state: { type: "string" },
153
+ created_at: { type: "string" },
154
+ updated_at: { type: "string" },
155
+ board: {
156
+ type: "object",
157
+ properties: {
158
+ id: { type: "string" },
159
+ name: { type: "string" },
160
+ },
161
+ },
162
+ group: {
163
+ type: "object",
164
+ properties: {
165
+ id: { type: "string" },
166
+ title: { type: "string" },
167
+ },
168
+ },
169
+ column_values: {
170
+ type: "array",
171
+ items: {
172
+ type: "object",
173
+ properties: {
174
+ id: { type: "string" },
175
+ text: { type: ["string", "null"] },
176
+ value: { type: ["string", "null"] },
177
+ type: { type: "string" },
178
+ },
179
+ },
180
+ },
181
+ subitems: { type: "array", items: { type: "object" } },
182
+ updates: { type: "array", items: { type: "object" } },
183
+ },
184
+ },
185
+ riskDefault: "low",
186
+ isWrite: false,
187
+ isConnector: true,
188
+ execute: async ({ params }) => {
189
+ const { getItem } = await import("../../connectors/monday.js");
190
+ const item = await getItem(params.itemId);
191
+ return JSON.stringify(item);
192
+ },
193
+ });
194
+ // ============================================================================
195
+ // monday.create_item (write-gated)
196
+ // ============================================================================
197
+ registerTool({
198
+ id: "monday.create_item",
199
+ namespace: "monday",
200
+ description: 'Create a new item on a Monday.com board within a group. `columnValues` is an optional JSON-encoded string of column values (e.g. JSON.stringify({ status: { label: "Done" } })).',
201
+ paramsSchema: {
202
+ type: "object",
203
+ properties: {
204
+ boardId: {
205
+ type: "string",
206
+ description: "Monday board id to create the item on (required)",
207
+ },
208
+ groupId: {
209
+ type: "string",
210
+ description: "Monday group id within the board (required)",
211
+ },
212
+ itemName: {
213
+ type: "string",
214
+ description: "Name/title of the new item (required)",
215
+ },
216
+ columnValues: {
217
+ type: "string",
218
+ description: 'Optional JSON-encoded string of column values (e.g. JSON.stringify({ status: { label: "Done" } }))',
219
+ },
220
+ into: CommonSchemas.into,
221
+ },
222
+ required: ["boardId", "groupId", "itemName"],
223
+ },
224
+ outputSchema: {
225
+ type: "object",
226
+ properties: {
227
+ id: { type: "string" },
228
+ name: { type: "string" },
229
+ },
230
+ },
231
+ riskDefault: "medium",
232
+ isWrite: true,
233
+ isConnector: true,
234
+ execute: async ({ params }) => {
235
+ const { createItem } = await import("../../connectors/monday.js");
236
+ const columnValues = typeof params.columnValues === "string" ? params.columnValues : undefined;
237
+ const created = await createItem(params.boardId, params.groupId, params.itemName, columnValues);
238
+ return JSON.stringify(created);
239
+ },
240
+ });
241
+ //# sourceMappingURL=monday.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monday.js","sourceRoot":"","sources":["../../../src/recipes/tools/monday.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Salesforce recipe-step tools — read wrappers (query, search, get_object)
3
+ * plus a write-gated create_record.
4
+ *
5
+ * Self-registering tool module for the recipe tool registry. Unlike the
6
+ * class-plus-accessor connectors, src/connectors/salesforce.ts exports a set
7
+ * of standalone async functions (module-function pattern) — there is no
8
+ * getSalesforceConnector(). Each tool dynamically imports the function it wraps
9
+ * and JSON-stringifies the raw connector return value back out.
10
+ *
11
+ * Read tools (`query`, `searchSosl`, `getObject`) declare `isWrite: false`;
12
+ * `create_record` declares `isWrite: true` so the approval queue gates the
13
+ * mutation. The connector itself enforces SELECT-only SOQL and FIND-only SOSL,
14
+ * and validates sObject / record-id shapes before issuing the call.
15
+ */
16
+ export {};
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Salesforce recipe-step tools — read wrappers (query, search, get_object)
3
+ * plus a write-gated create_record.
4
+ *
5
+ * Self-registering tool module for the recipe tool registry. Unlike the
6
+ * class-plus-accessor connectors, src/connectors/salesforce.ts exports a set
7
+ * of standalone async functions (module-function pattern) — there is no
8
+ * getSalesforceConnector(). Each tool dynamically imports the function it wraps
9
+ * and JSON-stringifies the raw connector return value back out.
10
+ *
11
+ * Read tools (`query`, `searchSosl`, `getObject`) declare `isWrite: false`;
12
+ * `create_record` declares `isWrite: true` so the approval queue gates the
13
+ * mutation. The connector itself enforces SELECT-only SOQL and FIND-only SOSL,
14
+ * and validates sObject / record-id shapes before issuing the call.
15
+ */
16
+ import { CommonSchemas, registerTool } from "../toolRegistry.js";
17
+ // ============================================================================
18
+ // salesforce.query (SOQL — read)
19
+ // ============================================================================
20
+ registerTool({
21
+ id: "salesforce.query",
22
+ namespace: "salesforce",
23
+ description: "Execute a SOQL SELECT query against Salesforce. The statement must start " +
24
+ "with SELECT (enforced by the connector). An optional limit caps the page " +
25
+ "size (default 200, hard cap 200).",
26
+ paramsSchema: {
27
+ type: "object",
28
+ properties: {
29
+ soql: {
30
+ type: "string",
31
+ description: "SOQL SELECT query (must start with SELECT)",
32
+ },
33
+ limit: {
34
+ type: "number",
35
+ description: "Optional page-size cap (default 200, hard cap 200)",
36
+ },
37
+ into: CommonSchemas.into,
38
+ },
39
+ required: ["soql"],
40
+ },
41
+ // SoqlQueryResult — see src/connectors/salesforce.ts.
42
+ outputSchema: {
43
+ type: "object",
44
+ properties: {
45
+ totalSize: { type: "number" },
46
+ done: { type: "boolean" },
47
+ records: {
48
+ type: "array",
49
+ items: { type: "object" },
50
+ },
51
+ nextRecordsUrl: { type: "string" },
52
+ },
53
+ },
54
+ riskDefault: "low",
55
+ isWrite: false,
56
+ isConnector: true,
57
+ execute: async ({ params }) => {
58
+ const { query } = await import("../../connectors/salesforce.js");
59
+ const result = await query(params.soql, typeof params.limit === "number" ? { limit: params.limit } : undefined);
60
+ return JSON.stringify(result);
61
+ },
62
+ });
63
+ // ============================================================================
64
+ // salesforce.search (SOSL — read)
65
+ // ============================================================================
66
+ registerTool({
67
+ id: "salesforce.search",
68
+ namespace: "salesforce",
69
+ description: "Execute a SOSL search against Salesforce. The statement must start with " +
70
+ "FIND (enforced by the connector).",
71
+ paramsSchema: {
72
+ type: "object",
73
+ properties: {
74
+ sosl: {
75
+ type: "string",
76
+ description: "SOSL search expression (must start with FIND)",
77
+ },
78
+ into: CommonSchemas.into,
79
+ },
80
+ required: ["sosl"],
81
+ },
82
+ // SoslSearchResult — see src/connectors/salesforce.ts.
83
+ outputSchema: {
84
+ type: "object",
85
+ properties: {
86
+ searchRecords: {
87
+ type: "array",
88
+ items: { type: "object" },
89
+ },
90
+ },
91
+ },
92
+ riskDefault: "low",
93
+ isWrite: false,
94
+ isConnector: true,
95
+ execute: async ({ params }) => {
96
+ const { searchSosl } = await import("../../connectors/salesforce.js");
97
+ const result = await searchSosl(params.sosl);
98
+ return JSON.stringify(result);
99
+ },
100
+ });
101
+ // ============================================================================
102
+ // salesforce.get_object (read)
103
+ // ============================================================================
104
+ registerTool({
105
+ id: "salesforce.get_object",
106
+ namespace: "salesforce",
107
+ description: "Fetch a single Salesforce sObject record by its API name and record id " +
108
+ "(e.g. object_name: 'Account', record_id: '001...').",
109
+ paramsSchema: {
110
+ type: "object",
111
+ properties: {
112
+ object_name: {
113
+ type: "string",
114
+ description: "sObject API name (e.g. 'Account', 'Contact')",
115
+ },
116
+ record_id: {
117
+ type: "string",
118
+ description: "Salesforce record id (15 or 18 chars)",
119
+ },
120
+ into: CommonSchemas.into,
121
+ },
122
+ required: ["object_name", "record_id"],
123
+ },
124
+ // getObject resolves to the raw sObject record (Record<string, unknown>).
125
+ outputSchema: {
126
+ type: "object",
127
+ additionalProperties: true,
128
+ },
129
+ riskDefault: "low",
130
+ isWrite: false,
131
+ isConnector: true,
132
+ execute: async ({ params }) => {
133
+ const { getObject } = await import("../../connectors/salesforce.js");
134
+ const result = await getObject(params.object_name, params.record_id);
135
+ return JSON.stringify(result);
136
+ },
137
+ });
138
+ // ============================================================================
139
+ // salesforce.create_record (write-gated)
140
+ // ============================================================================
141
+ registerTool({
142
+ id: "salesforce.create_record",
143
+ namespace: "salesforce",
144
+ description: "Create a new Salesforce sObject record. Supply the sObject API name and a " +
145
+ "fields object mapping field API names to values.",
146
+ paramsSchema: {
147
+ type: "object",
148
+ properties: {
149
+ object_name: {
150
+ type: "string",
151
+ description: "sObject API name (e.g. 'Account', 'Contact', 'Lead')",
152
+ },
153
+ fields: {
154
+ type: "object",
155
+ description: "Field API names mapped to values (e.g. { Name: 'Acme', Industry: 'Tech' })",
156
+ additionalProperties: true,
157
+ },
158
+ into: CommonSchemas.into,
159
+ },
160
+ required: ["object_name", "fields"],
161
+ },
162
+ // CreateRecordResult — see src/connectors/salesforce.ts.
163
+ outputSchema: {
164
+ type: "object",
165
+ properties: {
166
+ id: { type: "string" },
167
+ success: { type: "boolean" },
168
+ errors: { type: "array", items: {} },
169
+ },
170
+ },
171
+ riskDefault: "medium",
172
+ isWrite: true,
173
+ isConnector: true,
174
+ execute: async ({ params }) => {
175
+ const { createRecord } = await import("../../connectors/salesforce.js");
176
+ const fields = params.fields && typeof params.fields === "object"
177
+ ? params.fields
178
+ : {};
179
+ const result = await createRecord(params.object_name, fields);
180
+ return JSON.stringify(result);
181
+ },
182
+ });
183
+ //# sourceMappingURL=salesforce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salesforce.js","sourceRoot":"","sources":["../../../src/recipes/tools/salesforce.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "0.2.0-beta.10.canary.104",
3
+ "version": "0.2.0-beta.10.canary.105",
4
4
  "description": "Your personal AI runtime, local-first. Patchwork OS gives any AI model a consistent set of tools, YAML recipes, a delegation policy with approval queue, and a durable trace memory — all on your machine, all under your policy.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",