@knowsuchagency/fulcrum 3.2.1 → 3.3.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/bin/fulcrum.js
CHANGED
|
@@ -1710,6 +1710,14 @@ class FulcrumClient {
|
|
|
1710
1710
|
params.set("conversationProvider", input.conversationProvider);
|
|
1711
1711
|
if (input.conversationProjectId)
|
|
1712
1712
|
params.set("conversationProjectId", input.conversationProjectId);
|
|
1713
|
+
if (input.gmailFrom)
|
|
1714
|
+
params.set("gmailFrom", input.gmailFrom);
|
|
1715
|
+
if (input.gmailTo)
|
|
1716
|
+
params.set("gmailTo", input.gmailTo);
|
|
1717
|
+
if (input.gmailAfter)
|
|
1718
|
+
params.set("gmailAfter", input.gmailAfter);
|
|
1719
|
+
if (input.gmailBefore)
|
|
1720
|
+
params.set("gmailBefore", input.gmailBefore);
|
|
1713
1721
|
return this.fetch(`/api/search?${params.toString()}`);
|
|
1714
1722
|
}
|
|
1715
1723
|
}
|
|
@@ -44359,9 +44367,9 @@ var init_registry = __esm(() => {
|
|
|
44359
44367
|
},
|
|
44360
44368
|
{
|
|
44361
44369
|
name: "search",
|
|
44362
|
-
description: "Search across all Fulcrum entities (tasks, projects, messages, events, memories) using full-text search",
|
|
44370
|
+
description: "Search across all Fulcrum entities (tasks, projects, messages, events, memories, gmail) using full-text search",
|
|
44363
44371
|
category: "core",
|
|
44364
|
-
keywords: ["search", "find", "query", "fts", "full-text", "task", "project", "message", "event", "memory", "recall", "knowledge"],
|
|
44372
|
+
keywords: ["search", "find", "query", "fts", "full-text", "task", "project", "message", "event", "memory", "recall", "knowledge", "gmail", "email", "google"],
|
|
44365
44373
|
defer_loading: false
|
|
44366
44374
|
},
|
|
44367
44375
|
{
|
|
@@ -46215,7 +46223,7 @@ var init_messaging = __esm(() => {
|
|
|
46215
46223
|
|
|
46216
46224
|
// cli/src/mcp/tools/search.ts
|
|
46217
46225
|
var EntityTypeSchema, registerSearchTools = (server, client) => {
|
|
46218
|
-
server.tool("search", 'Search across all Fulcrum entities (tasks, projects, messages, calendar events, memories, conversations) using full-text search. Supports boolean operators (AND, OR, NOT), phrase matching ("quoted phrases"), and prefix matching (term*). Returns results ranked by relevance.', {
|
|
46226
|
+
server.tool("search", 'Search across all Fulcrum entities (tasks, projects, messages, calendar events, memories, conversations) using full-text search. Supports boolean operators (AND, OR, NOT), phrase matching ("quoted phrases"), and prefix matching (term*). Returns results ranked by relevance. Gmail search is opt-in: include "gmail" in entities to search Gmail via API (not included in default searches).', {
|
|
46219
46227
|
query: exports_external.string().describe('FTS5 search query. Supports: AND, OR, NOT operators, "quoted phrases", prefix* matching. Example: "kubernetes deployment" OR k8s'),
|
|
46220
46228
|
entities: exports_external.optional(exports_external.array(EntityTypeSchema)).describe("Entity types to search. Defaults to all: tasks, projects, messages, events, memories, conversations"),
|
|
46221
46229
|
limit: exports_external.optional(exports_external.number()).describe("Maximum results per entity type (default: 10)"),
|
|
@@ -46228,8 +46236,12 @@ var EntityTypeSchema, registerSearchTools = (server, client) => {
|
|
|
46228
46236
|
memoryTags: exports_external.optional(exports_external.array(exports_external.string())).describe("Filter memories by tags"),
|
|
46229
46237
|
conversationRole: exports_external.optional(exports_external.string()).describe('Filter conversations by role (e.g., "user", "assistant")'),
|
|
46230
46238
|
conversationProvider: exports_external.optional(exports_external.string()).describe('Filter conversations by provider (e.g., "claude", "opencode")'),
|
|
46231
|
-
conversationProjectId: exports_external.optional(exports_external.string()).describe("Filter conversations by project ID")
|
|
46232
|
-
|
|
46239
|
+
conversationProjectId: exports_external.optional(exports_external.string()).describe("Filter conversations by project ID"),
|
|
46240
|
+
gmailFrom: exports_external.optional(exports_external.string()).describe('Filter Gmail results by sender (e.g., "user@example.com")'),
|
|
46241
|
+
gmailTo: exports_external.optional(exports_external.string()).describe('Filter Gmail results by recipient (e.g., "user@example.com")'),
|
|
46242
|
+
gmailAfter: exports_external.optional(exports_external.string()).describe("Filter Gmail results after this date (YYYY/MM/DD format)"),
|
|
46243
|
+
gmailBefore: exports_external.optional(exports_external.string()).describe("Filter Gmail results before this date (YYYY/MM/DD format)")
|
|
46244
|
+
}, async ({ query, entities, limit, taskStatus, projectStatus, messageChannel, messageDirection, eventFrom, eventTo, memoryTags, conversationRole, conversationProvider, conversationProjectId, gmailFrom, gmailTo, gmailAfter, gmailBefore }) => {
|
|
46233
46245
|
try {
|
|
46234
46246
|
const results = await client.search({
|
|
46235
46247
|
query,
|
|
@@ -46244,7 +46256,11 @@ var EntityTypeSchema, registerSearchTools = (server, client) => {
|
|
|
46244
46256
|
memoryTags,
|
|
46245
46257
|
conversationRole,
|
|
46246
46258
|
conversationProvider,
|
|
46247
|
-
conversationProjectId
|
|
46259
|
+
conversationProjectId,
|
|
46260
|
+
gmailFrom,
|
|
46261
|
+
gmailTo,
|
|
46262
|
+
gmailAfter,
|
|
46263
|
+
gmailBefore
|
|
46248
46264
|
});
|
|
46249
46265
|
return formatSuccess(results);
|
|
46250
46266
|
} catch (err) {
|
|
@@ -46255,7 +46271,7 @@ var EntityTypeSchema, registerSearchTools = (server, client) => {
|
|
|
46255
46271
|
var init_search = __esm(() => {
|
|
46256
46272
|
init_zod2();
|
|
46257
46273
|
init_utils();
|
|
46258
|
-
EntityTypeSchema = exports_external.enum(["tasks", "projects", "messages", "events", "memories", "conversations"]);
|
|
46274
|
+
EntityTypeSchema = exports_external.enum(["tasks", "projects", "messages", "events", "memories", "conversations", "gmail"]);
|
|
46259
46275
|
});
|
|
46260
46276
|
|
|
46261
46277
|
// cli/src/mcp/tools/index.ts
|
|
@@ -46316,7 +46332,7 @@ async function runMcpServer(urlOverride, portOverride) {
|
|
|
46316
46332
|
const client = new FulcrumClient(urlOverride, portOverride);
|
|
46317
46333
|
const server = new McpServer({
|
|
46318
46334
|
name: "fulcrum",
|
|
46319
|
-
version: "3.
|
|
46335
|
+
version: "3.3.0"
|
|
46320
46336
|
});
|
|
46321
46337
|
registerTools(server, client);
|
|
46322
46338
|
const transport = new StdioServerTransport;
|
|
@@ -48665,7 +48681,7 @@ var marketplace_default = `{
|
|
|
48665
48681
|
"name": "fulcrum",
|
|
48666
48682
|
"source": "./",
|
|
48667
48683
|
"description": "Task orchestration for Claude Code",
|
|
48668
|
-
"version": "3.
|
|
48684
|
+
"version": "3.3.0",
|
|
48669
48685
|
"skills": [
|
|
48670
48686
|
"./skills/fulcrum"
|
|
48671
48687
|
],
|
|
@@ -49869,7 +49885,7 @@ function compareVersions(v1, v2) {
|
|
|
49869
49885
|
var package_default = {
|
|
49870
49886
|
name: "@knowsuchagency/fulcrum",
|
|
49871
49887
|
private: true,
|
|
49872
|
-
version: "3.
|
|
49888
|
+
version: "3.3.0",
|
|
49873
49889
|
description: "Harness Attention. Orchestrate Agents. Ship.",
|
|
49874
49890
|
license: "PolyForm-Perimeter-1.0.0",
|
|
49875
49891
|
type: "module",
|