@openclawbrain/openclaw 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +23 -228
  2. package/dist/extension/index.js +3 -2
  3. package/dist/extension/index.js.map +1 -1
  4. package/dist/extension/runtime-guard.js +1 -1
  5. package/dist/extension/runtime-guard.js.map +1 -1
  6. package/dist/src/attachment-truth.d.ts +32 -22
  7. package/dist/src/attachment-truth.js +338 -186
  8. package/dist/src/index.d.ts +75 -1719
  9. package/dist/src/index.js +7 -6882
  10. package/dist/src/runtime-core.js +574 -0
  11. package/extension/index.ts +3 -2
  12. package/extension/runtime-guard.ts +1 -1
  13. package/openclaw.plugin.json +1 -1
  14. package/package.json +17 -17
  15. package/dist/src/attachment-truth.js.map +0 -1
  16. package/dist/src/cli.d.ts +0 -170
  17. package/dist/src/cli.js +0 -5583
  18. package/dist/src/cli.js.map +0 -1
  19. package/dist/src/daemon.d.ts +0 -70
  20. package/dist/src/daemon.js +0 -955
  21. package/dist/src/daemon.js.map +0 -1
  22. package/dist/src/import-export.d.ts +0 -36
  23. package/dist/src/import-export.js +0 -171
  24. package/dist/src/import-export.js.map +0 -1
  25. package/dist/src/index.js.map +0 -1
  26. package/dist/src/learning-spine.d.ts +0 -50
  27. package/dist/src/learning-spine.js.map +0 -1
  28. package/dist/src/local-session-passive-learning.d.ts +0 -61
  29. package/dist/src/local-session-passive-learning.js +0 -454
  30. package/dist/src/local-session-passive-learning.js.map +0 -1
  31. package/dist/src/ollama-client.d.ts +0 -46
  32. package/dist/src/ollama-client.js +0 -231
  33. package/dist/src/ollama-client.js.map +0 -1
  34. package/dist/src/openclaw-home-layout.d.ts +0 -17
  35. package/dist/src/openclaw-home-layout.js +0 -182
  36. package/dist/src/openclaw-home-layout.js.map +0 -1
  37. package/dist/src/openclaw-hook-truth.d.ts +0 -33
  38. package/dist/src/openclaw-hook-truth.js +0 -260
  39. package/dist/src/openclaw-hook-truth.js.map +0 -1
  40. package/dist/src/openclaw-plugin-install.d.ts +0 -40
  41. package/dist/src/openclaw-plugin-install.js +0 -282
  42. package/dist/src/provider-config.d.ts +0 -64
  43. package/dist/src/provider-config.js +0 -306
  44. package/dist/src/provider-config.js.map +0 -1
  45. package/dist/src/resolve-activation-root.d.ts +0 -27
  46. package/dist/src/resolve-activation-root.js +0 -190
  47. package/dist/src/resolve-activation-root.js.map +0 -1
  48. package/dist/src/semantic-metadata.d.ts +0 -5
  49. package/dist/src/semantic-metadata.js +0 -70
  50. package/dist/src/semantic-metadata.js.map +0 -1
  51. package/dist/src/session-store.d.ts +0 -168
  52. package/dist/src/session-store.js +0 -250
  53. package/dist/src/session-store.js.map +0 -1
  54. package/dist/src/session-tail.d.ts +0 -73
  55. package/dist/src/session-tail.js +0 -602
  56. package/dist/src/session-tail.js.map +0 -1
  57. package/dist/src/shadow-extension-proof.d.ts +0 -43
  58. package/dist/src/shadow-extension-proof.js +0 -218
  59. package/dist/src/shadow-extension-proof.js.map +0 -1
  60. package/dist/src/teacher-labeler.d.ts +0 -50
  61. package/dist/src/teacher-labeler.js +0 -424
  62. package/dist/src/teacher-labeler.js.map +0 -1
