@velanir/openclaw-pending-context 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.
@@ -0,0 +1,139 @@
1
+ {
2
+ "id": "velanir-pending-context",
3
+ "activation": {
4
+ "onStartup": true
5
+ },
6
+ "name": "Velanir Pending Responsibility Context",
7
+ "description": "Injects exact-session pending responsibility context, binds one trusted inbound action, and derives scheduling finals from runner receipts.",
8
+ "contracts": {
9
+ "tools": [
10
+ "responsibility_pending",
11
+ "responsibility_select_option",
12
+ "responsibility_reject",
13
+ "responsibility_change",
14
+ "responsibility_status"
15
+ ],
16
+ "trustedToolPolicies": [
17
+ "authoritative-pending-action"
18
+ ]
19
+ },
20
+ "configSchema": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "properties": {
24
+ "dryRun": {
25
+ "type": "boolean",
26
+ "default": true
27
+ },
28
+ "suppressNonFinalReplies": {
29
+ "type": "boolean",
30
+ "default": true
31
+ },
32
+ "authorizationTtlMs": {
33
+ "type": "number",
34
+ "minimum": 1000,
35
+ "default": 120000
36
+ },
37
+ "maxInjectionChars": {
38
+ "type": "number",
39
+ "minimum": 200,
40
+ "default": 1800
41
+ },
42
+ "maxItemsInInjection": {
43
+ "type": "number",
44
+ "minimum": 1,
45
+ "default": 6
46
+ },
47
+ "strictUserScope": {
48
+ "type": "boolean",
49
+ "default": true
50
+ },
51
+ "strictSessionScope": {
52
+ "type": "boolean",
53
+ "default": true
54
+ },
55
+ "sources": {
56
+ "type": "array",
57
+ "items": {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "required": ["responsibilityId", "workspacePath"],
61
+ "properties": {
62
+ "id": { "type": "string", "minLength": 1 },
63
+ "responsibilityId": { "type": "string", "minLength": 1 },
64
+ "agentId": { "type": "string", "minLength": 1 },
65
+ "workspacePath": { "type": "string", "minLength": 1 },
66
+ "command": { "type": "array", "items": { "type": "string" } },
67
+ "actionCommand": { "type": "array", "items": { "type": "string" } },
68
+ "timeoutMs": { "type": "number", "minimum": 1, "default": 5000 },
69
+ "actionTimeoutMs": { "type": "number", "minimum": 1, "default": 50000 },
70
+ "maxOutputBytes": { "type": "number", "minimum": 1024, "default": 262144 },
71
+ "channel": { "type": "string", "minLength": 1 },
72
+ "userId": { "type": "string", "minLength": 1 },
73
+ "sessionKey": { "type": "string", "minLength": 1 },
74
+ "accountId": { "type": "string", "minLength": 1 },
75
+ "conversationId": { "type": "string", "minLength": 1 }
76
+ }
77
+ }
78
+ },
79
+ "logging": {
80
+ "type": "object",
81
+ "additionalProperties": false,
82
+ "properties": {
83
+ "decisions": { "type": "boolean", "default": true },
84
+ "includeContent": { "type": "boolean", "default": false }
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "uiHints": {
90
+ "dryRun": {
91
+ "label": "Dry Run",
92
+ "help": "Default ON. An explicit false is necessary but not sufficient for effects: the source must also declare a reviewed actionCommand."
93
+ },
94
+ "suppressNonFinalReplies": {
95
+ "label": "Suppress Pending-Turn Non-Final Replies",
96
+ "help": "Default ON. Cancels only tool/progress payloads for a fresh, exact-session inbound turn that owns pending responsibility context; ordinary chat is unaffected."
97
+ },
98
+ "authorizationTtlMs": {
99
+ "label": "Inbound Authorization Lifetime",
100
+ "help": "Maximum age of one host-observed inbound message that can authorize one pending action. The message id is never model-supplied."
101
+ },
102
+ "maxInjectionChars": {
103
+ "label": "Injection Size Cap",
104
+ "help": "Maximum characters for the injected pending-interactions block. Over budget, item lines are dropped with a '+N more' indicator."
105
+ },
106
+ "maxItemsInInjection": {
107
+ "label": "Max Injected Items",
108
+ "help": "Maximum pending interactions listed inline before collapsing to a count."
109
+ },
110
+ "strictUserScope": {
111
+ "label": "Strict User Scope",
112
+ "help": "Default ON. Never inject an interaction that lacks a userId into a user-scoped chat (prevents cross-user leakage)."
113
+ },
114
+ "strictSessionScope": {
115
+ "label": "Strict Session Scope",
116
+ "help": "Default ON. Require every interaction to name the exact destination session or conversation before it can be injected or acted on."
117
+ },
118
+ "sources.workspacePath": {
119
+ "label": "Responsibility Workspace",
120
+ "help": "Directory the runner is executed in (contains runner.mjs)."
121
+ },
122
+ "sources.command": {
123
+ "label": "Pending Command",
124
+ "help": "Read-only argv run to source pending interactions. Defaults to node runner.mjs pending."
125
+ },
126
+ "sources.actionCommand": {
127
+ "label": "Authoritative Action Command",
128
+ "help": "Optional reviewed argv for the runner transaction bridge. There is no default: omit it to keep dry-run-only behavior even when dryRun is false."
129
+ },
130
+ "sources.userId": {
131
+ "label": "Scoped User",
132
+ "help": "The user these interactions belong to; items are only surfaced/actionable in that user's chat."
133
+ },
134
+ "sources.sessionKey": {
135
+ "label": "Destination Session",
136
+ "help": "Exact OpenClaw destination session key for this interaction source."
137
+ }
138
+ }
139
+ }
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@velanir/openclaw-pending-context",
3
+ "version": "0.4.0",
4
+ "description": "OpenClaw plugin that scopes pending responsibility actions to a trusted inbound turn and finalizes scheduling claims from runner receipts.",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "openclaw.plugin.json",
18
+ "README.md"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/Botero-Labs/platform.git",
26
+ "directory": "packages/openclaw-plugins/pending-context"
27
+ },
28
+ "engines": {
29
+ "node": ">=22.19.0"
30
+ },
31
+ "scripts": {
32
+ "build": "tsup src/index.ts --format esm --target node22 --dts --external openclaw --out-dir dist --clean",
33
+ "check-types": "tsc -p tsconfig.json --noEmit",
34
+ "test": "node --test test/*.test.ts"
35
+ },
36
+ "peerDependencies": {
37
+ "openclaw": ">=2026.7.1-beta.5"
38
+ },
39
+ "peerDependenciesMeta": {
40
+ "openclaw": {
41
+ "optional": true
42
+ }
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "^22.19.1",
46
+ "openclaw": "2026.7.1-beta.5",
47
+ "tsup": "^8.4.0",
48
+ "typescript": "^5.7.0"
49
+ },
50
+ "openclaw": {
51
+ "extensions": [
52
+ "./src/index.ts"
53
+ ],
54
+ "runtimeExtensions": [
55
+ "./dist/index.js"
56
+ ],
57
+ "compat": {
58
+ "pluginApi": ">=2026.7.1-beta.5",
59
+ "minGatewayVersion": "2026.7.1-beta.5"
60
+ }
61
+ }
62
+ }