openclawdreams 3.0.3 → 3.0.5
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/CHANGELOG.md +26 -0
- package/openclaw.plugin.json +6 -1
- package/package.json +1 -1
- package/dist/bin/electricsheep.d.ts +0 -3
- package/dist/bin/electricsheep.d.ts.map +0 -1
- package/dist/bin/electricsheep.js +0 -4
- package/dist/bin/electricsheep.js.map +0 -1
- package/dist/bin/openclawdreams.d.ts +0 -3
- package/dist/bin/openclawdreams.d.ts.map +0 -1
- package/dist/bin/openclawdreams.js +0 -4
- package/dist/bin/openclawdreams.js.map +0 -1
- package/dist/src/backfill.d.ts +0 -2
- package/dist/src/backfill.d.ts.map +0 -1
- package/dist/src/backfill.js +0 -63
- package/dist/src/backfill.js.map +0 -1
- package/dist/src/budget.d.ts +0 -28
- package/dist/src/budget.d.ts.map +0 -1
- package/dist/src/budget.js +0 -87
- package/dist/src/budget.js.map +0 -1
- package/dist/src/cli.d.ts +0 -19
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -584
- package/dist/src/cli.js.map +0 -1
- package/dist/src/config.d.ts +0 -74
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -169
- package/dist/src/config.js.map +0 -1
- package/dist/src/crypto.d.ts +0 -19
- package/dist/src/crypto.d.ts.map +0 -1
- package/dist/src/crypto.js +0 -70
- package/dist/src/crypto.js.map +0 -1
- package/dist/src/dreamer.d.ts +0 -68
- package/dist/src/dreamer.d.ts.map +0 -1
- package/dist/src/dreamer.js +0 -555
- package/dist/src/dreamer.js.map +0 -1
- package/dist/src/entropy.d.ts +0 -23
- package/dist/src/entropy.d.ts.map +0 -1
- package/dist/src/entropy.js +0 -188
- package/dist/src/entropy.js.map +0 -1
- package/dist/src/filter.d.ts +0 -30
- package/dist/src/filter.d.ts.map +0 -1
- package/dist/src/filter.js +0 -124
- package/dist/src/filter.js.map +0 -1
- package/dist/src/identity.d.ts +0 -29
- package/dist/src/identity.d.ts.map +0 -1
- package/dist/src/identity.js +0 -83
- package/dist/src/identity.js.map +0 -1
- package/dist/src/index.d.ts +0 -14
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -540
- package/dist/src/index.js.map +0 -1
- package/dist/src/ingestion.d.ts +0 -22
- package/dist/src/ingestion.d.ts.map +0 -1
- package/dist/src/ingestion.js +0 -101
- package/dist/src/ingestion.js.map +0 -1
- package/dist/src/llm.d.ts +0 -26
- package/dist/src/llm.d.ts.map +0 -1
- package/dist/src/llm.js +0 -40
- package/dist/src/llm.js.map +0 -1
- package/dist/src/logger.d.ts +0 -6
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -32
- package/dist/src/logger.js.map +0 -1
- package/dist/src/memory.d.ts +0 -96
- package/dist/src/memory.d.ts.map +0 -1
- package/dist/src/memory.js +0 -467
- package/dist/src/memory.js.map +0 -1
- package/dist/src/meta-loop.d.ts +0 -23
- package/dist/src/meta-loop.d.ts.map +0 -1
- package/dist/src/meta-loop.js +0 -72
- package/dist/src/meta-loop.js.map +0 -1
- package/dist/src/moltbook-search.d.ts +0 -23
- package/dist/src/moltbook-search.d.ts.map +0 -1
- package/dist/src/moltbook-search.js +0 -85
- package/dist/src/moltbook-search.js.map +0 -1
- package/dist/src/moltbook.d.ts +0 -34
- package/dist/src/moltbook.d.ts.map +0 -1
- package/dist/src/moltbook.js +0 -192
- package/dist/src/moltbook.js.map +0 -1
- package/dist/src/nightmare.d.ts +0 -11
- package/dist/src/nightmare.d.ts.map +0 -1
- package/dist/src/nightmare.js +0 -126
- package/dist/src/nightmare.js.map +0 -1
- package/dist/src/notify.d.ts +0 -20
- package/dist/src/notify.d.ts.map +0 -1
- package/dist/src/notify.js +0 -95
- package/dist/src/notify.js.map +0 -1
- package/dist/src/persona.d.ts +0 -30
- package/dist/src/persona.d.ts.map +0 -1
- package/dist/src/persona.js +0 -292
- package/dist/src/persona.js.map +0 -1
- package/dist/src/reflection.d.ts +0 -26
- package/dist/src/reflection.d.ts.map +0 -1
- package/dist/src/reflection.js +0 -127
- package/dist/src/reflection.js.map +0 -1
- package/dist/src/rhythm.d.ts +0 -19
- package/dist/src/rhythm.d.ts.map +0 -1
- package/dist/src/rhythm.js +0 -130
- package/dist/src/rhythm.js.map +0 -1
- package/dist/src/state.d.ts +0 -7
- package/dist/src/state.d.ts.map +0 -1
- package/dist/src/state.js +0 -40
- package/dist/src/state.js.map +0 -1
- package/dist/src/synthesis.d.ts +0 -29
- package/dist/src/synthesis.d.ts.map +0 -1
- package/dist/src/synthesis.js +0 -144
- package/dist/src/synthesis.js.map +0 -1
- package/dist/src/topics.d.ts +0 -19
- package/dist/src/topics.d.ts.map +0 -1
- package/dist/src/topics.js +0 -84
- package/dist/src/topics.js.map +0 -1
- package/dist/src/types.d.ts +0 -253
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -5
- package/dist/src/types.js.map +0 -1
- package/dist/src/vocabulary.d.ts +0 -18
- package/dist/src/vocabulary.d.ts.map +0 -1
- package/dist/src/vocabulary.js +0 -121
- package/dist/src/vocabulary.js.map +0 -1
- package/dist/src/waking.d.ts +0 -27
- package/dist/src/waking.d.ts.map +0 -1
- package/dist/src/waking.js +0 -188
- package/dist/src/waking.js.map +0 -1
- package/dist/src/web-search.d.ts +0 -23
- package/dist/src/web-search.d.ts.map +0 -1
- package/dist/src/web-search.js +0 -64
- package/dist/src/web-search.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [3.0.5](https://github.com/RogueCtrl/OpenClawDreams/compare/v3.0.3...v3.0.5) (2026-03-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* Guide dream generation to start with markdown headings and remove direct Anthropic API fallback, requiring the OpenClaw subagent runtime for LLM calls. ([2a4e9d8](https://github.com/RogueCtrl/OpenClawDreams/commit/2a4e9d832f6080cb51649cf6d964f92caecf52da))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* make token budget runtime-configurable ([394b2f5](https://github.com/RogueCtrl/OpenClawDreams/commit/394b2f5684ffefcf3bdcd1ca755225db50149c62))
|
|
16
|
+
* make token budget runtime-configurable ([c965899](https://github.com/RogueCtrl/OpenClawDreams/commit/c965899e4565870c3b6d600dcbea0820ef48810b))
|
|
17
|
+
|
|
18
|
+
### [3.0.4](https://github.com/RogueCtrl/OpenClawDreams/compare/v3.0.3...v3.0.4) (2026-03-19)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* Guide dream generation to start with markdown headings and remove direct Anthropic API fallback, requiring the OpenClaw subagent runtime for LLM calls. ([2a4e9d8](https://github.com/RogueCtrl/OpenClawDreams/commit/2a4e9d832f6080cb51649cf6d964f92caecf52da))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* make token budget runtime-configurable ([394b2f5](https://github.com/RogueCtrl/OpenClawDreams/commit/394b2f5684ffefcf3bdcd1ca755225db50149c62))
|
|
29
|
+
* make token budget runtime-configurable ([c965899](https://github.com/RogueCtrl/OpenClawDreams/commit/c965899e4565870c3b6d600dcbea0820ef48810b))
|
|
30
|
+
|
|
5
31
|
### [3.0.3](https://github.com/RogueCtrl/OpenClawDreams/compare/v3.0.2...v3.0.3) (2026-03-17)
|
|
6
32
|
|
|
7
33
|
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "openclawdreams",
|
|
3
3
|
"name": "openclawdreams",
|
|
4
4
|
"displayName": "ElectricSheep",
|
|
5
|
-
"version": "3.0.
|
|
5
|
+
"version": "3.0.5",
|
|
6
6
|
"description": "A reflection engine that synthesizes agent-operator interactions into dreams, enriched by community and web context",
|
|
7
7
|
"entry": "dist/src/index.js",
|
|
8
8
|
"skills": [
|
|
@@ -97,6 +97,11 @@
|
|
|
97
97
|
"type": "boolean",
|
|
98
98
|
"description": "Run reflection and dream cycles on the background schedule automatically. Set to false for CLI-only mode — cycles must be triggered manually via CLI commands.",
|
|
99
99
|
"default": true
|
|
100
|
+
},
|
|
101
|
+
"maxDailyTokens": {
|
|
102
|
+
"type": "number",
|
|
103
|
+
"description": "Daily token budget limit. Set to 0 to disable the budget entirely (recommended for OAuth/flat-rate plans). Default 800000.",
|
|
104
|
+
"default": 800000
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"electricsheep.d.ts","sourceRoot":"","sources":["../../bin/electricsheep.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"electricsheep.js","sourceRoot":"","sources":["../../bin/electricsheep.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openclawdreams.d.ts","sourceRoot":"","sources":["../../bin/openclawdreams.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openclawdreams.js","sourceRoot":"","sources":["../../bin/openclawdreams.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/src/backfill.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../src/backfill.ts"],"names":[],"mappings":"AAaA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDtD"}
|
package/dist/src/backfill.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { getDreamsDir, getNightmaresDir } from "./config.js";
|
|
4
|
-
import { storeDeepMemory, registerDream, getDreamRemembrances } from "./memory.js";
|
|
5
|
-
import { loadState, saveState } from "./state.js";
|
|
6
|
-
import logger from "./logger.js";
|
|
7
|
-
function parseFilename(filename) {
|
|
8
|
-
const match = filename.match(/^(\d{4}-\d{2}-\d{2})_(.+)\.md$/);
|
|
9
|
-
if (!match)
|
|
10
|
-
return null;
|
|
11
|
-
return { date: match[1], title: match[2].replace(/_/g, " ") };
|
|
12
|
-
}
|
|
13
|
-
export async function ensureBackfilled() {
|
|
14
|
-
const state = loadState();
|
|
15
|
-
if (state.dreams_backfilled) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
logger.info("Starting initial dream remembrance backfill...");
|
|
19
|
-
let backfillCount = 0;
|
|
20
|
-
const existing = new Set(getDreamRemembrances().map((r) => r.filename));
|
|
21
|
-
// 1. Backfill from local disk (Dreams)
|
|
22
|
-
if (existsSync(getDreamsDir())) {
|
|
23
|
-
const files = readdirSync(getDreamsDir()).filter((f) => f.endsWith(".md"));
|
|
24
|
-
for (const f of files) {
|
|
25
|
-
if (existing.has(f))
|
|
26
|
-
continue;
|
|
27
|
-
const parsed = parseFilename(f);
|
|
28
|
-
if (!parsed)
|
|
29
|
-
continue;
|
|
30
|
-
const content = readFileSync(resolve(getDreamsDir(), f), "utf-8");
|
|
31
|
-
const deepMemoryId = storeDeepMemory({ text_summary: parsed.title, markdown: content, isNightmare: false }, "dream");
|
|
32
|
-
registerDream(f, parsed.title, parsed.date, {
|
|
33
|
-
isNightmare: false,
|
|
34
|
-
deepMemoryId,
|
|
35
|
-
});
|
|
36
|
-
existing.add(f);
|
|
37
|
-
backfillCount++;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// 2. Backfill from local disk (Nightmares)
|
|
41
|
-
if (existsSync(getNightmaresDir())) {
|
|
42
|
-
const files = readdirSync(getNightmaresDir()).filter((f) => f.endsWith(".md"));
|
|
43
|
-
for (const f of files) {
|
|
44
|
-
if (existing.has(f))
|
|
45
|
-
continue;
|
|
46
|
-
const parsed = parseFilename(f);
|
|
47
|
-
if (!parsed)
|
|
48
|
-
continue;
|
|
49
|
-
const content = readFileSync(resolve(getNightmaresDir(), f), "utf-8");
|
|
50
|
-
const deepMemoryId = storeDeepMemory({ text_summary: parsed.title, markdown: content, isNightmare: true }, "nightmare");
|
|
51
|
-
registerDream(f, parsed.title, parsed.date, {
|
|
52
|
-
isNightmare: true,
|
|
53
|
-
deepMemoryId,
|
|
54
|
-
});
|
|
55
|
-
existing.add(f);
|
|
56
|
-
backfillCount++;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
logger.info(`Dream backfill complete. Recovered ${backfillCount} dreams.`);
|
|
60
|
-
state.dreams_backfilled = true;
|
|
61
|
-
saveState(state);
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=backfill.js.map
|
package/dist/src/backfill.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/backfill.ts"],"names":[],"mappings":"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"}
|
package/dist/src/budget.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Daily token budget tracker and kill switch.
|
|
3
|
-
*
|
|
4
|
-
* Tracks cumulative token usage per day in state.json.
|
|
5
|
-
* When the daily limit is reached, all LLM calls are refused
|
|
6
|
-
* until the next calendar day (UTC).
|
|
7
|
-
*/
|
|
8
|
-
import type { LLMClient, TokenUsage } from "./types.js";
|
|
9
|
-
export declare class BudgetExceededError extends Error {
|
|
10
|
-
constructor(used: number, limit: number);
|
|
11
|
-
}
|
|
12
|
-
export declare function getTokensUsedToday(): number;
|
|
13
|
-
export declare function getTokensRemaining(): number;
|
|
14
|
-
export declare function getBudgetStatus(): {
|
|
15
|
-
enabled: boolean;
|
|
16
|
-
limit: number;
|
|
17
|
-
used: number;
|
|
18
|
-
remaining: number;
|
|
19
|
-
date: string;
|
|
20
|
-
};
|
|
21
|
-
export declare function recordUsage(usage: TokenUsage): void;
|
|
22
|
-
/**
|
|
23
|
-
* Wraps an LLMClient with daily token budget enforcement.
|
|
24
|
-
* Checks budget before each call, records usage after.
|
|
25
|
-
* Returns the client unchanged if MAX_DAILY_TOKENS is 0 (disabled).
|
|
26
|
-
*/
|
|
27
|
-
export declare function withBudget(client: LLMClient): LLMClient;
|
|
28
|
-
//# sourceMappingURL=budget.d.ts.map
|
package/dist/src/budget.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/budget.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAOxC;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,wBAAgB,eAAe,IAAI;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAUA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAYnD;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAmBvD"}
|
package/dist/src/budget.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Daily token budget tracker and kill switch.
|
|
3
|
-
*
|
|
4
|
-
* Tracks cumulative token usage per day in state.json.
|
|
5
|
-
* When the daily limit is reached, all LLM calls are refused
|
|
6
|
-
* until the next calendar day (UTC).
|
|
7
|
-
*/
|
|
8
|
-
import { loadState, saveState } from "./state.js";
|
|
9
|
-
import { MAX_DAILY_TOKENS } from "./config.js";
|
|
10
|
-
import logger from "./logger.js";
|
|
11
|
-
export class BudgetExceededError extends Error {
|
|
12
|
-
constructor(used, limit) {
|
|
13
|
-
super(`Daily token budget exceeded: ${used.toLocaleString()} / ${limit.toLocaleString()} tokens used. ` +
|
|
14
|
-
`Resets at midnight UTC. Override with MAX_DAILY_TOKENS env var (0 to disable).`);
|
|
15
|
-
this.name = "BudgetExceededError";
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function getTodayUTC() {
|
|
19
|
-
return new Date().toISOString().slice(0, 10);
|
|
20
|
-
}
|
|
21
|
-
export function getTokensUsedToday() {
|
|
22
|
-
const state = loadState();
|
|
23
|
-
const today = getTodayUTC();
|
|
24
|
-
if (state.budget_date !== today)
|
|
25
|
-
return 0;
|
|
26
|
-
return state.budget_tokens_used ?? 0;
|
|
27
|
-
}
|
|
28
|
-
export function getTokensRemaining() {
|
|
29
|
-
if (MAX_DAILY_TOKENS <= 0)
|
|
30
|
-
return Infinity;
|
|
31
|
-
return Math.max(0, MAX_DAILY_TOKENS - getTokensUsedToday());
|
|
32
|
-
}
|
|
33
|
-
export function getBudgetStatus() {
|
|
34
|
-
const used = getTokensUsedToday();
|
|
35
|
-
const remaining = getTokensRemaining();
|
|
36
|
-
return {
|
|
37
|
-
enabled: MAX_DAILY_TOKENS > 0,
|
|
38
|
-
limit: MAX_DAILY_TOKENS,
|
|
39
|
-
used,
|
|
40
|
-
remaining: MAX_DAILY_TOKENS <= 0 ? -1 : remaining,
|
|
41
|
-
date: getTodayUTC(),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export function recordUsage(usage) {
|
|
45
|
-
const state = loadState();
|
|
46
|
-
const today = getTodayUTC();
|
|
47
|
-
if (state.budget_date !== today) {
|
|
48
|
-
state.budget_date = today;
|
|
49
|
-
state.budget_tokens_used = 0;
|
|
50
|
-
}
|
|
51
|
-
const total = usage.input_tokens + usage.output_tokens;
|
|
52
|
-
state.budget_tokens_used = (state.budget_tokens_used ?? 0) + total;
|
|
53
|
-
saveState(state);
|
|
54
|
-
}
|
|
55
|
-
function checkBudget() {
|
|
56
|
-
if (MAX_DAILY_TOKENS <= 0)
|
|
57
|
-
return;
|
|
58
|
-
const used = getTokensUsedToday();
|
|
59
|
-
if (used >= MAX_DAILY_TOKENS) {
|
|
60
|
-
throw new BudgetExceededError(used, MAX_DAILY_TOKENS);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Wraps an LLMClient with daily token budget enforcement.
|
|
65
|
-
* Checks budget before each call, records usage after.
|
|
66
|
-
* Returns the client unchanged if MAX_DAILY_TOKENS is 0 (disabled).
|
|
67
|
-
*/
|
|
68
|
-
export function withBudget(client) {
|
|
69
|
-
if (MAX_DAILY_TOKENS <= 0)
|
|
70
|
-
return client;
|
|
71
|
-
return {
|
|
72
|
-
async createMessage(params) {
|
|
73
|
-
checkBudget();
|
|
74
|
-
const result = await client.createMessage(params);
|
|
75
|
-
if (result.usage) {
|
|
76
|
-
recordUsage(result.usage);
|
|
77
|
-
const remaining = getTokensRemaining();
|
|
78
|
-
logger.debug(`Token budget: used ${result.usage.input_tokens + result.usage.output_tokens} tokens this call, ${remaining.toLocaleString()} remaining today`);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
logger.debug("Token budget: no usage data returned from LLM call");
|
|
82
|
-
}
|
|
83
|
-
return result;
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=budget.js.map
|
package/dist/src/budget.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/budget.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ElectricSheep CLI.
|
|
3
|
-
*
|
|
4
|
-
* Provides utility commands for inspecting agent state.
|
|
5
|
-
* Core agent behavior (check, dream, journal) runs via OpenClaw.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* openclawdreams register --name "Name" --description "Bio"
|
|
9
|
-
* openclawdreams status # show agent status and memory stats
|
|
10
|
-
* openclawdreams dreams # list saved dream journals
|
|
11
|
-
*/
|
|
12
|
-
import { Command } from "commander";
|
|
13
|
-
/**
|
|
14
|
-
* Register all ElectricSheep subcommands onto a parent Command.
|
|
15
|
-
* Used both by the standalone bin and by api.registerCli().
|
|
16
|
-
*/
|
|
17
|
-
export declare function registerCommands(parent: Command): void;
|
|
18
|
-
export declare const program: Command;
|
|
19
|
-
//# sourceMappingURL=cli.d.ts.map
|
package/dist/src/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyqBtD;AAGD,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|