@@ -1,168 +0,0 @@
1
- export interface OpenClawInjectedWorkspaceFile {
2
- name: string;
3
- path: string;
4
- missing: boolean;
5
- rawChars: number;
6
- injectedChars: number;
7
- truncated: boolean;
8
- }
9
- export interface OpenClawToolSurfaceEntry {
10
- name: string;
11
- summaryChars: number;
12
- schemaChars: number;
13
- propertiesCount: number;
14
- }
15
- export interface OpenClawSystemPromptReport {
16
- source?: string;
17
- generatedAt?: number;
18
- sessionId?: string;
19
- sessionKey?: string;
20
- provider?: string;
21
- model?: string;
22
- workspaceDir?: string;
23
- injectedWorkspaceFiles?: readonly OpenClawInjectedWorkspaceFile[];
24
- tools?: {
25
- listChars?: number;
26
- schemaChars?: number;
27
- entries?: readonly OpenClawToolSurfaceEntry[];
28
- [key: string]: unknown;
29
- };
30
- [key: string]: unknown;
31
- }
32
- export interface OpenClawSessionIndexEntry {
33
- sessionId: string;
34
- updatedAt: number;
35
- sessionFile?: string;
36
- model?: string;
37
- modelProvider?: string;
38
- chatType?: string;
39
- origin?: Record<string, unknown>;
40
- deliveryContext?: Record<string, unknown>;
41
- systemPromptReport?: OpenClawSystemPromptReport;
42
- [key: string]: unknown;
43
- }
44
- export type OpenClawSessionIndex = Record<string, OpenClawSessionIndexEntry>;
45
- export interface OpenClawSessionTextPart {
46
- type: "text";
47
- text: string;
48
- textSignature?: string;
49
- [key: string]: unknown;
50
- }
51
- export interface OpenClawSessionThinkingPart {
52
- type: "thinking";
53
- thinking: string;
54
- thinkingSignature?: string;
55
- [key: string]: unknown;
56
- }
57
- export interface OpenClawSessionToolCallPart {
58
- type: "toolCall";
59
- id: string;
60
- name: string;
61
- arguments: Record<string, unknown>;
62
- partialJson?: string;
63
- [key: string]: unknown;
64
- }
65
- export interface OpenClawSessionUnknownContentPart {
66
- type: string;
67
- [key: string]: unknown;
68
- }
69
- export type OpenClawSessionContentPart = OpenClawSessionTextPart | OpenClawSessionThinkingPart | OpenClawSessionToolCallPart | OpenClawSessionUnknownContentPart;
70
- export interface OpenClawSessionMessagePayload {
71
- role: string;
72
- content: readonly OpenClawSessionContentPart[];
73
- timestamp: number;
74
- toolCallId?: string;
75
- toolName?: string;
76
- details?: Record<string, unknown>;
77
- isError?: boolean;
78
- api?: string;
79
- provider?: string;
80
- model?: string;
81
- usage?: Record<string, unknown>;
82
- stopReason?: string;
83
- [key: string]: unknown;
84
- }
85
- export interface OpenClawSessionHeaderRecord {
86
- type: "session";
87
- version: number;
88
- id: string;
89
- timestamp: string;
90
- cwd: string;
91
- }
92
- export interface OpenClawSessionModelChangeRecord {
93
- type: "model_change";
94
- id: string;
95
- parentId: string | null;
96
- timestamp: string;
97
- provider: string;
98
- modelId: string;
99
- }
100
- export interface OpenClawSessionThinkingLevelChangeRecord {
101
- type: "thinking_level_change";
102
- id: string;
103
- parentId: string | null;
104
- timestamp: string;
105
- thinkingLevel: string;
106
- }
107
- export interface OpenClawSessionCustomRecord {
108
- type: "custom";
109
- customType: string;
110
- data: Record<string, unknown>;
111
- id: string;
112
- parentId: string | null;
113
- timestamp: string;
114
- }
115
- export interface OpenClawSessionMessageRecord {
116
- type: "message";
117
- id: string;
118
- parentId: string | null;
119
- timestamp: string;
120
- message: OpenClawSessionMessagePayload;
121
- }
122
- export type OpenClawSessionRecord = OpenClawSessionHeaderRecord | OpenClawSessionModelChangeRecord | OpenClawSessionThinkingLevelChangeRecord | OpenClawSessionCustomRecord | OpenClawSessionMessageRecord;
123
- export interface OpenClawAcpStreamRecord {
124
- ts: string;
125
- epochMs: number;
126
- runId: string;
127
- parentSessionKey: string;
128
- childSessionKey: string;
129
- agentId: string;
130
- kind: string;
131
- contextKey?: string;
132
- text?: string;
133
- delta?: string;
134
- phase?: string;
135
- data?: Record<string, unknown>;
136
- [key: string]: unknown;
137
- }
138
- export interface OpenClawMainSessionStoreV1 {
139
- profileRoot: string;
140
- agentId: "main";
141
- sessionsDir: string;
142
- indexPath: string;
143
- }
144
- /**
145
- * Generic session store that can represent any agent (main, subagent, ACP, etc.).
146
- */
147
- export interface OpenClawSessionStoreV1 {
148
- profileRoot: string;
149
- agentId: string;
150
- sessionsDir: string;
151
- indexPath: string;
152
- }
153
- export declare function loadOpenClawSessionIndex(indexFilePath: string): OpenClawSessionIndex;
154
- export declare function readOpenClawSessionFile(sessionFilePath: string): OpenClawSessionRecord[];
155
- export declare function readOpenClawAcpStreamFile(streamFilePath: string): OpenClawAcpStreamRecord[];
156
- export declare function discoverOpenClawMainSessionStores(options?: {
157
- homeDir?: string;
158
- profileRoots?: readonly string[];
159
- }): OpenClawMainSessionStoreV1[];
160
- /**
161
- * Discover session stores for ALL agents under each profile root.
162
- * Scans every directory under `agents/` (not just `agents/main/`),
163
- * finding subagent, ACP, and any other agent session stores.
164
- */
165
- export declare function discoverOpenClawSessionStores(options?: {
166
- homeDir?: string;
167
- profileRoots?: readonly string[];
168
- }): OpenClawSessionStoreV1[];
@@ -1,250 +0,0 @@
1
- import { existsSync, readFileSync, readdirSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import path from "node:path";
4
- import { discoverOpenClawHomes } from "./openclaw-home-layout.js";
5
- export function loadOpenClawSessionIndex(indexFilePath) {
6
- return parseJsonFile(indexFilePath);
7
- }
8
- export function readOpenClawSessionFile(sessionFilePath) {
9
- return readJsonlFile(sessionFilePath, parseOpenClawSessionRecord);
10
- }
11
- export function readOpenClawAcpStreamFile(streamFilePath) {
12
- return readJsonlFile(streamFilePath, parseOpenClawAcpStreamRecord);
13
- }
14
- export function discoverOpenClawMainSessionStores(options = {}) {
15
- const candidateRoots = options.profileRoots !== undefined
16
- ? [...new Set(options.profileRoots.map((root) => path.resolve(root)))]
17
- : discoverOpenClawProfileRoots(options.homeDir);
18
- return candidateRoots
19
- .map((profileRoot) => {
20
- const sessionsDir = path.join(profileRoot, "agents", "main", "sessions");
21
- const indexPath = path.join(sessionsDir, "sessions.json");
22
- if (!existsSync(indexPath)) {
23
- return null;
24
- }
25
- return {
26
- profileRoot,
27
- agentId: "main",
28
- sessionsDir,
29
- indexPath
30
- };
31
- })
32
- .filter((store) => store !== null)
33
- .sort((left, right) => left.indexPath.localeCompare(right.indexPath));
34
- }
35
- /**
36
- * Discover session stores for ALL agents under each profile root.
37
- * Scans every directory under `agents/` (not just `agents/main/`),
38
- * finding subagent, ACP, and any other agent session stores.
39
- */
40
- export function discoverOpenClawSessionStores(options = {}) {
41
- const candidateRoots = options.profileRoots !== undefined
42
- ? [...new Set(options.profileRoots.map((root) => path.resolve(root)))]
43
- : discoverOpenClawProfileRoots(options.homeDir);
44
- const stores = [];
45
- for (const profileRoot of candidateRoots) {
46
- const agentsDir = path.join(profileRoot, "agents");
47
- if (!existsSync(agentsDir)) {
48
- continue;
49
- }
50
- let agentDirs;
51
- try {
52
- agentDirs = readdirSync(agentsDir, { withFileTypes: true })
53
- .filter((entry) => entry.isDirectory())
54
- .map((entry) => entry.name);
55
- }
56
- catch {
57
- continue;
58
- }
59
- for (const agentName of agentDirs) {
60
- const sessionsDir = path.join(agentsDir, agentName, "sessions");
61
- const indexPath = path.join(sessionsDir, "sessions.json");
62
- if (!existsSync(indexPath)) {
63
- continue;
64
- }
65
- stores.push({
66
- profileRoot,
67
- agentId: agentName,
68
- sessionsDir,
69
- indexPath
70
- });
71
- }
72
- }
73
- return stores.sort((left, right) => left.indexPath.localeCompare(right.indexPath));
74
- }
75
- function discoverOpenClawProfileRoots(homeDir) {
76
- const rootDir = path.resolve(homeDir ?? process.env.HOME ?? process.env.USERPROFILE ?? homedir());
77
- if (!existsSync(rootDir)) {
78
- return [];
79
- }
80
- const configuredRoots = discoverOpenClawHomes(rootDir).map((inspection) => inspection.openclawHome);
81
- // Session-store discovery must still see legacy per-profile homes that have live
82
- // session data but do not yet carry an openclaw.json layout marker.
83
- let legacyRoots = [];
84
- try {
85
- legacyRoots = readdirSync(rootDir, { withFileTypes: true })
86
- .filter((entry) => entry.isDirectory() && entry.name.startsWith(".openclaw-"))
87
- .map((entry) => path.join(rootDir, entry.name))
88
- .filter((profileRoot) => existsSync(path.join(profileRoot, "agents")));
89
- }
90
- catch {
91
- legacyRoots = [];
92
- }
93
- return [...new Set([...configuredRoots, ...legacyRoots])].sort((left, right) => left.localeCompare(right));
94
- }
95
- function parseJsonFile(filePath) {
96
- return JSON.parse(readFileSync(filePath, "utf8"));
97
- }
98
- function readJsonlFile(filePath, parseRecord) {
99
- const text = readFileSync(filePath, "utf8");
100
- if (text.trim() === "") {
101
- return [];
102
- }
103
- return text
104
- .split(/\r?\n/)
105
- .filter((line) => line.trim().length > 0)
106
- .map((line, index) => {
107
- try {
108
- return parseRecord(JSON.parse(line), index + 1);
109
- }
110
- catch (error) {
111
- const message = error instanceof Error ? error.message : String(error);
112
- throw new Error(`Could not parse JSONL record at ${filePath}:${index + 1}: ${message}`);
113
- }
114
- });
115
- }
116
- function parseOpenClawSessionRecord(value, lineNumber) {
117
- const record = expectRecord(value, lineNumber);
118
- const type = expectString(record.type, `${lineNumber}.type`);
119
- switch (type) {
120
- case "session":
121
- return {
122
- type,
123
- version: expectNumber(record.version, `${lineNumber}.version`),
124
- id: expectString(record.id, `${lineNumber}.id`),
125
- timestamp: expectString(record.timestamp, `${lineNumber}.timestamp`),
126
- cwd: expectString(record.cwd, `${lineNumber}.cwd`)
127
- };
128
- case "model_change":
129
- return {
130
- type,
131
- id: expectString(record.id, `${lineNumber}.id`),
132
- parentId: expectNullableString(record.parentId, `${lineNumber}.parentId`),
133
- timestamp: expectString(record.timestamp, `${lineNumber}.timestamp`),
134
- provider: expectString(record.provider, `${lineNumber}.provider`),
135
- modelId: expectString(record.modelId, `${lineNumber}.modelId`)
136
- };
137
- case "thinking_level_change":
138
- return {
139
- type,
140
- id: expectString(record.id, `${lineNumber}.id`),
141
- parentId: expectNullableString(record.parentId, `${lineNumber}.parentId`),
142
- timestamp: expectString(record.timestamp, `${lineNumber}.timestamp`),
143
- thinkingLevel: expectString(record.thinkingLevel, `${lineNumber}.thinkingLevel`)
144
- };
145
- case "custom":
146
- return {
147
- type,
148
- customType: expectString(record.customType, `${lineNumber}.customType`),
149
- data: expectRecord(record.data, `${lineNumber}.data`),
150
- id: expectString(record.id, `${lineNumber}.id`),
151
- parentId: expectNullableString(record.parentId, `${lineNumber}.parentId`),
152
- timestamp: expectString(record.timestamp, `${lineNumber}.timestamp`)
153
- };
154
- case "message":
155
- return {
156
- type,
157
- id: expectString(record.id, `${lineNumber}.id`),
158
- parentId: expectNullableString(record.parentId, `${lineNumber}.parentId`),
159
- timestamp: expectString(record.timestamp, `${lineNumber}.timestamp`),
160
- message: parseMessagePayload(record.message, `${lineNumber}.message`)
161
- };
162
- default:
163
- throw new Error(`Unknown OpenClaw session record type: ${type}`);
164
- }
165
- }
166
- function parseMessagePayload(value, path) {
167
- const payload = expectRecord(value, path);
168
- const content = expectArray(payload.content, `${path}.content`).map((entry, index) => parseContentPart(entry, `${path}.content[${index}]`));
169
- return {
170
- ...payload,
171
- role: expectString(payload.role, `${path}.role`),
172
- content,
173
- timestamp: expectNumber(payload.timestamp, `${path}.timestamp`)
174
- };
175
- }
176
- function parseContentPart(value, path) {
177
- const content = expectRecord(value, path);
178
- const type = expectString(content.type, `${path}.type`);
179
- if (type === "text") {
180
- return {
181
- ...content,
182
- type,
183
- text: expectString(content.text, `${path}.text`)
184
- };
185
- }
186
- if (type === "thinking") {
187
- return {
188
- ...content,
189
- type,
190
- thinking: expectString(content.thinking, `${path}.thinking`)
191
- };
192
- }
193
- if (type === "toolCall") {
194
- return {
195
- ...content,
196
- type,
197
- id: expectString(content.id, `${path}.id`),
198
- name: expectString(content.name, `${path}.name`),
199
- arguments: expectRecord(content.arguments, `${path}.arguments`)
200
- };
201
- }
202
- return {
203
- ...content,
204
- type
205
- };
206
- }
207
- function parseOpenClawAcpStreamRecord(value, lineNumber) {
208
- const record = expectRecord(value, lineNumber);
209
- return {
210
- ...record,
211
- ts: expectString(record.ts, `${lineNumber}.ts`),
212
- epochMs: expectNumber(record.epochMs, `${lineNumber}.epochMs`),
213
- runId: expectString(record.runId, `${lineNumber}.runId`),
214
- parentSessionKey: expectString(record.parentSessionKey, `${lineNumber}.parentSessionKey`),
215
- childSessionKey: expectString(record.childSessionKey, `${lineNumber}.childSessionKey`),
216
- agentId: expectString(record.agentId, `${lineNumber}.agentId`),
217
- kind: expectString(record.kind, `${lineNumber}.kind`)
218
- };
219
- }
220
- function expectRecord(value, path) {
221
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
222
- throw new Error(`${path} must be an object`);
223
- }
224
- return value;
225
- }
226
- function expectArray(value, path) {
227
- if (!Array.isArray(value)) {
228
- throw new Error(`${path} must be an array`);
229
- }
230
- return value;
231
- }
232
- function expectString(value, path) {
233
- if (typeof value !== "string") {
234
- throw new Error(`${path} must be a string`);
235
- }
236
- return value;
237
- }
238
- function expectNullableString(value, path) {
239
- if (value === null) {
240
- return null;
241
- }
242
- return expectString(value, path);
243
- }
244
- function expectNumber(value, path) {
245
- if (typeof value !== "number" || !Number.isFinite(value)) {
246
- throw new Error(`${path} must be a finite number`);
247
- }
248
- return value;
249
- }
250
- //# sourceMappingURL=session-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/session-store.ts"],"names":[],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- import { type OpenClawSessionStoreV1 } from "./session-store.js";
2
- import type { ScannedEventExportInputV1 } from "./index.js";
3
- export type OpenClawLocalSessionTailNoopReasonV1 = "seeded_existing_sessions" | "no_local_session_stores" | "no_session_changes";
4
- export type OpenClawLocalSessionTailChangeKindV1 = "new_session" | "appended_records" | "metadata_only" | "session_reset" | "missing_session_path" | "missing_session_file";
5
- export interface OpenClawLocalSessionTailCursorV1 {
6
- sourceIndexPath: string;
7
- sessionKey: string;
8
- sessionId: string;
9
- sessionFile: string | null;
10
- updatedAt: number;
11
- rawRecordCount: number;
12
- bridgedEventCount: number;
13
- }
14
- export interface OpenClawLocalSessionTailChangeV1 {
15
- source: OpenClawSessionStoreV1;
16
- sessionKey: string;
17
- sessionId: string;
18
- sessionFile: string | null;
19
- changeKind: OpenClawLocalSessionTailChangeKindV1;
20
- rawRecordCount: number;
21
- bridgedEventCount: number;
22
- emittedEventCount: number;
23
- lastUserMessageAt: string | null;
24
- lastUserMessageText: string | null;
25
- warnings: string[];
26
- scannedEventExport: ScannedEventExportInputV1 | null;
27
- }
28
- export interface OpenClawLocalSessionTailPollResultV1 {
29
- runtimeOwner: "openclaw";
30
- lane: "local_session_tail";
31
- polledAt: string;
32
- sources: OpenClawSessionStoreV1[];
33
- changes: OpenClawLocalSessionTailChangeV1[];
34
- noopReason: OpenClawLocalSessionTailNoopReasonV1 | null;
35
- warnings: string[];
36
- cursor: OpenClawLocalSessionTailCursorV1[];
37
- }
38
- export interface OpenClawLocalSessionTailInput {
39
- homeDir?: string;
40
- profileRoots?: readonly string[];
41
- cursor?: readonly OpenClawLocalSessionTailCursorV1[];
42
- emitExistingOnFirstPoll?: boolean;
43
- }
44
- export interface OpenClawLocalSessionTailLoopOptionsV1 {
45
- pollIntervalMs?: number;
46
- maxPasses?: number;
47
- stopWhenIdle?: boolean;
48
- signal?: AbortSignal;
49
- onPass?: (result: OpenClawLocalSessionTailPollResultV1) => void | Promise<void>;
50
- }
51
- export interface OpenClawLocalSessionTailLoopResultV1 {
52
- runtimeOwner: "openclaw";
53
- passCount: number;
54
- changedSessionCount: number;
55
- emittedEventCount: number;
56
- stoppedReason: "idle" | "max_passes" | "aborted";
57
- lastPoll: OpenClawLocalSessionTailPollResultV1 | null;
58
- cursor: OpenClawLocalSessionTailCursorV1[];
59
- }
60
- export declare class OpenClawLocalSessionTail {
61
- readonly homeDir: string | undefined;
62
- readonly profileRoots: readonly string[] | undefined;
63
- private initialized;
64
- private readonly emitExistingOnFirstPoll;
65
- private readonly cursorBySession;
66
- constructor(input?: OpenClawLocalSessionTailInput);
67
- snapshot(): OpenClawLocalSessionTailCursorV1[];
68
- pollOnce(options?: {
69
- observedAt?: string;
70
- }): OpenClawLocalSessionTailPollResultV1;
71
- runLoop(options?: OpenClawLocalSessionTailLoopOptionsV1): Promise<OpenClawLocalSessionTailLoopResultV1>;
72
- }
73
- export declare function createOpenClawLocalSessionTail(input?: OpenClawLocalSessionTailInput): OpenClawLocalSessionTail;