@knowsuchagency/fulcrum 2.3.5 → 2.4.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
@@ -45641,7 +45641,7 @@ async function runMcpServer(urlOverride, portOverride) {
45641
45641
  const client = new FulcrumClient(urlOverride, portOverride);
45642
45642
  const server = new McpServer({
45643
45643
  name: "fulcrum",
45644
- version: "2.3.5"
45644
+ version: "2.4.0"
45645
45645
  });
45646
45646
  registerTools(server, client);
45647
45647
  const transport = new StdioServerTransport;
@@ -47990,7 +47990,7 @@ var marketplace_default = `{
47990
47990
  "name": "fulcrum",
47991
47991
  "source": "./",
47992
47992
  "description": "Task orchestration for Claude Code",
47993
- "version": "2.3.5",
47993
+ "version": "2.4.0",
47994
47994
  "skills": [
47995
47995
  "./skills/fulcrum"
47996
47996
  ],
@@ -49178,7 +49178,7 @@ function compareVersions(v1, v2) {
49178
49178
  var package_default = {
49179
49179
  name: "@knowsuchagency/fulcrum",
49180
49180
  private: true,
49181
- version: "2.3.5",
49181
+ version: "2.4.0",
49182
49182
  description: "Harness Attention. Orchestrate Agents. Ship.",
49183
49183
  license: "PolyForm-Perimeter-1.0.0",
49184
49184
  type: "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowsuchagency/fulcrum",
3
- "version": "2.3.5",
3
+ "version": "2.4.0",
4
4
  "description": "Harness Attention. Orchestrate Agents. Ship.",
5
5
  "license": "PolyForm-Perimeter-1.0.0",
6
6
  "repository": {
package/server/index.js CHANGED
@@ -409569,6 +409569,27 @@ class EmailChannel {
409569
409569
  this.connectionId = connectionId;
409570
409570
  this.credentials = credentials ?? null;
409571
409571
  }
409572
+ createImapClient() {
409573
+ if (!this.credentials)
409574
+ throw new Error("No credentials available");
409575
+ const client3 = new $ImapFlow({
409576
+ host: this.credentials.imap.host,
409577
+ port: this.credentials.imap.port,
409578
+ secure: this.credentials.imap.secure,
409579
+ auth: {
409580
+ user: this.credentials.imap.user,
409581
+ pass: this.credentials.imap.password
409582
+ },
409583
+ logger: false
409584
+ });
409585
+ client3.on("error", (err) => {
409586
+ log2.messaging.error("IMAP client error", {
409587
+ connectionId: this.connectionId,
409588
+ error: String(err)
409589
+ });
409590
+ });
409591
+ return client3;
409592
+ }
409572
409593
  async initialize(events) {
409573
409594
  this.events = events;
409574
409595
  this.isShuttingDown = false;
@@ -409609,16 +409630,7 @@ class EmailChannel {
409609
409630
  connectionId: this.connectionId,
409610
409631
  host: this.credentials.smtp.host
409611
409632
  });
409612
- this.imapClient = new $ImapFlow({
409613
- host: this.credentials.imap.host,
409614
- port: this.credentials.imap.port,
409615
- secure: this.credentials.imap.secure,
409616
- auth: {
409617
- user: this.credentials.imap.user,
409618
- pass: this.credentials.imap.password
409619
- },
409620
- logger: false
409621
- });
409633
+ this.imapClient = this.createImapClient();
409622
409634
  await this.imapClient.connect();
409623
409635
  log2.messaging.info("IMAP connection established", {
409624
409636
  connectionId: this.connectionId,
@@ -409655,16 +409667,7 @@ class EmailChannel {
409655
409667
  if (this.isShuttingDown || !this.credentials)
409656
409668
  return;
409657
409669
  try {
409658
- const client3 = new $ImapFlow({
409659
- host: this.credentials.imap.host,
409660
- port: this.credentials.imap.port,
409661
- secure: this.credentials.imap.secure,
409662
- auth: {
409663
- user: this.credentials.imap.user,
409664
- pass: this.credentials.imap.password
409665
- },
409666
- logger: false
409667
- });
409670
+ const client3 = this.createImapClient();
409668
409671
  await client3.connect();
409669
409672
  const lock = await client3.getMailboxLock("INBOX");
409670
409673
  try {
@@ -409813,16 +409816,7 @@ class EmailChannel {
409813
409816
  if (!this.credentials) {
409814
409817
  throw new Error("Not connected - no credentials available");
409815
409818
  }
409816
- const client3 = new $ImapFlow({
409817
- host: this.credentials.imap.host,
409818
- port: this.credentials.imap.port,
409819
- secure: this.credentials.imap.secure,
409820
- auth: {
409821
- user: this.credentials.imap.user,
409822
- pass: this.credentials.imap.password
409823
- },
409824
- logger: false
409825
- });
409819
+ const client3 = this.createImapClient();
409826
409820
  try {
409827
409821
  await client3.connect();
409828
409822
  const lock = await client3.getMailboxLock("INBOX");
@@ -409861,16 +409855,7 @@ class EmailChannel {
409861
409855
  }
409862
409856
  const limit2 = options?.limit ?? 50;
409863
409857
  const uidsToFetch = uids.slice(0, limit2);
409864
- const client3 = new $ImapFlow({
409865
- host: this.credentials.imap.host,
409866
- port: this.credentials.imap.port,
409867
- secure: this.credentials.imap.secure,
409868
- auth: {
409869
- user: this.credentials.imap.user,
409870
- pass: this.credentials.imap.password
409871
- },
409872
- logger: false
409873
- });
409858
+ const client3 = this.createImapClient();
409874
409859
  const storedEmails = [];
409875
409860
  try {
409876
409861
  await client3.connect();
@@ -409953,6 +409938,7 @@ async function testEmailCredentials(credentials) {
409953
409938
  },
409954
409939
  logger: false
409955
409940
  });
409941
+ client3.on("error", () => {});
409956
409942
  await client3.connect();
409957
409943
  await client3.logout();
409958
409944
  } catch (err) {
@@ -463739,7 +463725,7 @@ mcpRoutes.all("/", async (c) => {
463739
463725
  });
463740
463726
  const server = new McpServer({
463741
463727
  name: "fulcrum",
463742
- version: "2.3.5"
463728
+ version: "2.4.0"
463743
463729
  });
463744
463730
  const client = new FulcrumClient(`http://localhost:${port}`);
463745
463731
  registerTools(server, client);