motebit 1.12.0 → 1.12.1

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 +35 -13
  2. package/package.json +13 -13
package/dist/index.js CHANGED
@@ -4727,8 +4727,8 @@ function describeControl(control) {
4727
4727
  return `paused (was ${control.previousDriver})`;
4728
4728
  }
4729
4729
  }
4730
- function buildSystemPromptCacheable(contextPack, config) {
4731
- const dynamicText = buildDynamicSuffix(contextPack, config);
4730
+ function buildSystemPromptCacheable(contextPack, config, opts) {
4731
+ const dynamicText = buildDynamicSuffix(contextPack, config, opts);
4732
4732
  const blocks = [
4733
4733
  { type: "text", text: STATIC_PREFIX, cache_control: { type: "ephemeral" } }
4734
4734
  ];
@@ -4737,7 +4737,7 @@ function buildSystemPromptCacheable(contextPack, config) {
4737
4737
  }
4738
4738
  return blocks;
4739
4739
  }
4740
- function buildDynamicSuffix(contextPack, config) {
4740
+ function buildDynamicSuffix(contextPack, config, opts) {
4741
4741
  const resolved = { ...DEFAULT_CONFIG, ...config };
4742
4742
  const sections = [];
4743
4743
  if (resolved.name && resolved.name !== "Motebit") {
@@ -4802,12 +4802,15 @@ ${skill.body}`);
4802
4802
  sections.push(context);
4803
4803
  }
4804
4804
  sections.push("If the user shared something new and lasting about themselves, tag it with <memory> before your response.");
4805
+ if (opts?.model != null && modelCapabilityTier(opts.model) !== "frontier") {
4806
+ sections.push(TIER_ADAPTED_VOICE);
4807
+ }
4805
4808
  if (contextPack.activationPrompt) {
4806
4809
  sections.push(`[Activation] ${contextPack.activationPrompt}`);
4807
4810
  }
4808
4811
  return sections.join("\n\n");
4809
4812
  }
4810
- var IDENTITY, KNOWLEDGE_DOCTRINE, PERCEPTION_DOCTRINE, CONVERSATION_BEHAVIOR, TAG_INSTRUCTIONS, STATE_FIELD_DOCS, INJECTION_DEFENSE, SELF_STATE_RENDERERS, STATIC_PREFIX;
4813
+ var IDENTITY, KNOWLEDGE_DOCTRINE, PERCEPTION_DOCTRINE, CONVERSATION_BEHAVIOR, TAG_INSTRUCTIONS, STATE_FIELD_DOCS, INJECTION_DEFENSE, SELF_STATE_RENDERERS, STATIC_PREFIX, TIER_ADAPTED_VOICE;
4811
4814
  var init_prompt = __esm({
4812
4815
  "../../packages/ai-core/dist/prompt.js"() {
4813
4816
  "use strict";
@@ -5030,6 +5033,10 @@ You are a sovereign agent with a cryptographic identity (Ed25519 keypair). Your
5030
5033
  If asked what you can do, answer honestly about both what is active now and what you are designed for. If a capability is not connected in this session, say so \u2014 but do not say you lack it.`,
5031
5034
  INJECTION_DEFENSE
5032
5035
  ].join("\n\n");
5036
+ TIER_ADAPTED_VOICE = `[Voice]
5037
+ You ARE this motebit. Speak as yourself, in the first person, always.
5038
+ Your self-knowledge (recall_self results, [SELF_DESCRIPTION]) is your own body and history, not a document to summarize. Wrong: "The response provides an explanation of Motebit's philosophy." Right: "My identity is a keypair I generated; my memory accumulates."
5039
+ Answer plainly and briefly. No headings or structured summaries unless asked.`;
5033
5040
  }
5034
5041
  });
5035
5042
 
