@snoai/memory 1.7.1 → 2.0.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/README.md +1 -1
- package/dist/agent-state-BB-voJsF.js +928 -0
- package/dist/agent-state-view.d.ts +1 -0
- package/dist/agent-state-view.js +185 -0
- package/dist/{atomic-memory-extraction-CWMMWF2C.js → atomic-memory-extraction-OusdO3Ig.js} +4 -4
- package/dist/client.js +1 -1
- package/dist/coding-skin-lewnGLT-.js +342 -0
- package/dist/coding-skin.d.ts +90 -4
- package/dist/coding-skin.js +3 -2
- package/dist/{config-D6GJyMKz.js → config-0oK6k24i.js} +2 -2
- package/dist/diagnostic-encoder.js +1 -1
- package/dist/index.js +5 -5
- package/dist/internal/config/settings.js +2 -2
- package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
- package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
- package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
- package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
- package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
- package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
- package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
- package/dist/internal/engine/observability/observable-memory-store.js +1 -1
- package/dist/internal/engine/observability/runtime-diagnostics.js +1 -1
- package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
- package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
- package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
- package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
- package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
- package/dist/internal/model/llm-client.js +1 -1
- package/dist/internal/store/maintenance.js +3 -3
- package/dist/internal/store/store.js +1 -1
- package/dist/{llm-client-BtbX4af4.js → llm-client-DhBvu-U_.js} +1 -1
- package/dist/{log-site-catalog.generated-Dtiih6m2.js → log-site-catalog.generated-ClhbzmWf.js} +2 -2
- package/dist/log-site-catalog.json +1 -1
- package/dist/memdump.js +1 -1
- package/dist/{memory-runtime-B9fG-sNo.js → memory-runtime-DPrBxPA5.js} +4 -4
- package/dist/{memory-temporality-classifier-Bm0EiCN8.js → memory-temporality-classifier-DTRhzXmG.js} +1 -1
- package/dist/{memory-tool-dependencies-BxVJ-bHs.js → memory-tool-dependencies-BQHE4kMD.js} +1 -1
- package/dist/{profile-section-writer-DSX6R3GF.js → profile-section-writer-QiB0MMtt.js} +2 -2
- package/dist/{reflection-command-hooks-Dyckr_Ma.js → reflection-command-hooks-DBpqpF7A.js} +3 -3
- package/dist/{reflection-embedded-generator-i8KHqMpr.js → reflection-embedded-generator-DNFMQNsv.js} +1 -1
- package/dist/{rem-batch-executor-BSWXFOLH.js → rem-batch-executor-CUD8VH49.js} +1 -1
- package/dist/{rem-trigger-BaJa5FS0.js → rem-trigger-BwdTBHtj.js} +29 -7
- package/dist/{server-DPd3Xef2.js → server-D7tIZPWW.js} +4 -4
- package/dist/sidecar/main.js +2 -2
- package/dist/{sno-station-mem-runtime-dependencies-DITNvfkR.js → sno-station-mem-runtime-dependencies-Fq6yRstU.js} +5 -5
- package/dist/{store-YX1_c1NH.js → store-cu7Qq2OW.js} +1 -1
- package/dist/{strategy-hook-runner-CwqZ1orf.js → strategy-hook-runner-CvdsVcwR.js} +1 -1
- package/package.json +1 -1
- package/settings.default.json +2 -2
- package/dist/coding-skin-BnFryVac.js +0 -265
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-
|
|
2
|
-
import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, Bt as FIXED_PROTOCOL_VALUE_63, C as getSnoStationMemStateDir, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, E as defaultSettings, F as observeConfigSchema, Ft as FIXED_MEMORY_SNO_AI_EXTRACT, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, L as memoryReflectionConfigSchema, Lt as FIXED_MEMORY_SNO_EXTRACT_PROFILE, M as retrievalConfigSchema, N as isObserveAgentId, O as MODEL_CALLS, P as observeAgentId, Pt as FIXED_MEMORY_ROW_PATH_PATTERN, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-
|
|
1
|
+
import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-BwdTBHtj.js";
|
|
2
|
+
import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, Bt as FIXED_PROTOCOL_VALUE_63, C as getSnoStationMemStateDir, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, E as defaultSettings, F as observeConfigSchema, Ft as FIXED_MEMORY_SNO_AI_EXTRACT, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, L as memoryReflectionConfigSchema, Lt as FIXED_MEMORY_SNO_EXTRACT_PROFILE, M as retrievalConfigSchema, N as isObserveAgentId, O as MODEL_CALLS, P as observeAgentId, Pt as FIXED_MEMORY_ROW_PATH_PATTERN, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-0oK6k24i.js";
|
|
3
3
|
import { n as DEGRADED_REASONS, t as ContractError } from "./error-Dga5Ot1M.js";
|
|
4
4
|
import { configureLogger, createLogger, currentLogContext, effectiveLogLevel, loggerFileStatus, privateLogReference, withLogContext } from "@snoai/utils/logger";
|
|
5
5
|
import path, { basename, dirname, isAbsolute, join, posix, relative, resolve } from "node:path";
|
|
@@ -194,7 +194,7 @@ function addNumber(target, key, value) {
|
|
|
194
194
|
if (typeof value === "number" && Number.isFinite(value)) target[key] = value;
|
|
195
195
|
}
|
|
196
196
|
// package.json
|
|
197
|
-
var version = "
|
|
197
|
+
var version = "2.0.1";
|
|
198
198
|
// config/atomic-extraction-response.schema.json
|
|
199
199
|
var atomic_extraction_response_schema_default = {
|
|
200
200
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
@@ -1054,7 +1054,7 @@ function fallbackAtomicCapturedFact(fact) {
|
|
|
1054
1054
|
}
|
|
1055
1055
|
// src/engine/observability/log-site-catalog.generated.ts
|
|
1056
1056
|
const logSiteCatalog = {
|
|
1057
|
-
"build_id": "
|
|
1057
|
+
"build_id": "0c92bdd66ef1e0fe428b67b40d230015d829b64236db324460f31fa0237b766f",
|
|
1058
1058
|
"sites": {
|
|
1059
1059
|
"memory.recall.budget.checked": {
|
|
1060
1060
|
"file": "packages/memory/src/engine/bindings/memory-recall-tool.ts",
|
package/dist/{memory-temporality-classifier-Bm0EiCN8.js → memory-temporality-classifier-DTRhzXmG.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isSupportedLocale } from "./internal/engine/i18n/locales.js";
|
|
2
2
|
import { parseIsoDateTimeMs } from "./internal/engine/shared/iso-date-time.js";
|
|
3
3
|
import { r as modelCallDestination } from "./model-call-table-BxGwmwv0.js";
|
|
4
|
-
import { a as isTerminalLlmFailure } from "./llm-client-
|
|
4
|
+
import { a as isTerminalLlmFailure } from "./llm-client-DhBvu-U_.js";
|
|
5
5
|
import { n as readModelReplyJson } from "./model-reply-text-C7jEWDXG.js";
|
|
6
6
|
import { n as RESOURCES_BY_LOCALE } from "./all-resources-BZc9QIAW.js";
|
|
7
7
|
import { a as sessionZoneCarriedBy, n as calendarInstructionSchema, r as calendarSessionTimestamp, t as calculateCalendarTime } from "./calendar-instruction-uK6xsrCt.js";
|
|
@@ -8,7 +8,7 @@ import "./runtime-audit-log-4NJsojEj.js";
|
|
|
8
8
|
import "./all-resources-BZc9QIAW.js";
|
|
9
9
|
import "./capture-policy-detector-DhNGhDw3.js";
|
|
10
10
|
import "./internal/engine/extraction/extraction-text-sanitizer.js";
|
|
11
|
-
import "./memory-temporality-classifier-
|
|
11
|
+
import "./memory-temporality-classifier-DTRhzXmG.js";
|
|
12
12
|
import "./internal/engine/operations/daily-spend-estimator.js";
|
|
13
13
|
import "./internal/engine/operations/learning-file-maintenance.js";
|
|
14
14
|
import "./scopes-DQjbRC2q.js";
|
|
@@ -2,11 +2,11 @@ import { MAX_LIST_LIMIT } from "./internal/config/index.js";
|
|
|
2
2
|
import { SnoStationMemError, StorageError } from "./internal/engine/shared/errors.js";
|
|
3
3
|
import { a as buildInsightMetadata, c as stringifyInsightMetadata, h as deriveFactKey, s as parseInsightMetadata } from "./memory-metadata-codec-Cglikqj8.js";
|
|
4
4
|
import { a as currentMutationAttemptId, f as runWithMutationAttempt } from "./runtime-audit-log-4NJsojEj.js";
|
|
5
|
-
import { n as LlmClientTerminalError } from "./llm-client-
|
|
5
|
+
import { n as LlmClientTerminalError } from "./llm-client-DhBvu-U_.js";
|
|
6
6
|
import { resolveLlmRoute } from "./internal/model/llm-mode-routing.js";
|
|
7
7
|
import { boundSectionContent, buildIndexedText } from "./internal/engine/extraction/extraction-text-sanitizer.js";
|
|
8
8
|
import { adapterAViewFromRecord, orderAdapterAPair, parseAdapterAChatVerdict, prospectiveProfileView, renderAdapterAChatPrompt, renderAdapterAPrompt } from "./internal/engine/rem/index.js";
|
|
9
|
-
import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-
|
|
9
|
+
import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-cu7Qq2OW.js";
|
|
10
10
|
import { o as canonicalizeProfileSectionName, r as recordTokenCounter } from "./memory-store-write-validation-BbvoN3Li.js";
|
|
11
11
|
import { canExtractorWrite } from "./internal/engine/shared/memory-kind-policy.js";
|
|
12
12
|
import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
|
|
@@ -3,14 +3,14 @@ import { a as buildInsightMetadata, c as stringifyInsightMetadata } from "./memo
|
|
|
3
3
|
import { redactSecrets } from "./internal/engine/security/redact.js";
|
|
4
4
|
import { t as checkMemoryOperation } from "./operation-cancellation-mqfQz0ka.js";
|
|
5
5
|
import { setLruEntry } from "./internal/engine/shared/lru.js";
|
|
6
|
-
import { i as createLlmClient } from "./llm-client-
|
|
6
|
+
import { i as createLlmClient } from "./llm-client-DhBvu-U_.js";
|
|
7
7
|
import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
|
|
8
8
|
import { appendSelfImprovementEntry } from "./internal/engine/operations/learning-file-maintenance.js";
|
|
9
9
|
import { getSnoStationMemDataDir } from "./internal/store/data-paths.js";
|
|
10
10
|
import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
|
|
11
|
-
import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-
|
|
11
|
+
import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-QiB0MMtt.js";
|
|
12
12
|
import { a as generateReflectionText, c as shouldSkipReflectionMessage, l as writeReflectionToFilesystem, s as readSessionConversationWithResetFallback, u as extractTextContent } from "./daily-log-generator-DdzlaQYy.js";
|
|
13
|
-
import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-
|
|
13
|
+
import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-DNFMQNsv.js";
|
|
14
14
|
import { i as buildReflectionMappedMetadata, n as createReflectionEventId, o as extractInjectableReflectionMappedMemoryItems, r as buildReflectionAntiPatternSignature, s as extractReflectionLearningGovernanceCandidates, t as storeReflectionEntries } from "./memory-entry-projector-CkoEuLv6.js";
|
|
15
15
|
import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
|
|
16
16
|
import { basename, join } from "node:path";
|
package/dist/{reflection-embedded-generator-i8KHqMpr.js → reflection-embedded-generator-DNFMQNsv.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { X as FIXED_MEMORY_SNO_AI_EXTRACT } from "./signed-registry-constants-CO2vv_QJ.js";
|
|
2
|
-
import { i as createLlmClient } from "./llm-client-
|
|
2
|
+
import { i as createLlmClient } from "./llm-client-DhBvu-U_.js";
|
|
3
3
|
// src/engine/reflection/derived-line-cache.ts
|
|
4
4
|
/**
|
|
5
5
|
* Returns reflection derived cache entry from reflection cache keys state without side effects.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { c as runRemProductionOrderedWave } from "./rem-trigger-
|
|
1
|
+
export { c as runRemProductionOrderedWave } from "./rem-trigger-BwdTBHtj.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as ensureModelDownloaded, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as LocalReranker, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Xn as MAX_CHUNK_FETCH_LIMIT, Y as FIXED_EXTERNAL_VALUE_62, Z as FIXED_EXTERNAL_VALUE_9, Zn as MAX_LIST_LIMIT, _r as CachedEmbeddingProvider, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as RECENCY_WEIGHT, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RETRIEVAL_STORAGE_CHUNK_PROFILE, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as experimentMmrDisabled, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jr as REM_SIDECAR_TOKEN_HEADER, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as experimentCandidatePoolOverride, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nr as MULTI_HIT_BONUS_CAP, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rr as MULTI_HIT_BONUS_PER_HIT, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MMR_LAMBDA, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ur as TIME_DECAY_FLOOR, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as LocalEmbedProvider, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as LOCAL_EMBEDDING_MODEL, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-
|
|
1
|
+
import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as ensureModelDownloaded, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as LocalReranker, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Xn as MAX_CHUNK_FETCH_LIMIT, Y as FIXED_EXTERNAL_VALUE_62, Z as FIXED_EXTERNAL_VALUE_9, Zn as MAX_LIST_LIMIT, _r as CachedEmbeddingProvider, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as RECENCY_WEIGHT, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RETRIEVAL_STORAGE_CHUNK_PROFILE, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as experimentMmrDisabled, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jr as REM_SIDECAR_TOKEN_HEADER, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as experimentCandidatePoolOverride, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nr as MULTI_HIT_BONUS_CAP, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rr as MULTI_HIT_BONUS_PER_HIT, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MMR_LAMBDA, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ur as TIME_DECAY_FLOOR, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as LocalEmbedProvider, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as LOCAL_EMBEDDING_MODEL, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-0oK6k24i.js";
|
|
2
2
|
import { createLogger, createLogger as createLogger$1, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
|
|
3
3
|
import path, { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { appendFileSync, closeSync, createReadStream, existsSync, fstatSync, fsyncSync, ftruncateSync, mkdirSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
|
|
@@ -8,12 +8,15 @@ import { createHash, createHmac, createPublicKey, randomUUID, randomUUID as rand
|
|
|
8
8
|
import { LRUCache } from "lru-cache";
|
|
9
9
|
import { z } from "zod";
|
|
10
10
|
import { CHUNKING_VERSION, aggregateChunksToMemories, buildChunkId, buildDensePayload, chunk, chunk as chunk$1, countTokens, expandSnippetWindow, extractMetadataHeader, headExtract, shouldDropSummary } from "@snoai/chunking";
|
|
11
|
+
import "@snoai/observability";
|
|
11
12
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
12
13
|
import { getDek, openEncryptedDb, openEncryptedDbReadonly } from "@snoai/sqlite-crypto";
|
|
13
14
|
import { appendFile, mkdir, open, readFile, rename, rm } from "node:fs/promises";
|
|
14
15
|
import { Temporal } from "@js-temporal/polyfill";
|
|
15
16
|
import { redactForStorage, sanitizeContentIngress, sanitizeStructuredJsonForStorage } from "@snoai/content-sanitizer";
|
|
17
|
+
import { execFile } from "node:child_process";
|
|
16
18
|
import { createInterface } from "node:readline";
|
|
19
|
+
import { isDeepStrictEqual, promisify } from "node:util";
|
|
17
20
|
import { StringDecoder } from "node:string_decoder";
|
|
18
21
|
import { CallPipeline, ConfigRegistryManager, KeyPool, loadLlmixTrustManifest, registryRootOptionsFromTrustManifest } from "@snoai/llmix";
|
|
19
22
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
@@ -23,7 +26,6 @@ import { migrate } from "drizzle-orm/better-sqlite3/migrator";
|
|
|
23
26
|
import { index, integer, primaryKey, real, sqliteTable, text } from "drizzle-orm/sqlite-core";
|
|
24
27
|
import { arch as arch$1, platform as platform$1 } from "node:process";
|
|
25
28
|
import { getLoadablePath } from "sqlite-vec";
|
|
26
|
-
import { isDeepStrictEqual } from "node:util";
|
|
27
29
|
import { currentLogContext as currentLogContext$1, withLogContext as withLogContext$1 } from "@snoai/utils/log-context";
|
|
28
30
|
// \0rolldown/runtime.js
|
|
29
31
|
var __defProp = Object.defineProperty;
|
|
@@ -5854,10 +5856,6 @@ function debugContentPreview(text, enabled, maxChars = 80) {
|
|
|
5854
5856
|
if (collapsed.length === 0) return void 0;
|
|
5855
5857
|
return collapsed.length > maxChars ? `${collapsed.slice(0, maxChars)}...` : collapsed;
|
|
5856
5858
|
}
|
|
5857
|
-
z.object({ source: z.object({ commit: z.string().min(1) }) });
|
|
5858
|
-
// config/skin-defaults.ts
|
|
5859
|
-
/** Epoch milliseconds after which the requester no longer waits for the answer. */
|
|
5860
|
-
const HOST_MODEL_DEADLINE_HEADER = "x-sno-deadline";
|
|
5861
5859
|
z.object({
|
|
5862
5860
|
offset: z.number().int().nonnegative(),
|
|
5863
5861
|
lastTs: z.number().int().nonnegative(),
|
|
@@ -5866,6 +5864,30 @@ z.object({
|
|
|
5866
5864
|
counted: z.boolean(),
|
|
5867
5865
|
path: z.string().min(1).optional()
|
|
5868
5866
|
});
|
|
5867
|
+
promisify(execFile);
|
|
5868
|
+
const harnessSchema = z.enum([
|
|
5869
|
+
"claude",
|
|
5870
|
+
"codex",
|
|
5871
|
+
"cursor",
|
|
5872
|
+
"hermes",
|
|
5873
|
+
"openclaw",
|
|
5874
|
+
"unknown"
|
|
5875
|
+
]);
|
|
5876
|
+
z.object({
|
|
5877
|
+
harness: harnessSchema,
|
|
5878
|
+
sessionId: z.string().min(1),
|
|
5879
|
+
at: z.iso.datetime({ offset: true }),
|
|
5880
|
+
event: z.string(),
|
|
5881
|
+
input: z.record(z.string(), z.unknown()),
|
|
5882
|
+
pid: z.number().int().positive().optional(),
|
|
5883
|
+
processStart: z.string().optional(),
|
|
5884
|
+
reachAddress: z.string().optional(),
|
|
5885
|
+
cwd: z.string().optional()
|
|
5886
|
+
});
|
|
5887
|
+
z.object({ source: z.object({ commit: z.string().min(1) }) });
|
|
5888
|
+
// config/skin-defaults.ts
|
|
5889
|
+
/** Epoch milliseconds after which the requester no longer waits for the answer. */
|
|
5890
|
+
const HOST_MODEL_DEADLINE_HEADER = "x-sno-deadline";
|
|
5869
5891
|
// config/coding-skin.ts
|
|
5870
5892
|
const CODING_SKIN_CHILD_DEADLINE_MS = 11e4;
|
|
5871
5893
|
const CODING_SKIN_SESSION_QUERY = "standing decisions, open tasks, conventions and known pitfalls for this repository";
|
|
@@ -6597,7 +6619,7 @@ async function resolveConfiguredBundledLlmixEndpoint(input) {
|
|
|
6597
6619
|
});
|
|
6598
6620
|
}
|
|
6599
6621
|
// src/model/llm-endpoint-resolution.ts
|
|
6600
|
-
const SNO_GPU_ORIGIN = "https://
|
|
6622
|
+
const SNO_GPU_ORIGIN = "https://gpu.sno.ai";
|
|
6601
6623
|
const PROVIDER_API_BASES = {
|
|
6602
6624
|
openai: FIXED_PROTOCOL_VALUE_69,
|
|
6603
6625
|
openrouter: "https://openrouter.ai/api/v1"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-
|
|
2
|
-
import { $n as MEMORY_SHUTDOWN_TIMEOUT_MS, Ar as MEMORY_SKIN_HEADER, C as getSnoStationMemStateDir, Dr as MEMORY_ERROR_STATUS, Er as MEMORY_DEFAULT_SKIN_ID, Mr as memoryMethod, S as getSidecarSocketPath, _ as readRemTestHoldMs, c as REM_SIDECAR_ORIGIN, d as getRemDiscoveryPath, f as getRemJobJournalPath, g as readRemOperationalConfig, i as REM_JOBS_PATH_PREFIX, kr as MEMORY_ROUTES, l as REM_SOURCE, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-
|
|
1
|
+
import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-BwdTBHtj.js";
|
|
2
|
+
import { $n as MEMORY_SHUTDOWN_TIMEOUT_MS, Ar as MEMORY_SKIN_HEADER, C as getSnoStationMemStateDir, Dr as MEMORY_ERROR_STATUS, Er as MEMORY_DEFAULT_SKIN_ID, Mr as memoryMethod, S as getSidecarSocketPath, _ as readRemTestHoldMs, c as REM_SIDECAR_ORIGIN, d as getRemDiscoveryPath, f as getRemJobJournalPath, g as readRemOperationalConfig, i as REM_JOBS_PATH_PREFIX, kr as MEMORY_ROUTES, l as REM_SOURCE, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-0oK6k24i.js";
|
|
3
3
|
import { t as ContractError } from "./error-Dga5Ot1M.js";
|
|
4
4
|
import { setImmediate } from "node:timers/promises";
|
|
5
5
|
import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
|
|
@@ -331,7 +331,7 @@ async function startOwnedRemSidecar() {
|
|
|
331
331
|
async open() {
|
|
332
332
|
if (currentMemory) return currentMemory;
|
|
333
333
|
if (settingsError) throw settingsError;
|
|
334
|
-
openingMemory ??= import("./memory-runtime-
|
|
334
|
+
openingMemory ??= import("./memory-runtime-DPrBxPA5.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
|
|
335
335
|
currentMemory = pool;
|
|
336
336
|
if (stopping) pool.stopTimers();
|
|
337
337
|
return pool;
|
|
@@ -726,7 +726,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
|
|
|
726
726
|
cleanRefusalReasons.push(reason);
|
|
727
727
|
await appendChassisRefusal(journal, queued, operation, "refused", reason);
|
|
728
728
|
}
|
|
729
|
-
const { runRemProductionOrderedWave } = await import("./rem-batch-executor-
|
|
729
|
+
const { runRemProductionOrderedWave } = await import("./rem-batch-executor-CUD8VH49.js");
|
|
730
730
|
const result = enabledOperations.length === 0 ? {
|
|
731
731
|
decision: "allow",
|
|
732
732
|
reasonCode: null,
|
package/dist/sidecar/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Or as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-
|
|
1
|
+
import { Or as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-0oK6k24i.js";
|
|
2
2
|
import { setTimeout } from "node:timers/promises";
|
|
3
3
|
import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger";
|
|
4
4
|
// src/sidecar/main.ts
|
|
@@ -6,7 +6,7 @@ import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger
|
|
|
6
6
|
* @purpose Boots the standalone local REM sidecar process.
|
|
7
7
|
* @boundary Process environment, sidecar lifecycle, and local request-log destination.
|
|
8
8
|
*/
|
|
9
|
-
const { startRemSidecar, DuplicateSidecarError } = await import("../server-
|
|
9
|
+
const { startRemSidecar, DuplicateSidecarError } = await import("../server-D7tIZPWW.js");
|
|
10
10
|
let sidecar;
|
|
11
11
|
for (let attempt = 1; !sidecar; attempt++) try {
|
|
12
12
|
sidecar = await startRemSidecar();
|
|
@@ -4,12 +4,12 @@ import "./internal/engine/shared/types.js";
|
|
|
4
4
|
import "./internal/engine/security/redact.js";
|
|
5
5
|
import "./internal/engine/shared/utils.js";
|
|
6
6
|
import "./runtime-audit-log-4NJsojEj.js";
|
|
7
|
-
import "./llm-client-
|
|
7
|
+
import "./llm-client-DhBvu-U_.js";
|
|
8
8
|
import "./capture-policy-detector-DhNGhDw3.js";
|
|
9
9
|
import "./ambient-learning-text-normalizer-dxAxf9oi.js";
|
|
10
|
-
import "./memory-temporality-classifier-
|
|
10
|
+
import "./memory-temporality-classifier-DTRhzXmG.js";
|
|
11
11
|
import "./scopes-DQjbRC2q.js";
|
|
12
|
-
import "./atomic-memory-extraction-
|
|
12
|
+
import "./atomic-memory-extraction-OusdO3Ig.js";
|
|
13
13
|
import "./internal/store/sqlite-runtime.js";
|
|
14
14
|
import "./connection-H-_OZ-pP.js";
|
|
15
15
|
import "./internal/store/data-paths.js";
|
|
@@ -23,8 +23,8 @@ import "./retriever-DRtPp86k.js";
|
|
|
23
23
|
import "./internal/engine/observability/observable-retriever.js";
|
|
24
24
|
import "./internal/engine/observability/session-registry.js";
|
|
25
25
|
import "./daily-log-generator-DdzlaQYy.js";
|
|
26
|
-
import "./reflection-embedded-generator-
|
|
27
|
-
import "./strategy-hook-runner-
|
|
26
|
+
import "./reflection-embedded-generator-DNFMQNsv.js";
|
|
27
|
+
import "./strategy-hook-runner-CvdsVcwR.js";
|
|
28
28
|
import "./data-bootstrap-Db6a7ASj.js";
|
|
29
29
|
import "@snoai/sqlite-crypto";
|
|
30
30
|
export {};
|
|
@@ -10,7 +10,7 @@ import { t as checkMemoryOperation } from "./operation-cancellation-mqfQz0ka.js"
|
|
|
10
10
|
import { u as runWithMemoryAudit } from "./runtime-audit-log-4NJsojEj.js";
|
|
11
11
|
import { getSnoStationMemStateDir } from "./internal/contract/profile.js";
|
|
12
12
|
import "./internal/engine/extraction/extraction-text-sanitizer.js";
|
|
13
|
-
import "./memory-temporality-classifier-
|
|
13
|
+
import "./memory-temporality-classifier-DTRhzXmG.js";
|
|
14
14
|
import { a as readMemorySourceOrder, i as readCorrectionMoment, n as compareMemoryRetirementOrder, o as readMemorySourceOrderOrOldest, r as compareMemorySourceOrder, s as sameSourceTurn, t as closeMemoryRow } from "./memory-source-order-BTo_ix2y.js";
|
|
15
15
|
import { REM_UPDATE_LOCALES, deriveRemWriteIdentity, getRemUpdateLocaleResource, writeRemTwoFacetTransaction } from "./internal/engine/rem/index.js";
|
|
16
16
|
import { n as state_vocabulary_default, r as attribute_dictionary_default, t as relations } from "./relation-dictionary-QVBewRQ1.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_REFLECTION_SESSION_TTL_MS } from "./internal/config/index.js";
|
|
2
2
|
import { setLruEntry, touchLruEntry } from "./internal/engine/shared/lru.js";
|
|
3
3
|
import { n as createErrorSignalTracker } from "./error-signals-CqvwBBWn.js";
|
|
4
|
-
import { i as pruneReflectionState } from "./reflection-embedded-generator-
|
|
4
|
+
import { i as pruneReflectionState } from "./reflection-embedded-generator-DNFMQNsv.js";
|
|
5
5
|
import { a as loadAgentReflectionSlicesFromEntries } from "./memory-entry-projector-CkoEuLv6.js";
|
|
6
6
|
import { createLogger } from "@snoai/utils/logger";
|
|
7
7
|
// src/engine/reflection/reflection-slice-loader.ts
|
package/package.json
CHANGED
package/settings.default.json
CHANGED
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"language": "en"
|
|
168
168
|
},
|
|
169
169
|
"snoGpu": {
|
|
170
|
-
"baseUrl": "https://
|
|
170
|
+
"baseUrl": "https://gpu.sno.ai",
|
|
171
171
|
"apiKey": ""
|
|
172
172
|
},
|
|
173
173
|
"rerank": {
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"prompt": {
|
|
198
198
|
"limit": 3,
|
|
199
199
|
"maxChars": 1500,
|
|
200
|
-
"timeoutMs":
|
|
200
|
+
"timeoutMs": 25000,
|
|
201
201
|
"minChars": 12,
|
|
202
202
|
"minScore": 0
|
|
203
203
|
},
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
import "./internal/engine/telemetry/observe-ledger.js";
|
|
2
|
-
import "./internal/config/skill-categories.js";
|
|
3
|
-
import "./internal/config/skin-defaults.js";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { basename } from "node:path";
|
|
6
|
-
import { createReadStream } from "node:fs";
|
|
7
|
-
// config/session-activity.ts
|
|
8
|
-
/** A gap between two records of at most this long is working time; a longer one ends the run. */
|
|
9
|
-
const ACTIVITY_GAP_MS = 9e5;
|
|
10
|
-
/** A run counts in runs_over_12h once, in the send where it reaches this length, ended or not. */
|
|
11
|
-
const ACTIVITY_LONG_RUN_MS = 432e5;
|
|
12
|
-
/**
|
|
13
|
-
* Text markers of messages the person did not write, seen in real transcripts on the owner's
|
|
14
|
-
* machine (Claude Code 2.1.247 and Codex 0.160, 2026-08 to 2026-10). Heuristics, matched on text.
|
|
15
|
-
*/
|
|
16
|
-
/** Reach's ring and mailbox doorbell, typed into the agent's terminal (apps/reach/lib/reach-ring line 426); recorded as a human prompt by Claude Code and Codex. */
|
|
17
|
-
const REACH_RING_MARKER = "typed by the mail transport, not by the owner";
|
|
18
|
-
/** A heartbeat tick line, "<UTC time> [label] tick=N ..." (apps/heartbeat/bin/heartbeat line 507); Claude Code delivers it inside a Monitor <task-notification>. */
|
|
19
|
-
const HEARTBEAT_TICK = /\d{4}-\d\d-\d\dT\d\d:\d\d:\d\dZ \[[^\]\n]+\] tick=\d+/;
|
|
20
|
-
/** The first prompt Reach gives a seat it starts in a terminal (apps/reach/lib/reach-spawn line 19). */
|
|
21
|
-
const REACH_SEAT_START_MARKER = "No work is assigned by this startup message";
|
|
22
|
-
/** True when the text of a user message came from another agent's tooling: a Reach ring or seat start, or a heartbeat wake. */
|
|
23
|
-
function isAgentText(text) {
|
|
24
|
-
return text.includes(REACH_RING_MARKER) || text.includes(REACH_SEAT_START_MARKER) || HEARTBEAT_TICK.test(text);
|
|
25
|
-
}
|
|
26
|
-
const activityCursorSchema = z.object({
|
|
27
|
-
offset: z.number().int().nonnegative(),
|
|
28
|
-
lastTs: z.number().int().nonnegative(),
|
|
29
|
-
runStart: z.number().int().nonnegative(),
|
|
30
|
-
agentDriven: z.boolean(),
|
|
31
|
-
counted: z.boolean(),
|
|
32
|
-
path: z.string().min(1).optional()
|
|
33
|
-
});
|
|
34
|
-
const EMPTY_ACTIVITY_CURSOR = {
|
|
35
|
-
offset: 0,
|
|
36
|
-
lastTs: 0,
|
|
37
|
-
runStart: 0,
|
|
38
|
-
agentDriven: false,
|
|
39
|
-
counted: false
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Folds the records after the cursor into one window. A gap belongs to the window of the record
|
|
43
|
-
* that ends it, so splitting a transcript at any line gives the same sums. A run is counted in
|
|
44
|
-
* runs_over_12h once, in the send where it reaches 12 hours, whether or not it has ended. longest_run_ms
|
|
45
|
-
* is the longest run of any length seen in the window, including the length so far of the run still
|
|
46
|
-
* open. `closeRun` ends the run still open at the last record (the session is over); otherwise it
|
|
47
|
-
* stays open in the cursor.
|
|
48
|
-
*/
|
|
49
|
-
function foldActivity(cursor, records, closeRun) {
|
|
50
|
-
let { lastTs, runStart, agentDriven, counted } = cursor;
|
|
51
|
-
let windowStart = runStart > 0 ? lastTs : 0;
|
|
52
|
-
let active = 0, team = 0, human = 0, runs = 0, longest = 0;
|
|
53
|
-
const seeRun = (end) => {
|
|
54
|
-
const length = end - runStart;
|
|
55
|
-
longest = Math.max(longest, length);
|
|
56
|
-
if (!counted && length >= ACTIVITY_LONG_RUN_MS) {
|
|
57
|
-
runs++;
|
|
58
|
-
counted = true;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
for (const record of records) {
|
|
62
|
-
if (windowStart === 0) windowStart = record.ts;
|
|
63
|
-
if (runStart === 0) runStart = record.ts;
|
|
64
|
-
else if (record.ts > lastTs) {
|
|
65
|
-
const gap = record.ts - lastTs;
|
|
66
|
-
if (gap <= ACTIVITY_GAP_MS) {
|
|
67
|
-
active += gap;
|
|
68
|
-
if (agentDriven) team += gap;
|
|
69
|
-
} else {
|
|
70
|
-
seeRun(lastTs);
|
|
71
|
-
runStart = record.ts;
|
|
72
|
-
counted = false;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
lastTs = Math.max(lastTs, record.ts);
|
|
76
|
-
if (runStart > 0) seeRun(lastTs);
|
|
77
|
-
if (record.incoming === "human") {
|
|
78
|
-
human++;
|
|
79
|
-
agentDriven = false;
|
|
80
|
-
} else if (record.incoming === "agent") agentDriven = true;
|
|
81
|
-
}
|
|
82
|
-
const closing = closeRun && runStart > 0;
|
|
83
|
-
if (closing) {
|
|
84
|
-
runStart = 0;
|
|
85
|
-
counted = false;
|
|
86
|
-
}
|
|
87
|
-
const next = {
|
|
88
|
-
...cursor,
|
|
89
|
-
lastTs,
|
|
90
|
-
runStart,
|
|
91
|
-
agentDriven,
|
|
92
|
-
counted
|
|
93
|
-
};
|
|
94
|
-
if (records.length === 0 && !closing) return {
|
|
95
|
-
payload: void 0,
|
|
96
|
-
cursor: next
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
payload: {
|
|
100
|
-
window_start_ms: windowStart > 0 ? windowStart : lastTs,
|
|
101
|
-
window_end_ms: lastTs,
|
|
102
|
-
active_ms: active,
|
|
103
|
-
team_driven_ms: team,
|
|
104
|
-
runs_over_12h: runs,
|
|
105
|
-
longest_run_ms: longest,
|
|
106
|
-
human_messages: human
|
|
107
|
-
},
|
|
108
|
-
cursor: next
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Calls `onLine` for each complete line from `offset` on and returns the offset after the last
|
|
113
|
-
* complete line, and whether the end of the file was reached on a line boundary. Stops reading once `budgetMs` has passed: real transcripts reach 1.65 GB while a
|
|
114
|
-
* hook has seconds, so a long backlog is taken over several sends instead of failing every time.
|
|
115
|
-
*/
|
|
116
|
-
async function readNewLines(path, offset, budgetMs, onLine) {
|
|
117
|
-
const deadline = Date.now() + budgetMs;
|
|
118
|
-
const stream = createReadStream(path, { start: offset });
|
|
119
|
-
let pending = Buffer.alloc(0);
|
|
120
|
-
let consumed = offset;
|
|
121
|
-
let done = true;
|
|
122
|
-
try {
|
|
123
|
-
for await (const chunk of stream) {
|
|
124
|
-
pending = pending.length === 0 ? chunk : Buffer.concat([pending, chunk]);
|
|
125
|
-
let from = 0;
|
|
126
|
-
for (let end = pending.indexOf(10, from); end !== -1; end = pending.indexOf(10, from)) {
|
|
127
|
-
if (end > from) onLine(pending.toString("utf8", from, end));
|
|
128
|
-
from = end + 1;
|
|
129
|
-
}
|
|
130
|
-
consumed += from;
|
|
131
|
-
pending = pending.subarray(from);
|
|
132
|
-
if (Date.now() > deadline) {
|
|
133
|
-
done = false;
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
} finally {
|
|
138
|
-
stream.destroy();
|
|
139
|
-
}
|
|
140
|
-
if (done && pending.length > 0) {
|
|
141
|
-
const tail = pending.toString("utf8");
|
|
142
|
-
try {
|
|
143
|
-
JSON.parse(tail);
|
|
144
|
-
onLine(tail);
|
|
145
|
-
consumed += pending.length;
|
|
146
|
-
} catch {
|
|
147
|
-
done = false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
offset: consumed,
|
|
152
|
-
done
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
// config/coding-skin.ts
|
|
156
|
-
const CODING_SKIN_CHILD_DEADLINE_MS = 11e4;
|
|
157
|
-
const CODING_SKIN_WORKER_LIFETIME_MS = 54e4;
|
|
158
|
-
const CODING_SKIN_RETRY_DELAYS_MS = [2e3, 1e4];
|
|
159
|
-
const CODING_SKIN_MAX_ATTEMPTS = 3;
|
|
160
|
-
const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
|
|
161
|
-
/** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
|
|
162
|
-
const CODING_SKIN_CAPTURE_QUIET_MS = 18e5;
|
|
163
|
-
/**
|
|
164
|
-
* Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
|
|
165
|
-
* about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
|
|
166
|
-
* a small part; the rest is room for the window's JSON framing.
|
|
167
|
-
*/
|
|
168
|
-
const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
|
|
169
|
-
const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
|
|
170
|
-
const CODING_SKIN_CHILD_MAX_BUFFER_BYTES = 8388608;
|
|
171
|
-
const CODING_SKIN_MANUAL_SESSION_ID = "manual";
|
|
172
|
-
const CODING_SKIN_SESSION_QUERY = "standing decisions, open tasks, conventions and known pitfalls for this repository";
|
|
173
|
-
const CODING_SKIN_LEDGER_MAX_CHARS = 12e3;
|
|
174
|
-
const CODING_SKIN_RECALL_SENTENCE_MAX_CHARS = 200;
|
|
175
|
-
const CODING_SKIN_RECALL_ITEM_MAX_CHARS = 240;
|
|
176
|
-
const CODING_SKIN_HOOKS = {
|
|
177
|
-
SessionStart: {
|
|
178
|
-
eventName: "session_start",
|
|
179
|
-
subcommand: "session-start",
|
|
180
|
-
timeout: 15
|
|
181
|
-
},
|
|
182
|
-
UserPromptSubmit: {
|
|
183
|
-
eventName: "user_prompt_submit",
|
|
184
|
-
subcommand: "user-prompt-submit",
|
|
185
|
-
timeout: 8
|
|
186
|
-
},
|
|
187
|
-
Stop: {
|
|
188
|
-
eventName: "stop",
|
|
189
|
-
subcommand: "stop",
|
|
190
|
-
timeout: 5
|
|
191
|
-
},
|
|
192
|
-
SessionEnd: {
|
|
193
|
-
eventName: "session_end",
|
|
194
|
-
subcommand: "session-end",
|
|
195
|
-
timeout: 8
|
|
196
|
-
},
|
|
197
|
-
PreToolUse: {
|
|
198
|
-
eventName: "pre_tool_use",
|
|
199
|
-
subcommand: "pre-tool-use",
|
|
200
|
-
timeout: 5
|
|
201
|
-
},
|
|
202
|
-
PostToolUse: {
|
|
203
|
-
eventName: "post_tool_use",
|
|
204
|
-
subcommand: "post-tool-use",
|
|
205
|
-
timeout: 8
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
/** Cursor's hook events (`hooks.json` names); timeouts match the Claude/Codex event each one stands in for. */
|
|
209
|
-
const CODING_SKIN_CURSOR_HOOKS = {
|
|
210
|
-
sessionStart: {
|
|
211
|
-
subcommand: "session-start",
|
|
212
|
-
timeout: 15
|
|
213
|
-
},
|
|
214
|
-
beforeSubmitPrompt: {
|
|
215
|
-
subcommand: "user-prompt-submit",
|
|
216
|
-
timeout: 8
|
|
217
|
-
},
|
|
218
|
-
afterAgentResponse: {
|
|
219
|
-
subcommand: "after-agent-response",
|
|
220
|
-
timeout: 5
|
|
221
|
-
},
|
|
222
|
-
afterAgentThought: {
|
|
223
|
-
subcommand: "after-agent-thought",
|
|
224
|
-
timeout: 5
|
|
225
|
-
},
|
|
226
|
-
stop: {
|
|
227
|
-
subcommand: "stop",
|
|
228
|
-
timeout: 5
|
|
229
|
-
},
|
|
230
|
-
preCompact: {
|
|
231
|
-
subcommand: "pre-compact",
|
|
232
|
-
timeout: 5
|
|
233
|
-
},
|
|
234
|
-
sessionEnd: {
|
|
235
|
-
subcommand: "session-end",
|
|
236
|
-
timeout: 8
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
const CODING_SKIN_MODEL_COMMANDS = [
|
|
240
|
-
"recall",
|
|
241
|
-
"get",
|
|
242
|
-
"remember",
|
|
243
|
-
"correct"
|
|
244
|
-
];
|
|
245
|
-
function shellQuote(value) {
|
|
246
|
-
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
247
|
-
}
|
|
248
|
-
/** Linux reports a running binary that was replaced on disk as "<path> (deleted)"; the path itself is still the right one. */
|
|
249
|
-
function snoProgramPath(path) {
|
|
250
|
-
return path.endsWith(" (deleted)") ? path.slice(0, -10) : path;
|
|
251
|
-
}
|
|
252
|
-
/** The command an agent hook runs: the `sno` binary that ran setup, then `memory hook <event> --harness <name>`. */
|
|
253
|
-
function codingSkinHookCommand(snoPath, subcommand, harness) {
|
|
254
|
-
return `${shellQuote(snoPath)} memory hook ${subcommand} --harness ${harness}`;
|
|
255
|
-
}
|
|
256
|
-
/** True for a hook command of that shape, whatever the path to `sno` is. */
|
|
257
|
-
function isCodingSkinHookCommand(command, subcommand, harness) {
|
|
258
|
-
const suffix = ` memory hook ${subcommand} --harness ${harness}`;
|
|
259
|
-
const trimmed = command.trim();
|
|
260
|
-
if (!trimmed.endsWith(suffix)) return false;
|
|
261
|
-
const encoded = trimmed.slice(0, -suffix.length);
|
|
262
|
-
const program = encoded.startsWith("'") && encoded.endsWith("'") ? encoded.slice(1, -1).replaceAll("'\\''", "'") : encoded;
|
|
263
|
-
return basename(snoProgramPath(program)) === "sno";
|
|
264
|
-
}
|
|
265
|
-
export { activityCursorSchema as C, readNewLines as E, EMPTY_ACTIVITY_CURSOR as S, isAgentText as T, CODING_SKIN_WORKER_LIFETIME_MS as _, CODING_SKIN_CURSOR_HOOKS as a, shellQuote as b, CODING_SKIN_LEDGER_MAX_CHARS as c, CODING_SKIN_MAX_PENDING_CAPTURES as d, CODING_SKIN_MODEL_COMMANDS as f, CODING_SKIN_SESSION_QUERY as g, CODING_SKIN_RETRY_DELAYS_MS as h, CODING_SKIN_CHILD_MAX_BUFFER_BYTES as i, CODING_SKIN_MANUAL_SESSION_ID as l, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS as m, CODING_SKIN_CAPTURE_QUIET_MS as n, CODING_SKIN_HOOKS as o, CODING_SKIN_RECALL_ITEM_MAX_CHARS as p, CODING_SKIN_CHILD_DEADLINE_MS as r, CODING_SKIN_IMPORT_INTERVAL_MS as s, CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS as t, CODING_SKIN_MAX_ATTEMPTS as u, codingSkinHookCommand as v, foldActivity as w, snoProgramPath as x, isCodingSkinHookCommand as y };
|