@agenthifive/openclaw 0.1.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.
- package/README.md +124 -0
- package/dist/client.d.ts +27 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +136 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/jwt-utils.d.ts +29 -0
- package/dist/jwt-utils.d.ts.map +1 -0
- package/dist/jwt-utils.js +55 -0
- package/dist/jwt-utils.js.map +1 -0
- package/dist/patch-verify.d.ts +28 -0
- package/dist/patch-verify.d.ts.map +1 -0
- package/dist/patch-verify.js +72 -0
- package/dist/patch-verify.js.map +1 -0
- package/dist/pending-approvals.d.ts +55 -0
- package/dist/pending-approvals.d.ts.map +1 -0
- package/dist/pending-approvals.js +95 -0
- package/dist/pending-approvals.js.map +1 -0
- package/dist/prompt-reference.d.ts +51 -0
- package/dist/prompt-reference.d.ts.map +1 -0
- package/dist/prompt-reference.js +645 -0
- package/dist/prompt-reference.js.map +1 -0
- package/dist/register.d.ts +20 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +551 -0
- package/dist/register.js.map +1 -0
- package/dist/runtime.d.ts +66 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +87 -0
- package/dist/runtime.js.map +1 -0
- package/dist/session-context.d.ts +39 -0
- package/dist/session-context.d.ts.map +1 -0
- package/dist/session-context.js +58 -0
- package/dist/session-context.js.map +1 -0
- package/dist/setup-wizard.d.ts +28 -0
- package/dist/setup-wizard.d.ts.map +1 -0
- package/dist/setup-wizard.js +303 -0
- package/dist/setup-wizard.js.map +1 -0
- package/dist/tools.d.ts +27 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +128 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vault-action-proxy.d.ts +75 -0
- package/dist/vault-action-proxy.d.ts.map +1 -0
- package/dist/vault-action-proxy.js +152 -0
- package/dist/vault-action-proxy.js.map +1 -0
- package/dist/vault-provider.d.ts +52 -0
- package/dist/vault-provider.d.ts.map +1 -0
- package/dist/vault-provider.js +37 -0
- package/dist/vault-provider.js.map +1 -0
- package/dist/vault-token-manager.d.ts +42 -0
- package/dist/vault-token-manager.d.ts.map +1 -0
- package/dist/vault-token-manager.js +124 -0
- package/dist/vault-token-manager.js.map +1 -0
- package/openclaw.plugin.json +59 -0
- package/package.json +58 -0
- package/patches/README.md +85 -0
- package/patches/model-auth.patch +44 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State file for tracking pending vault step-up approvals.
|
|
3
|
+
*
|
|
4
|
+
* When the vault_execute agent tool gets a 202 (approval required), it writes
|
|
5
|
+
* the pending approval to {stateDir}/vault-pending-approvals.json.
|
|
6
|
+
*
|
|
7
|
+
* The before_agent_start hook reads this file on each turn, polls the AH5 API
|
|
8
|
+
* for resolved approvals, and injects notifications into the agent's context
|
|
9
|
+
* so it can re-submit approved requests and continue multi-step plans.
|
|
10
|
+
*
|
|
11
|
+
* Unlike the fork version, this module accepts `stateDir` as a parameter
|
|
12
|
+
* instead of importing from OpenClaw's config/paths.
|
|
13
|
+
*/
|
|
14
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
const PENDING_FILE = "vault-pending-approvals.json";
|
|
17
|
+
const FALLBACK_FILE = "vault-resolved-notifications.json";
|
|
18
|
+
let _stateDir = null;
|
|
19
|
+
let _log = console;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the pending approvals module with a state directory and logger.
|
|
22
|
+
* Must be called before any other function in this module.
|
|
23
|
+
*/
|
|
24
|
+
export function initPendingApprovals(stateDir, logger) {
|
|
25
|
+
_stateDir = stateDir;
|
|
26
|
+
if (logger)
|
|
27
|
+
_log = logger;
|
|
28
|
+
}
|
|
29
|
+
function getStateDir() {
|
|
30
|
+
if (!_stateDir) {
|
|
31
|
+
throw new Error("pending-approvals not initialized — call initPendingApprovals() first");
|
|
32
|
+
}
|
|
33
|
+
return _stateDir;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Add a pending approval to the state file.
|
|
37
|
+
* Called by the vault_execute tool when it receives a 202.
|
|
38
|
+
*/
|
|
39
|
+
export function addPendingApproval(approval) {
|
|
40
|
+
try {
|
|
41
|
+
const existing = loadPendingApprovals();
|
|
42
|
+
if (existing.some((a) => a.approvalRequestId === approval.approvalRequestId)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
existing.push(approval);
|
|
46
|
+
savePendingApprovals(existing);
|
|
47
|
+
_log.info?.(`tracked pending approval ${approval.approvalRequestId} (${approval.summary})`);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
_log.error?.(`failed to track pending approval: ${String(err)}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export function loadPendingApprovals() {
|
|
54
|
+
try {
|
|
55
|
+
const data = readFileSync(join(getStateDir(), PENDING_FILE), "utf-8");
|
|
56
|
+
const parsed = JSON.parse(data);
|
|
57
|
+
if (Array.isArray(parsed)) {
|
|
58
|
+
return parsed;
|
|
59
|
+
}
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function savePendingApprovals(approvals) {
|
|
67
|
+
try {
|
|
68
|
+
writeFileSync(join(getStateDir(), PENDING_FILE), JSON.stringify(approvals, null, 2), "utf-8");
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
_log.error?.(`failed to save pending approvals: ${String(err)}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function loadFallbackNotifications() {
|
|
75
|
+
try {
|
|
76
|
+
const data = readFileSync(join(getStateDir(), FALLBACK_FILE), "utf-8");
|
|
77
|
+
const parsed = JSON.parse(data);
|
|
78
|
+
if (Array.isArray(parsed)) {
|
|
79
|
+
return parsed;
|
|
80
|
+
}
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export function saveFallbackNotifications(notifications) {
|
|
88
|
+
try {
|
|
89
|
+
writeFileSync(join(getStateDir(), FALLBACK_FILE), JSON.stringify(notifications, null, 2), "utf-8");
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
_log.error?.(`failed to save fallback notifications: ${String(err)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=pending-approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-approvals.js","sourceRoot":"","sources":["../src/pending-approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentHiFive Vault Prompt Reference — Chunked Architecture
|
|
3
|
+
*
|
|
4
|
+
* Provides two modes of API reference injection:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Inline mode** (`buildApiReferencePrompt`): Assembles a single prompt
|
|
7
|
+
* string from provider sections. Used by the MCP server and simple consumers.
|
|
8
|
+
*
|
|
9
|
+
* 2. **Chunked file mode** (`writeReferenceFiles`): Writes a base reference
|
|
10
|
+
* file (tools, permissions, action templates) plus per-service API reference
|
|
11
|
+
* files to a state directory. The system prompt then contains a lean pointer
|
|
12
|
+
* listing available files. Used by the OpenClaw plugin for better accuracy.
|
|
13
|
+
*
|
|
14
|
+
* Chunked > monolithic: eval showed 89% accuracy (chunked) vs 72% (monolithic)
|
|
15
|
+
* with realistic production-sized prompts. Models get overwhelmed when all
|
|
16
|
+
* provider API docs are in one blob.
|
|
17
|
+
*/
|
|
18
|
+
export declare const API_REFERENCE_SECTIONS: Record<string, string>;
|
|
19
|
+
/**
|
|
20
|
+
* Build an API reference prompt from the given provider names.
|
|
21
|
+
*
|
|
22
|
+
* Only includes sections for providers that have entries in
|
|
23
|
+
* `API_REFERENCE_SECTIONS`. Unknown providers are silently ignored.
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildApiReferencePrompt(providers: string[]): string;
|
|
26
|
+
/**
|
|
27
|
+
* Full API reference prompt with all providers.
|
|
28
|
+
* Kept for backwards compatibility and programmatic access.
|
|
29
|
+
*/
|
|
30
|
+
export declare const API_REFERENCE_PROMPT: string;
|
|
31
|
+
export declare const CHUNKED_API_SECTIONS: Record<string, string>;
|
|
32
|
+
/**
|
|
33
|
+
* Write chunked reference files to a state directory.
|
|
34
|
+
*
|
|
35
|
+
* - Base file (vault-reference.md): tools, permission flow, action templates, notes
|
|
36
|
+
* - Per-service files (vault-ref-{service}.md): API docs for each provider
|
|
37
|
+
*
|
|
38
|
+
* Returns the paths so the system prompt can list them.
|
|
39
|
+
*/
|
|
40
|
+
export declare function writeReferenceFiles(stateDir: string, logger?: {
|
|
41
|
+
info?: (...args: unknown[]) => void;
|
|
42
|
+
}): {
|
|
43
|
+
basePath: string;
|
|
44
|
+
serviceFiles: string[];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Build the lean system prompt that points to the chunked reference files.
|
|
48
|
+
* Injected via the before_agent_start / before_prompt_build hook.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildChunkedPrompt(basePath: string, serviceFiles: string[]): string;
|
|
51
|
+
//# sourceMappingURL=prompt-reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-reference.d.ts","sourceRoot":"","sources":["../src/prompt-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkCH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwGzD,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAenE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AAwIF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmSvD,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,GAC/C;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CA+BA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAkBnF"}
|