@cachly-dev/mcp-server 0.10.128 → 0.10.130
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 +2 -2
- package/dist/index.js +1 -7
- package/dist/packages/telegram-notify/client.js +2 -75
- package/dist/src/ambient-cli.js +7 -253
- package/dist/src/ambient-deps.js +1 -55
- package/dist/src/ambient-hooks.js +5 -278
- package/dist/src/ambient-ledger.js +6 -95
- package/dist/src/ambient-memory.js +1 -67
- package/dist/src/ambient-recall.js +1 -221
- package/dist/src/aussetzer.js +1 -82
- package/dist/src/auth.js +9 -140
- package/dist/src/autor-abzeichen.js +1 -56
- package/dist/src/autor.js +1 -136
- package/dist/src/bauabdruck.js +1 -93
- package/dist/src/bedeutung.js +2 -323
- package/dist/src/bench/cachly-bench.js +4 -249
- package/dist/src/bench/external-corpus.js +4 -135
- package/dist/src/bench/fixtures.js +1 -225
- package/dist/src/brain-export.js +16 -119
- package/dist/src/brain-watch-hook.js +8 -86
- package/dist/src/cachly-url.js +1 -21
- package/dist/src/ckg.js +1 -108
- package/dist/src/cls-hook.js +8 -94
- package/dist/src/confidence.js +1 -50
- package/dist/src/credentials.js +1 -85
- package/dist/src/deutsch.js +1 -223
- package/dist/src/doctor.js +2 -248
- package/dist/src/editor.js +1 -63
- package/dist/src/eingaenge-nachruesten.js +1 -290
- package/dist/src/eingaenge.js +2 -228
- package/dist/src/embeddings.js +13 -223
- package/dist/src/feldreparatur.js +3 -0
- package/dist/src/first-contact.js +4 -108
- package/dist/src/first-recall-proof.js +4 -41
- package/dist/src/funnel-milestones.js +2 -48
- package/dist/src/geliefert.js +1 -114
- package/dist/src/handlers/advanced.js +38 -537
- package/dist/src/handlers/brain.js +69 -4181
- package/dist/src/handlers/cache.js +59 -638
- package/dist/src/handlers/context.js +17 -182
- package/dist/src/handlers/fedbrain.js +40 -1436
- package/dist/src/handlers/instances.js +16 -201
- package/dist/src/handlers/roadmap.js +13 -175
- package/dist/src/handlers/share.js +19 -530
- package/dist/src/handlers/syndicate.js +38 -904
- package/dist/src/handlers/team.js +89 -1850
- package/dist/src/handlers/viz.js +3 -148
- package/dist/src/index.js +321 -4281
- package/dist/src/interferenz.js +1 -0
- package/dist/src/kostprobe.js +7 -125
- package/dist/src/lesson-preview.js +2 -133
- package/dist/src/namespace.js +1 -128
- package/dist/src/notifier.js +1 -6
- package/dist/src/rangfolge-stellschrauben.js +1 -0
- package/dist/src/rangfolge.js +1 -214
- package/dist/src/raumkorrektur.js +1 -197
- package/dist/src/recall-tiefe.js +1 -42
- package/dist/src/rerank.js +1 -154
- package/dist/src/resonanz.js +1 -0
- package/dist/src/search.js +1 -2104
- package/dist/src/seltenheitsbestand.js +1 -92
- package/dist/src/speicherlage.js +1 -84
- package/dist/src/spuren.js +1 -150
- package/dist/src/starter-corpus.js +1 -165
- package/dist/src/telemetry-types.js +0 -13
- package/dist/src/tools.js +10 -2465
- package/dist/src/toolspecs.js +1 -121
- package/dist/src/upgrade-nudge.js +1 -29
- package/dist/src/utils.js +1 -89
- package/dist/src/versuch.js +1 -250
- package/dist/src/vorspann.js +1 -146
- package/dist/src/wartung/vektoren-verdichten.js +1 -200
- package/dist/src/werkzeug-nutzung.js +1 -72
- package/dist/src/wertbeitrag.js +1 -73
- package/dist/src/wirkungsspur.js +1 -0
- package/glama.json +1 -1
- package/package.json +8 -7
- package/server.json +3 -3
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +0 -1
- package/dist/packages/telegram-notify/client.d.ts +0 -19
- package/dist/packages/telegram-notify/client.js.map +0 -1
- package/dist/src/ambient-cli.d.ts +0 -101
- package/dist/src/ambient-cli.js.map +0 -1
- package/dist/src/ambient-deps.d.ts +0 -26
- package/dist/src/ambient-deps.js.map +0 -1
- package/dist/src/ambient-hooks.d.ts +0 -137
- package/dist/src/ambient-hooks.js.map +0 -1
- package/dist/src/ambient-ledger.d.ts +0 -19
- package/dist/src/ambient-ledger.js.map +0 -1
- package/dist/src/ambient-memory.d.ts +0 -12
- package/dist/src/ambient-memory.js.map +0 -1
- package/dist/src/ambient-recall.d.ts +0 -127
- package/dist/src/ambient-recall.js.map +0 -1
- package/dist/src/aussetzer.d.ts +0 -67
- package/dist/src/aussetzer.js.map +0 -1
- package/dist/src/auth.d.ts +0 -43
- package/dist/src/auth.js.map +0 -1
- package/dist/src/autor-abzeichen.d.ts +0 -41
- package/dist/src/autor-abzeichen.js.map +0 -1
- package/dist/src/autor.d.ts +0 -101
- package/dist/src/autor.js.map +0 -1
- package/dist/src/bauabdruck-daten.generiert.json +0 -5
- package/dist/src/bauabdruck.d.ts +0 -38
- package/dist/src/bauabdruck.js.map +0 -1
- package/dist/src/bedeutung.d.ts +0 -168
- package/dist/src/bedeutung.js.map +0 -1
- package/dist/src/bench/cachly-bench.d.ts +0 -61
- package/dist/src/bench/cachly-bench.js.map +0 -1
- package/dist/src/bench/external-corpus.d.ts +0 -44
- package/dist/src/bench/external-corpus.js.map +0 -1
- package/dist/src/bench/fixtures.d.ts +0 -37
- package/dist/src/bench/fixtures.js.map +0 -1
- package/dist/src/brain-export.d.ts +0 -64
- package/dist/src/brain-export.js.map +0 -1
- package/dist/src/brain-watch-hook.d.ts +0 -21
- package/dist/src/brain-watch-hook.js.map +0 -1
- package/dist/src/cachly-url.d.ts +0 -68
- package/dist/src/cachly-url.js.map +0 -1
- package/dist/src/ckg.d.ts +0 -54
- package/dist/src/ckg.js.map +0 -1
- package/dist/src/cls-hook.d.ts +0 -15
- package/dist/src/cls-hook.js.map +0 -1
- package/dist/src/confidence.d.ts +0 -19
- package/dist/src/confidence.js.map +0 -1
- package/dist/src/credentials.d.ts +0 -37
- package/dist/src/credentials.js.map +0 -1
- package/dist/src/deutsch.d.ts +0 -98
- package/dist/src/deutsch.js.map +0 -1
- package/dist/src/doctor.d.ts +0 -47
- package/dist/src/doctor.js.map +0 -1
- package/dist/src/editor.d.ts +0 -9
- package/dist/src/editor.js.map +0 -1
- package/dist/src/eingaenge-nachruesten.d.ts +0 -41
- package/dist/src/eingaenge-nachruesten.js.map +0 -1
- package/dist/src/eingaenge.d.ts +0 -135
- package/dist/src/eingaenge.js.map +0 -1
- package/dist/src/embeddings.d.ts +0 -48
- package/dist/src/embeddings.js.map +0 -1
- package/dist/src/first-contact.d.ts +0 -56
- package/dist/src/first-contact.js.map +0 -1
- package/dist/src/first-recall-proof.d.ts +0 -19
- package/dist/src/first-recall-proof.js.map +0 -1
- package/dist/src/funnel-milestones.d.ts +0 -5
- package/dist/src/funnel-milestones.js.map +0 -1
- package/dist/src/geliefert.d.ts +0 -63
- package/dist/src/geliefert.js.map +0 -1
- package/dist/src/handlers/advanced.d.ts +0 -6
- package/dist/src/handlers/advanced.js.map +0 -1
- package/dist/src/handlers/brain.d.ts +0 -41
- package/dist/src/handlers/brain.js.map +0 -1
- package/dist/src/handlers/cache.d.ts +0 -6
- package/dist/src/handlers/cache.js.map +0 -1
- package/dist/src/handlers/context.d.ts +0 -6
- package/dist/src/handlers/context.js.map +0 -1
- package/dist/src/handlers/fedbrain.d.ts +0 -18
- package/dist/src/handlers/fedbrain.js.map +0 -1
- package/dist/src/handlers/instances.d.ts +0 -33
- package/dist/src/handlers/instances.js.map +0 -1
- package/dist/src/handlers/roadmap.d.ts +0 -6
- package/dist/src/handlers/roadmap.js.map +0 -1
- package/dist/src/handlers/share.d.ts +0 -8
- package/dist/src/handlers/share.js.map +0 -1
- package/dist/src/handlers/syndicate.d.ts +0 -6
- package/dist/src/handlers/syndicate.js.map +0 -1
- package/dist/src/handlers/team.d.ts +0 -45
- package/dist/src/handlers/team.js.map +0 -1
- package/dist/src/handlers/viz.d.ts +0 -6
- package/dist/src/handlers/viz.js.map +0 -1
- package/dist/src/index.d.ts +0 -93
- package/dist/src/index.js.map +0 -1
- package/dist/src/kostprobe.d.ts +0 -25
- package/dist/src/kostprobe.js.map +0 -1
- package/dist/src/lesson-preview.d.ts +0 -81
- package/dist/src/lesson-preview.js.map +0 -1
- package/dist/src/namespace.d.ts +0 -20
- package/dist/src/namespace.js.map +0 -1
- package/dist/src/notifier.d.ts +0 -5
- package/dist/src/notifier.js.map +0 -1
- package/dist/src/rangfolge.d.ts +0 -169
- package/dist/src/rangfolge.js.map +0 -1
- package/dist/src/raumkorrektur.d.ts +0 -100
- package/dist/src/raumkorrektur.js.map +0 -1
- package/dist/src/recall-tiefe.d.ts +0 -48
- package/dist/src/recall-tiefe.js.map +0 -1
- package/dist/src/rerank.d.ts +0 -48
- package/dist/src/rerank.js.map +0 -1
- package/dist/src/search.d.ts +0 -153
- package/dist/src/search.js.map +0 -1
- package/dist/src/seltenheitsbestand.d.ts +0 -53
- package/dist/src/seltenheitsbestand.js.map +0 -1
- package/dist/src/speicherlage.d.ts +0 -51
- package/dist/src/speicherlage.js.map +0 -1
- package/dist/src/spuren.d.ts +0 -97
- package/dist/src/spuren.js.map +0 -1
- package/dist/src/starter-corpus.d.ts +0 -28
- package/dist/src/starter-corpus.js.map +0 -1
- package/dist/src/telemetry-types.d.ts +0 -87
- package/dist/src/telemetry-types.js.map +0 -1
- package/dist/src/tools.d.ts +0 -2933
- package/dist/src/tools.js.map +0 -1
- package/dist/src/toolspecs.d.ts +0 -43
- package/dist/src/toolspecs.js.map +0 -1
- package/dist/src/upgrade-nudge.d.ts +0 -15
- package/dist/src/upgrade-nudge.js.map +0 -1
- package/dist/src/utils.d.ts +0 -34
- package/dist/src/utils.js.map +0 -1
- package/dist/src/versuch.d.ts +0 -179
- package/dist/src/versuch.js.map +0 -1
- package/dist/src/vorspann.d.ts +0 -73
- package/dist/src/vorspann.js.map +0 -1
- package/dist/src/wartung/vektoren-verdichten.d.ts +0 -50
- package/dist/src/wartung/vektoren-verdichten.js.map +0 -1
- package/dist/src/werkzeug-nutzung.d.ts +0 -62
- package/dist/src/werkzeug-nutzung.js.map +0 -1
- package/dist/src/wertbeitrag.d.ts +0 -57
- package/dist/src/wertbeitrag.js.map +0 -1
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bumped whenever a hook script changes so installers can upgrade old hooks.
|
|
3
|
-
* v3: hooks became Node scripts (.mjs) invoked as `node "<path>"` — the
|
|
4
|
-
* cross-platform shape from the Claude Code hooks guide. The v1/v2 POSIX shell
|
|
5
|
-
* scripts silently never ran on native Windows (no /bin/sh); Node is already a
|
|
6
|
-
* hard requirement of this package, so the hook now runs identically on
|
|
7
|
-
* Windows, macOS and Linux.
|
|
8
|
-
* v4 (GROW-015): the script no longer embeds the caller's key as a string
|
|
9
|
-
* literal. It resolves CACHLY_JWT at run time from the environment instead,
|
|
10
|
-
* so a `.claude/hooks/` script that gets committed to a repo never leaks a
|
|
11
|
-
* secret. Bumping the version replaces old v1-v3 scripts (which DID embed
|
|
12
|
-
* the key) the next time setup/autopilot runs.
|
|
13
|
-
*/
|
|
14
|
-
export declare const AMBIENT_HOOK_VERSION = "v4";
|
|
15
|
-
/**
|
|
16
|
-
* The CLI subcommand the hooks pipe their payload to. It reads the hook JSON on
|
|
17
|
-
* stdin, runs smart_recall through the relevance gate (ambient-recall.ts), and
|
|
18
|
-
* prints the `hookSpecificOutput` JSON Claude Code injects as additionalContext.
|
|
19
|
-
* The CLI self-limits its latency budget (§6.3 guardrail 4). See ambient-cli.ts.
|
|
20
|
-
*/
|
|
21
|
-
export declare const AMBIENT_CLI_SUBCOMMAND = "ambient-recall";
|
|
22
|
-
export type AmbientHookEvent = 'SessionStart' | 'UserPromptSubmit' | 'PreToolUse' | 'Stop';
|
|
23
|
-
export interface AmbientHookOptions {
|
|
24
|
-
instanceId: string;
|
|
25
|
-
/**
|
|
26
|
-
* Accepted for backward compatibility but never embedded in the generated
|
|
27
|
-
* script (GROW-015): the hook resolves its key at run time from
|
|
28
|
-
* CACHLY_JWT/CACHLY_API_KEY in the environment instead.
|
|
29
|
-
*/
|
|
30
|
-
apiKey?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Command that resolves the ambient-recall CLI. Defaults to the published
|
|
33
|
-
* package via npx; an installer SHOULD pass a resolved local binary to avoid
|
|
34
|
-
* npx resolution latency on every prompt (UserPromptSubmit runs per-turn).
|
|
35
|
-
*/
|
|
36
|
-
cliCommand?: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* SessionStart hook: emits the session briefing as additionalContext at the
|
|
40
|
-
* start of every session — the automatic replacement for "the agent should call
|
|
41
|
-
* session_start".
|
|
42
|
-
*/
|
|
43
|
-
export declare function buildSessionStartHook(opts: AmbientHookOptions): string;
|
|
44
|
-
/**
|
|
45
|
-
* UserPromptSubmit hook — the core of Ambient Recall. Runs before every user
|
|
46
|
-
* message, recalls on the prompt through the relevance gate, and pushes gated
|
|
47
|
-
* hits into context. This is the most-forgotten call, made automatic.
|
|
48
|
-
*/
|
|
49
|
-
export declare function buildUserPromptSubmitHook(opts: AmbientHookOptions): string;
|
|
50
|
-
/**
|
|
51
|
-
* PreToolUse hook (Ausbau) — file-open briefing. Fires before Edit/Write-class
|
|
52
|
-
* tools (settings matcher `Edit|Write|MultiEdit`); the CLI recalls file-scoped
|
|
53
|
-
* lessons and injects them as additionalContext — the automatic "prüf mal, ob's
|
|
54
|
-
* zu dieser Datei Lessons gibt" (roadmap §6.1).
|
|
55
|
-
*/
|
|
56
|
-
export declare function buildPreToolUseHook(opts: AmbientHookOptions): string;
|
|
57
|
-
/**
|
|
58
|
-
* Stop hook (Ausbau) — auto-learn. After a turn whose final message carries a
|
|
59
|
-
* clear fix signal, the CLI feeds one observation to auto_learn_session — the
|
|
60
|
-
* automatic replacement for the forgotten `learn_from_attempts` call.
|
|
61
|
-
*/
|
|
62
|
-
export declare function buildStopHook(opts: AmbientHookOptions): string;
|
|
63
|
-
export interface AmbientHookPaths {
|
|
64
|
-
sessionStart: string;
|
|
65
|
-
userPromptSubmit: string;
|
|
66
|
-
/** Ausbau hooks — optional so MVP-era (v1) callers keep working. */
|
|
67
|
-
preToolUse?: string;
|
|
68
|
-
stop?: string;
|
|
69
|
-
}
|
|
70
|
-
export interface HookCommand {
|
|
71
|
-
type: 'command';
|
|
72
|
-
command: string;
|
|
73
|
-
/** Per-hook timeout in seconds (Claude Code hooks config). */
|
|
74
|
-
timeout?: number;
|
|
75
|
-
}
|
|
76
|
-
export interface HookMatcherGroup {
|
|
77
|
-
/** Tool matcher — only meaningful for PreToolUse/PostToolUse. */
|
|
78
|
-
matcher?: string;
|
|
79
|
-
hooks: HookCommand[];
|
|
80
|
-
}
|
|
81
|
-
/** Matcher for the PreToolUse briefing: only file-mutating tools. */
|
|
82
|
-
export declare const PRE_TOOL_USE_MATCHER = "Edit|Write|MultiEdit|NotebookEdit";
|
|
83
|
-
/**
|
|
84
|
-
* Build the `.claude/settings.json` `hooks` fragment that wires the scripts.
|
|
85
|
-
* The caller merges this into the user's existing settings (never overwrites).
|
|
86
|
-
* Shape matches Claude Code's hooks config: an array of matcher groups, each
|
|
87
|
-
* with a list of `{ type: "command", command, timeout }` entries.
|
|
88
|
-
*/
|
|
89
|
-
export declare function buildAmbientSettingsHooks(paths: AmbientHookPaths): Record<string, HookMatcherGroup[]>;
|
|
90
|
-
export interface AmbientInstallResult {
|
|
91
|
-
sessionStartPath: string;
|
|
92
|
-
promptSubmitPath: string;
|
|
93
|
-
preToolUsePath: string;
|
|
94
|
-
stopPath: string;
|
|
95
|
-
scripts: 'written' | 'upgraded' | 'unchanged';
|
|
96
|
-
settings: 'written' | 'merged' | 'unchanged';
|
|
97
|
-
}
|
|
98
|
-
interface HookCommandEntry {
|
|
99
|
-
matcher?: string;
|
|
100
|
-
hooks?: Array<{
|
|
101
|
-
type?: string;
|
|
102
|
-
command?: string;
|
|
103
|
-
timeout?: number;
|
|
104
|
-
}>;
|
|
105
|
-
}
|
|
106
|
-
interface ClaudeSettings {
|
|
107
|
-
hooks?: Record<string, HookCommandEntry[]>;
|
|
108
|
-
[k: string]: unknown;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Merge our hook entries into an existing settings object without disturbing
|
|
112
|
-
* anything else. Idempotent AND upgrade-safe: existing cachly-ambient groups
|
|
113
|
-
* (from any prior version/paths) are replaced by the current fragment rather
|
|
114
|
-
* than accumulated; foreign groups are always preserved. Pure — unit-tested.
|
|
115
|
-
*/
|
|
116
|
-
export declare function mergeAmbientSettings(existing: ClaudeSettings, paths: AmbientHookPaths): {
|
|
117
|
-
settings: ClaudeSettings;
|
|
118
|
-
changed: boolean;
|
|
119
|
-
};
|
|
120
|
-
export interface AmbientInstallOptions {
|
|
121
|
-
/**
|
|
122
|
-
* Write `"$CLAUDE_PROJECT_DIR"/.claude/hooks/…` commands into settings.json
|
|
123
|
-
* instead of absolute paths. Use for hooks that are COMMITTED to a repo
|
|
124
|
-
* (dogfooding/team setups): the settings stay valid on every checkout
|
|
125
|
-
* location. Claude Code sets $CLAUDE_PROJECT_DIR when running hooks.
|
|
126
|
-
* NOTE: never pass an apiKey together with portable — committed scripts
|
|
127
|
-
* must not embed credentials; the CLI falls back to the env's CACHLY_JWT.
|
|
128
|
-
*/
|
|
129
|
-
portable?: boolean;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Install/upgrade the Ambient Recall hooks in `projectDir`. Best-effort:
|
|
133
|
-
* a filesystem error surfaces as a thrown error only for the top-level caller,
|
|
134
|
-
* which wraps it in try/catch (the git-hook feature is non-critical).
|
|
135
|
-
*/
|
|
136
|
-
export declare function installAmbientHooks(projectDir: string, instanceId: string, apiKey?: string, options?: AmbientInstallOptions): Promise<AmbientInstallResult>;
|
|
137
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-hooks.js","sourceRoot":"","sources":["../../src/ambient-hooks.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,8BAA8B;AAC9B,uDAAuD;AACvD,2EAA2E;AAC3E,6EAA6E;AAC7E,oCAAoC;AACpC,8DAA8D;AAC9D,gFAAgF;AAChF,+EAA+E;AAC/E,0BAA0B;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAoBvD,MAAM,WAAW,GAAG,qCAAqC,sBAAsB,EAAE,CAAC;AAElF,6EAA6E;AAC7E,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,KAAuB,EAAE,IAAwB;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC;IAC3C,OAAO;QACL,qBAAqB;QACrB,8BAA8B,KAAK,IAAI,oBAAoB,EAAE;QAC7D,gFAAgF;QAChF,8EAA8E;QAC9E,6EAA6E;QAC7E,6CAA6C;QAC7C,2CAA2C,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,kEAAkE;QAClE,kDAAkD;QAClD,iHAAiH;QACjH,oCAAoC,QAAQ,CAAC,KAAK,CAAC,IAAI;QACvD,OAAO;QACP,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,uEAAuE;QACvE,gEAAgE;QAChE,0BAA0B,QAAQ,CAAC,GAAG,CAAC,+DAA+D;QACtG,6CAA6C;QAC7C,6CAA6C;QAC7C,WAAW;QACX,oBAAoB;QACpB,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC5D,OAAO,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IAChE,OAAO,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IAC1D,OAAO,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAsBD,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,cAAc,GAA2B;IAC7C,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,EAAE,EAAE,+DAA+D;CAC1E,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAuB;IAC/D,0EAA0E;IAC1E,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,KAAK,GAAG,CAAC,KAAuB,EAAE,UAAkB,EAAE,OAAgB,EAAoB,EAAE,CAAC,CAAC;QAClG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,UAAU,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;KAC9F,CAAC,CAAC;IACH,MAAM,IAAI,GAAuC;QAC/C,YAAY,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACzD,gBAAgB,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;KACtE,CAAC;IACF,IAAI,KAAK,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtG,IAAI,KAAK,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,6BAA6B;AAC7B,sDAAsD;AAEtD,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,mFAAmF;AACnF,MAAM,YAAY,GAAqC;IACrD,YAAY,EAAE,kCAAkC;IAChD,gBAAgB,EAAE,kCAAkC;IACpD,UAAU,EAAE,6BAA6B;IACzC,IAAI,EAAE,yBAAyB;CAChC,CAAC;AACF,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAoB9D,sEAAsE;AACtE,SAAS,cAAc,CAAC,CAAmB,EAAE,YAAyB;IACpE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5B,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAChB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC5B,0EAA0E;YAC1E,oEAAoE;YACpE,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACnC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrB,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACtD,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAwB,EACxB,KAAuB;IAEvB,MAAM,IAAI,GAAmB,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;IAC1B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAC/E,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CACxB,CACF,CAAC;IAEF,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CACxC,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAcD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAkB,EAClB,UAAkB,EAClB,MAAe,EACf,UAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IACxD,MAAM,MAAM,GAAuB,CAAC,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAqC;QAClD,YAAY,EAAE,qBAAqB,CAAC,IAAI,CAAC;QACzC,gBAAgB,EAAE,yBAAyB,CAAC,IAAI,CAAC;QACjD,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;KAC1B,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,KAAK,EAAE,CAAS,EAAmB,EAAE;QAClD,IAAI,CAAC;YAAC,OAAO,MAAM,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC;IAEF,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI;YAAE,WAAW,GAAG,IAAI,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE,UAAU,GAAG,KAAK,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAoC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjH,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,gBAAgB,GAAmB,EAAE,CAAC;IAC1C,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAmB,CAAC;QAAC,CAAC;QAC/F,MAAM,CAAC;YAAC,gBAAgB,GAAG,EAAE,CAAC;QAAC,CAAC,CAAC,2EAA2E;IAC9G,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,mEAAmE;IACnE,4EAA4E;IAC5E,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAmB,EAAE,EAAE,CACzC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;QACnE,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC;QACxC,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC;QAChD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC;QACpC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,IAAI,cAAgD,CAAC;IACrD,IAAI,CAAC,eAAe;QAAE,cAAc,GAAG,SAAS,CAAC;SAC5C,IAAI,CAAC,OAAO;QAAE,cAAc,GAAG,WAAW,CAAC;;QAC3C,cAAc,GAAG,QAAQ,CAAC;IAC/B,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC;QACzC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC;QAC7C,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;QACzB,OAAO;QACP,QAAQ,EAAE,cAAc;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { TurnRecord } from './ambient-recall.js';
|
|
2
|
-
export interface LedgerEntry extends TurnRecord {
|
|
3
|
-
/** ISO timestamp of the turn. */
|
|
4
|
-
ts: string;
|
|
5
|
-
/** Hook event (SessionStart/UserPromptSubmit/PreToolUse) or 'credit'. */
|
|
6
|
-
event: string;
|
|
7
|
-
/** Optional free-text note (e.g. what the credit was for). */
|
|
8
|
-
note?: string;
|
|
9
|
-
}
|
|
10
|
-
/** Default ledger location; overridable for tests via explicit path args. */
|
|
11
|
-
export declare function defaultLedgerPath(): string;
|
|
12
|
-
/** One JSONL line for an entry. Pure. */
|
|
13
|
-
export declare function serializeEntry(e: LedgerEntry): string;
|
|
14
|
-
/** Parse ledger text into entries, silently skipping corrupt lines. Pure. */
|
|
15
|
-
export declare function parseLedger(text: string): LedgerEntry[];
|
|
16
|
-
/** Append an entry; auto-creates the directory, auto-rotates. Never throws. */
|
|
17
|
-
export declare function appendLedgerEntry(entry: LedgerEntry, path?: string): Promise<void>;
|
|
18
|
-
/** Read all entries; missing/corrupt file → []. Never throws. */
|
|
19
|
-
export declare function readLedger(path?: string): Promise<LedgerEntry[]>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-ledger.js","sourceRoot":"","sources":["../../src/ambient-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type RecallMemory } from './ambient-recall.js';
|
|
2
|
-
/**
|
|
3
|
-
* Loads the persisted {@link RecallMemory} from `<dir>/ambient-memory.json`.
|
|
4
|
-
* Falls back to {@link emptyMemory} when the file is missing, corrupt, larger
|
|
5
|
-
* than 64KB, or structurally invalid. Never throws.
|
|
6
|
-
*/
|
|
7
|
-
export declare function loadAmbientMemory(dir?: string): RecallMemory;
|
|
8
|
-
/**
|
|
9
|
-
* Persists `memory` to `<dir>/ambient-memory.json` via write-then-rename so a
|
|
10
|
-
* crash mid-write never corrupts the file for the next read. Never throws.
|
|
11
|
-
*/
|
|
12
|
-
export declare function saveAmbientMemory(memory: RecallMemory, dir?: string): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-memory.js","sourceRoot":"","sources":["../../src/ambient-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
export interface LessonCandidate {
|
|
2
|
-
id: string;
|
|
3
|
-
/** The text that would be injected into context. */
|
|
4
|
-
summary: string;
|
|
5
|
-
/** Brain confidence in the lesson, [0,1]. */
|
|
6
|
-
confidence: number;
|
|
7
|
-
/** Semantic similarity of the lesson to the current prompt, [0,1]. */
|
|
8
|
-
score: number;
|
|
9
|
-
severity?: 'critical' | 'major' | 'minor';
|
|
10
|
-
/** Wann die Lektion gelernt wurde (ISO) — Grundlage des Belegs. */
|
|
11
|
-
learnedAt?: string;
|
|
12
|
-
/** Dateien, an denen sie entstand — der konkreteste Beleg. */
|
|
13
|
-
files?: string[];
|
|
14
|
-
/** Wie es damals ausging. */
|
|
15
|
-
outcome?: "success" | "failure" | "partial";
|
|
16
|
-
}
|
|
17
|
-
export interface GateOptions {
|
|
18
|
-
/** Minimum brain confidence to be eligible. */
|
|
19
|
-
minConfidence: number;
|
|
20
|
-
/** Minimum semantic similarity to the prompt. */
|
|
21
|
-
minScore: number;
|
|
22
|
-
/** Hard cap on how many lessons may be injected in one turn. */
|
|
23
|
-
topK: number;
|
|
24
|
-
/** Hard per-turn injection budget, in estimated tokens. */
|
|
25
|
-
maxTokens: number;
|
|
26
|
-
}
|
|
27
|
-
export declare const DEFAULT_GATE: GateOptions;
|
|
28
|
-
/**
|
|
29
|
-
* Derives a content-based candidate ID from a summary string. Enables
|
|
30
|
-
* ID-based deduplication to suppress "the same advice" while allowing
|
|
31
|
-
* "different advice" through. See PR #241.
|
|
32
|
-
*/
|
|
33
|
-
export declare function candidateIdFor(summary: string): string;
|
|
34
|
-
/** Rough token estimate (~4 chars/token) — good enough for a per-turn budget. */
|
|
35
|
-
export declare function estimateTokens(text: string): number;
|
|
36
|
-
/**
|
|
37
|
-
* A trivial prompt has ~zero expected wrong-path savings (§6.3 guardrail 2):
|
|
38
|
-
* too short to carry risk, a pure greeting, or chit-chat with no code signal.
|
|
39
|
-
* Injecting there is pure waste, so we skip recall entirely.
|
|
40
|
-
*/
|
|
41
|
-
export declare function isTrivialPrompt(prompt: string): boolean;
|
|
42
|
-
export type GateReason = 'trivial-skip' | 'no-candidate-passed-gate' | 'injected';
|
|
43
|
-
export interface GateDecision {
|
|
44
|
-
inject: boolean;
|
|
45
|
-
reason: GateReason;
|
|
46
|
-
selected: LessonCandidate[];
|
|
47
|
-
/** Estimated tokens the selection would inject (0 when nothing is injected). */
|
|
48
|
-
tokens: number;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* The §6.3 relevance gate: decide what (if anything) to push into context for a
|
|
52
|
-
* given prompt. Applies trivial-skip, a confidence AND semantic-score floor,
|
|
53
|
-
* a top-K cap, and a hard per-turn token budget — strongest candidates first.
|
|
54
|
-
*/
|
|
55
|
-
export declare function selectInjectable(prompt: string, candidates: LessonCandidate[], opts?: Partial<GateOptions>): GateDecision;
|
|
56
|
-
export interface TurnRecord {
|
|
57
|
-
injected: number;
|
|
58
|
-
prevented: number;
|
|
59
|
-
}
|
|
60
|
-
export interface NetBalance {
|
|
61
|
-
injected: number;
|
|
62
|
-
prevented: number;
|
|
63
|
-
net: number;
|
|
64
|
-
}
|
|
65
|
-
export declare function netBalance(records: TurnRecord[]): NetBalance;
|
|
66
|
-
/**
|
|
67
|
-
* Auto-backoff (§6.3 guardrail 3): if, over the recent window, Ambient Recall is
|
|
68
|
-
* net-negative, tell the caller to tighten the gate (or pause). Only fires once
|
|
69
|
-
* there is enough signal (>= minTurns) so early noise doesn't trip it.
|
|
70
|
-
*/
|
|
71
|
-
export declare function shouldBackoff(records: TurnRecord[], windowN?: number, minTurns?: number): boolean;
|
|
72
|
-
/** Wie riskant ist der Moment — bestimmt, wie eifrig erinnert werden darf. */
|
|
73
|
-
export type PromptRisk = 'high' | 'normal' | 'low';
|
|
74
|
-
/**
|
|
75
|
-
* Risikoeinschätzung des Auslösemoments. Sie verschiebt die Schwellen, statt
|
|
76
|
-
* eine zweite, konkurrierende Entscheidung zu treffen — eine Stellschraube
|
|
77
|
-
* weniger, und der Gate bleibt die einzige Wahrheit über Relevanz.
|
|
78
|
-
*/
|
|
79
|
-
export declare function promptRisk(prompt: string): PromptRisk;
|
|
80
|
-
/** Schwellen-Anpassung je Risiko (klein gehalten und bewusst begründet). */
|
|
81
|
-
export declare function gateForRisk(risk: PromptRisk, base?: GateOptions): GateOptions;
|
|
82
|
-
export interface TimingOptions {
|
|
83
|
-
/** Dieselbe Lektion frühestens nach so vielen Turns erneut. */
|
|
84
|
-
repeatCooldownTurns: number;
|
|
85
|
-
/** Höchstzahl Einwürfe im gleitenden Fenster. */
|
|
86
|
-
maxInjectionsPerWindow: number;
|
|
87
|
-
/** Größe des gleitenden Fensters in Turns. */
|
|
88
|
-
windowTurns: number;
|
|
89
|
-
/** Mindestruhe unmittelbar nach einem Einwurf (in Turns). */
|
|
90
|
-
minSilenceTurns: number;
|
|
91
|
-
}
|
|
92
|
-
export declare const DEFAULT_TIMING: TimingOptions;
|
|
93
|
-
/** Gedächtnis über die letzten Einwürfe — vom Aufrufer gehalten und übergeben. */
|
|
94
|
-
export interface RecallMemory {
|
|
95
|
-
/** Aktueller Turn-Zähler (monoton steigend). */
|
|
96
|
-
turn: number;
|
|
97
|
-
/** Lektions-ID → Turn des letzten Einwurfs. */
|
|
98
|
-
lastInjectedTurn: Record<string, number>;
|
|
99
|
-
/** Turns, in denen etwas eingeworfen wurde (aufsteigend). */
|
|
100
|
-
injectionTurns: number[];
|
|
101
|
-
}
|
|
102
|
-
export declare function emptyMemory(): RecallMemory;
|
|
103
|
-
export type TimingReason = 'quiet-budget' | 'silence-window' | 'all-duplicates';
|
|
104
|
-
export interface RecallDecision extends GateDecision {
|
|
105
|
-
risk: PromptRisk;
|
|
106
|
-
/** Kandidaten, die nur wegen der Abklingzeit entfielen (Diagnose/Telemetrie). */
|
|
107
|
-
suppressedDuplicates: string[];
|
|
108
|
-
timingReason?: TimingReason;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Die vollständige Entscheidung: Relevanz (Gate) UND Zeitpunkt (Timing).
|
|
112
|
-
*
|
|
113
|
-
* Reihenfolge ist Absicht: erst die billigen Ausschlüsse (Ruhe, Budget), dann
|
|
114
|
-
* Dedupe, erst zuletzt der teure Relevanz-Gate — so kostet ein unterdrückter
|
|
115
|
-
* Turn praktisch nichts.
|
|
116
|
-
*
|
|
117
|
-
* Die Funktion ist seiteneffektfrei; `commitInjection` schreibt das Gedächtnis
|
|
118
|
-
* fort, damit Aufrufer selbst entscheiden, ob ein Vorschlag wirklich gezeigt
|
|
119
|
-
* wurde (z. B. bei abgebrochenem Turn).
|
|
120
|
-
*/
|
|
121
|
-
export declare function decideRecall(prompt: string, candidates: LessonCandidate[], memory: RecallMemory, gateOverrides?: Partial<GateOptions>, timingOverrides?: Partial<TimingOptions>): RecallDecision;
|
|
122
|
-
/**
|
|
123
|
-
* Schreibt das Gedächtnis nach einem TATSÄCHLICH gezeigten Einwurf fort.
|
|
124
|
-
* Der Turn-Zähler wird immer erhöht — auch ohne Einwurf, sonst laufen
|
|
125
|
-
* Abklingzeit und Fenster nicht weiter.
|
|
126
|
-
*/
|
|
127
|
-
export declare function commitInjection(memory: RecallMemory, decision: RecallDecision, timingOverrides?: Partial<TimingOptions>): RecallMemory;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-recall.js","sourceRoot":"","sources":["../../src/ambient-recall.ts"],"names":[],"mappings":"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"}
|
package/dist/src/aussetzer.d.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Meldestelle fuer stille Aussetzer.
|
|
3
|
-
*
|
|
4
|
-
* ── Warum es das gibt ───────────────────────────────────────────────────────
|
|
5
|
-
*
|
|
6
|
-
* Am 20.08.2026 wurde am Produktionsspeicher gemessen: `cachly:lesson:vec:*`
|
|
7
|
-
* war LEER — 0 Vektoren bei 506 Lektionen. Der Recall-Pfad steigt bei
|
|
8
|
-
* `vektorbestand.groesse === 0` aus und faellt auf den reinen Wortabgleich
|
|
9
|
-
* zurueck. Er tut das STUMM.
|
|
10
|
-
*
|
|
11
|
-
* Von aussen ist dieser Zustand von "alles in Ordnung" nicht zu
|
|
12
|
-
* unterscheiden: die Suche liefert weiter Ergebnisse, nur schlechtere. Die am
|
|
13
|
-
* 19.08. gemessene Verbesserung von 21 auf 40 Prozent existierte in
|
|
14
|
-
* Produktion nie, und nichts hat es gesagt.
|
|
15
|
-
*
|
|
16
|
-
* Das ist die Fehlerklasse "Stille wird als gruen gebucht". Diese Datei ist
|
|
17
|
-
* die Gegenmassnahme an der billigsten Stelle: eine Zeile im Protokoll.
|
|
18
|
-
*
|
|
19
|
-
* ── Warum nur EINMAL je Grund ───────────────────────────────────────────────
|
|
20
|
-
*
|
|
21
|
-
* Der Recall-Pfad laeuft bei jeder Anfrage. Eine Zeile je Anfrage waere nach
|
|
22
|
-
* einer Stunde ein Protokoll, das niemand mehr liest — und ein Protokoll, das
|
|
23
|
-
* niemand liest, ist wieder Stille. Einmal je Grund und Prozess ist die
|
|
24
|
-
* Menge, die auffaellt, ohne zu ermueden.
|
|
25
|
-
*
|
|
26
|
-
* ── Warum stderr und nicht stdout ───────────────────────────────────────────
|
|
27
|
-
*
|
|
28
|
-
* Ueber stdout laeuft das MCP-Protokoll. Eine Zeile Text dort ist kein
|
|
29
|
-
* Hinweis, sondern ein Verbindungsabbruch.
|
|
30
|
-
*/
|
|
31
|
-
/**
|
|
32
|
-
* Meldet einen Aussetzer genau einmal je Grund und Prozess.
|
|
33
|
-
*
|
|
34
|
-
* @param grund kurzer Schluessel, z. B. 'bedeutung-ohne-vektoren'
|
|
35
|
-
* @param text was ausgefallen ist und was das fuer das Ergebnis heisst
|
|
36
|
-
* @returns true, wenn diese Meldung wirklich hinausging
|
|
37
|
-
*/
|
|
38
|
-
export declare function meldeEinmal(grund: string, text: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Wurde dieser Grund in diesem Prozess schon gemeldet?
|
|
41
|
-
*
|
|
42
|
-
* Fuer `brain_doctor`: dort soll stehen, was hier passiert ist, ohne dass
|
|
43
|
-
* jemand ein Protokoll durchsuchen muss.
|
|
44
|
-
*/
|
|
45
|
-
export declare function schonGemeldet(grund: string): boolean;
|
|
46
|
-
/** Alle bisher gemeldeten Gruende, in der Reihenfolge des Auftretens. */
|
|
47
|
-
export declare function gemeldeteGruende(): string[];
|
|
48
|
-
/**
|
|
49
|
-
* Setzt die Merkliste zurueck.
|
|
50
|
-
*
|
|
51
|
-
* Nur fuer Tests. Ohne das wuerde die erste Testdatei alle weiteren blind
|
|
52
|
-
* machen — genau der Fehler, gegen den diese Datei antritt.
|
|
53
|
-
*/
|
|
54
|
-
export declare function setzeAussetzerZurueck(): void;
|
|
55
|
-
/** Der Grund, um den es beim Anlass ging: Bedeutungsabgleich ohne Vektoren. */
|
|
56
|
-
export declare const OHNE_VEKTOREN = "bedeutung-ohne-vektoren";
|
|
57
|
-
/** Der Nachbarfall: es gibt gar keinen Dienst zum Einbetten. */
|
|
58
|
-
export declare const OHNE_DIENST = "bedeutung-ohne-dienst";
|
|
59
|
-
/**
|
|
60
|
-
* Der Bestand ist da, aber die FRAGE liess sich nicht einbetten.
|
|
61
|
-
*
|
|
62
|
-
* Eigener Grund und nicht mit OHNE_VEKTOREN zusammengelegt: hier ist der
|
|
63
|
-
* Bestand gesund und der fremde Dienst hat gerade nicht geantwortet. Das ist
|
|
64
|
-
* ein Netzproblem und keine fehlende Nachruestung — wer beides unter einem
|
|
65
|
-
* Namen fuehrt, sucht spaeter an der falschen Stelle.
|
|
66
|
-
*/
|
|
67
|
-
export declare const OHNE_FRAGEVEKTOR = "bedeutung-ohne-fragevektor";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aussetzer.js","sourceRoot":"","sources":["../../src/aussetzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,0EAA0E;AAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAY;IACrD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC"}
|
package/dist/src/auth.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export declare function jwtExpiryMs(token: string): number | null;
|
|
2
|
-
/** Long-lived API keys cannot expire silently; raw access tokens can. */
|
|
3
|
-
export declare const API_KEY_PREFIX = "cky_";
|
|
4
|
-
export type AuthState = 'healthy' | 'no_jwt' | 'expired' | 'near_expiry' | 'long_lived';
|
|
5
|
-
export interface AuthDiagnosis {
|
|
6
|
-
state: AuthState;
|
|
7
|
-
/** Safe to make API calls right now? (healthy, near_expiry and long_lived all are.) */
|
|
8
|
-
usable: boolean;
|
|
9
|
-
/** ms until expiry, or null for tokens with no exp claim (long-lived keys). */
|
|
10
|
-
expiresInMs: number | null;
|
|
11
|
-
/** Human-facing message with the single fix, when action is needed. */
|
|
12
|
-
message: string;
|
|
13
|
-
}
|
|
14
|
-
/** A long-lived API key (cky_live_… / cky_…) has no exp and never expires silently. */
|
|
15
|
-
export declare function isLongLivedApiKey(token: string): boolean;
|
|
16
|
-
export declare const NEAR_EXPIRY_MS: number;
|
|
17
|
-
/**
|
|
18
|
-
* Diagnose the current credential without making any network call. Pure +
|
|
19
|
-
* deterministic (pass `now` in tests).
|
|
20
|
-
*/
|
|
21
|
-
export declare function diagnoseAuth(jwt: string, now?: number): AuthDiagnosis;
|
|
22
|
-
export type AuthHealAction = 'none' | 'refresh' | 'reauth';
|
|
23
|
-
/**
|
|
24
|
-
* Decide what self-healing step (if any) to take for a diagnosis. Pure so the
|
|
25
|
-
* decision is unit-testable independently of the network-bound executor.
|
|
26
|
-
*/
|
|
27
|
-
export declare function planAuthHeal(d: AuthDiagnosis): AuthHealAction;
|
|
28
|
-
export declare function checkJwt(jwt: string): void;
|
|
29
|
-
export declare const DEFAULT_AUTH_BASE = "https://auth.cachly.dev/realms/cachly/protocol/openid-connect";
|
|
30
|
-
export interface ClientCredentials {
|
|
31
|
-
clientId: string;
|
|
32
|
-
clientSecret: string;
|
|
33
|
-
scope?: string;
|
|
34
|
-
/** Override the Keycloak realm token base (self-host). */
|
|
35
|
-
authBase?: string;
|
|
36
|
-
}
|
|
37
|
-
/** Read M2M client credentials from the environment, if both are present. */
|
|
38
|
-
export declare function readClientCredentialsFromEnv(env?: NodeJS.ProcessEnv): ClientCredentials | null;
|
|
39
|
-
/** Build the application/x-www-form-urlencoded body for a client_credentials grant. */
|
|
40
|
-
export declare function buildClientCredentialsBody(c: ClientCredentials): string;
|
|
41
|
-
/** Token endpoint URL for a given credentials/realm config. */
|
|
42
|
-
export declare function clientCredentialsTokenUrl(c: ClientCredentials): string;
|
|
43
|
-
export declare function handleApiError(status: number, detail: string): never;
|
package/dist/src/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wer hat diese Lektion geschrieben — ich oder jemand anderes?
|
|
3
|
-
*
|
|
4
|
-
* `session_start_summary` nimmt seit jeher einen Parameter `author` entgegen
|
|
5
|
-
* und beschreibt ihn in der Werkzeug-Spezifikation so:
|
|
6
|
-
*
|
|
7
|
-
* "Your name or handle (optional). Same as session_start — used for team
|
|
8
|
-
* lesson filtering."
|
|
9
|
-
*
|
|
10
|
-
* Die Zusage wurde nie eingeloest. Der Handler holte den Wert aus den
|
|
11
|
-
* Argumenten und benutzte ihn danach nirgends; eslint meldete ihn seit
|
|
12
|
-
* Monaten als ungenutzte Variable. Wer den Parameter setzte, bekam exakt
|
|
13
|
-
* dieselbe Ausgabe wie ohne ihn.
|
|
14
|
-
*
|
|
15
|
-
* Fehlerklasse: eine Zusage an zwei Orten — hier in der Spezifikation, dort
|
|
16
|
-
* im Code — und nur einer wurde gepflegt. Dieselbe Form wie die Kommentarzeile
|
|
17
|
-
* am Frei-Limit, die "the #1 result is always returned" versprach, waehrend
|
|
18
|
-
* der Zweig darunter null lieferte.
|
|
19
|
-
*
|
|
20
|
-
* Reines Modul, weil die Entscheidung eine Rechnung ist: dieselbe Regel, die
|
|
21
|
-
* `smart_recall` schon anwendet, an EINER Stelle statt zweimal abgeschrieben.
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Das Abzeichen hinter einer Lektion — leer, wenn sie von mir selbst stammt
|
|
25
|
-
* oder niemand als Autor eingetragen ist.
|
|
26
|
-
*
|
|
27
|
-
* Bewusst KEIN Abzeichen fuer die eigenen Lektionen: in einem Brain, das
|
|
28
|
-
* ueberwiegend einer Person gehoert, stuende sonst hinter jeder Zeile derselbe
|
|
29
|
-
* Name, und das Abzeichen verlöre genau die Aussage, für die es da ist.
|
|
30
|
-
*/
|
|
31
|
-
export declare function autorAbzeichen(lektionsAutor: string | null | undefined, anfragender: string | null | undefined): string;
|
|
32
|
-
/**
|
|
33
|
-
* Wie viele der gezeigten Lektionen von jemand anderem stammen.
|
|
34
|
-
*
|
|
35
|
-
* Das ist der Wert, den nur ein GETEILTES Gedaechtnis liefert — und deshalb
|
|
36
|
-
* die Zahl, die es zu nennen lohnt. Ist sie null, wird auch nichts gesagt:
|
|
37
|
-
* "0 von Teamkollegen" ist keine Nachricht, sondern Rauschen.
|
|
38
|
-
*/
|
|
39
|
-
export declare function fremdanteil(lektionen: readonly {
|
|
40
|
-
author?: string | null;
|
|
41
|
-
}[], anfragender: string | null | undefined): number;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autor-abzeichen.js","sourceRoot":"","sources":["../../src/autor-abzeichen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,aAAwC,EAAE,WAAsC;IAC7G,MAAM,KAAK,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,SAAS,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,SAAgD,EAChD,WAAsC;IAEtC,MAAM,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC;IACnB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;IAC3C,CAAC,CAAC,CAAC,MAAM,CAAC;AACZ,CAAC"}
|
package/dist/src/autor.d.ts
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wer hat diese Lektion geschrieben?
|
|
3
|
-
*
|
|
4
|
-
* ── Der Befund, gemessen am 19.08.2026 ──────────────────────────────────────
|
|
5
|
-
*
|
|
6
|
-
* 195 von 493 Lektionen tragen keinen Autor — zwei Fuenftel. Ohne Autor zaehlt
|
|
7
|
-
* keine Team-Wiederverwendung, brain_who_knows findet niemanden, und das
|
|
8
|
-
* Versprechen "geteiltes Gedaechtnis" ist von einer Notizdatei nicht zu
|
|
9
|
-
* unterscheiden.
|
|
10
|
-
*
|
|
11
|
-
* ── Und es war unser Fehler, nicht der der Nutzer ───────────────────────────
|
|
12
|
-
*
|
|
13
|
-
* Heinrich, 19.08.2026: "das mit dem Autor war doch eher ein Fehler von uns
|
|
14
|
-
* bzw. wie cachly die Anweisungen fuer das Brain geschrieben hat, denn der
|
|
15
|
-
* Autor steht doch in den Git-Zugangsdaten."
|
|
16
|
-
*
|
|
17
|
-
* Genau so ist es. `author` war ein OPTIONALES Feld, das ein Agent bei jedem
|
|
18
|
-
* Aufruf mitschicken sollte — und natuerlich vergisst. Dabei steht der Name
|
|
19
|
-
* seit jeher zwei Zeilen entfernt in `git config user.name`. Der Code holte
|
|
20
|
-
* ihn sogar schon, aber nur an einer anderen Stelle (index.ts, fuer die
|
|
21
|
-
* Demo-Ausgabe) und nie fuer die Lektion selbst.
|
|
22
|
-
*
|
|
23
|
-
* Ein Pflichtfeld, das man vergessen kann, ist kein Pflichtfeld. Ein Wert, der
|
|
24
|
-
* sich herleiten laesst, gehoert hergeleitet.
|
|
25
|
-
*
|
|
26
|
-
* ── Reihenfolge, absichtlich in dieser Richtung ─────────────────────────────
|
|
27
|
-
*
|
|
28
|
-
* 1. was ausdruecklich uebergeben wurde — der Aufrufer weiss es besser
|
|
29
|
-
* 2. CACHLY_AUTHOR — bewusst gesetzt, etwa in der CI
|
|
30
|
-
* 3. git config user.name — der angemeldete Mensch
|
|
31
|
-
* 4. git config user.email (Teil vor dem @)
|
|
32
|
-
* 5. leer — dann steht dort ehrlich nichts statt eines geratenen Namens
|
|
33
|
-
*
|
|
34
|
-
* Schritt 5 ist wichtig: lieber kein Autor als ein falscher. Ein erfundener
|
|
35
|
-
* Name macht aus einer fehlenden Zuordnung eine falsche, und die faellt
|
|
36
|
-
* niemandem mehr auf.
|
|
37
|
-
*/
|
|
38
|
-
/** Ein Git-Wert, oder leer. Wirft nie — Git kann fehlen, das ist kein Fehler. */
|
|
39
|
-
export type GitLeser = (schluessel: string) => string;
|
|
40
|
-
export declare const echterGitLeser: (cwd?: string) => GitLeser;
|
|
41
|
-
/**
|
|
42
|
-
* Einen Namen auf die Form bringen, in der Autoren gespeichert werden.
|
|
43
|
-
*
|
|
44
|
-
* Klein geschrieben und ohne Leerzeichen: "Heinrich Neb" wird zu "heinrich".
|
|
45
|
-
* Das ist keine Kosmetik — brain_who_knows, team_recall und die
|
|
46
|
-
* Wiederverwendungs-Zaehlung vergleichen Autoren als Zeichenketten. "Heinrich"
|
|
47
|
-
* und "heinrich" waeren zwei Menschen.
|
|
48
|
-
*/
|
|
49
|
-
export declare function normalisiere(roh: string): string;
|
|
50
|
-
export interface AutorHerkunft {
|
|
51
|
-
/** Der ermittelte Name, oder leer. */
|
|
52
|
-
autor: string;
|
|
53
|
-
/** Woher er kam — steht im Hinweis an den Aufrufer. */
|
|
54
|
-
quelle: 'uebergeben' | 'umgebung' | 'git-name' | 'git-mail' | 'anonym' | 'unbekannt';
|
|
55
|
-
}
|
|
56
|
-
export declare function ermittleAutor(input: {
|
|
57
|
-
uebergeben?: string;
|
|
58
|
-
umgebung?: string;
|
|
59
|
-
git: GitLeser;
|
|
60
|
-
}): AutorHerkunft;
|
|
61
|
-
/**
|
|
62
|
-
* Der Mitautor — standardmaessig AUS.
|
|
63
|
-
*
|
|
64
|
-
* Heinrich: "Wir koennen im gleichen Zuge ja auch zum Beispiel claude als
|
|
65
|
-
* Co-Author nehmen, wenn der User das moechte? Einstellungssache,
|
|
66
|
-
* standardmaessig aber aus."
|
|
67
|
-
*
|
|
68
|
-
* Aus zwei Gruenden aus: erstens gehoert die Entscheidung dem Menschen, und
|
|
69
|
-
* zweitens wuerde ein automatisch gesetzter Mitautor die Zahl, um die es hier
|
|
70
|
-
* geht — wie viele Lektionen einen MENSCHEN als Autor haben — sofort wieder
|
|
71
|
-
* unbrauchbar machen.
|
|
72
|
-
*
|
|
73
|
-
* Eingeschaltet wird er mit
|
|
74
|
-
* brain_set_pref(key="coauthor", value="claude")
|
|
75
|
-
* und wieder aus mit value="" oder "off".
|
|
76
|
-
*/
|
|
77
|
-
export declare const COAUTHOR_PREF_KEY = "coauthor";
|
|
78
|
-
/** Aus dem gespeicherten Wert den Mitautor lesen — leer heisst aus. */
|
|
79
|
-
export declare function coautorAus(prefWert: string | null | undefined): string;
|
|
80
|
-
/**
|
|
81
|
-
* Wie der Autor gespeichert wird, wenn ein Mitautor eingeschaltet ist.
|
|
82
|
-
*
|
|
83
|
-
* "heinrich+claude" — ein Feld, kein zweites. Ein zweites Feld haette jede
|
|
84
|
-
* Abfrage im ganzen Haus anfassen muessen (who_knows, team_recall,
|
|
85
|
-
* reuse_pairs, das Briefing), und die Zahl "wie viele Lektionen haben einen
|
|
86
|
-
* Autor" waere dabei zweideutig geworden.
|
|
87
|
-
*
|
|
88
|
-
* Der Mensch steht VORN. Wer die Zeichenkette an "+" trennt, bekommt zuerst
|
|
89
|
-
* den, der die Entscheidung getroffen hat.
|
|
90
|
-
*/
|
|
91
|
-
export declare function mitCoautor(autor: string, coautor: string): string;
|
|
92
|
-
/** Nur der Mensch, ohne Mitautor — fuer Zaehlungen und Vergleiche. */
|
|
93
|
-
export declare function nurMensch(autorFeld: string): string;
|
|
94
|
-
/**
|
|
95
|
-
* Ein Satz an den Aufrufer, wenn kein Autor ermittelt werden konnte.
|
|
96
|
-
*
|
|
97
|
-
* Wieder ein HINWEIS und keine Ablehnung: eine abgelehnte Lektion ist immer
|
|
98
|
-
* schlechter als eine ohne Autor. Aber schweigen waere falsch — genau das
|
|
99
|
-
* Schweigen hat die 195 erzeugt.
|
|
100
|
-
*/
|
|
101
|
-
export declare function autorHinweis(h: AutorHerkunft): string | null;
|
package/dist/src/autor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autor.js","sourceRoot":"","sources":["../../src/autor.ts"],"names":[],"mappings":"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"}
|