@ownclaw/own-prose 0.1.4 → 0.1.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/README.md +16 -3
- package/dist/index.js +1 -1
- package/dist/runtime-api.js +1 -1
- package/dist/src/agent-notify.js +1 -1
- package/dist/src/agent-parser.js +1 -1
- package/dist/src/background-cleanup-launcher.js +1 -1
- package/dist/src/background-cleanup-worker.js +1 -1
- package/dist/src/cli.js +1 -1
- package/dist/src/config.js +1 -1
- package/dist/src/execution.d.ts +7 -0
- package/dist/src/execution.js +1 -1
- package/dist/src/plan-compiler.js +1 -1
- package/dist/src/plan-validator.js +1 -1
- package/dist/src/program-parser.js +1 -1
- package/dist/src/state-store.js +1 -1
- package/dist/src/tool.d.ts +35 -2
- package/dist/src/tool.js +1 -1
- package/dist/src/types.d.ts +51 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,9 +27,9 @@ openclaw gateway restart
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
After installation, OpenClaw will load the plugin and expose the
|
|
30
|
-
`own_prose_start`, `own_prose_status`,
|
|
31
|
-
sessions. The `own_prose_background_run` tool
|
|
32
|
-
called directly by normal users.
|
|
30
|
+
`own_prose_start`, `own_prose_status`, `own_prose_reply`, and
|
|
31
|
+
`own_prose_drive` tools to agent sessions. The `own_prose_background_run` tool
|
|
32
|
+
is internal and should not be called directly by normal users.
|
|
33
33
|
|
|
34
34
|
If your OpenClaw setup uses a restrictive tool policy, also add the own-prose
|
|
35
35
|
tools to `tools.alsoAllow` in `~/.openclaw/openclaw.json`:
|
|
@@ -42,6 +42,7 @@ tools to `tools.alsoAllow` in `~/.openclaw/openclaw.json`:
|
|
|
42
42
|
"own_prose_start",
|
|
43
43
|
"own_prose_drive",
|
|
44
44
|
"own_prose_status",
|
|
45
|
+
"own_prose_reply",
|
|
45
46
|
"own_prose_background_run"
|
|
46
47
|
]
|
|
47
48
|
}
|
|
@@ -55,6 +56,8 @@ tools to `tools.alsoAllow` in `~/.openclaw/openclaw.json`:
|
|
|
55
56
|
returns a `runId`.
|
|
56
57
|
- `own_prose_status(runId | programPath)`
|
|
57
58
|
Poll an existing run or inspect whether a workflow file parses correctly.
|
|
59
|
+
- `own_prose_reply(runId, answer, runDir?)`
|
|
60
|
+
Resume a workflow that is currently waiting in a `blocked` ask/reply state.
|
|
58
61
|
- `own_prose_drive(programPath, input)`
|
|
59
62
|
Use only when the caller explicitly wants a blocking, end-to-end result.
|
|
60
63
|
|
|
@@ -63,6 +66,7 @@ tools to `tools.alsoAllow` in `~/.openclaw/openclaw.json`:
|
|
|
63
66
|
- `openclaw own-prose inspect <program>`
|
|
64
67
|
- `openclaw own-prose compile <program>`
|
|
65
68
|
- `openclaw own-prose drive <program>`
|
|
69
|
+
- `openclaw own-prose reply <run-id>`
|
|
66
70
|
- `openclaw own-prose start <program>`
|
|
67
71
|
- `openclaw own-prose status <run-id>`
|
|
68
72
|
|
|
@@ -136,11 +140,20 @@ For manual debugging or polling, use:
|
|
|
136
140
|
openclaw own-prose status <run-id>
|
|
137
141
|
```
|
|
138
142
|
|
|
143
|
+
If the workflow enters a `blocked` clarification step, resume it with:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
openclaw own-prose reply <run-id> --answer "Use the Saturday 02:00-03:00 UTC maintenance window."
|
|
147
|
+
```
|
|
148
|
+
|
|
139
149
|
## Notes
|
|
140
150
|
|
|
141
151
|
- This package is intended for OpenClaw environments.
|
|
142
152
|
- Prefer `own_prose_start` for normal agent usage so the main conversation does
|
|
143
153
|
not block.
|
|
154
|
+
- Use `own_prose_reply` only when you explicitly want to continue a blocked run;
|
|
155
|
+
ordinary user follow-up messages should still be treated as new tasks unless
|
|
156
|
+
the caller intentionally resumes the old run.
|
|
144
157
|
- Use `own_prose_drive` only when the caller explicitly wants a blocking
|
|
145
158
|
workflow run.
|
|
146
159
|
- More detailed user and repository documentation is available in the project
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x2f8750=_0xc0dd;(function(_0x5a43ba,_0x5ad432){var _0x2606f4=_0xc0dd,_0x54e348=_0x5a43ba();while(!![]){try{var _0x1779f1=parseInt(_0x2606f4(0x126))/0x1+-parseInt(_0x2606f4(0x127))/0x2+parseInt(_0x2606f4(0x12c))/0x3*(parseInt(_0x2606f4(0x123))/0x4)+-parseInt(_0x2606f4(0x12d))/0x5*(-parseInt(_0x2606f4(0x12b))/0x6)+-parseInt(_0x2606f4(0x121))/0x7*(parseInt(_0x2606f4(0x125))/0x8)+-parseInt(_0x2606f4(0x12a))/0x9*(-parseInt(_0x2606f4(0x12e))/0xa)+parseInt(_0x2606f4(0x122))/0xb*(parseInt(_0x2606f4(0x129))/0xc);if(_0x1779f1===_0x5ad432)break;else _0x54e348['push'](_0x54e348['shift']());}catch(_0x4f7232){_0x54e348['push'](_0x54e348['shift']());}}}(_0x127d,0x51914));import _0x1aae42 from'./openclaw.plugin.json'with{type:'json'};import{registerOwnProseCli}from'./src/cli.js';import{createOwnProseBackgroundRunTool,createOwnProseDriveTool,createOwnProseReplyTool,createOwnProseStartTool,createOwnProseStatusTool}from'./src/tool.js';function _0xc0dd(_0x27b40d,_0x4df7c4){_0x27b40d=_0x27b40d-0x121;var _0x127de8=_0x127d();var _0xc0dd16=_0x127de8[_0x27b40d];return _0xc0dd16;}function _0x127d(){var _0x3b5b51=['4150ySBJGf','4210SZitWo','registerTool','7SYklbf','970486NKgMHY','4496kTimhz','own-prose','3961112VLUFRF','413841wdUcKU','1106700VNgsxf','configSchema','36OrSaCH','2358UehIDv','2976fhWBhJ','486GnpsTE'];_0x127d=function(){return _0x3b5b51;};return _0x127d();}export default{'id':_0x2f8750(0x124),'name':'OwnProse','description':'Natural-language\x20workflow\x20compiler\x20and\x20executor\x20for\x20OpenClaw.','configSchema':_0x1aae42[_0x2f8750(0x128)],'register'(_0x450b3b){var _0x2b8413=_0x2f8750;_0x450b3b[_0x2b8413(0x12f)](_0x3e68fe=>createOwnProseStartTool(_0x450b3b,_0x3e68fe),{'optional':!![]}),_0x450b3b['registerTool'](_0x252e4a=>createOwnProseDriveTool(_0x450b3b,_0x252e4a),{'optional':!![]}),_0x450b3b[_0x2b8413(0x12f)](_0x510c56=>createOwnProseStatusTool(_0x450b3b,_0x510c56),{'optional':!![]}),_0x450b3b[_0x2b8413(0x12f)](_0x4c0f9b=>createOwnProseReplyTool(_0x450b3b,_0x4c0f9b),{'optional':!![]}),_0x450b3b[_0x2b8413(0x12f)](_0x13d458=>createOwnProseBackgroundRunTool(_0x450b3b,_0x13d458)),_0x450b3b['registerCli'](({program:_0x37a971})=>{registerOwnProseCli(_0x37a971,_0x450b3b);},{'descriptors':[{'name':'own-prose','description':'Compile\x20and\x20execute\x20natural-language\x20workflows','hasSubcommands':!![]}]});}};
|
package/dist/runtime-api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5aedc2,_0x371b9c){var _0xe240b0=_0x33e6,_0x5c0ed7=_0x5aedc2();while(!![]){try{var _0x3bfd83=parseInt(_0xe240b0(0xbb))/0x1+-parseInt(_0xe240b0(0xbc))/0x2*(parseInt(_0xe240b0(0xba))/0x3)+-parseInt(_0xe240b0(0xc1))/0x4+parseInt(_0xe240b0(0xb9))/0x5*(-parseInt(_0xe240b0(0xbf))/0x6)+-parseInt(_0xe240b0(0xc2))/0x7+-parseInt(_0xe240b0(0xbd))/0x8*(parseInt(_0xe240b0(0xc0))/0x9)+parseInt(_0xe240b0(0xbe))/0xa;if(_0x3bfd83===_0x371b9c)break;else _0x5c0ed7['push'](_0x5c0ed7['shift']());}catch(_0x47b2b0){_0x5c0ed7['push'](_0x5c0ed7['shift']());}}}(_0xc598,0x4bc1c));function _0x33e6(_0x1172f2,_0x565a16){_0x1172f2=_0x1172f2-0xb9;var _0xc59893=_0xc598();var _0x33e636=_0xc59893[_0x1172f2];return _0x33e636;}function _0xc598(){var _0x223127=['9XTvFek','242541hMyOYX','57034ToLZMD','8KLhbYu','10057110qQNXgm','414168OBfJml','1025127rvqYpb','1930784nwhWnq','1307418rKtucW','5YiLwVc'];_0xc598=function(){return _0x223127;};return _0xc598();}export{definePluginEntry}from'openclaw/plugin-sdk/core';
|
package/dist/src/agent-notify.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x508f72,_0x7057b2){const _0x2e0502=_0x1a87,_0x59caa7=_0x508f72();while(!![]){try{const _0x1d2d41=parseInt(_0x2e0502(0x18b))/0x1*(-parseInt(_0x2e0502(0x191))/0x2)+-parseInt(_0x2e0502(0x192))/0x3+-parseInt(_0x2e0502(0x18c))/0x4*(parseInt(_0x2e0502(0x181))/0x5)+-parseInt(_0x2e0502(0x196))/0x6*(parseInt(_0x2e0502(0x19c))/0x7)+-parseInt(_0x2e0502(0x194))/0x8+-parseInt(_0x2e0502(0x189))/0x9+parseInt(_0x2e0502(0x183))/0xa;if(_0x1d2d41===_0x7057b2)break;else _0x59caa7['push'](_0x59caa7['shift']());}catch(_0x2c48b2){_0x59caa7['push'](_0x59caa7['shift']());}}}(_0xe759,0x2ad9e));import{randomUUID}from'node:crypto';function _0x1a87(_0x14125b,_0xdd0b4){_0x14125b=_0x14125b-0x181;const _0xe759ec=_0xe759();let _0x1a8717=_0xe759ec[_0x14125b];return _0x1a8717;}function _0xe759(){const _0x18e6fe=['116676ntpcHS','806409CjwPrI','sessionKey','279624cwHAKv','some','6NDeREN','key','message','timeoutMs','agent','label','1752835CkxWus','sessions.list','extraSystemPrompt','365plMheG','Agent\x20session\x20notification\x20did\x20not\x20return\x20a\x20runId','12449470AKqTkx','idempotencyKey','deleteTranscript','runId','agentId','chat.history','527022nnGXqM','deliver','2yAdcLs','18632tJMoDd','agent.wait','trim','sessions.delete','sessions'];_0xe759=function(){return _0x18e6fe;};return _0xe759();}import{callGatewayTool}from'openclaw/plugin-sdk/browser-support';export async function queueAgentSessionRun(_0x15c247){const _0x36b377=_0x1a87,_0x38dc8e=await callGatewayTool(_0x36b377(0x19a),{'timeoutMs':_0x15c247[_0x36b377(0x199)]??0x2710},{'message':_0x15c247[_0x36b377(0x198)],'sessionKey':_0x15c247[_0x36b377(0x193)],..._0x15c247[_0x36b377(0x187)]?{'agentId':_0x15c247['agentId']}:{},..._0x15c247[_0x36b377(0x19e)]?{'extraSystemPrompt':_0x15c247[_0x36b377(0x19e)]}:{},..._0x15c247[_0x36b377(0x19b)]?{'label':_0x15c247[_0x36b377(0x19b)]}:{},'idempotencyKey':_0x15c247[_0x36b377(0x184)]??randomUUID(),'deliver':_0x15c247[_0x36b377(0x18a)]??![]}),_0x46cd86=_0x38dc8e?.[_0x36b377(0x186)]?.[_0x36b377(0x18e)]();if(!_0x46cd86)throw new Error(_0x36b377(0x182));return{'runId':_0x46cd86};}export async function waitForAgentSessionRun(_0x38409b){const _0x34078b=_0x1a87;return await callGatewayTool(_0x34078b(0x18d),{'timeoutMs':_0x38409b[_0x34078b(0x199)]+0x7d0},{'runId':_0x38409b['runId'],'timeoutMs':_0x38409b[_0x34078b(0x199)]});}export async function getAgentSessionMessages(_0x257a8e){const _0x3e5722=_0x1a87;return await callGatewayTool(_0x3e5722(0x188),{'timeoutMs':0x2710},{'sessionKey':_0x257a8e[_0x3e5722(0x193)],'limit':_0x257a8e['limit']??0xc8});}export async function deleteAgentSession(_0x3ea793){const _0x153667=_0x1a87;await callGatewayTool(_0x153667(0x18f),{'timeoutMs':0x2710},{'key':_0x3ea793[_0x153667(0x193)],'deleteTranscript':_0x3ea793[_0x153667(0x185)]??!![]});}export async function hasAgentSession(_0x2fbb57){const _0x28a190=_0x1a87,_0x55bcd7=await callGatewayTool(_0x28a190(0x19d),{'timeoutMs':0x2710},{'search':_0x2fbb57[_0x28a190(0x193)],'limit':0x14,'includeGlobal':![],'includeUnknown':!![]});return(_0x55bcd7[_0x28a190(0x190)]??[])[_0x28a190(0x195)](_0x2e27a0=>_0x2e27a0[_0x28a190(0x197)]===_0x2fbb57[_0x28a190(0x193)]);}export async function notifyAgentSession(_0x53f80f){return queueAgentSessionRun(_0x53f80f);}
|
package/dist/src/agent-parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x38a9e2,_0x394957){const _0x2a3964=_0xedad,_0x5e4f70=_0x38a9e2();while(!![]){try{const _0x16498f=-parseInt(_0x2a3964(0xc7))/0x1+parseInt(_0x2a3964(0xb3))/0x2+-parseInt(_0x2a3964(0xa5))/0x3*(parseInt(_0x2a3964(0xad))/0x4)+-parseInt(_0x2a3964(0xa9))/0x5*(-parseInt(_0x2a3964(0xb2))/0x6)+-parseInt(_0x2a3964(0xb8))/0x7+parseInt(_0x2a3964(0xba))/0x8*(parseInt(_0x2a3964(0xcb))/0x9)+parseInt(_0x2a3964(0xc4))/0xa;if(_0x16498f===_0x394957)break;else _0x5e4f70['push'](_0x5e4f70['shift']());}catch(_0x551452){_0x5e4f70['push'](_0x5e4f70['shift']());}}}(_0x3f68,0x1ab07));import _0x2d453f from'node:fs/promises';import _0x36c09b from'node:path';function _0xedad(_0x5cc4f2,_0x18e641){_0x5cc4f2=_0x5cc4f2-0xa2;const _0x3f6813=_0x3f68();let _0xedad44=_0x3f6813[_0x5cc4f2];return _0xedad44;}import{parse as _0x1f837b}from'yaml';export async function parseAgentFile(_0x282196){const _0x4c5287=_0xedad,_0x51251e=_0x36c09b[_0x4c5287(0xac)](_0x282196),_0x55f4b6=await _0x2d453f[_0x4c5287(0xae)](_0x51251e,_0x4c5287(0xa2));return parseAgentMarkdown(_0x55f4b6,_0x51251e);}export async function loadAgents(_0x32adf3,_0x4231c5){const _0x5a4e86=_0xedad,_0x5ae50d=await Promise['all'](_0x32adf3['map'](async _0x2a5748=>[_0x2a5748,await parseAgentFile(_0x36c09b[_0x5a4e86(0xa3)](_0x4231c5,_0x5a4e86(0xb6),_0x2a5748+'.md'))]));return Object['fromEntries'](_0x5ae50d);}export function parseAgentMarkdown(_0x41efa8,_0x116200){const _0x2f2558=_0xedad,{frontmatter:_0x566e20,body:_0x16a73d}=splitFrontmatter(_0x41efa8),_0x1b4081=normalizeFrontmatter(_0x566e20),_0xa25e94=parseSections(_0x16a73d),_0x17054c=_0x36c09b[_0x2f2558(0xc6)](_0x116200,_0x36c09b['extname'](_0x116200)),_0x4579f2=optionalString(_0x1b4081[_0x2f2558(0xaa)])??_0x17054c;return{'id':_0x17054c,'name':_0x4579f2,'description':optionalString(_0x1b4081[_0x2f2558(0xc5)]),'sourcePath':_0x116200,'provider':optionalString(_0x1b4081[_0x2f2558(0xc3)]),'model':optionalString(_0x1b4081['model']),'timeoutMs':normalizeTimeoutMs(_0x1b4081['timeoutMs']),'permissions':normalizePermissions({'allowMutatingTools':_0x1b4081[_0x2f2558(0xaf)],'executionTarget':_0x1b4081[_0x2f2558(0xbe)]}),'role':requireSection(_0xa25e94,_0x2f2558(0xc1)),'instructions':requireSection(_0xa25e94,_0x2f2558(0xca)),'doneWhen':parseDoneWhen(_0xa25e94['done_when'])};}function splitFrontmatter(_0x4c6aeb){const _0x596db5=_0xedad,_0x2a6930=_0x4c6aeb[_0x596db5(0xb7)](/\r\n/g,'\x0a');if(!_0x2a6930[_0x596db5(0xbd)]('---\x0a'))throw new Error(_0x596db5(0xa8));const _0x354d7d=_0x2a6930['indexOf']('\x0a---\x0a',0x4);if(_0x354d7d<0x0)throw new Error(_0x596db5(0xbc));return{'frontmatter':_0x1f837b(_0x2a6930[_0x596db5(0xc0)](0x4,_0x354d7d)),'body':_0x2a6930['slice'](_0x354d7d+0x5)[_0x596db5(0xcc)]()};}function normalizeFrontmatter(_0xbc873b){const _0xa0257a=_0xedad;if(!_0xbc873b||typeof _0xbc873b!=='object'||Array[_0xa0257a(0xc2)](_0xbc873b))throw new Error(_0xa0257a(0xbb));return _0xbc873b;}function parseSections(_0x1d5f06){const _0x44ca15=_0xedad,_0x58713c={},_0x54f962=_0x1d5f06[_0x44ca15(0xab)]('\x0a');let _0x2f01ad='overview',_0x44492b=[];for(const _0x406adc of _0x54f962){const _0x26eff1=/^##\s+(.+?)\s*$/['exec'](_0x406adc);if(_0x26eff1){_0x58713c[_0x2f01ad]=_0x44492b[_0x44ca15(0xa3)]('\x0a')['trim'](),_0x2f01ad=_0x26eff1[0x1]['trim']()[_0x44ca15(0xa6)]()['replace'](/[^a-z0-9]+/g,'_')['replace'](/^_+|_+$/g,''),_0x44492b=[];continue;}_0x44492b['push'](_0x406adc);}return _0x58713c[_0x2f01ad]=_0x44492b[_0x44ca15(0xa3)]('\x0a')[_0x44ca15(0xcc)](),_0x58713c;}function normalizePermissions(_0x56e0e5){const _0x40cc98=_0xedad,_0x37b1e1=_0x56e0e5[_0x40cc98(0xbe)]===_0x40cc98(0xb5)||_0x56e0e5['executionTarget']===_0x40cc98(0xc8)?_0x56e0e5[_0x40cc98(0xbe)]:_0x40cc98(0xc8);return{'allowMutatingTools':_0x56e0e5[_0x40cc98(0xaf)]===!![],'executionTarget':_0x37b1e1};}function _0x3f68(){const _0x179b09=['\x22\x20section','own-prose\x20agent\x20must\x20start\x20with\x20YAML\x20frontmatter','305170GSIZnl','name','split','resolve','4gXnlvW','readFile','allowMutatingTools','exec','toUpperCase','12oEXkzD','287246qTLisn','own-prose\x20agent\x20must\x20include\x20a\x20\x22##\x20','self','agents','replace','535346NVSbGb','map','8YgmYFx','own-prose\x20agent\x20frontmatter\x20must\x20be\x20a\x20YAML\x20object','own-prose\x20agent\x20frontmatter\x20is\x20missing\x20a\x20closing\x20---\x20line','startsWith','executionTarget','isFinite','slice','role','isArray','provider','2017350RApYbH','description','basename','158811IvgObj','subagent','filter','instructions','137007wTzaES','trim','utf8','join','string','414123QavdoF','toLowerCase'];_0x3f68=function(){return _0x179b09;};return _0x3f68();}function normalizeTimeoutMs(_0x1a2d49){const _0x37b354=_0xedad;return typeof _0x1a2d49==='number'&&Number[_0x37b354(0xbf)](_0x1a2d49)&&_0x1a2d49>=0x1?_0x1a2d49:undefined;}function parseDoneWhen(_0xf573fb){const _0x2d1ad5=_0xedad;if(!_0xf573fb?.[_0x2d1ad5(0xcc)]())return[];return _0xf573fb[_0x2d1ad5(0xab)]('\x0a')[_0x2d1ad5(0xb9)](_0x3ec4bf=>/^\s*-\s+(.*\S)\s*$/[_0x2d1ad5(0xb0)](_0x3ec4bf)?.[0x1]?.['trim']())[_0x2d1ad5(0xc9)](_0x35144b=>Boolean(_0x35144b));}function requireSection(_0x31cd10,_0x167629){const _0xe6d476=_0xedad,_0x59b8d8=_0x31cd10[_0x167629];if(!_0x59b8d8?.[_0xe6d476(0xcc)]())throw new Error(_0xe6d476(0xb4)+humanizeSectionId(_0x167629)+_0xe6d476(0xa7));return _0x59b8d8['trim']();}function humanizeSectionId(_0xebb83f){const _0x40df16=_0xedad;return _0xebb83f['split']('_')['map'](_0x329b6e=>_0x329b6e['slice'](0x0,0x1)[_0x40df16(0xb1)]()+_0x329b6e['slice'](0x1))['join']('\x20');}function optionalString(_0x31ced6){const _0x3bf538=_0xedad;return typeof _0x31ced6===_0x3bf538(0xa4)&&_0x31ced6['trim']()?_0x31ced6[_0x3bf538(0xcc)]():undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x5b6b(){const _0x4d28f2=['cwd','562014zjZbqI','1701628BcZZUM','./background-cleanup-worker.js','99454RkEFjL','1426736CXquUY','469625QqAoNL','416382TdVuDg','1ueEKdR','execPath','7DyBwZl','2559558nBnCMz','ignore'];_0x5b6b=function(){return _0x4d28f2;};return _0x5b6b();}(function(_0x7bf2c3,_0x11aee6){const _0x366215=_0x4e94,_0x112175=_0x7bf2c3();while(!![]){try{const _0x1eed6b=-parseInt(_0x366215(0x17c))/0x1*(parseInt(_0x366215(0x185))/0x2)+parseInt(_0x366215(0x17b))/0x3+-parseInt(_0x366215(0x183))/0x4+-parseInt(_0x366215(0x17a))/0x5+parseInt(_0x366215(0x17f))/0x6+parseInt(_0x366215(0x17e))/0x7*(parseInt(_0x366215(0x186))/0x8)+parseInt(_0x366215(0x182))/0x9;if(_0x1eed6b===_0x11aee6)break;else _0x112175['push'](_0x112175['shift']());}catch(_0x52c1a6){_0x112175['push'](_0x112175['shift']());}}}(_0x5b6b,0x39e3c));function _0x4e94(_0xe8c24c,_0x3b1c2e){_0xe8c24c=_0xe8c24c-0x17a;const _0x5b6b04=_0x5b6b();let _0x4e9458=_0x5b6b04[_0xe8c24c];return _0x4e9458;}import{spawn}from'node:child_process';import{fileURLToPath}from'node:url';export function spawnOwnProseCleanupProcess(_0x117c00){const _0x23b091=_0x4e94,_0x2aee9c=fileURLToPath(new URL(_0x23b091(0x184),import.meta.url)),_0x517faa=spawn(process[_0x23b091(0x17d)],[_0x2aee9c,'--run-dir',_0x117c00],{'cwd':process[_0x23b091(0x181)](),'detached':!![],'stdio':_0x23b091(0x180),'env':process.env});return _0x517faa['unref'](),!![];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x427b(){const _0x5c8178=['175660bKYlfy','catch','--run-dir\x20required','exitCode','supervisor','615792cWnBbS','background','620109PfWDwu','2445864YFNPZM','571543EFcFgW','indexOf','running','8hglRic','45nqPYTf','473PgEmDa','status','979476NXrguH','slice','5232438FQgpeA','trim','56iyrxEM','--run-dir'];_0x427b=function(){return _0x5c8178;};return _0x427b();}const _0xb1b4b9=_0x43a1;function _0x43a1(_0x339ae8,_0x58cb84){_0x339ae8=_0x339ae8-0xe0;const _0x427b28=_0x427b();let _0x43a15f=_0x427b28[_0x339ae8];return _0x43a15f;}(function(_0x231186,_0x4cd968){const _0x3ccc68=_0x43a1,_0x379a7d=_0x231186();while(!![]){try{const _0x438fcb=parseInt(_0x3ccc68(0xf2))/0x1+-parseInt(_0x3ccc68(0xf5))/0x2*(parseInt(_0x3ccc68(0xf0))/0x3)+parseInt(_0x3ccc68(0xee))/0x4*(-parseInt(_0x3ccc68(0xe0))/0x5)+parseInt(_0x3ccc68(0xe3))/0x6*(parseInt(_0x3ccc68(0xe7))/0x7)+-parseInt(_0x3ccc68(0xf1))/0x8+parseInt(_0x3ccc68(0xe5))/0x9+-parseInt(_0x3ccc68(0xe9))/0xa*(-parseInt(_0x3ccc68(0xe1))/0xb);if(_0x438fcb===_0x4cd968)break;else _0x379a7d['push'](_0x379a7d['shift']());}catch(_0x476d8e){_0x379a7d['push'](_0x379a7d['shift']());}}}(_0x427b,0xa9f5a));import{deleteAgentSession,hasAgentSession}from'./agent-notify.js';import{readRunState}from'./state-store.js';const SESSION_CLEANUP_RECHECK_DELAYS_MS=[0x32,0x64,0xc8],BACKGROUND_STATE_SETTLE_RETRY_DELAY_MS=0xc8,BACKGROUND_STATE_SETTLE_RETRY_COUNT=0x19;async function main(){const _0x365e8d=_0x43a1,_0x32334e=parseRunDir(process['argv'][_0x365e8d(0xe4)](0x2)),_0x1b27bc=await waitForBackgroundRunToSettle(_0x32334e);if(!_0x1b27bc||_0x1b27bc[_0x365e8d(0xe2)]==='running')return;const _0x453a8c=_0x1b27bc[_0x365e8d(0xef)]?.[_0x365e8d(0xed)]?.['sessionKey']?.[_0x365e8d(0xe6)]();if(!_0x453a8c)return;await cleanupSession(_0x453a8c);}function parseRunDir(_0x21523d){const _0x5b9beb=_0x43a1,_0x51e533=_0x21523d[_0x5b9beb(0xf3)](_0x5b9beb(0xe8)),_0xeb92b4=_0x51e533>=0x0?_0x21523d[_0x51e533+0x1]:undefined;if(!_0xeb92b4?.[_0x5b9beb(0xe6)]())throw new Error(_0x5b9beb(0xeb));return _0xeb92b4['trim']();}async function waitForBackgroundRunToSettle(_0x5e5263){const _0x2c03e9=_0x43a1;let _0x5bcf9d=await readRunState(_0x5e5263)[_0x2c03e9(0xea)](()=>undefined);for(let _0x248bbb=0x0;_0x248bbb<BACKGROUND_STATE_SETTLE_RETRY_COUNT;_0x248bbb+=0x1){if(!_0x5bcf9d||_0x5bcf9d['status']!==_0x2c03e9(0xf4))return _0x5bcf9d;await sleep(BACKGROUND_STATE_SETTLE_RETRY_DELAY_MS),_0x5bcf9d=await readRunState(_0x5e5263)[_0x2c03e9(0xea)](()=>_0x5bcf9d);}return _0x5bcf9d;}async function cleanupSession(_0x2ee474){await deleteSession(_0x2ee474);let _0x504e7d=0x0;for(const _0xe19f2a of SESSION_CLEANUP_RECHECK_DELAYS_MS){await sleep(_0xe19f2a);const _0x3c4795=await probeSession(_0x2ee474);if(_0x3c4795!==!![]){_0x504e7d+=0x1;if(_0x504e7d>=0x2)return;continue;}_0x504e7d=0x0,await deleteSession(_0x2ee474);}}async function deleteSession(_0x2f09de){try{await deleteAgentSession({'sessionKey':_0x2f09de,'deleteTranscript':!![]});}catch{}}async function probeSession(_0x115dca){try{return await hasAgentSession({'sessionKey':_0x115dca});}catch{return undefined;}}function sleep(_0x5221cc){return new Promise(_0x21b20a=>setTimeout(_0x21b20a,_0x5221cc));}await main()[_0xb1b4b9(0xea)](()=>{const _0x203110=_0xb1b4b9;process[_0x203110(0xec)]=0x1;});
|
package/dist/src/cli.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1fb8ec,_0x1f151b){const _0x25f35e=_0x2bac,_0x585e54=_0x1fb8ec();while(!![]){try{const _0x1ddbf6=parseInt(_0x25f35e(0x220))/0x1+parseInt(_0x25f35e(0x1f9))/0x2*(-parseInt(_0x25f35e(0x20c))/0x3)+-parseInt(_0x25f35e(0x224))/0x4+-parseInt(_0x25f35e(0x221))/0x5+-parseInt(_0x25f35e(0x204))/0x6*(-parseInt(_0x25f35e(0x1fb))/0x7)+parseInt(_0x25f35e(0x226))/0x8*(-parseInt(_0x25f35e(0x225))/0x9)+-parseInt(_0x25f35e(0x1fe))/0xa*(-parseInt(_0x25f35e(0x209))/0xb);if(_0x1ddbf6===_0x1f151b)break;else _0x585e54['push'](_0x585e54['shift']());}catch(_0x2fb07b){_0x585e54['push'](_0x585e54['shift']());}}}(_0x52b3,0x75616));import{spawn}from'node:child_process';import{compileOwnProseProgram,driveOwnProseProgram,inspectOwnProseProgramFile,loadOwnProseRunState,replyOwnProseRun,renderOwnProseStatus,resumeOwnProseBackgroundRun,startOwnProseProgram}from'./execution.js';export function registerOwnProseCli(_0x426662,_0x4a320b){const _0x3a7f02=_0x2bac,_0x59f3ce=_0x426662[_0x3a7f02(0x210)](_0x3a7f02(0x229))[_0x3a7f02(0x22b)](_0x3a7f02(0x205));_0x59f3ce[_0x3a7f02(0x210)](_0x3a7f02(0x239))[_0x3a7f02(0x22b)]('Compile\x20and\x20start\x20a\x20workflow\x20in\x20the\x20background')[_0x3a7f02(0x230)](_0x3a7f02(0x219),_0x3a7f02(0x1fa))[_0x3a7f02(0x238)](_0x3a7f02(0x22f),_0x3a7f02(0x21e),collectOption,[])[_0x3a7f02(0x238)](_0x3a7f02(0x214),_0x3a7f02(0x206))[_0x3a7f02(0x238)]('--json',_0x3a7f02(0x236),![])['action'](async(_0x18a9bf,_0x4923fb)=>{const _0x3b74da=_0x3a7f02,_0x4b24d6=resolveInputOptions(_0x4923fb),_0x54a0f2=await startOwnProseProgram({'api':_0x4a320b,'workspaceDir':process[_0x3b74da(0x232)](),'programPath':_0x18a9bf,'inputs':_0x4b24d6});_0x54a0f2['state'][_0x3b74da(0x20a)]?.[_0x3b74da(0x22c)]===_0x3b74da(0x208)&&spawnOwnProseResumeProcess(_0x54a0f2['runId'],_0x54a0f2['runDir']);if(_0x4923fb['json']){process['stdout'][_0x3b74da(0x223)](JSON['stringify'](_0x54a0f2,null,0x2)+'\x0a');return;}process[_0x3b74da(0x207)]['write'](renderOwnProseStatus(_0x54a0f2[_0x3b74da(0x227)])+'\x0a');}),_0x59f3ce['command']('drive')[_0x3a7f02(0x22b)]('Compile\x20and\x20execute\x20a\x20workflow\x20end-to-end')[_0x3a7f02(0x230)](_0x3a7f02(0x219),_0x3a7f02(0x1fa))[_0x3a7f02(0x238)](_0x3a7f02(0x22f),_0x3a7f02(0x21e),collectOption,[])[_0x3a7f02(0x238)](_0x3a7f02(0x214),_0x3a7f02(0x206))['option'](_0x3a7f02(0x235),'Print\x20raw\x20JSON',![])['action'](async(_0x4c22c6,_0x3e657d)=>{const _0x314aa8=_0x3a7f02,_0x4d2408=resolveInputOptions(_0x3e657d),_0x346d00=await driveOwnProseProgram({'api':_0x4a320b,'workspaceDir':process[_0x314aa8(0x232)](),'programPath':_0x4c22c6,'inputs':_0x4d2408});if(_0x3e657d['json']){process[_0x314aa8(0x207)][_0x314aa8(0x223)](JSON[_0x314aa8(0x228)](_0x346d00,null,0x2)+'\x0a');return;}process[_0x314aa8(0x207)]['write'](renderOwnProseStatus(_0x346d00[_0x314aa8(0x227)])+'\x0a');}),_0x59f3ce[_0x3a7f02(0x210)](_0x3a7f02(0x21f))[_0x3a7f02(0x22b)]('Compile\x20a\x20workflow\x20into\x20a\x20structured\x20execution\x20plan')[_0x3a7f02(0x230)](_0x3a7f02(0x219),_0x3a7f02(0x1fa))[_0x3a7f02(0x238)]('--json',_0x3a7f02(0x236),![])[_0x3a7f02(0x1ff)](async(_0x2d446a,_0x4c33dd)=>{const _0x2ebba9=_0x3a7f02,_0x48954e=await compileOwnProseProgram({'api':_0x4a320b,'workspaceDir':process[_0x2ebba9(0x232)](),'programPath':_0x2d446a});if(_0x4c33dd[_0x2ebba9(0x21d)]){process[_0x2ebba9(0x207)]['write'](JSON[_0x2ebba9(0x228)](_0x48954e,null,0x2)+'\x0a');return;}process[_0x2ebba9(0x207)][_0x2ebba9(0x223)](JSON[_0x2ebba9(0x228)](_0x48954e['plan'],null,0x2)+'\x0a');}),_0x59f3ce['command'](_0x3a7f02(0x233))[_0x3a7f02(0x22b)](_0x3a7f02(0x200))[_0x3a7f02(0x230)](_0x3a7f02(0x222),_0x3a7f02(0x20f))[_0x3a7f02(0x238)](_0x3a7f02(0x1f6),'Explicit\x20run\x20directory')[_0x3a7f02(0x238)](_0x3a7f02(0x235),'Print\x20raw\x20JSON',![])['action'](async(_0x37e539,_0x326396)=>{const _0x1e264c=_0x3a7f02,_0x1f6891=await resumeOwnProseBackgroundRun({'api':_0x4a320b,'workspaceDir':process['cwd'](),'runId':_0x37e539,'runDir':_0x326396[_0x1e264c(0x201)]});if(_0x326396[_0x1e264c(0x21d)]){process[_0x1e264c(0x207)][_0x1e264c(0x223)](JSON[_0x1e264c(0x228)](_0x1f6891,null,0x2)+'\x0a');return;}process['stdout']['write'](renderOwnProseStatus(_0x1f6891[_0x1e264c(0x227)])+'\x0a');}),_0x59f3ce['command'](_0x3a7f02(0x218))[_0x3a7f02(0x22b)](_0x3a7f02(0x22e))[_0x3a7f02(0x230)]('<runId>',_0x3a7f02(0x20f))[_0x3a7f02(0x211)]('--answer\x20<text>',_0x3a7f02(0x21b))[_0x3a7f02(0x238)](_0x3a7f02(0x1f6),_0x3a7f02(0x202))[_0x3a7f02(0x238)](_0x3a7f02(0x235),_0x3a7f02(0x236),![])[_0x3a7f02(0x1ff)](async(_0x58799b,_0x55bdb8)=>{const _0x3c6dc6=_0x3a7f02,_0x7ebbcd=await replyOwnProseRun({'api':_0x4a320b,'workspaceDir':process['cwd'](),'runId':_0x58799b,'answer':_0x55bdb8['answer']??'','runDir':_0x55bdb8['runDir']});if(_0x55bdb8[_0x3c6dc6(0x21d)]){process[_0x3c6dc6(0x207)][_0x3c6dc6(0x223)](JSON[_0x3c6dc6(0x228)](_0x7ebbcd,null,0x2)+'\x0a');return;}process[_0x3c6dc6(0x207)][_0x3c6dc6(0x223)](renderOwnProseStatus(_0x7ebbcd[_0x3c6dc6(0x227)])+'\x0a');}),_0x59f3ce[_0x3a7f02(0x210)](_0x3a7f02(0x22c))[_0x3a7f02(0x22b)](_0x3a7f02(0x234))[_0x3a7f02(0x230)](_0x3a7f02(0x222),'Run\x20id')[_0x3a7f02(0x238)]('--json',_0x3a7f02(0x236),![])[_0x3a7f02(0x1ff)](async(_0x2f3c84,_0x23b785)=>{const _0x1d8e39=_0x3a7f02,{state:_0x2429da,plan:_0x8a0620}=await loadOwnProseRunState(process[_0x1d8e39(0x232)](),_0x4a320b[_0x1d8e39(0x203)],_0x2f3c84);if(_0x23b785[_0x1d8e39(0x21d)]){process[_0x1d8e39(0x207)][_0x1d8e39(0x223)](JSON['stringify']({'state':_0x2429da,'plan':_0x8a0620},null,0x2)+'\x0a');return;}process[_0x1d8e39(0x207)][_0x1d8e39(0x223)](renderOwnProseStatus(_0x2429da)+'\x0a');}),_0x59f3ce[_0x3a7f02(0x210)](_0x3a7f02(0x215))[_0x3a7f02(0x22b)](_0x3a7f02(0x23a))['argument']('<program>',_0x3a7f02(0x1fa))[_0x3a7f02(0x238)](_0x3a7f02(0x235),_0x3a7f02(0x236),![])[_0x3a7f02(0x1ff)](async(_0x105348,_0x2afa3c)=>{const _0x388e77=_0x3a7f02,_0x429bce=_0x105348,_0x4586ae=await inspectOwnProseProgramFile(_0x429bce);if(_0x2afa3c[_0x388e77(0x21d)]){process[_0x388e77(0x207)][_0x388e77(0x223)](JSON[_0x388e77(0x228)](_0x4586ae,null,0x2)+'\x0a');return;}process['stdout'][_0x388e77(0x223)]([_0x388e77(0x212)+_0x4586ae[_0x388e77(0x1f5)][_0x388e77(0x216)],_0x388e77(0x231)+(_0x4586ae[_0x388e77(0x1f5)][_0x388e77(0x1f7)][_0x388e77(0x21c)](',\x20')||_0x388e77(0x1fc)),_0x388e77(0x22d)+_0x4586ae[_0x388e77(0x1f5)]['goal'],_0x388e77(0x20b)+_0x4586ae[_0x388e77(0x1f5)]['workflow']][_0x388e77(0x21c)]('\x0a')+'\x0a');});}function _0x52b3(){const _0x4660a1=['parse','--json-input\x20<json>','inspect','name','--run-dir','reply','<program>','jsonInput','Reply\x20text','join','json','Repeatable\x20input\x20value','compile','290769ozLlBE','2957170pEXwWO','<runId>','write','2446624YPrUEt','1813842gMgxkb','24EKIWcs','state','stringify','own-prose','indexOf','description','status','Goal:\x20','Resume\x20a\x20blocked\x20own-prose\x20run\x20with\x20user-provided\x20input','--input\x20<key=value>','argument','Agents:\x20','cwd','resume','Show\x20the\x20current\x20state\x20of\x20an\x20own-prose\x20run','--json','Print\x20raw\x20JSON','ignore','option','start','Parse\x20a\x20workflow\x20definition\x20without\x20compiling\x20or\x20running\x20it','input','slice','program','--run-dir\x20<path>','agentIds','\x22.\x20Expected\x20key=value','58YNfyUa','Path\x20to\x20the\x20Markdown\x20program','7dVgbLA','none','Invalid\x20--input\x20value\x20\x22','19627070oNFfQN','action','Resume\x20a\x20queued\x20own-prose\x20background\x20run','runDir','Explicit\x20run\x20directory','pluginConfig','2369274tixGLU','Compile\x20and\x20execute\x20natural-language\x20own-prose\x20workflows','Full\x20input\x20object\x20as\x20JSON','stdout','queued','11MoEWSI','background','Workflow:\x20','37227SLlfyg','fromEntries','object','Run\x20id','command','requiredOption','Program:\x20'];_0x52b3=function(){return _0x4660a1;};return _0x52b3();}function _0x2bac(_0x4f6289,_0x53f6d1){_0x4f6289=_0x4f6289-0x1f4;const _0x52b322=_0x52b3();let _0x2bac56=_0x52b322[_0x4f6289];return _0x2bac56;}function spawnOwnProseResumeProcess(_0x1632eb,_0x3841fe){const _0x1a86f4=_0x2bac,_0x294aff=process['argv'][0x1];if(!_0x294aff)return;const _0x423842=spawn(process['execPath'],[_0x294aff,'own-prose',_0x1a86f4(0x233),_0x1632eb,_0x1a86f4(0x217),_0x3841fe,'--json'],{'cwd':process[_0x1a86f4(0x232)](),'detached':!![],'stdio':_0x1a86f4(0x237),'env':process.env});_0x423842['unref']();}function collectOption(_0x4a99d6,_0xc39e21){return _0xc39e21['push'](_0x4a99d6),_0xc39e21;}function resolveInputOptions(_0xaa82de){const _0x20ac0a=_0x2bac,_0x232044=Object[_0x20ac0a(0x20d)]((_0xaa82de[_0x20ac0a(0x23b)]??[])['map'](_0x1b4178=>{const _0x186844=_0x20ac0a,_0x3a212b=_0x1b4178[_0x186844(0x22a)]('=');if(_0x3a212b<=0x0)throw new Error(_0x186844(0x1fd)+_0x1b4178+_0x186844(0x1f8));return[_0x1b4178['slice'](0x0,_0x3a212b),_0x1b4178[_0x186844(0x1f4)](_0x3a212b+0x1)];}));if(!_0xaa82de[_0x20ac0a(0x21a)])return _0x232044;const _0x3393fd=JSON[_0x20ac0a(0x213)](_0xaa82de['jsonInput']);if(!_0x3393fd||typeof _0x3393fd!==_0x20ac0a(0x20e)||Array['isArray'](_0x3393fd))throw new Error('--json-input\x20must\x20decode\x20to\x20an\x20object');return{..._0x232044,..._0x3393fd};}
|
package/dist/src/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x3c2d9a,_0x3972dd){const _0x2affe6=_0x359a,_0x11a0af=_0x3c2d9a();while(!![]){try{const _0x344060=-parseInt(_0x2affe6(0x93))/0x1+-parseInt(_0x2affe6(0x92))/0x2+parseInt(_0x2affe6(0x94))/0x3+parseInt(_0x2affe6(0x88))/0x4+-parseInt(_0x2affe6(0x8a))/0x5*(-parseInt(_0x2affe6(0x8f))/0x6)+parseInt(_0x2affe6(0x86))/0x7+-parseInt(_0x2affe6(0x8d))/0x8*(-parseInt(_0x2affe6(0x96))/0x9);if(_0x344060===_0x3972dd)break;else _0x11a0af['push'](_0x11a0af['shift']());}catch(_0x498809){_0x11a0af['push'](_0x11a0af['shift']());}}}(_0x1154,0xef14f));function _0x1154(){const _0x538dc3=['trim','8AIaAJw','defaultProvider','6lUkMfK','defaultModel','boolean','3185096kGtMBo','1608515rZzJgd','1394814oNswYe','stateRoot','11764521pfEIdi','cleanupSessions','string','resolve','9849707RhjZAY','timeoutMs','3465840rAxsqm','isFinite','673370NgdHzN','.own-prose'];_0x1154=function(){return _0x538dc3;};return _0x1154();}import _0x1f7d01 from'node:path';export const OWN_PROSE_DEFAULT_TIMEOUT_MS=0x927c0;function _0x359a(_0x22f794,_0x92e457){_0x22f794=_0x22f794-0x85;const _0x115481=_0x1154();let _0x359a18=_0x115481[_0x22f794];return _0x359a18;}export const OWN_PROSE_DEFAULT_CLEANUP_SESSIONS=!![];export function resolveOwnProseConfig(_0x3b71a3,_0x246769){const _0x291a2d=_0x359a,_0x1ae6f5=_0x246769??{},_0x5ce172=typeof _0x1ae6f5[_0x291a2d(0x95)]===_0x291a2d(0x98)&&_0x1ae6f5[_0x291a2d(0x95)][_0x291a2d(0x8c)]()?_0x1ae6f5[_0x291a2d(0x95)]['trim']():_0x291a2d(0x8b),_0x234428=typeof _0x1ae6f5['defaultProvider']===_0x291a2d(0x98)&&_0x1ae6f5[_0x291a2d(0x8e)][_0x291a2d(0x8c)]()?_0x1ae6f5[_0x291a2d(0x8e)][_0x291a2d(0x8c)]():undefined,_0x37148d=typeof _0x1ae6f5['defaultModel']===_0x291a2d(0x98)&&_0x1ae6f5[_0x291a2d(0x90)][_0x291a2d(0x8c)]()?_0x1ae6f5[_0x291a2d(0x90)]['trim']():undefined,_0x1cb970=typeof _0x1ae6f5[_0x291a2d(0x87)]==='number'&&Number[_0x291a2d(0x89)](_0x1ae6f5['timeoutMs'])&&_0x1ae6f5['timeoutMs']>=0x3e8?_0x1ae6f5['timeoutMs']:OWN_PROSE_DEFAULT_TIMEOUT_MS,_0x561b64=typeof _0x1ae6f5[_0x291a2d(0x97)]===_0x291a2d(0x91)?_0x1ae6f5['cleanupSessions']:OWN_PROSE_DEFAULT_CLEANUP_SESSIONS;return{'stateRoot':_0x1f7d01[_0x291a2d(0x85)](_0x3b71a3,_0x5ce172),'defaultProvider':_0x234428,'defaultModel':_0x37148d,'timeoutMs':_0x1cb970,'cleanupSessions':_0x561b64};}
|
package/dist/src/execution.d.ts
CHANGED
|
@@ -20,6 +20,13 @@ export declare function resumeOwnProseBackgroundRun(params: {
|
|
|
20
20
|
runId: string;
|
|
21
21
|
runDir?: string;
|
|
22
22
|
}): Promise<OwnProseRunResult>;
|
|
23
|
+
export declare function replyOwnProseRun(params: {
|
|
24
|
+
api: OpenClawPluginApi;
|
|
25
|
+
workspaceDir: string;
|
|
26
|
+
runId: string;
|
|
27
|
+
answer: string;
|
|
28
|
+
runDir?: string;
|
|
29
|
+
}): Promise<OwnProseRunResult>;
|
|
23
30
|
export declare function waitForOwnProseBackgroundRun(runId: string, options: {
|
|
24
31
|
workspaceDir: string;
|
|
25
32
|
pluginConfig?: Record<string, unknown>;
|