@2kw/ai 6.3.0 → 6.4.0-dev.7

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.
@@ -25,6 +25,8 @@ export const NON_AUTHORABLE_TOOL_TYPES = {
25
25
  "backbone.skills_apply": "it is added at run time for callers allowed to author skills",
26
26
  // #1241: injected while the conversation's outputs are held; an authored copy is dropped.
27
27
  "backbone.deliver": "it is added at run time while sandbox outputs are held",
28
+ // #1244: injected wherever backbone.bash is advertised; an authored copy is dropped.
29
+ "backbone.view_image": "it is added at run time wherever the sandboxed shell is",
28
30
  web_search: "it has no executor and is skipped",
29
31
  };
30
32
  const BUILTIN_TYPES = [
@@ -106,11 +106,11 @@ export function makeAiCommand() {
106
106
  .option("--agent <id>", "Invoke a stored agent by id or name, optionally with @label")
107
107
  .option("--model <id>", "Model in provider/model format; with --agent, one of the agent's models to run this request on")
108
108
  .option("--conversation <id>", "Conversation ID this response belongs to")
109
- .option("--stream", "Stream the response (not supported by the server yet, #148)")
109
+ .option("--stream", "Stream the response (not supported by the CLI yet)")
110
110
  .action(async (input, opts, command) => {
111
111
  await runAction(command, async () => {
112
112
  if (opts.stream) {
113
- throw new CliUsageError("Streaming is not supported by the server yet (#148). Run without --stream.");
113
+ throw new CliUsageError("Streaming is not supported by the CLI yet. Run without --stream.");
114
114
  }
115
115
  const model = resolveModel(opts);
116
116
  const inputText = input ?? readStdinInput();
@@ -37,7 +37,7 @@ export function makeKnowledgeCommand() {
37
37
  .description("Create a knowledge base and its first configuration version")
38
38
  .requiredOption("-n, --name <name>", "Knowledge base name")
39
39
  .requiredOption("--slug <slug>", "Unique slug")
40
- .requiredOption("--embedding-provider <id>", "Embedding provider ID")
40
+ .requiredOption("--embedding-provider <id>", "Embedding provider: a provider ID, or builtin for the platform's built-in models (text-embedding-3-small, text-embedding-3-large; charged per input token)")
41
41
  .requiredOption("--embedding-model <model>", "Embedding model")
42
42
  .requiredOption("--embedding-dim <n>", "Embedding dimension", parseInt)
43
43
  .option("-d, --description <text>", "Description")
@@ -77,7 +77,7 @@ export function makeKnowledgeCommand() {
77
77
  .argument("<id>", "Knowledge base ID")
78
78
  .option("-n, --name <name>", "New name")
79
79
  .option("-d, --description <text>", "New description")
80
- .option("--embedding-provider <id>", "New embedding provider ID")
80
+ .option("--embedding-provider <id>", "New embedding provider ID, or builtin. Re-embeds nothing: stored vectors stay comparable only if the new provider serves the same model at the same width; the safe move is a new knowledge base with the documents uploaded again")
81
81
  .option("--embedding-model <model>", "New embedding model")
82
82
  .option("--chunking-strategy <strategy>", "New chunking strategy (AUTO, FIXED, HIERARCHICAL, CUSTOM)")
83
83
  .option("--chunk-size <n>", "New chunk size", parseInt)
@@ -178,7 +178,7 @@ export function makeKnowledgeCommand() {
178
178
  cmd
179
179
  .command("embedding-models")
180
180
  .description("List embedding models a provider serves that fit a provisioned dimension")
181
- .argument("<providerId>", "Provider ID")
181
+ .argument("<providerId>", "Provider ID, or builtin for the platform's built-in embedding models")
182
182
  .action(async (providerId, _opts, command) => {
183
183
  await runAction(command, async () => {
184
184
  const client = getClient(command);
@@ -122,6 +122,7 @@ function relayDecideCommand(ref, responseId, calls, withApprovals) {
122
122
  /**
123
123
  * Output item types the envelope decodes, or that never hold a run: text, reasoning and finished
124
124
  * connector calls. A pause on anything else (a connector approval's `mcp_approval_request`) is named.
125
+ * `backbone:tool_image` is an image a finished `ViewImage` call attached (#1244): it never holds a run.
125
126
  */
126
127
  const DECODED_ITEM_TYPES = new Set([
127
128
  "message",
@@ -130,6 +131,7 @@ const DECODED_ITEM_TYPES = new Set([
130
131
  "function_call_output",
131
132
  "backbone:approval_request",
132
133
  "backbone:connector_auth_request",
134
+ "backbone:tool_image",
133
135
  "mcp_call",
134
136
  "mcp_list_tools",
135
137
  ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@2kw/ai",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-dev.7",
4
4
  "description": "CLI for 2kw.ai — schema-driven document extraction, an OpenAI-compatible EU LLM gateway, transcription, prompts, datasets, and experiments from your terminal or agentic workflows. Ships as 2kw, backbone, and bb.",
5
5
  "keywords": [
6
6
  "cli",