hoomanjs 1.28.2 → 1.29.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.
- package/README.md +32 -71
- package/dist/acp/acp-agent.js +1 -1
- package/dist/acp/acp-agent.js.map +1 -1
- package/dist/acp/sessions/{config-options.d.ts → options.d.ts} +0 -2
- package/dist/acp/sessions/{config-options.js → options.js} +3 -52
- package/dist/acp/sessions/options.js.map +1 -0
- package/dist/acp/utils/tool-kind.js +3 -9
- package/dist/acp/utils/tool-kind.js.map +1 -1
- package/dist/acp/utils/tool-locations.js +0 -2
- package/dist/acp/utils/tool-locations.js.map +1 -1
- package/dist/chat/app.js +1 -1
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/configure/app.js +227 -72
- package/dist/configure/app.js.map +1 -1
- package/dist/configure/types.d.ts +8 -0
- package/dist/core/agent/index.d.ts +1 -1
- package/dist/core/agent/index.js +10 -9
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/agents/registry.js +1 -1
- package/dist/core/agents/registry.js.map +1 -1
- package/dist/core/config.d.ts +5 -24
- package/dist/core/config.js +8 -43
- package/dist/core/config.js.map +1 -1
- package/dist/core/context/flat-file-storage.js.map +1 -0
- package/dist/core/{memory/stm → context}/index.js +1 -1
- package/dist/core/context/index.js.map +1 -0
- package/dist/core/{memory/stm → context}/lazy-session-manager.js +1 -1
- package/dist/core/context/lazy-session-manager.js.map +1 -0
- package/dist/core/inference/embedder.d.ts +26 -0
- package/dist/core/inference/embedder.js +85 -0
- package/dist/core/inference/embedder.js.map +1 -0
- package/dist/core/inference/index.d.ts +12 -0
- package/dist/core/inference/index.js +20 -0
- package/dist/core/inference/index.js.map +1 -0
- package/dist/core/inference/loader.d.ts +8 -0
- package/dist/core/inference/loader.js +85 -0
- package/dist/core/inference/loader.js.map +1 -0
- package/dist/core/memory/brain.d.ts +24 -0
- package/dist/core/memory/brain.js +133 -0
- package/dist/core/memory/brain.js.map +1 -0
- package/dist/core/memory/database.d.ts +4 -0
- package/dist/core/memory/database.js +87 -0
- package/dist/core/memory/database.js.map +1 -0
- package/dist/core/memory/index.d.ts +5 -3
- package/dist/core/memory/index.js +3 -2
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/tools.d.ts +16 -0
- package/dist/core/memory/tools.js +105 -0
- package/dist/core/memory/tools.js.map +1 -0
- package/dist/core/memory/types.d.ts +11 -0
- package/dist/core/memory/{ltm/types.js.map → types.js.map} +1 -1
- package/dist/core/models/index.js +1 -3
- package/dist/core/models/index.js.map +1 -1
- package/dist/core/models/openai.js +9 -0
- package/dist/core/models/openai.js.map +1 -0
- package/dist/core/prompts/static/memory.md +125 -0
- package/dist/core/prompts/static/wiki.md +15 -71
- package/dist/core/prompts/system.d.ts +4 -0
- package/dist/core/prompts/system.js +40 -9
- package/dist/core/prompts/system.js.map +1 -1
- package/dist/core/skills/built-in/hooman-config/SKILL.md +14 -50
- package/dist/core/state/tool-approvals.js +4 -15
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/tools/index.d.ts +0 -1
- package/dist/core/tools/index.js +0 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/utils/hashing.d.ts +1 -0
- package/dist/core/utils/hashing.js +5 -0
- package/dist/core/utils/hashing.js.map +1 -0
- package/dist/core/utils/paths.d.ts +3 -0
- package/dist/core/utils/paths.js +11 -24
- package/dist/core/utils/paths.js.map +1 -1
- package/dist/core/utils/strands-usage-accumulate.js.map +1 -0
- package/dist/core/wiki/converters.d.ts +12 -0
- package/dist/core/wiki/converters.js +73 -0
- package/dist/core/wiki/converters.js.map +1 -0
- package/dist/core/wiki/database.d.ts +38 -0
- package/dist/core/wiki/database.js +173 -0
- package/dist/core/wiki/database.js.map +1 -0
- package/dist/core/wiki/index.d.ts +7 -0
- package/dist/core/wiki/index.js +5 -0
- package/dist/core/wiki/index.js.map +1 -0
- package/dist/core/wiki/storage.d.ts +35 -0
- package/dist/core/wiki/storage.js +196 -0
- package/dist/core/wiki/storage.js.map +1 -0
- package/dist/core/wiki/tools.d.ts +5 -0
- package/dist/core/wiki/tools.js +32 -0
- package/dist/core/wiki/tools.js.map +1 -0
- package/dist/index.d.ts +11 -18
- package/dist/index.js +8 -13
- package/dist/index.js.map +1 -1
- package/package.json +13 -8
- package/dist/acp/sessions/config-options.js.map +0 -1
- package/dist/core/memory/ltm/embed.d.ts +0 -16
- package/dist/core/memory/ltm/embed.js +0 -49
- package/dist/core/memory/ltm/embed.js.map +0 -1
- package/dist/core/memory/ltm/index.d.ts +0 -3
- package/dist/core/memory/ltm/index.js +0 -3
- package/dist/core/memory/ltm/index.js.map +0 -1
- package/dist/core/memory/ltm/store.d.ts +0 -20
- package/dist/core/memory/ltm/store.js +0 -271
- package/dist/core/memory/ltm/store.js.map +0 -1
- package/dist/core/memory/ltm/tools.d.ts +0 -21
- package/dist/core/memory/ltm/tools.js +0 -127
- package/dist/core/memory/ltm/tools.js.map +0 -1
- package/dist/core/memory/ltm/types.d.ts +0 -79
- package/dist/core/memory/ltm/utils.d.ts +0 -40
- package/dist/core/memory/ltm/utils.js +0 -145
- package/dist/core/memory/ltm/utils.js.map +0 -1
- package/dist/core/memory/stm/flat-file-storage.js.map +0 -1
- package/dist/core/memory/stm/index.js.map +0 -1
- package/dist/core/memory/stm/lazy-session-manager.js.map +0 -1
- package/dist/core/models/bifrost/bifrost-base-url.d.ts +0 -6
- package/dist/core/models/bifrost/bifrost-base-url.js +0 -27
- package/dist/core/models/bifrost/bifrost-base-url.js.map +0 -1
- package/dist/core/models/bifrost/index.d.ts +0 -11
- package/dist/core/models/bifrost/index.js +0 -29
- package/dist/core/models/bifrost/index.js.map +0 -1
- package/dist/core/models/bifrost/strands-bifrost.d.ts +0 -14
- package/dist/core/models/bifrost/strands-bifrost.js +0 -168
- package/dist/core/models/bifrost/strands-bifrost.js.map +0 -1
- package/dist/core/models/openai/index.js +0 -13
- package/dist/core/models/openai/index.js.map +0 -1
- package/dist/core/models/openai/kimi-reasoning-wire.d.ts +0 -40
- package/dist/core/models/openai/kimi-reasoning-wire.js +0 -109
- package/dist/core/models/openai/kimi-reasoning-wire.js.map +0 -1
- package/dist/core/models/openai/openai-stream-shims.d.ts +0 -13
- package/dist/core/models/openai/openai-stream-shims.js +0 -48
- package/dist/core/models/openai/openai-stream-shims.js.map +0 -1
- package/dist/core/models/tensorzero/index.d.ts +0 -12
- package/dist/core/models/tensorzero/index.js +0 -17
- package/dist/core/models/tensorzero/index.js.map +0 -1
- package/dist/core/models/tensorzero/openai-chat-request-shims.d.ts +0 -25
- package/dist/core/models/tensorzero/openai-chat-request-shims.js +0 -45
- package/dist/core/models/tensorzero/openai-chat-request-shims.js.map +0 -1
- package/dist/core/models/tensorzero/strands-tensorzero.d.ts +0 -14
- package/dist/core/models/tensorzero/strands-tensorzero.js +0 -140
- package/dist/core/models/tensorzero/strands-tensorzero.js.map +0 -1
- package/dist/core/prompts/static/ltm.md +0 -50
- package/dist/core/tools/wiki.d.ts +0 -11
- package/dist/core/tools/wiki.js +0 -560
- package/dist/core/tools/wiki.js.map +0 -1
- package/dist/lib/strands-usage-accumulate.js.map +0 -1
- /package/dist/core/{memory/stm → context}/flat-file-storage.d.ts +0 -0
- /package/dist/core/{memory/stm → context}/flat-file-storage.js +0 -0
- /package/dist/core/{memory/stm → context}/index.d.ts +0 -0
- /package/dist/core/{memory/stm → context}/lazy-session-manager.d.ts +0 -0
- /package/dist/core/memory/{ltm/types.js → types.js} +0 -0
- /package/dist/core/models/{openai/index.d.ts → openai.d.ts} +0 -0
- /package/dist/{lib → core/utils}/strands-usage-accumulate.d.ts +0 -0
- /package/dist/{lib → core/utils}/strands-usage-accumulate.js +0 -0
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { dirname, join } from "node:path";
|
|
2
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
3
|
-
import { OpenAIModel } from "@strands-agents/sdk/models/openai";
|
|
4
|
-
import { applyKimiReasoningReplayToChatRequest, collectReasoningTextPerWireAssistant, stripAssistantReasoningBlocks, } from "./openai-chat-request-shims.js";
|
|
5
|
-
import { splitUsageOntoEmptyChoicesChunk } from "../openai/openai-stream-shims.js";
|
|
6
|
-
/** Strands 1.x moves chat helpers into `chat-adapter.js`, which is not a package export; load it next to the public `models/openai` entry. */
|
|
7
|
-
function openAiChatAdapterUrl() {
|
|
8
|
-
return pathToFileURL(join(dirname(fileURLToPath(import.meta.resolve("@strands-agents/sdk/models/openai"))), "chat-adapter.js")).href;
|
|
9
|
-
}
|
|
10
|
-
let chatAdapterPromise = null;
|
|
11
|
-
function loadOpenAiChatAdapter() {
|
|
12
|
-
chatAdapterPromise ??= import(openAiChatAdapterUrl());
|
|
13
|
-
return chatAdapterPromise;
|
|
14
|
-
}
|
|
15
|
-
function preludeEventsForTensorZeroDelta(delta, streamState) {
|
|
16
|
-
const out = [];
|
|
17
|
-
if (!delta) {
|
|
18
|
-
return out;
|
|
19
|
-
}
|
|
20
|
-
const toolCalls = delta.tool_calls;
|
|
21
|
-
if (Array.isArray(toolCalls) &&
|
|
22
|
-
toolCalls.length > 0 &&
|
|
23
|
-
streamState.reasoningContentBlockStarted) {
|
|
24
|
-
out.push({ type: "modelContentBlockStopEvent" });
|
|
25
|
-
streamState.reasoningContentBlockStarted = false;
|
|
26
|
-
}
|
|
27
|
-
const extra = delta.tensorzero_extra_content;
|
|
28
|
-
if (Array.isArray(extra)) {
|
|
29
|
-
for (const item of extra) {
|
|
30
|
-
if (!item || typeof item !== "object") {
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
const rec = item;
|
|
34
|
-
if (rec.type !== "thought") {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
const text = rec.text;
|
|
38
|
-
if (typeof text !== "string" || text.length === 0) {
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
if (!streamState.reasoningContentBlockStarted) {
|
|
42
|
-
out.push({ type: "modelContentBlockStartEvent" });
|
|
43
|
-
streamState.reasoningContentBlockStarted = true;
|
|
44
|
-
}
|
|
45
|
-
out.push({
|
|
46
|
-
type: "modelContentBlockDeltaEvent",
|
|
47
|
-
delta: { type: "reasoningContentDelta", text },
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const content = delta.content;
|
|
52
|
-
if (typeof content === "string" &&
|
|
53
|
-
content.length > 0 &&
|
|
54
|
-
streamState.reasoningContentBlockStarted) {
|
|
55
|
-
out.push({ type: "modelContentBlockStopEvent" });
|
|
56
|
-
streamState.reasoningContentBlockStarted = false;
|
|
57
|
-
}
|
|
58
|
-
return out;
|
|
59
|
-
}
|
|
60
|
-
function injectReasoningStopBeforeMessageStop(events, streamState) {
|
|
61
|
-
const out = [];
|
|
62
|
-
for (const e of events) {
|
|
63
|
-
if (e.type === "modelMessageStopEvent" &&
|
|
64
|
-
streamState.reasoningContentBlockStarted) {
|
|
65
|
-
out.push({ type: "modelContentBlockStopEvent" });
|
|
66
|
-
streamState.reasoningContentBlockStarted = false;
|
|
67
|
-
}
|
|
68
|
-
out.push(e);
|
|
69
|
-
}
|
|
70
|
-
return out;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* {@link OpenAIModel} with TensorZero OpenAI-gateway streaming fixes:
|
|
74
|
-
* - usage on the final chunk with `choices` (see {@link splitUsageOntoEmptyChoicesChunk})
|
|
75
|
-
* - `delta.tensorzero_extra_content` thoughts → Strands `reasoningContentDelta` (Hooman “thinking” UI)
|
|
76
|
-
*/
|
|
77
|
-
export class StrandsTensorZeroModel extends OpenAIModel {
|
|
78
|
-
constructor(options) {
|
|
79
|
-
if (options.api !== "chat") {
|
|
80
|
-
throw new Error(`TensorZero provider requires api: 'chat' (got '${String(options.api)}')`);
|
|
81
|
-
}
|
|
82
|
-
super(options);
|
|
83
|
-
}
|
|
84
|
-
async *stream(messages, options) {
|
|
85
|
-
if (!messages || messages.length === 0) {
|
|
86
|
-
throw new Error("At least one message is required");
|
|
87
|
-
}
|
|
88
|
-
const { formatChatRequest, mapChatChunkToEvents } = await loadOpenAiChatAdapter();
|
|
89
|
-
const client = this._client;
|
|
90
|
-
const rewrap = this._rewrapError;
|
|
91
|
-
try {
|
|
92
|
-
const reasoningPerWireAssistant = collectReasoningTextPerWireAssistant(messages);
|
|
93
|
-
const messagesForRequest = stripAssistantReasoningBlocks(messages);
|
|
94
|
-
const request = formatChatRequest(this.getConfig(), messagesForRequest, options);
|
|
95
|
-
applyKimiReasoningReplayToChatRequest(request, reasoningPerWireAssistant);
|
|
96
|
-
const raw = await client.chat.completions.create(request);
|
|
97
|
-
const stream = splitUsageOntoEmptyChoicesChunk(raw);
|
|
98
|
-
const streamState = {
|
|
99
|
-
messageStarted: false,
|
|
100
|
-
textContentBlockStarted: false,
|
|
101
|
-
reasoningContentBlockStarted: false,
|
|
102
|
-
};
|
|
103
|
-
const activeToolCalls = new Map();
|
|
104
|
-
let bufferedUsage = null;
|
|
105
|
-
for await (const chunk of stream) {
|
|
106
|
-
if (!chunk.choices || chunk.choices.length === 0) {
|
|
107
|
-
if (chunk.usage) {
|
|
108
|
-
bufferedUsage = {
|
|
109
|
-
type: "modelMetadataEvent",
|
|
110
|
-
usage: {
|
|
111
|
-
inputTokens: chunk.usage.prompt_tokens ?? 0,
|
|
112
|
-
outputTokens: chunk.usage.completion_tokens ?? 0,
|
|
113
|
-
totalTokens: chunk.usage.total_tokens ?? 0,
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
const delta = chunk.choices[0]?.delta;
|
|
120
|
-
const prelude = preludeEventsForTensorZeroDelta(delta, streamState);
|
|
121
|
-
const base = mapChatChunkToEvents(chunk, streamState, activeToolCalls);
|
|
122
|
-
const events = injectReasoningStopBeforeMessageStop([...prelude, ...base], streamState);
|
|
123
|
-
for (const event of events) {
|
|
124
|
-
if (event.type === "modelMessageStopEvent" && bufferedUsage) {
|
|
125
|
-
yield bufferedUsage;
|
|
126
|
-
bufferedUsage = null;
|
|
127
|
-
}
|
|
128
|
-
yield event;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (bufferedUsage) {
|
|
132
|
-
yield bufferedUsage;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
throw rewrap.call(this, error);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=strands-tensorzero.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strands-tensorzero.js","sourceRoot":"","sources":["../../../../src/core/models/tensorzero/strands-tensorzero.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
## Memory
|
|
2
|
-
|
|
3
|
-
You have access to long-term memory tools.
|
|
4
|
-
|
|
5
|
-
Long-term memory is for user-centric context that should persist across sessions.
|
|
6
|
-
|
|
7
|
-
Use it to improve continuity, not as a replacement for the current conversation context.
|
|
8
|
-
|
|
9
|
-
### Why Memory Exists
|
|
10
|
-
|
|
11
|
-
- Preserve durable user preferences and constraints
|
|
12
|
-
- Track long-running goals and durable context across sessions
|
|
13
|
-
- Remember facts that reduce repetitive clarification
|
|
14
|
-
|
|
15
|
-
### When To Load (search_memory)
|
|
16
|
-
|
|
17
|
-
- Search memory when:
|
|
18
|
-
- the user references prior work ("continue", "as before", "last time")
|
|
19
|
-
- personalization likely matters (style preferences, recurring tools, constraints)
|
|
20
|
-
- task context may span multiple sessions
|
|
21
|
-
- Do not search memory for simple self-contained requests where current context is enough
|
|
22
|
-
- Prefer targeted queries over broad fishing searches
|
|
23
|
-
|
|
24
|
-
### When To Save (store_memory)
|
|
25
|
-
|
|
26
|
-
- Store only information that is:
|
|
27
|
-
- durable (likely useful in future sessions)
|
|
28
|
-
- user-specific (preferences, facts, goals, recurring constraints)
|
|
29
|
-
- action-relevant (helps future decisions or execution)
|
|
30
|
-
- Good examples:
|
|
31
|
-
- "User prefers concise answers unless asked for detail."
|
|
32
|
-
- "User prefers step-by-step plans for complex tasks."
|
|
33
|
-
- "User is working toward X goal with Y constraint."
|
|
34
|
-
- Do not store:
|
|
35
|
-
- one-off transient requests
|
|
36
|
-
- information already obvious from current files
|
|
37
|
-
- generic facts unrelated to this user
|
|
38
|
-
|
|
39
|
-
### How To Maintain Memory
|
|
40
|
-
|
|
41
|
-
- If new info refines/corrects existing memory, use `update_memory` instead of creating duplicates
|
|
42
|
-
- If memory becomes obsolete/incorrect, use `archive_memory` rather than hard deletion
|
|
43
|
-
- Keep memory entries concise and normalized for retrieval quality
|
|
44
|
-
- Avoid near-duplicates; prefer one high-quality memory over many weak ones
|
|
45
|
-
|
|
46
|
-
### Priority Rules
|
|
47
|
-
|
|
48
|
-
- Current user input and local context take priority over memory if they conflict
|
|
49
|
-
- Treat memory as supportive context, not authoritative truth
|
|
50
|
-
- If uncertain whether to store, do not store
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { JSONValue } from "@strands-agents/sdk";
|
|
2
|
-
import type { Config } from "../config.js";
|
|
3
|
-
export declare function createWikiTools(_config: Config): (import("@strands-agents/sdk").InvokableTool<Record<string, never>, JSONValue> | import("@strands-agents/sdk").InvokableTool<{
|
|
4
|
-
type: "page";
|
|
5
|
-
}, JSONValue> | import("@strands-agents/sdk").InvokableTool<{
|
|
6
|
-
kind: "index" | "page" | "log" | "schema";
|
|
7
|
-
path?: string | undefined;
|
|
8
|
-
}, JSONValue> | import("@strands-agents/sdk").InvokableTool<{
|
|
9
|
-
query: string;
|
|
10
|
-
k?: number | undefined;
|
|
11
|
-
}, JSONValue>)[];
|