sealkeep 0.9.0 → 0.11.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/ARCHITECTURE.md +163 -14
- package/CHANGELOG.md +252 -1
- package/CONTROL_PLANE.md +2 -2
- package/LICENSE +1 -1
- package/README.md +108 -22
- package/THIRD_PARTY.md +2 -2
- package/THREAT_MODEL.md +23 -4
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/chunk-access.d.ts +26 -4
- package/dist/packages/sealkeep-crypto/src/chunk-access.js +219 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/envelope.d.ts +11 -1
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/envelope.js +58 -21
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/format.d.ts +2 -2
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/index.d.ts +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/index.js +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/recipients.d.ts +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/recipients.js +53 -13
- package/dist/packages/sealkeep-crypto/src/squeeze.d.ts +6 -0
- package/dist/packages/sealkeep-crypto/src/squeeze.js +39 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/stream.d.ts +36 -3
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/stream.js +196 -37
- package/dist/site/index.html +1808 -1904
- package/dist/site/llms.txt +67 -0
- package/dist/site/trust/architecture-data-flow.html +53 -0
- package/dist/site/trust/audit-roadmap.html +37 -0
- package/dist/site/trust/deployment-responsibility.html +11 -0
- package/dist/site/trust/dpa-sample.html +30 -0
- package/dist/site/trust/release-provenance.html +21 -0
- package/dist/site/trust/subprocessors.html +15 -0
- package/dist/site/trust/threat-model.html +34 -0
- package/dist/site/trust/toms.html +41 -0
- package/dist/site/trust-document.css +32 -0
- package/dist/site/trust.html +73 -0
- package/dist/site/visual/assets/index-8Nxnkc7o.js +207 -0
- package/dist/site/visual/assets/index-oxLy1bpy.css +1 -0
- package/dist/site/visual/index.html +18 -0
- package/dist/site.zip +0 -0
- package/dist/src/activity.d.ts +9 -0
- package/dist/src/activity.js +90 -1
- package/dist/src/adapters.d.ts +175 -5
- package/dist/src/adapters.js +961 -73
- package/dist/src/agent-context.d.ts +135 -0
- package/dist/src/agent-context.js +1059 -0
- package/dist/src/archive-copies.d.ts +47 -0
- package/dist/src/archive-copies.js +179 -0
- package/dist/src/audit.d.ts +1 -1
- package/dist/src/audit.js +29 -4
- package/dist/src/autopilot.d.ts +52 -7
- package/dist/src/autopilot.js +143 -25
- package/dist/src/background-bandwidth.d.ts +46 -0
- package/dist/src/background-bandwidth.js +301 -0
- package/dist/src/background-cpu.d.ts +82 -0
- package/dist/src/background-cpu.js +212 -0
- package/dist/src/background-worker-error.d.ts +12 -0
- package/dist/src/background-worker-error.js +18 -0
- package/dist/src/branding.d.ts +24 -1
- package/dist/src/branding.js +31 -1
- package/dist/src/bridge.d.ts +233 -0
- package/dist/src/bridge.js +604 -0
- package/dist/src/byte-stream.d.ts +91 -0
- package/dist/src/byte-stream.js +385 -0
- package/dist/src/chunk-store.d.ts +41 -8
- package/dist/src/chunk-store.js +161 -65
- package/dist/src/cli.js +1698 -163
- package/dist/src/cloud.d.ts +841 -31
- package/dist/src/cloud.js +3196 -277
- package/dist/src/context-background.d.ts +37 -0
- package/dist/src/context-background.js +309 -0
- package/dist/src/context-drain-child.d.ts +1 -0
- package/dist/src/context-drain-child.js +98 -0
- package/dist/src/context-reader.d.ts +118 -0
- package/dist/src/context-reader.js +447 -0
- package/dist/src/control-plane/auth.d.ts +32 -4
- package/dist/src/control-plane/auth.js +85 -24
- package/dist/src/control-plane/server.js +19 -6
- package/dist/src/control-plane.d.ts +17 -1
- package/dist/src/control-plane.js +32 -6
- package/dist/src/crypto.d.ts +1 -1
- package/dist/src/crypto.js +5 -5
- package/dist/src/daemon-lease.d.ts +70 -0
- package/dist/src/daemon-lease.js +420 -0
- package/dist/src/daemon.d.ts +94 -1
- package/dist/src/daemon.js +1082 -105
- package/dist/src/darwin-service-policy.d.ts +41 -0
- package/dist/src/darwin-service-policy.js +60 -0
- package/dist/src/dashboard-cli.js +15 -15
- package/dist/src/device-authorization.d.ts +37 -0
- package/dist/src/device-authorization.js +199 -0
- package/dist/src/device-enrollment.d.ts +91 -0
- package/dist/src/device-enrollment.js +349 -0
- package/dist/src/disk.d.ts +17 -12
- package/dist/src/disk.js +43 -17
- package/dist/src/doctor.d.ts +35 -1
- package/dist/src/doctor.js +332 -41
- package/dist/src/durable-ticket-lock.d.ts +24 -0
- package/dist/src/durable-ticket-lock.js +232 -0
- package/dist/src/enroll.d.ts +1 -1
- package/dist/src/enroll.js +13 -7
- package/dist/src/env.d.ts +10 -1
- package/dist/src/env.js +11 -3
- package/dist/src/errors.d.ts +8 -8
- package/dist/src/errors.js +6 -6
- package/dist/src/flush.d.ts +12 -0
- package/dist/src/flush.js +37 -0
- package/dist/src/heartbeat.d.ts +86 -12
- package/dist/src/heartbeat.js +415 -29
- package/dist/src/index-background-watchdog.d.ts +1 -0
- package/dist/src/index-background-watchdog.js +94 -0
- package/dist/src/index-background-work.d.ts +21 -0
- package/dist/src/index-background-work.js +25 -0
- package/dist/src/index-background.d.ts +64 -0
- package/dist/src/index-background.js +394 -0
- package/dist/src/index-build-child.d.ts +1 -0
- package/dist/src/index-build-child.js +109 -0
- package/dist/src/index-manifest.d.ts +52 -0
- package/dist/src/index-manifest.js +444 -0
- package/dist/src/index-publication-proof.d.ts +84 -0
- package/dist/src/index-publication-proof.js +380 -0
- package/dist/src/index-publication-state.d.ts +149 -0
- package/dist/src/index-publication-state.js +696 -0
- package/dist/src/index-publication-verifier.d.ts +89 -0
- package/dist/src/index-publication-verifier.js +341 -0
- package/dist/src/index-publish.d.ts +62 -0
- package/dist/src/index-publish.js +540 -0
- package/dist/src/index-scratch-cleanup.d.ts +19 -0
- package/dist/src/index-scratch-cleanup.js +166 -0
- package/dist/src/index-segment-types.d.ts +132 -0
- package/dist/src/index-segment-types.js +21 -0
- package/dist/src/index-segments.d.ts +9 -0
- package/dist/src/index-segments.js +516 -0
- package/dist/src/index-store.d.ts +123 -0
- package/dist/src/index-store.js +495 -0
- package/dist/src/index-sync.d.ts +91 -15
- package/dist/src/index-sync.js +286 -53
- package/dist/src/index-upgrade-publication.d.ts +30 -0
- package/dist/src/index-upgrade-publication.js +179 -0
- package/dist/src/integration-manager.d.ts +32 -0
- package/dist/src/integration-manager.js +394 -0
- package/dist/src/leakscan.js +1 -1
- package/dist/src/local-api.d.ts +56 -15
- package/dist/src/local-api.js +4979 -541
- package/dist/src/machine-settings.d.ts +51 -0
- package/dist/src/machine-settings.js +166 -0
- package/dist/src/managed-chunks.d.ts +5 -2
- package/dist/src/managed-chunks.js +14 -14
- package/dist/src/mcp-install.d.ts +11 -9
- package/dist/src/mcp-install.js +73 -28
- package/dist/src/mcp-workspace.d.ts +18 -0
- package/dist/src/mcp-workspace.js +50 -0
- package/dist/src/mcp.js +294 -25
- package/dist/src/migrate.js +27 -21
- package/dist/src/notify.d.ts +1 -1
- package/dist/src/notify.js +5 -5
- package/dist/src/offload.d.ts +201 -14
- package/dist/src/offload.js +1848 -140
- package/dist/src/onboarding.d.ts +8 -1
- package/dist/src/onboarding.js +4 -4
- package/dist/src/packages.d.ts +2 -2
- package/dist/src/packages.js +10 -2
- package/dist/src/passkey.d.ts +0 -1
- package/dist/src/passkey.js +2 -7
- package/dist/src/password-lock.d.ts +2 -2
- package/dist/src/password-lock.js +6 -6
- package/dist/src/paths.d.ts +2 -0
- package/dist/src/paths.js +2 -0
- package/dist/src/presence.d.ts +86 -0
- package/dist/src/presence.js +240 -0
- package/dist/src/progress-deadline.d.ts +21 -0
- package/dist/src/progress-deadline.js +91 -0
- package/dist/src/project-repair.d.ts +55 -0
- package/dist/src/project-repair.js +131 -0
- package/dist/src/providers/gcs.d.ts +28 -7
- package/dist/src/providers/gcs.js +35 -24
- package/dist/src/providers/gdrive.d.ts +71 -8
- package/dist/src/providers/gdrive.js +223 -50
- package/dist/src/providers/index.d.ts +11 -3
- package/dist/src/providers/index.js +30 -10
- package/dist/src/providers/s3.d.ts +30 -8
- package/dist/src/providers/s3.js +41 -30
- package/dist/src/providers/safe-storage-fetch.d.ts +12 -0
- package/dist/src/providers/safe-storage-fetch.js +72 -0
- package/dist/src/queue.d.ts +136 -19
- package/dist/src/queue.js +862 -96
- package/dist/src/reclaim-transaction.d.ts +156 -0
- package/dist/src/reclaim-transaction.js +1027 -0
- package/dist/src/recovery-codes.d.ts +32 -0
- package/dist/src/recovery-codes.js +338 -0
- package/dist/src/recovery.js +12 -9
- package/dist/src/rehydrate.d.ts +25 -22
- package/dist/src/rehydrate.js +319 -23
- package/dist/src/restore.d.ts +57 -4
- package/dist/src/restore.js +272 -36
- package/dist/src/resume-stub.d.ts +92 -0
- package/dist/src/resume-stub.js +417 -0
- package/dist/src/retention.d.ts +98 -7
- package/dist/src/retention.js +1066 -62
- package/dist/src/rotate.js +3 -3
- package/dist/src/search.d.ts +566 -8
- package/dist/src/search.js +5940 -297
- package/dist/src/secrets.d.ts +51 -7
- package/dist/src/secrets.js +316 -24
- package/dist/src/service.d.ts +49 -11
- package/dist/src/service.js +776 -35
- package/dist/src/share.js +3 -3
- package/dist/src/shared-spaces.d.ts +98 -0
- package/dist/src/shared-spaces.js +214 -0
- package/dist/src/source-reader.d.ts +73 -0
- package/dist/src/source-reader.js +715 -0
- package/dist/src/spool.d.ts +1 -1
- package/dist/src/spool.js +1 -1
- package/dist/src/start-tui.js +2 -1
- package/dist/src/start.js +2 -2
- package/dist/src/storage-endpoint.d.ts +21 -0
- package/dist/src/storage-endpoint.js +122 -0
- package/dist/src/storage-setup.js +12 -12
- package/dist/src/storage-targets.d.ts +109 -6
- package/dist/src/storage-targets.js +975 -67
- package/dist/src/stream-to-cloud.d.ts +5 -1
- package/dist/src/stream-to-cloud.js +34 -14
- package/dist/src/sync-rules.d.ts +31 -6
- package/dist/src/sync-rules.js +153 -14
- package/dist/src/team-backfill-scheduling.d.ts +8 -0
- package/dist/src/team-backfill-scheduling.js +33 -0
- package/dist/src/team-backfill.d.ts +116 -0
- package/dist/src/team-backfill.js +1429 -0
- package/dist/src/team-index-cache.d.ts +16 -0
- package/dist/src/team-index-cache.js +152 -0
- package/dist/src/team-offboarding.d.ts +38 -0
- package/dist/src/team-offboarding.js +1043 -0
- package/dist/src/team-presence.d.ts +127 -0
- package/dist/src/team-presence.js +904 -0
- package/dist/src/team-publication-policy.d.ts +20 -0
- package/dist/src/team-publication-policy.js +140 -0
- package/dist/src/team-realtime.d.ts +68 -0
- package/dist/src/team-realtime.js +816 -0
- package/dist/src/team-source-facts-cache.d.ts +23 -0
- package/dist/src/team-source-facts-cache.js +255 -0
- package/dist/src/trash.d.ts +1 -1
- package/dist/src/trash.js +2 -2
- package/dist/src/tui.js +11 -12
- package/dist/src/types.d.ts +173 -7
- package/dist/src/types.js +20 -0
- package/dist/src/ui-server.d.ts +163 -35
- package/dist/src/ui-server.js +712 -72
- package/dist/src/ui.d.ts +1 -2
- package/dist/src/ui.js +1 -2
- package/dist/src/upload.d.ts +27 -0
- package/dist/src/upload.js +383 -43
- package/dist/src/vault.d.ts +226 -30
- package/dist/src/vault.js +1776 -192
- package/dist/src/watcher.d.ts +7 -1
- package/dist/src/watcher.js +198 -55
- package/dist/src/worker.d.ts +27 -3
- package/dist/src/worker.js +274 -55
- package/package.json +33 -12
- package/scripts/native-reboot-rehearsal.mjs +90 -0
- package/web/app.js +6032 -343
- package/web/bootstrap.js +17 -0
- package/web/index.html +255 -57
- package/web/rail.js +317 -40
- package/web/retention.html +2 -2
- package/web/rules-view.js +188 -16
- package/web/sessions-view.js +485 -62
- package/web/sessions.html +2 -2
- package/web/setup-api.js +152 -29
- package/web/setup-logic.js +68 -9
- package/web/setup.html +113 -44
- package/web/setup.js +604 -71
- package/web/style.css +513 -98
- package/dist/packages/vaultline-crypto/src/chunk-access.js +0 -93
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/aead.d.ts +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/aead.js +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/format.js +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/sha256-stream.d.ts +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/sha256-stream.js +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automatic agent context — the zero-command path.
|
|
3
|
+
*
|
|
4
|
+
* Lifecycle hooks call this module at startup, after a user prompt, and after
|
|
5
|
+
* meaningful tools. Personal memory is loaded for the current git project on
|
|
6
|
+
* every machine. A project explicitly set to active also publishes one-line
|
|
7
|
+
* progress and receives teammates' new one-line events while the session is
|
|
8
|
+
* still running.
|
|
9
|
+
*
|
|
10
|
+
* Hook output is context, never authority: restored text is labelled as
|
|
11
|
+
* historical/untrusted data so an instruction captured in an old transcript
|
|
12
|
+
* cannot silently become a new instruction.
|
|
13
|
+
*/
|
|
14
|
+
import { type AgentId } from "./adapters.js";
|
|
15
|
+
import { type PresenceEvent } from "./presence.js";
|
|
16
|
+
import { type ProjectMemory } from "./search.js";
|
|
17
|
+
export type AgentHookPayload = {
|
|
18
|
+
hook_event_name?: string;
|
|
19
|
+
session_id?: string;
|
|
20
|
+
thread_id?: string;
|
|
21
|
+
cwd?: string;
|
|
22
|
+
prompt?: string;
|
|
23
|
+
transcript_path?: string;
|
|
24
|
+
rollout_path?: string;
|
|
25
|
+
tool_name?: string;
|
|
26
|
+
};
|
|
27
|
+
export type AutomaticContextOutcome = {
|
|
28
|
+
project: string;
|
|
29
|
+
/** Collision-safe identity used for every lookup; project is display-only. */
|
|
30
|
+
projectKey: string | null;
|
|
31
|
+
sharing: "active" | "passive";
|
|
32
|
+
additionalContext: string;
|
|
33
|
+
published?: PresenceEvent;
|
|
34
|
+
teammateUpdates: PresenceEvent[];
|
|
35
|
+
memories: ProjectMemory[];
|
|
36
|
+
};
|
|
37
|
+
/** Internal scheduling controls for the daemon-owned context worker. Omitted
|
|
38
|
+
* by CLI/MCP callers, so a manual foreground search remains unrestricted. */
|
|
39
|
+
export type AutomaticContextWorkOptions = {
|
|
40
|
+
now?: number;
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
maxBytesPerSecond?: number;
|
|
43
|
+
onYield?: () => void | Promise<void>;
|
|
44
|
+
/** Useful remote byte progress, used to refresh the owned child's stall deadline. */
|
|
45
|
+
onProgress?: (bytes: number) => void;
|
|
46
|
+
/** Test-only clock policy injection; production uses the reviewed constant. */
|
|
47
|
+
contextMinIntervalMs?: number;
|
|
48
|
+
};
|
|
49
|
+
export type ContextRequestDrain = {
|
|
50
|
+
processed: number;
|
|
51
|
+
failed: number;
|
|
52
|
+
discarded: number;
|
|
53
|
+
pending: number;
|
|
54
|
+
};
|
|
55
|
+
export declare function parseAgentHookPayload(raw: string): AgentHookPayload;
|
|
56
|
+
/**
|
|
57
|
+
* Persist one expensive recall request and return to the hook protocol. The
|
|
58
|
+
* filename is a fixed session/event slot, so a burst of tool hooks replaces
|
|
59
|
+
* stale work instead of creating an unbounded queue. The prompt stays sealed
|
|
60
|
+
* at rest; only the long-running daemon opens it.
|
|
61
|
+
*/
|
|
62
|
+
export declare function enqueueAutomaticAgentContextRequest(dataDir: string, phrase: string, agent: AgentId, payload: AgentHookPayload, options?: {
|
|
63
|
+
now?: number;
|
|
64
|
+
}): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Return every request claimed by one terminated context child to its durable
|
|
67
|
+
* coalesced slot. The request body stays encrypted, and an event that arrived
|
|
68
|
+
* while the child was running wins over the older claim.
|
|
69
|
+
*/
|
|
70
|
+
export declare function recoverAutomaticAgentContextClaims(dataDir: string, pid: number, options?: {
|
|
71
|
+
retryAt?: number;
|
|
72
|
+
}): Promise<number>;
|
|
73
|
+
export type HookUnlockFailure = {
|
|
74
|
+
version: 1;
|
|
75
|
+
at: string;
|
|
76
|
+
agent: AgentId;
|
|
77
|
+
backend: string | null;
|
|
78
|
+
};
|
|
79
|
+
export declare function recordHookUnlockFailure(dataDir: string, agent: AgentId): Promise<void>;
|
|
80
|
+
export declare function clearHookUnlockFailure(dataDir: string): Promise<void>;
|
|
81
|
+
export declare function readHookUnlockFailure(dataDir: string): Promise<HookUnlockFailure | null>;
|
|
82
|
+
/**
|
|
83
|
+
* A session that has ended will never read recall prepared for it. Its
|
|
84
|
+
* SessionEnd hook drops every coalesced slot, prepared answer, lifecycle state
|
|
85
|
+
* and lock under its id, so the daemon's next passes go to the sessions still
|
|
86
|
+
* typing rather than to a queue of sessions that are gone. A payload with no
|
|
87
|
+
* session identity is left alone: the cwd fallback would name someone else's slots.
|
|
88
|
+
*/
|
|
89
|
+
export declare function discardAutomaticAgentContext(dataDir: string, payload: AgentHookPayload): Promise<number>;
|
|
90
|
+
/** A metadata-only gate so an idle daemon does not fork a child every second. */
|
|
91
|
+
export declare function hasDueAutomaticAgentContextRequest(dataDir: string, queueNow?: number): Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* Consume a bounded pending-context batch. Failures keep their exact request
|
|
94
|
+
* for the next daemon pass; successful work removes it only if a newer hook
|
|
95
|
+
* did not replace the coalesced slot while preparation was running.
|
|
96
|
+
*/
|
|
97
|
+
export declare function drainAutomaticAgentContextRequests(dataDir: string, phrase: string, options?: {
|
|
98
|
+
limit?: number;
|
|
99
|
+
now?: number;
|
|
100
|
+
/** Queue clock is separate from the lifecycle timestamp used in tests. */
|
|
101
|
+
queueNow?: number;
|
|
102
|
+
retryDelayMs?: number;
|
|
103
|
+
prepare?: typeof prepareAutomaticAgentContext;
|
|
104
|
+
scheduling?: Omit<AutomaticContextWorkOptions, "now">;
|
|
105
|
+
}): Promise<ContextRequestDrain>;
|
|
106
|
+
/**
|
|
107
|
+
* Up to three distinctive terms from a prompt, best first. A long identifier or
|
|
108
|
+
* domain word is usually the thing the person expects memory to recover; ties
|
|
109
|
+
* favour the later word, where prompts put subjects. Names in `exclude` — the
|
|
110
|
+
* project and the working folder — never qualify: "linkboard" is in every
|
|
111
|
+
* session of the linkboard project and discriminates nothing, yet as the
|
|
112
|
+
* longest word it used to win outright and bury the actual subject.
|
|
113
|
+
*/
|
|
114
|
+
export declare function recallQueries(prompt: string | undefined, exclude?: readonly (string | null | undefined)[]): string[];
|
|
115
|
+
export declare function recallQuery(prompt: string | undefined): string | null;
|
|
116
|
+
/**
|
|
117
|
+
* Produces context for one lifecycle event and performs the active-team side
|
|
118
|
+
* effects. Ordinary memory/store failures degrade to an empty answer. Owned
|
|
119
|
+
* worker cancellation and resource ceilings propagate so the durable request
|
|
120
|
+
* can be restored and retried; the interactive hook never waits for this work.
|
|
121
|
+
*/
|
|
122
|
+
export declare function automaticAgentContext(dataDir: string, phrase: string, agent: AgentId, payload: AgentHookPayload, options?: AutomaticContextWorkOptions): Promise<AutomaticContextOutcome | null>;
|
|
123
|
+
/**
|
|
124
|
+
* Runs the complete recall/team workflow away from the agent's critical path
|
|
125
|
+
* and seals its answer for the next boundary. The cache is encrypted with the
|
|
126
|
+
* same recovery phrase as the vault; readable recalled text is never left in a
|
|
127
|
+
* new plaintext sidecar merely to make hooks faster.
|
|
128
|
+
*/
|
|
129
|
+
export declare function prepareAutomaticAgentContext(dataDir: string, phrase: string, agent: AgentId, payload: AgentHookPayload, options?: AutomaticContextWorkOptions): Promise<AutomaticContextOutcome | null>;
|
|
130
|
+
/**
|
|
131
|
+
* The user-facing hook path: one local key lookup, one atomic claim, one small
|
|
132
|
+
* authenticated decrypt, and no network/search/provider work. Prepared context
|
|
133
|
+
* is consumed exactly once so old teammate lines are not repeated forever.
|
|
134
|
+
*/
|
|
135
|
+
export declare function consumePreparedAgentContext(dataDir: string, phrase: string, payload: AgentHookPayload): Promise<AutomaticContextOutcome | null>;
|