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.
- package/dist/index.js +35 -13
- 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.
|
|
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
|
|
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
|
|
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)
|
|
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
|
-
|
|
126894
|
-
|
|
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.
|
|
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
|
|
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/
|
|
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/
|
|
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",
|