@wrongstack/runtime 1.0.16 → 1.0.17

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.
@@ -1,6 +1,6 @@
1
1
  import type { EventBus } from '@wrongstack/core/kernel';
2
2
  import type { ToolRegistry } from '@wrongstack/core/registry';
3
- import type { AutoThinConfig, ConcreteTokenSavingTier, DisabledToolMeta, MemoryPort, Tool, ToolDescriptionModeConfig, ToolResultRenderModeConfig } from '@wrongstack/core/types';
3
+ import type { AutoThinConfig, ConcreteTokenSavingTier, DisabledToolMeta, MemoryPort, SkillLoader, Tool, ToolDescriptionModeConfig, ToolResultRenderModeConfig } from '@wrongstack/core/types';
4
4
  import { type VectorMemoryStore } from '@wrongstack/vector-memory';
5
5
  export interface CanonicalHostToolRegistrationOptions {
6
6
  registry: ToolRegistry;
@@ -37,6 +37,14 @@ export interface CanonicalHostToolRegistrationOptions {
37
37
  nextSteps?: {
38
38
  enabled: boolean;
39
39
  } | undefined;
40
+ /**
41
+ * Skill loader for the `skill` tool. The progressive skill manifest (the
42
+ * default `skills.mode`) only lists names and triggers and tells the model to
43
+ * "call the `skill` tool" for the body, so a host that passes a loader to the
44
+ * prompt builder but not here ships a manifest whose every entry is
45
+ * unloadable. Pass `undefined` when `features.skills` is off.
46
+ */
47
+ skillLoader?: SkillLoader | undefined;
40
48
  descriptionMode?: ToolDescriptionModeConfig | undefined;
41
49
  resultRenderMode?: ToolResultRenderModeConfig | undefined;
42
50
  disabledTools?: readonly string[] | undefined;
@@ -1,16 +1,13 @@
1
1
  // src/tool-registration.ts
2
2
  import { applyToolDescriptionModes, applyToolResultRenderModes } from "@wrongstack/core/utils";
3
3
  import { createSageTools, getSageService } from "@wrongstack/sage";
4
- import { nextStepsTool } from "@wrongstack/tools";
4
+ import { BROWSER_TOOL_NAMES, makeSkillTool, nextStepsTool } from "@wrongstack/tools";
5
5
  import {
6
6
  forgetTool,
7
7
  relatedMemoryTool,
8
8
  rememberTool,
9
9
  searchMemoryTool
10
10
  } from "@wrongstack/tools/memory";
11
- import {
12
- BROWSER_TOOL_NAMES
13
- } from "@wrongstack/tools";
14
11
  import { registerBuiltinToolTier, selectBuiltinToolsForTier } from "@wrongstack/tools/tool-tier";
15
12
  import { createVectorMemoryTools } from "@wrongstack/vector-memory";
16
13
 
@@ -112,12 +109,15 @@ function registerCanonicalHostTools(options) {
112
109
  );
113
110
  }
114
111
  if (options.nextSteps?.enabled) options.registry.register(nextStepsTool);
112
+ const skillTool = options.skillLoader ? makeSkillTool(options.skillLoader) : void 0;
113
+ if (skillTool) options.registry.register(skillTool);
115
114
  for (const tool of options.coordinationTools ?? []) options.registry.register(tool);
116
115
  if (options.tier !== "off") {
117
116
  const directNames = new Set(builtinTools.map((tool) => tool.name));
118
117
  for (const name of DIRECT_LAZY_GATEWAYS) directNames.add(name);
119
118
  if (options.contextTool) directNames.add(options.contextTool.name);
120
119
  if (options.nextSteps?.enabled) directNames.add(nextStepsTool.name);
120
+ if (skillTool) directNames.add(skillTool.name);
121
121
  for (const tool of options.coordinationTools ?? []) directNames.add(tool.name);
122
122
  if (options.memory?.enabled && memoryStore) {
123
123
  for (const name of ["remember", "search_memory", "memory_search"]) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/runtime",
3
- "version": "1.0.16",
3
+ "version": "1.0.17",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack default runtime implementations and host-level composition helpers built on @wrongstack/core.",
6
6
  "repository": {
@@ -64,16 +64,16 @@
64
64
  "README.md"
65
65
  ],
66
66
  "dependencies": {
67
- "@wrongstack/core": "1.0.16",
68
- "@wrongstack/governance": "1.0.16",
69
- "@wrongstack/kanban": "1.0.16",
70
- "@wrongstack/sage": "1.0.16",
71
- "@wrongstack/tools": "1.0.16",
72
- "@wrongstack/vector-memory": "1.0.16"
67
+ "@wrongstack/core": "1.0.17",
68
+ "@wrongstack/governance": "1.0.17",
69
+ "@wrongstack/kanban": "1.0.17",
70
+ "@wrongstack/sage": "1.0.17",
71
+ "@wrongstack/tools": "1.0.17",
72
+ "@wrongstack/vector-memory": "1.0.17"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@types/node": "^26.5.1",
76
- "@wrongstack/wrongtrace": "1.0.16",
76
+ "@wrongstack/wrongtrace": "1.0.17",
77
77
  "typescript": "^7.0.2"
78
78
  },
79
79
  "publishConfig": {