switchroom 0.19.41 → 0.19.42
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/agent-scheduler/index.js +22 -2
- package/dist/auth-broker/index.js +22 -2
- package/dist/cli/notion-write-pretool.mjs +22 -2
- package/dist/cli/switchroom.js +772 -234
- package/dist/host-control/main.js +23 -3
- package/dist/vault/approvals/kernel-server.js +22 -2
- package/dist/vault/broker/server.js +22 -2
- package/package.json +1 -1
- package/telegram-plugin/dist/gateway/gateway.js +97 -83
- package/telegram-plugin/gateway/approval-callback-consume-record.test.ts +132 -0
- package/telegram-plugin/gateway/gateway.ts +7 -7
- package/telegram-plugin/gateway/liveness-wiring.ts +12 -0
- package/telegram-plugin/gateway/model-command.ts +21 -109
- package/telegram-plugin/gateway/stream-render.ts +57 -0
- package/telegram-plugin/tests/framework-fallback-drains-parked.test.ts +134 -0
- package/telegram-plugin/tests/helpers/liveness-wiring-fixture.ts +3 -0
- package/vendor/hindsight-memory/CHANGELOG.md +28 -0
- package/vendor/hindsight-memory/docs/measurements/subagent-volume-gate-3994.md +84 -0
- package/vendor/hindsight-memory/scripts/backfill_transcripts.py +254 -40
- package/vendor/hindsight-memory/scripts/lib/content.py +11 -2
- package/vendor/hindsight-memory/scripts/recall.py +18 -3
- package/vendor/hindsight-memory/scripts/subagent_retain.py +59 -38
- package/vendor/hindsight-memory/scripts/tests/data/replay_volume_gate_3994.py +295 -0
- package/vendor/hindsight-memory/scripts/tests/test_backfill_from_logs.py +109 -0
- package/vendor/hindsight-memory/scripts/tests/test_overlap_tokens.py +135 -0
- package/vendor/hindsight-memory/scripts/tests/test_recall_no_lexical_gate.py +20 -23
- package/vendor/hindsight-memory/scripts/tests/test_recall_query_shaping.py +48 -0
- package/vendor/hindsight-memory/scripts/tests/test_subagent_retain.py +94 -1
- package/vendor/hindsight-memory/scripts/tests/test_subagent_retain_learnings.py +98 -42
|
@@ -11091,6 +11091,7 @@ var AgentMemorySchema = exports_external.object({
|
|
|
11091
11091
|
auto_recall: exports_external.boolean().default(true).describe("Auto-search memories before each response"),
|
|
11092
11092
|
file: exports_external.boolean().default(true).describe("Maintain a curated workspace MEMORY.md file (seeded once, " + "auto-loaded every turn). Set false for hindsight-only memory: " + "the file is not seeded or re-created, so once migrated into " + "Hindsight and deleted it stays gone. Recall + directives carry " + "the memory instead. Cascade: override (per-agent wins over default)."),
|
|
11093
11093
|
isolation: exports_external.enum(["default", "strict"]).default("default").describe("strict = never shared cross-agent, default = eligible for reflect"),
|
|
11094
|
+
profile: exports_external.string().optional().describe("Memory profile bank this agent's curated memory defaults key off — " + "the built-in disposition + observations_mission in PROFILE_MEMORY_DEFAULTS. " + "Decouples the memory profile from `extends` (the filesystem persona " + "profile), so an agent on `extends: default` can opt into the `coding` " + "memory bundle via `memory.profile: coding` without inheriting the coding " + "persona. Resolution: memory.profile → extends → DEFAULT_PROFILE (see " + "resolveMemoryProfile). Unset ⇒ byte-identical to keying off `extends`."),
|
|
11094
11095
|
bank_mission: exports_external.string().optional().describe("Bank-level mission statement used during recall to contextualize " + "results. NOTE: this is an alias for the Hindsight engine's " + "`reflect_mission` field (verified live: switchroom's bank_mission " + "lands in `config.reflect_mission`). Prefer `reflect_mission` going " + "forward; `bank_mission` is retained for back-compat. If both are " + "set, `reflect_mission` wins. Cascade: override."),
|
|
11095
11096
|
reflect_mission: exports_external.string().optional().describe("Mission/context steering Hindsight Reflect operations (the bank's " + "'who am I / what matters' framing applied during recall). The " + "engine-accurate name for what `bank_mission` sets. Cascade: override."),
|
|
11096
11097
|
retain_mission: exports_external.string().optional().describe("Instructions for the fact extraction LLM during retain. Cascade: override."),
|
|
@@ -11384,6 +11385,8 @@ var HindsightConfigSchema = exports_external.object({
|
|
|
11384
11385
|
provider: exports_external.string().min(1).optional().describe("Hindsight LLM provider (upstream `HINDSIGHT_API_LLM_PROVIDER`). " + "Defaults to `claude-code` (subscription-honest, broker-fed OAuth). " + "Any litellm-routable provider the upstream image supports is valid. " + "Serves as the GLOBAL default for every op absent a per-op override."),
|
|
11385
11386
|
model: exports_external.string().min(1).optional().describe("Hindsight LLM model (upstream `HINDSIGHT_API_LLM_MODEL`). Defaults " + "to HINDSIGHT_DEFAULT_MODEL. Any model your LiteLLM proxy can route " + "is valid, e.g. `openrouter/z-ai/glm-5.2` when routing through the " + "fleet proxy. With provider=claude-code this value is ALSO exported " + "as `ANTHROPIC_MODEL` to the claude subprocess. Serves as the GLOBAL " + "default for every op absent a per-op override."),
|
|
11386
11387
|
context_window: exports_external.number().int().positive().optional().describe("GLOBAL context window (tokens) of the backend serving hindsight's " + "LLM ops — the declared size switchroom derives every token budget " + "from. Set this to the real window of whatever you point " + "`hindsight.llm` at (e.g. 32768 for a llama.cpp slot launched with " + "`-c 65536 -np 2`, 131072 for a large-window OpenRouter model). " + "Absent → a per-provider default: 200000 for `claude-code`, a " + "conservative 32768 for everything else. Overflowing a local " + "backend's window does NOT error — llama.cpp context-shift silently " + "drops the system prompt and the model answers conversationally " + "with HTTP 200 — so this value is what makes the failure " + "detectable at setup time instead of never."),
|
|
11388
|
+
base_url: exports_external.string().min(1).optional().describe("GLOBAL LLM base URL (upstream `HINDSIGHT_API_LLM_BASE_URL`). The " + "default endpoint every op inherits absent a per-op " + "`hindsight.llm.<op>.base_url`. Optional passthrough; unset → the " + "engine's provider default. When this points at host loopback the " + "hindsight container is forced onto host networking, same as a " + "per-op base URL, so the endpoint stays reachable (#3687)."),
|
|
11389
|
+
api_key: exports_external.string().min(1).optional().describe("GLOBAL LLM API key (upstream `HINDSIGHT_API_LLM_API_KEY`). Literal " + "or `vault:` reference. The default credential every op inherits " + "absent a per-op `hindsight.llm.<op>.api_key`; the engine reads it as " + "a plain env fallback. Optional passthrough (#3687)."),
|
|
11387
11390
|
retain: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `retain` LLM op (memory ingestion). Emits " + "`HINDSIGHT_API_RETAIN_LLM_*`. Absent → uses the global model/provider."),
|
|
11388
11391
|
reflect: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `reflect` LLM op (synthesis / mental-model " + "refresh). Emits `HINDSIGHT_API_REFLECT_LLM_*`. Absent → uses global."),
|
|
11389
11392
|
consolidation: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `consolidation` LLM op (background memory " + "merge). Emits `HINDSIGHT_API_CONSOLIDATION_LLM_*`. Absent → global.")
|
|
@@ -11520,6 +11523,7 @@ var profileFields = {
|
|
|
11520
11523
|
auto_recall: exports_external.boolean().optional(),
|
|
11521
11524
|
file: exports_external.boolean().optional(),
|
|
11522
11525
|
isolation: exports_external.enum(["default", "strict"]).optional(),
|
|
11526
|
+
profile: exports_external.string().optional(),
|
|
11523
11527
|
directive_capture_nudge: exports_external.boolean().optional(),
|
|
11524
11528
|
observation_scopes: ObservationScopesSchema,
|
|
11525
11529
|
observation_scope_strategy: ObservationScopeStrategySchema,
|
|
@@ -11561,7 +11565,23 @@ var profileFields = {
|
|
|
11561
11565
|
max_query_chars: exports_external.number().int().min(1).optional(),
|
|
11562
11566
|
parallel: exports_external.boolean().optional(),
|
|
11563
11567
|
additional_banks: exports_external.array(exports_external.string()).optional(),
|
|
11564
|
-
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional()
|
|
11568
|
+
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional(),
|
|
11569
|
+
types: exports_external.array(exports_external.string()).optional(),
|
|
11570
|
+
skip_trivial: exports_external.boolean().optional(),
|
|
11571
|
+
topic_filter_mode: exports_external.enum(["soft-preamble", "hard-filter"]).optional()
|
|
11572
|
+
}).optional(),
|
|
11573
|
+
retain: exports_external.object({
|
|
11574
|
+
every_n_turns: exports_external.number().int().min(1).optional(),
|
|
11575
|
+
overlap_turns: exports_external.number().int().min(0).optional()
|
|
11576
|
+
}).optional(),
|
|
11577
|
+
bank_mission: exports_external.string().optional(),
|
|
11578
|
+
reflect_mission: exports_external.string().optional(),
|
|
11579
|
+
retain_mission: exports_external.string().optional(),
|
|
11580
|
+
observations_mission: exports_external.string().optional(),
|
|
11581
|
+
disposition: exports_external.object({
|
|
11582
|
+
skepticism: exports_external.number().int().min(1).max(5).optional(),
|
|
11583
|
+
literalism: exports_external.number().int().min(1).max(5).optional(),
|
|
11584
|
+
empathy: exports_external.number().int().min(1).max(5).optional()
|
|
11565
11585
|
}).optional()
|
|
11566
11586
|
}).optional(),
|
|
11567
11587
|
schedule: exports_external.array(ScheduleEntrySchema).optional(),
|
|
@@ -13556,11 +13576,11 @@ var ResponseSchema = exports_external.union([
|
|
|
13556
13576
|
OkRevokeGrantResponseSchema,
|
|
13557
13577
|
OkApprovalRequestResponseSchema,
|
|
13558
13578
|
OkApprovalLookupResponseSchema,
|
|
13579
|
+
OkApprovalConsumeRecordResponseSchema,
|
|
13559
13580
|
OkApprovalConsumeResponseSchema,
|
|
13560
13581
|
OkApprovalRevokeResponseSchema,
|
|
13561
13582
|
OkApprovalListResponseSchema,
|
|
13562
13583
|
OkApprovalRecordResponseSchema,
|
|
13563
|
-
OkApprovalConsumeRecordResponseSchema,
|
|
13564
13584
|
ErrorResponseSchema
|
|
13565
13585
|
]);
|
|
13566
13586
|
function encodeRequest(req) {
|
|
@@ -11116,6 +11116,7 @@ var init_schema = __esm(() => {
|
|
|
11116
11116
|
auto_recall: exports_external.boolean().default(true).describe("Auto-search memories before each response"),
|
|
11117
11117
|
file: exports_external.boolean().default(true).describe("Maintain a curated workspace MEMORY.md file (seeded once, " + "auto-loaded every turn). Set false for hindsight-only memory: " + "the file is not seeded or re-created, so once migrated into " + "Hindsight and deleted it stays gone. Recall + directives carry " + "the memory instead. Cascade: override (per-agent wins over default)."),
|
|
11118
11118
|
isolation: exports_external.enum(["default", "strict"]).default("default").describe("strict = never shared cross-agent, default = eligible for reflect"),
|
|
11119
|
+
profile: exports_external.string().optional().describe("Memory profile bank this agent's curated memory defaults key off — " + "the built-in disposition + observations_mission in PROFILE_MEMORY_DEFAULTS. " + "Decouples the memory profile from `extends` (the filesystem persona " + "profile), so an agent on `extends: default` can opt into the `coding` " + "memory bundle via `memory.profile: coding` without inheriting the coding " + "persona. Resolution: memory.profile → extends → DEFAULT_PROFILE (see " + "resolveMemoryProfile). Unset ⇒ byte-identical to keying off `extends`."),
|
|
11119
11120
|
bank_mission: exports_external.string().optional().describe("Bank-level mission statement used during recall to contextualize " + "results. NOTE: this is an alias for the Hindsight engine's " + "`reflect_mission` field (verified live: switchroom's bank_mission " + "lands in `config.reflect_mission`). Prefer `reflect_mission` going " + "forward; `bank_mission` is retained for back-compat. If both are " + "set, `reflect_mission` wins. Cascade: override."),
|
|
11120
11121
|
reflect_mission: exports_external.string().optional().describe("Mission/context steering Hindsight Reflect operations (the bank's " + "'who am I / what matters' framing applied during recall). The " + "engine-accurate name for what `bank_mission` sets. Cascade: override."),
|
|
11121
11122
|
retain_mission: exports_external.string().optional().describe("Instructions for the fact extraction LLM during retain. Cascade: override."),
|
|
@@ -11409,6 +11410,8 @@ var init_schema = __esm(() => {
|
|
|
11409
11410
|
provider: exports_external.string().min(1).optional().describe("Hindsight LLM provider (upstream `HINDSIGHT_API_LLM_PROVIDER`). " + "Defaults to `claude-code` (subscription-honest, broker-fed OAuth). " + "Any litellm-routable provider the upstream image supports is valid. " + "Serves as the GLOBAL default for every op absent a per-op override."),
|
|
11410
11411
|
model: exports_external.string().min(1).optional().describe("Hindsight LLM model (upstream `HINDSIGHT_API_LLM_MODEL`). Defaults " + "to HINDSIGHT_DEFAULT_MODEL. Any model your LiteLLM proxy can route " + "is valid, e.g. `openrouter/z-ai/glm-5.2` when routing through the " + "fleet proxy. With provider=claude-code this value is ALSO exported " + "as `ANTHROPIC_MODEL` to the claude subprocess. Serves as the GLOBAL " + "default for every op absent a per-op override."),
|
|
11411
11412
|
context_window: exports_external.number().int().positive().optional().describe("GLOBAL context window (tokens) of the backend serving hindsight's " + "LLM ops — the declared size switchroom derives every token budget " + "from. Set this to the real window of whatever you point " + "`hindsight.llm` at (e.g. 32768 for a llama.cpp slot launched with " + "`-c 65536 -np 2`, 131072 for a large-window OpenRouter model). " + "Absent → a per-provider default: 200000 for `claude-code`, a " + "conservative 32768 for everything else. Overflowing a local " + "backend's window does NOT error — llama.cpp context-shift silently " + "drops the system prompt and the model answers conversationally " + "with HTTP 200 — so this value is what makes the failure " + "detectable at setup time instead of never."),
|
|
11413
|
+
base_url: exports_external.string().min(1).optional().describe("GLOBAL LLM base URL (upstream `HINDSIGHT_API_LLM_BASE_URL`). The " + "default endpoint every op inherits absent a per-op " + "`hindsight.llm.<op>.base_url`. Optional passthrough; unset → the " + "engine's provider default. When this points at host loopback the " + "hindsight container is forced onto host networking, same as a " + "per-op base URL, so the endpoint stays reachable (#3687)."),
|
|
11414
|
+
api_key: exports_external.string().min(1).optional().describe("GLOBAL LLM API key (upstream `HINDSIGHT_API_LLM_API_KEY`). Literal " + "or `vault:` reference. The default credential every op inherits " + "absent a per-op `hindsight.llm.<op>.api_key`; the engine reads it as " + "a plain env fallback. Optional passthrough (#3687)."),
|
|
11412
11415
|
retain: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `retain` LLM op (memory ingestion). Emits " + "`HINDSIGHT_API_RETAIN_LLM_*`. Absent → uses the global model/provider."),
|
|
11413
11416
|
reflect: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `reflect` LLM op (synthesis / mental-model " + "refresh). Emits `HINDSIGHT_API_REFLECT_LLM_*`. Absent → uses global."),
|
|
11414
11417
|
consolidation: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `consolidation` LLM op (background memory " + "merge). Emits `HINDSIGHT_API_CONSOLIDATION_LLM_*`. Absent → global.")
|
|
@@ -11545,6 +11548,7 @@ var init_schema = __esm(() => {
|
|
|
11545
11548
|
auto_recall: exports_external.boolean().optional(),
|
|
11546
11549
|
file: exports_external.boolean().optional(),
|
|
11547
11550
|
isolation: exports_external.enum(["default", "strict"]).optional(),
|
|
11551
|
+
profile: exports_external.string().optional(),
|
|
11548
11552
|
directive_capture_nudge: exports_external.boolean().optional(),
|
|
11549
11553
|
observation_scopes: ObservationScopesSchema,
|
|
11550
11554
|
observation_scope_strategy: ObservationScopeStrategySchema,
|
|
@@ -11586,7 +11590,23 @@ var init_schema = __esm(() => {
|
|
|
11586
11590
|
max_query_chars: exports_external.number().int().min(1).optional(),
|
|
11587
11591
|
parallel: exports_external.boolean().optional(),
|
|
11588
11592
|
additional_banks: exports_external.array(exports_external.string()).optional(),
|
|
11589
|
-
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional()
|
|
11593
|
+
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional(),
|
|
11594
|
+
types: exports_external.array(exports_external.string()).optional(),
|
|
11595
|
+
skip_trivial: exports_external.boolean().optional(),
|
|
11596
|
+
topic_filter_mode: exports_external.enum(["soft-preamble", "hard-filter"]).optional()
|
|
11597
|
+
}).optional(),
|
|
11598
|
+
retain: exports_external.object({
|
|
11599
|
+
every_n_turns: exports_external.number().int().min(1).optional(),
|
|
11600
|
+
overlap_turns: exports_external.number().int().min(0).optional()
|
|
11601
|
+
}).optional(),
|
|
11602
|
+
bank_mission: exports_external.string().optional(),
|
|
11603
|
+
reflect_mission: exports_external.string().optional(),
|
|
11604
|
+
retain_mission: exports_external.string().optional(),
|
|
11605
|
+
observations_mission: exports_external.string().optional(),
|
|
11606
|
+
disposition: exports_external.object({
|
|
11607
|
+
skepticism: exports_external.number().int().min(1).max(5).optional(),
|
|
11608
|
+
literalism: exports_external.number().int().min(1).max(5).optional(),
|
|
11609
|
+
empathy: exports_external.number().int().min(1).max(5).optional()
|
|
11590
11610
|
}).optional()
|
|
11591
11611
|
}).optional(),
|
|
11592
11612
|
schedule: exports_external.array(ScheduleEntrySchema).optional(),
|
|
@@ -18711,11 +18731,11 @@ var init_protocol = __esm(() => {
|
|
|
18711
18731
|
OkRevokeGrantResponseSchema,
|
|
18712
18732
|
OkApprovalRequestResponseSchema,
|
|
18713
18733
|
OkApprovalLookupResponseSchema,
|
|
18734
|
+
OkApprovalConsumeRecordResponseSchema,
|
|
18714
18735
|
OkApprovalConsumeResponseSchema,
|
|
18715
18736
|
OkApprovalRevokeResponseSchema,
|
|
18716
18737
|
OkApprovalListResponseSchema,
|
|
18717
18738
|
OkApprovalRecordResponseSchema,
|
|
18718
|
-
OkApprovalConsumeRecordResponseSchema,
|
|
18719
18739
|
ErrorResponseSchema
|
|
18720
18740
|
]);
|
|
18721
18741
|
});
|
|
@@ -11244,11 +11244,11 @@ var init_protocol = __esm(() => {
|
|
|
11244
11244
|
OkRevokeGrantResponseSchema,
|
|
11245
11245
|
OkApprovalRequestResponseSchema,
|
|
11246
11246
|
OkApprovalLookupResponseSchema,
|
|
11247
|
+
OkApprovalConsumeRecordResponseSchema,
|
|
11247
11248
|
OkApprovalConsumeResponseSchema,
|
|
11248
11249
|
OkApprovalRevokeResponseSchema,
|
|
11249
11250
|
OkApprovalListResponseSchema,
|
|
11250
11251
|
OkApprovalRecordResponseSchema,
|
|
11251
|
-
OkApprovalConsumeRecordResponseSchema,
|
|
11252
11252
|
ErrorResponseSchema
|
|
11253
11253
|
]);
|
|
11254
11254
|
});
|
|
@@ -11852,6 +11852,7 @@ var AgentMemorySchema = exports_external.object({
|
|
|
11852
11852
|
auto_recall: exports_external.boolean().default(true).describe("Auto-search memories before each response"),
|
|
11853
11853
|
file: exports_external.boolean().default(true).describe("Maintain a curated workspace MEMORY.md file (seeded once, " + "auto-loaded every turn). Set false for hindsight-only memory: " + "the file is not seeded or re-created, so once migrated into " + "Hindsight and deleted it stays gone. Recall + directives carry " + "the memory instead. Cascade: override (per-agent wins over default)."),
|
|
11854
11854
|
isolation: exports_external.enum(["default", "strict"]).default("default").describe("strict = never shared cross-agent, default = eligible for reflect"),
|
|
11855
|
+
profile: exports_external.string().optional().describe("Memory profile bank this agent's curated memory defaults key off \u2014 " + "the built-in disposition + observations_mission in PROFILE_MEMORY_DEFAULTS. " + "Decouples the memory profile from `extends` (the filesystem persona " + "profile), so an agent on `extends: default` can opt into the `coding` " + "memory bundle via `memory.profile: coding` without inheriting the coding " + "persona. Resolution: memory.profile \u2192 extends \u2192 DEFAULT_PROFILE (see " + "resolveMemoryProfile). Unset \u21d2 byte-identical to keying off `extends`."),
|
|
11855
11856
|
bank_mission: exports_external.string().optional().describe("Bank-level mission statement used during recall to contextualize " + "results. NOTE: this is an alias for the Hindsight engine's " + "`reflect_mission` field (verified live: switchroom's bank_mission " + "lands in `config.reflect_mission`). Prefer `reflect_mission` going " + "forward; `bank_mission` is retained for back-compat. If both are " + "set, `reflect_mission` wins. Cascade: override."),
|
|
11856
11857
|
reflect_mission: exports_external.string().optional().describe("Mission/context steering Hindsight Reflect operations (the bank's " + "'who am I / what matters' framing applied during recall). The " + "engine-accurate name for what `bank_mission` sets. Cascade: override."),
|
|
11857
11858
|
retain_mission: exports_external.string().optional().describe("Instructions for the fact extraction LLM during retain. Cascade: override."),
|
|
@@ -12145,6 +12146,8 @@ var HindsightConfigSchema = exports_external.object({
|
|
|
12145
12146
|
provider: exports_external.string().min(1).optional().describe("Hindsight LLM provider (upstream `HINDSIGHT_API_LLM_PROVIDER`). " + "Defaults to `claude-code` (subscription-honest, broker-fed OAuth). " + "Any litellm-routable provider the upstream image supports is valid. " + "Serves as the GLOBAL default for every op absent a per-op override."),
|
|
12146
12147
|
model: exports_external.string().min(1).optional().describe("Hindsight LLM model (upstream `HINDSIGHT_API_LLM_MODEL`). Defaults " + "to HINDSIGHT_DEFAULT_MODEL. Any model your LiteLLM proxy can route " + "is valid, e.g. `openrouter/z-ai/glm-5.2` when routing through the " + "fleet proxy. With provider=claude-code this value is ALSO exported " + "as `ANTHROPIC_MODEL` to the claude subprocess. Serves as the GLOBAL " + "default for every op absent a per-op override."),
|
|
12147
12148
|
context_window: exports_external.number().int().positive().optional().describe("GLOBAL context window (tokens) of the backend serving hindsight's " + "LLM ops \u2014 the declared size switchroom derives every token budget " + "from. Set this to the real window of whatever you point " + "`hindsight.llm` at (e.g. 32768 for a llama.cpp slot launched with " + "`-c 65536 -np 2`, 131072 for a large-window OpenRouter model). " + "Absent \u2192 a per-provider default: 200000 for `claude-code`, a " + "conservative 32768 for everything else. Overflowing a local " + "backend's window does NOT error \u2014 llama.cpp context-shift silently " + "drops the system prompt and the model answers conversationally " + "with HTTP 200 \u2014 so this value is what makes the failure " + "detectable at setup time instead of never."),
|
|
12149
|
+
base_url: exports_external.string().min(1).optional().describe("GLOBAL LLM base URL (upstream `HINDSIGHT_API_LLM_BASE_URL`). The " + "default endpoint every op inherits absent a per-op " + "`hindsight.llm.<op>.base_url`. Optional passthrough; unset \u2192 the " + "engine's provider default. When this points at host loopback the " + "hindsight container is forced onto host networking, same as a " + "per-op base URL, so the endpoint stays reachable (#3687)."),
|
|
12150
|
+
api_key: exports_external.string().min(1).optional().describe("GLOBAL LLM API key (upstream `HINDSIGHT_API_LLM_API_KEY`). Literal " + "or `vault:` reference. The default credential every op inherits " + "absent a per-op `hindsight.llm.<op>.api_key`; the engine reads it as " + "a plain env fallback. Optional passthrough (#3687)."),
|
|
12148
12151
|
retain: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `retain` LLM op (memory ingestion). Emits " + "`HINDSIGHT_API_RETAIN_LLM_*`. Absent \u2192 uses the global model/provider."),
|
|
12149
12152
|
reflect: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `reflect` LLM op (synthesis / mental-model " + "refresh). Emits `HINDSIGHT_API_REFLECT_LLM_*`. Absent \u2192 uses global."),
|
|
12150
12153
|
consolidation: HindsightPerOpLlmSchema.optional().describe("Per-op override for the `consolidation` LLM op (background memory " + "merge). Emits `HINDSIGHT_API_CONSOLIDATION_LLM_*`. Absent \u2192 global.")
|
|
@@ -12281,6 +12284,7 @@ var profileFields = {
|
|
|
12281
12284
|
auto_recall: exports_external.boolean().optional(),
|
|
12282
12285
|
file: exports_external.boolean().optional(),
|
|
12283
12286
|
isolation: exports_external.enum(["default", "strict"]).optional(),
|
|
12287
|
+
profile: exports_external.string().optional(),
|
|
12284
12288
|
directive_capture_nudge: exports_external.boolean().optional(),
|
|
12285
12289
|
observation_scopes: ObservationScopesSchema,
|
|
12286
12290
|
observation_scope_strategy: ObservationScopeStrategySchema,
|
|
@@ -12322,7 +12326,23 @@ var profileFields = {
|
|
|
12322
12326
|
max_query_chars: exports_external.number().int().min(1).optional(),
|
|
12323
12327
|
parallel: exports_external.boolean().optional(),
|
|
12324
12328
|
additional_banks: exports_external.array(exports_external.string()).optional(),
|
|
12325
|
-
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional()
|
|
12329
|
+
sender_banks: exports_external.record(exports_external.string(), exports_external.string()).optional(),
|
|
12330
|
+
types: exports_external.array(exports_external.string()).optional(),
|
|
12331
|
+
skip_trivial: exports_external.boolean().optional(),
|
|
12332
|
+
topic_filter_mode: exports_external.enum(["soft-preamble", "hard-filter"]).optional()
|
|
12333
|
+
}).optional(),
|
|
12334
|
+
retain: exports_external.object({
|
|
12335
|
+
every_n_turns: exports_external.number().int().min(1).optional(),
|
|
12336
|
+
overlap_turns: exports_external.number().int().min(0).optional()
|
|
12337
|
+
}).optional(),
|
|
12338
|
+
bank_mission: exports_external.string().optional(),
|
|
12339
|
+
reflect_mission: exports_external.string().optional(),
|
|
12340
|
+
retain_mission: exports_external.string().optional(),
|
|
12341
|
+
observations_mission: exports_external.string().optional(),
|
|
12342
|
+
disposition: exports_external.object({
|
|
12343
|
+
skepticism: exports_external.number().int().min(1).max(5).optional(),
|
|
12344
|
+
literalism: exports_external.number().int().min(1).max(5).optional(),
|
|
12345
|
+
empathy: exports_external.number().int().min(1).max(5).optional()
|
|
12326
12346
|
}).optional()
|
|
12327
12347
|
}).optional(),
|
|
12328
12348
|
schedule: exports_external.array(ScheduleEntrySchema).optional(),
|