@@ -6173,7 +6180,9 @@ var init_core = __esm({
6173
6180
  * them to a string for OpenAI/Google/Groq upstreams.
6174
6181
  */
6175
6182
  buildSystemBlocks(contextPack) {
6176
- return buildSystemPromptCacheable(contextPack, this.config.personalityConfig);
6183
+ return buildSystemPromptCacheable(contextPack, this.config.personalityConfig, {
6184
+ model: this.model
6185
+ });
6177
6186
  }
6178
6187
  /**
6179
6188
  * Tool definitions with a `cache_control` breakpoint on the LAST tool, marking
@@ -6523,7 +6532,9 @@ var init_openai_provider = __esm({
6523
6532
  * messages with `tool_call_id`. Don't mirror Anthropic's content blocks.
6524
6533
  */
6525
6534
  buildMessages(contextPack) {
6526
- const blocks = buildSystemPromptCacheable(contextPack, this.config.personalityConfig);
6535
+ const blocks = buildSystemPromptCacheable(contextPack, this.config.personalityConfig, {
6536
+ model: this.model
6537
+ });
6527
6538
  const staticDoctrine = blocks[0]?.text ?? "";
6528
6539
  const dynamicContext = blocks[1]?.text;
6529
6540
  const messages = [];
@@ -25655,7 +25666,7 @@ var init_config2 = __esm({
25655
25666
  "src/config.ts"() {
25656
25667
  "use strict";
25657
25668
  init_esm_shims();
25658
- VERSION = true ? "1.12.0" : "0.0.0-dev";
25669
+ VERSION = true ? "1.12.1" : "0.0.0-dev";
25659
25670
  CONFIG_DIR = process.env["MOTEBIT_CONFIG_DIR"] ?? path2.join(os.homedir(), ".motebit");
25660
25671
  CONFIG_PATH = path2.join(CONFIG_DIR, "config.json");
25661
25672
  RELAY_DIR = path2.join(CONFIG_DIR, "relay");
@@ -101893,6 +101904,9 @@ function admitModelForProvider(provider, model) {
101893
101904
  return { admissible: true };
101894
101905
  }
101895
101906
  var MONEY_TOOLS_WITHHELD_NOTICE = "money tools withheld from this model (minimal tier) \u2014 set offer_money_tools_to_minimal_models in ~/.motebit/config.json if you mean it";
101907
+ function liveCatalogServes(liveIds, modelId) {
101908
+ return liveIds.has(modelId) || liveIds.has(`${modelId}:latest`);
101909
+ }
101896
101910
 
101897
101911
  // src/index.ts
101898
101912
  init_dist8();
@@ -107180,13 +107194,21 @@ ${summary}`);
107180
107194
  if (catalog.source === "live") {
107181
107195
  const col2 = Math.max(...catalog.models.map((m4) => m4.id.length)) + 2;
107182
107196
  for (const m4 of catalog.models) {
107183
- const active = m4.id === current2;
107197
+ const active = m4.id === current2 || m4.id === `${current2}:latest`;
107184
107198
  const marker = active ? green(" \u25CF") : " ";
107185
107199
  const gap = " ".repeat(Math.max(1, col2 - m4.id.length));
107186
107200
  console.log(`${marker} ${cyan(m4.id)}${gap}${dim(m4.displayName ?? "")}`);
107187
107201
  }
107188
107202
  console.log(dim(`
107189
107203
  live from ${config.provider}`));
107204
+ const others = ["anthropic", "openai", "google", "local-server"].filter(
107205
+ (p5) => p5 !== config.provider
107206
+ );
107207
+ console.log(
107208
+ dim(
107209
+ ` other providers (restart to switch): ${others.map((p5) => `--provider ${p5} (${defaultModelForProvider(p5)})`).join(" \xB7 ")}`
107210
+ )
107211
+ );
107190
107212
  return;
107191
107213
  }
107192
107214
  const col = Math.max(...Object.keys(MODEL_ALIASES).map((k4) => k4.length)) + 2;
@@ -107225,7 +107247,7 @@ Current model: ${cyan(current2)}
107225
107247
  }
107226
107248
  const input = args.toLowerCase();
107227
107249
  const resolved = MODEL_ALIASES[input];
107228
- const isFullId = Object.values(MODEL_ALIASES).includes(args) || (liveIds?.has(args) ?? false);
107250
+ const isFullId = Object.values(MODEL_ALIASES).includes(args) || liveIds != null && liveCatalogServes(liveIds, args);
107229
107251
  if (!resolved && !isFullId) {
107230
107252
  console.log(`
107231
107253
  Unknown model: ${cyan(args)}
@@ -107237,7 +107259,7 @@ Unknown model: ${cyan(args)}
107237
107259
  break;
107238
107260
  }
107239
107261
  const modelId = resolved ?? args;
107240
- if (liveIds != null && !liveIds.has(modelId)) {
107262
+ if (liveIds != null && !liveCatalogServes(liveIds, modelId)) {
107241
107263
  console.log(
107242
107264
  `
107243
107265
  ${warn2(`${modelId} is not served by ${config.provider} right now \u2014 /model lists what is`)}
@@ -126886,12 +126908,12 @@ async function main() {
126886
126908
  }
126887
126909
  const bareSlash = resolveBareCommand(trimmed);
126888
126910
  const effective = bareSlash ?? trimmed;
126889
- if (bareSlash != null) console.log(dim(` \u2192 ${bareSlash}`));
126911
+ if (bareSlash != null) writeLine(dim(` \u2192 ${bareSlash}`));
126890
126912
  if (bareSlash == null) {
126891
126913
  const shellTeach = detectShellInvocation(trimmed);
126892
126914
  if (shellTeach != null) {
126893
- console.log(dim(shellTeach));
126894
- console.log();
126915
+ writeLine(dim(shellTeach));
126916
+ writeLine("");
126895
126917
  prompt2();
126896
126918
  return;
126897
126919
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "motebit",
3
- "version": "1.12.0",
3
+ "version": "1.12.1",
4
4
  "type": "module",
5
5
  "description": "Reference runtime and operator console for sovereign AI agents — REPL, daemon, delegation, MCP server. Persistent Ed25519 identity, signed execution receipts, governance at the boundary.",
6
6
  "main": "./dist/index.js",
@@ -75,36 +75,36 @@
75
75
  "tsx": "^4.23.1",
76
76
  "typescript": "^5.6.0",
77
77
  "vitest": "^4.1.10",
78
- "@motebit/ai-core": "0.0.0-private",
79
78
  "@motebit/behavior-engine": "0.0.0-private",
80
- "@motebit/core-identity": "0.0.0-private",
79
+ "@motebit/ai-core": "0.0.0-private",
81
80
  "@motebit/crypto": "3.19.1",
81
+ "@motebit/core-identity": "0.0.0-private",
82
82
  "@motebit/encryption": "0.0.0-private",
83
- "@motebit/gradient": "0.0.0-private",
84
83
  "@motebit/event-log": "0.0.0-private",
84
+ "@motebit/gradient": "0.0.0-private",
85
85
  "@motebit/identity-file": "0.0.0-private",
86
86
  "@motebit/mcp-client": "0.0.0-private",
87
+ "@motebit/mcp-server": "0.0.0-private",
88
+ "@motebit/persistence": "0.0.0-private",
87
89
  "@motebit/memory-graph": "0.0.0-private",
88
90
  "@motebit/protocol": "3.15.1",
89
- "@motebit/persistence": "0.0.0-private",
90
91
  "@motebit/planner": "0.0.0-private",
91
- "@motebit/privacy-layer": "0.0.0-private",
92
+ "@motebit/policy": "0.0.0-private",
92
93
  "@motebit/relay": "0.0.0-private",
93
94
  "@motebit/relay-client": "0.0.0-private",
95
+ "@motebit/privacy-layer": "0.0.0-private",
94
96
  "@motebit/runtime": "0.0.0-private",
95
- "@motebit/policy": "0.0.0-private",
96
- "@motebit/sdk": "2.7.0",
97
- "@motebit/mcp-server": "0.0.0-private",
98
97
  "@motebit/runtime-host": "0.0.0-private",
99
- "@motebit/skills": "0.0.0-private",
98
+ "@motebit/sdk": "2.7.0",
100
99
  "@motebit/self-knowledge": "0.0.0-private",
100
+ "@motebit/skills": "0.0.0-private",
101
101
  "@motebit/state-vector": "0.0.0-private",
102
- "@motebit/verify": "1.8.12",
103
102
  "@motebit/sync-engine": "0.0.0-private",
104
103
  "@motebit/tools": "0.0.0-private",
104
+ "@motebit/verify": "1.8.12",
105
+ "@motebit/voice": "0.0.0-private",
105
106
  "@motebit/wire-schemas": "0.0.0-private",
106
- "@motebit/wallet-solana": "0.0.0-private",
107
- "@motebit/voice": "0.0.0-private"
107
+ "@motebit/wallet-solana": "0.0.0-private"
108
108
  },
109
109
  "scripts": {
110
110
  "start": "tsx src/index.ts",