conare 0.4.6 → 0.5.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.
Files changed (2) hide show
  1. package/dist/index.js +30 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -40,6 +40,8 @@ function fitContent(header, rounds) {
40
40
  const user = maxUser > 0 && r.user.length > maxUser ? r.user.slice(0, maxUser) + "..." : r.user;
41
41
  return `## Q: ${user}
42
42
 
43
+ ---
44
+
43
45
  ${r.assistant}`;
44
46
  }).join(`
45
47
 
@@ -451,6 +453,7 @@ __export(exports_api, {
451
453
  uploadBulk: () => uploadBulk,
452
454
  listRemoteMemories: () => listRemoteMemories,
453
455
  getRemoteMemoryCount: () => getRemoteMemoryCount,
456
+ getBillingStatus: () => getBillingStatus,
454
457
  deleteMemory: () => deleteMemory,
455
458
  deleteMemories: () => deleteMemories,
456
459
  createUploadBatches: () => createUploadBatches,
@@ -546,6 +549,13 @@ async function getRemoteMemoryCount(apiKey) {
546
549
  return null;
547
550
  }
548
551
  }
552
+ async function getBillingStatus(apiKey) {
553
+ try {
554
+ return await apiRequest("/api/billing/status", apiKey);
555
+ } catch {
556
+ return null;
557
+ }
558
+ }
549
559
  async function uploadItems(apiKey, items) {
550
560
  let retries = 4;
551
561
  while (retries > 0) {
@@ -560,6 +570,12 @@ async function uploadItems(apiKey, items) {
560
570
  return data.results;
561
571
  } catch (error) {
562
572
  if (error instanceof ApiError && error.statusCode === 429) {
573
+ if (error.message.includes("quota_exceeded")) {
574
+ return items.map(() => ({
575
+ success: false,
576
+ error: "Memory limit reached. Upgrade at https://conare.ai/pricing"
577
+ }));
578
+ }
563
579
  retries--;
564
580
  await new Promise((r) => setTimeout(r, 5000));
565
581
  continue;
@@ -2829,18 +2845,18 @@ var CLIENT_CONFIGURATORS = {
2829
2845
  };
2830
2846
  var SKILL_MD = `---
2831
2847
  name: conare
2832
- description: Complements the Conare MCP server by teaching the agent when and how to load prior project context, search past sessions, save durable preferences, list stored memories, and forget saved items. Use when the user asks what they worked on before, wants prior context loaded at the start of a task, asks to remember or forget something, or needs past conversations, decisions, or code recalled from memory.
2848
+ description: Load prior project context, search past sessions, save durable preferences, list stored memories, and forget saved items. Use when the user asks what they worked on before, wants prior context loaded at the start of a task, asks to remember or forget something, needs past conversations, decisions, or code recalled from memory, OR when you encounter a reference you don't understand that might exist in the user's memory.
2833
2849
  compatibility: Requires the Conare MCP server tools (\`recall\`, \`search\`, \`save\`, \`list\`, \`forget\`) to be installed and connected.
2834
2850
  metadata:
2835
2851
  author: Conare
2836
- version: 1.1.0
2852
+ version: 1.2.0
2837
2853
  mcp-server: conare
2838
2854
  homepage: https://conare.ai
2839
2855
  ---
2840
2856
 
2841
2857
  # Conare
2842
2858
 
2843
- This skill complements the Conare MCP server. The MCP provides memory tools and live access to stored memories; this skill teaches the agent the default workflow, tool-selection rules, and query patterns that make those tools reliable.
2859
+ This skill teaches the agent the default workflow, tool-selection rules, and query patterns for working with persistent memory across sessions.
2844
2860
 
2845
2861
  ## Primary Use Cases
2846
2862
 
@@ -3985,6 +4001,17 @@ Nothing new to index.`);
3985
4001
  const db = b3.metadata?.date || "0000";
3986
4002
  return db.localeCompare(da);
3987
4003
  });
4004
+ const billing = await getBillingStatus(apiKey);
4005
+ if (billing && billing.plan === "free" && billing.limits.uploadedChats > 0) {
4006
+ const chatLimit = billing.limits.uploadedChats;
4007
+ if (allMemories.length > chatLimit) {
4008
+ const skipped = allMemories.length - chatLimit;
4009
+ allMemories.splice(chatLimit);
4010
+ log(`\x1B[33m⚠\x1B[0m Free plan: uploading ${chatLimit} most recent sessions (${skipped} older sessions skipped)`);
4011
+ log(` Upgrade to Pro for unlimited uploads → \x1B[4mhttps://conare.ai/pricing\x1B[0m`);
4012
+ log();
4013
+ }
4014
+ }
3988
4015
  log();
3989
4016
  if (allMemories.length > 2000 && !opts.dryRun && !opts.quiet) {
3990
4017
  if (hasTty) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conare",
3
- "version": "0.4.6",
3
+ "version": "0.5.0",
4
4
  "description": "Conare CLI for ingesting AI chat history and configuring memory at conare.ai",
5
5
  "type": "module",
6
6
  "bin": {