@stratusagent/cli 0.12.6 → 0.13.1
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 +1 -1
- package/dist/approvals.d.ts +33 -13
- package/dist/approvals.d.ts.map +1 -1
- package/dist/approvals.js +188 -15
- package/dist/approvals.js.map +1 -1
- package/dist/autonomy.d.ts +14 -0
- package/dist/autonomy.d.ts.map +1 -1
- package/dist/autonomy.js +32 -4
- package/dist/autonomy.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +5 -2
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +54 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/grants.d.ts.map +1 -1
- package/dist/commands/grants.js +9 -2
- package/dist/commands/grants.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +27 -14
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +122 -2
- package/dist/commands/setup.js.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +12 -8
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +8 -3
- package/dist/main.js.map +1 -1
- package/dist/npm.d.ts +1 -1
- package/dist/npm.js +1 -1
- package/dist/parse.d.ts +1 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +4 -4
- package/dist/parse.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -2
- package/dist/runtime.js.map +1 -1
- package/dist/trusted-config.d.ts +29 -0
- package/dist/trusted-config.d.ts.map +1 -1
- package/dist/trusted-config.js +69 -5
- package/dist/trusted-config.js.map +1 -1
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ Full reference with every subcommand:
|
|
|
77
77
|
| `--model` | Model for real providers (anthropic default: `claude-opus-5-5`, codex default: `gpt-5.5`) |
|
|
78
78
|
| `--base-url` | Override the provider API base URL |
|
|
79
79
|
| `--config <file>` | Load settings from a specific config file |
|
|
80
|
-
| `--approvals` | `run`/`chat`: `always`, `ask`, or `never`. `serve`: `headless` (refuse
|
|
80
|
+
| `--approvals` | `run`/`chat`: `always`, `ask`, or `never`. `serve`: for a call that needs approval (dangerous under posture `open`, any gated one under `guarded`), `headless` (refuse it) or `remote` (ask in Slack) |
|
|
81
81
|
| `--max-turns` | Max tool turns per run before it wraps up (default 40) |
|
|
82
82
|
| `--format` | `text` or `json` |
|
|
83
83
|
| `--idle-timeout` | `serve`: seconds of provider silence before the watchdog aborts a turn (default 120) |
|
package/dist/approvals.d.ts
CHANGED
|
@@ -19,10 +19,42 @@ export declare const createApprovalPolicy: (mode: CliApprovalMode, streams: CliS
|
|
|
19
19
|
* flag needs no commentary; `always` reached because nobody could be
|
|
20
20
|
* asked gets one line, the first time a call that would have asked runs.
|
|
21
21
|
*/
|
|
22
|
-
defaulted?: boolean
|
|
22
|
+
defaulted?: boolean,
|
|
23
|
+
/**
|
|
24
|
+
* For `open`: `approvals.externalContent` is `gate` for this agent, so a
|
|
25
|
+
* conversation that has read external content asks again.
|
|
26
|
+
*/
|
|
27
|
+
openOptions?: {
|
|
28
|
+
gateExternalContent?: boolean;
|
|
29
|
+
}) => ApprovalPolicy;
|
|
30
|
+
/**
|
|
31
|
+
* One line saying which agents run gated tools without asking, the way the
|
|
32
|
+
* resolver decides it: the top-level posture with its exceptions named.
|
|
33
|
+
*/
|
|
34
|
+
export declare const describePosture: (approvals: ApprovalsConfig, mode: "headless" | "remote", servedAgentIds?: readonly string[]) => string;
|
|
23
35
|
/** One line saying whose messages arrive as the operator's, per Slack agent. */
|
|
24
36
|
export declare const describePrincipals: (principals: PrincipalsConfig, agentIds: string[]) => string;
|
|
37
|
+
/**
|
|
38
|
+
* Which calls reach the approval path for these agents (every configured
|
|
39
|
+
* one when none is named): gated ones when all are guarded, dangerous ones
|
|
40
|
+
* when all are open with no external-content gate, and otherwise (mixed, or
|
|
41
|
+
* an open agent whose `externalContent: "gate"` sends gated calls back to
|
|
42
|
+
* asking after external content) the calls that would ask.
|
|
43
|
+
*/
|
|
44
|
+
export declare const askingCalls: (approvals: ApprovalsConfig, agentIds: readonly string[]) => {
|
|
45
|
+
call: string;
|
|
46
|
+
calls: string;
|
|
47
|
+
};
|
|
48
|
+
/** The startup warning for served agents no running channel can ask for. */
|
|
49
|
+
export declare const describeUnreachable: (approvals: ApprovalsConfig, unreachable: readonly string[]) => string;
|
|
25
50
|
export declare const describeApprovers: (approvals: ApprovalsConfig, agentIds: string[]) => string;
|
|
51
|
+
/**
|
|
52
|
+
* The remote-mode startup line, posture-aware: under the open posture only
|
|
53
|
+
* dangerous calls (and, under `externalContent: "gate"`, gated calls in a
|
|
54
|
+
* conversation that read external content) reach Slack, so it must not
|
|
55
|
+
* promise that gated calls are parked.
|
|
56
|
+
*/
|
|
57
|
+
export declare const describeRemoteMode: (approvals: ApprovalsConfig, askable: string[], servedAgentIds?: readonly string[]) => string;
|
|
26
58
|
/**
|
|
27
59
|
* What a gated call would actually meet on this machine.
|
|
28
60
|
*
|
|
@@ -77,17 +109,5 @@ servedAgentIds: readonly string[] | undefined,
|
|
|
77
109
|
* nobody can ask.
|
|
78
110
|
*/
|
|
79
111
|
apiReachable: boolean) => Promise<string>;
|
|
80
|
-
/**
|
|
81
|
-
* The clauses above, unjoined and without reading the filesystem, so a
|
|
82
|
-
* caller holding unsaved state can render the same verdict. The first
|
|
83
|
-
* element is always the verdict itself; the rest qualify it.
|
|
84
|
-
*
|
|
85
|
-
* Split out because setup's Approvals row wrote its own version of this
|
|
86
|
-
* sentence, and every review round found it short a different clause the
|
|
87
|
-
* daemon actually applies — the headless exceptions, an explicit
|
|
88
|
-
* `timeoutMs: 0`, the control API on a mixed roster. There is one renderer
|
|
89
|
-
* now; a menu that wants a shorter line takes fewer clauses, never
|
|
90
|
-
* different words.
|
|
91
|
-
*/
|
|
92
112
|
export declare const unattendedReachParts: (mode: "headless" | "remote", approvals: ApprovalsConfig, channels: ChannelCredentials, servedAgentIds: readonly string[] | undefined, apiReachable: boolean, env: CliEnvironment) => string[];
|
|
93
113
|
//# sourceMappingURL=approvals.d.ts.map
|
package/dist/approvals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAWlD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,eAAe,KAAG,MAI/D,CAAC;AAoCF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,eAAe,EACrB,SAAS,UAAU,EACnB,KAAK,cAAc,EACnB,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;AACzC;;;;GAIG;AACH,mBAAiB;AACjB;;;GAGG;AACH,cAAa;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,KAClD,cAyHF,CAAC;AAwCF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,eAAe,EAC1B,MAAM,UAAU,GAAG,QAAQ,EAC3B,iBAAiB,SAAS,MAAM,EAAE,KACjC,MAUF,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,GAAI,YAAY,gBAAgB,EAAE,UAAU,MAAM,EAAE,KAAG,MAsCrF,CAAC;AAiBF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,eAAe,EAAE,UAAU,SAAS,MAAM,EAAE,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAWlH,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,GAAI,WAAW,eAAe,EAAE,aAAa,SAAS,MAAM,EAAE,KAAG,MAES,CAAC;AAE3G,eAAO,MAAM,iBAAiB,GAAI,WAAW,eAAe,EAAE,UAAU,MAAM,EAAE,KAAG,MAWlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,eAAe,EAAE,SAAS,MAAM,EAAE,EAAE,iBAAiB,SAAS,MAAM,EAAE,KAAG,MAiBtH,CAAC;AA6CF;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oFAAoF;IACpF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gGAAgG;IAChG,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,qBAAqB,GAChC,WAAW,eAAe,EAC1B,UAAU,kBAAkB,EAC5B,gBAAgB,SAAS,MAAM,EAAE,GAAG,SAAS,EAC7C,KAAK,cAAc,KAClB,aAcF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,MAAM,UAAU,GAAG,QAAQ,EAC3B,WAAW,eAAe,EAC1B,KAAK,cAAc;AACnB;;;;;;;;;;GAUG;AACH,gBAAgB,SAAS,MAAM,EAAE,GAAG,SAAS;AAC7C;;;;;GAKG;AACH,cAAc,OAAO,KACpB,OAAO,CAAC,MAAM,CAGhB,CAAC;AA4CF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,UAAU,GAAG,QAAQ,EAC3B,WAAW,eAAe,EAC1B,UAAU,kBAAkB,EAC5B,gBAAgB,SAAS,MAAM,EAAE,GAAG,SAAS,EAC7C,cAAc,OAAO,EACrB,KAAK,cAAc,KAClB,MAAM,EA8HR,CAAC"}
|
package/dist/approvals.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline';
|
|
2
|
-
import { AllowAllApprovalPolicy, originOf, } from '@stratusagent/core';
|
|
2
|
+
import { AllowAllApprovalPolicy, originOf, sessionTrustOf, } from '@stratusagent/core';
|
|
3
3
|
import { loadChannelCredentials, resolveAgentApprovals, resolveAgentPrincipals, } from '@stratusagent/state';
|
|
4
4
|
import { writeLine } from "./io.js";
|
|
5
5
|
import { packageInstalled } from "./loaders.js";
|
|
@@ -58,7 +58,12 @@ export const createApprovalPolicy = (mode, streams, env, ask,
|
|
|
58
58
|
* flag needs no commentary; `always` reached because nobody could be
|
|
59
59
|
* asked gets one line, the first time a call that would have asked runs.
|
|
60
60
|
*/
|
|
61
|
-
defaulted = false
|
|
61
|
+
defaulted = false,
|
|
62
|
+
/**
|
|
63
|
+
* For `open`: `approvals.externalContent` is `gate` for this agent, so a
|
|
64
|
+
* conversation that has read external content asks again.
|
|
65
|
+
*/
|
|
66
|
+
openOptions = {}) => {
|
|
62
67
|
if (mode === 'always') {
|
|
63
68
|
if (!defaulted) {
|
|
64
69
|
return new AllowAllApprovalPolicy();
|
|
@@ -75,9 +80,48 @@ defaulted = false) => {
|
|
|
75
80
|
},
|
|
76
81
|
};
|
|
77
82
|
}
|
|
83
|
+
// `open` is the daemon's open posture at a terminal: anything short of
|
|
84
|
+
// `dangerous` runs, and a dangerous call still asks a person. So does a
|
|
85
|
+
// gated call in a conversation that read external content, under
|
|
86
|
+
// `externalContent: "gate"`, the same rule the daemon's policy applies.
|
|
87
|
+
if (mode === 'open') {
|
|
88
|
+
// Defaulted means nobody can answer (a pipe, `--stdin`): what would
|
|
89
|
+
// ask is refused, never read from consumed stdin or taken from the
|
|
90
|
+
// next piped chat line, and said once.
|
|
91
|
+
let noted = false;
|
|
92
|
+
const asking = defaulted
|
|
93
|
+
? {
|
|
94
|
+
async approve(context) {
|
|
95
|
+
if (!noted) {
|
|
96
|
+
noted = true;
|
|
97
|
+
writeLine(streams.stderr, `Note: refusing ${context.call.toolName} — it would ask for approval, and stdin is not a terminal. `
|
|
98
|
+
+ 'Pass --approvals always to run it unattended.');
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
},
|
|
102
|
+
}
|
|
103
|
+
: createApprovalPolicy('ask', streams, env, ask);
|
|
104
|
+
return {
|
|
105
|
+
async approve(context) {
|
|
106
|
+
if (context.risk === 'safe') {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
const closedByContent = openOptions.gateExternalContent === true && sessionTrustOf(context.session) === 'external';
|
|
110
|
+
return context.risk === 'dangerous' || closedByContent ? asking.approve(context) : true;
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
78
114
|
if (mode === 'never') {
|
|
115
|
+
// Defaulted here only when the posture is guarded (or its config could
|
|
116
|
+
// not be read) and nobody can be asked: say why, once.
|
|
117
|
+
let noted = !defaulted;
|
|
79
118
|
return {
|
|
80
|
-
async approve() {
|
|
119
|
+
async approve(context) {
|
|
120
|
+
if (!noted && context.risk !== 'safe') {
|
|
121
|
+
noted = true;
|
|
122
|
+
writeLine(streams.stderr, `Note: refusing ${context.call.toolName} — the approvals posture is guarded (or its config could not be read) and stdin is not a terminal. `
|
|
123
|
+
+ 'Pass --approvals open or always to run gated tools.');
|
|
124
|
+
}
|
|
81
125
|
return false;
|
|
82
126
|
},
|
|
83
127
|
};
|
|
@@ -126,6 +170,57 @@ defaulted = false) => {
|
|
|
126
170
|
},
|
|
127
171
|
};
|
|
128
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* The list key that would let someone reach these agents. An agent's own
|
|
175
|
+
* `slackUsers`, even an empty one, wins over the top level, so pointing
|
|
176
|
+
* it at `principals.slackUsers` would be advice that changes nothing.
|
|
177
|
+
*/
|
|
178
|
+
const listKeyFor = (principals, agentIds) => {
|
|
179
|
+
const own = agentIds.filter((agentId) => principals.agents?.[agentId]?.slackUsers !== undefined);
|
|
180
|
+
const ownKeys = own.map((agentId) => `principals.agents.${agentId}.slackUsers`);
|
|
181
|
+
if (own.length === agentIds.length) {
|
|
182
|
+
return ownKeys.join(' or ');
|
|
183
|
+
}
|
|
184
|
+
return own.length === 0
|
|
185
|
+
? 'principals.slackUsers'
|
|
186
|
+
: `principals.slackUsers (${own.map((agentId, at) => `${ownKeys[at]} for ${agentId}`).join(', ')})`;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Under the open posture, `externalContent: "gate"` sends gated calls in a
|
|
190
|
+
* conversation that read external content back to asking. Says so, for
|
|
191
|
+
* every agent or naming the open agents it applies to; empty when none.
|
|
192
|
+
*/
|
|
193
|
+
const externalGateNote = (approvals, servedAgentIds) => {
|
|
194
|
+
const resolved = (agentId) => resolveAgentApprovals(approvals, agentId);
|
|
195
|
+
const gates = (agentId) => resolved(agentId).posture === 'open' && resolved(agentId).externalContent === 'gate';
|
|
196
|
+
// Only served agents, like the posture exceptions beside it: a stale
|
|
197
|
+
// override for a removed agent is not an exception anyone will meet.
|
|
198
|
+
const named = Object.keys(approvals.agents ?? {})
|
|
199
|
+
.filter((agentId) => servedAgentIds === undefined || servedAgentIds.includes(agentId));
|
|
200
|
+
if (gates('')) {
|
|
201
|
+
const not = named.filter((agentId) => resolved(agentId).posture === 'open' && !gates(agentId));
|
|
202
|
+
return `, except in a conversation that read external content (externalContent: gate${not.length > 0 ? `; not for ${not.join(', ')}` : ''})`;
|
|
203
|
+
}
|
|
204
|
+
const which = named.filter(gates);
|
|
205
|
+
return which.length > 0
|
|
206
|
+
? `, except in ${which.map((agentId) => `${agentId}'s`).join(', ')} conversations that read external content (externalContent: gate)`
|
|
207
|
+
: '';
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* One line saying which agents run gated tools without asking, the way the
|
|
211
|
+
* resolver decides it: the top-level posture with its exceptions named.
|
|
212
|
+
*/
|
|
213
|
+
export const describePosture = (approvals, mode, servedAgentIds) => {
|
|
214
|
+
const top = resolveAgentApprovals(approvals, '').posture;
|
|
215
|
+
const exceptions = Object.keys(approvals.agents ?? {})
|
|
216
|
+
.filter((agentId) => servedAgentIds === undefined || servedAgentIds.includes(agentId))
|
|
217
|
+
.filter((agentId) => resolveAgentApprovals(approvals, agentId).posture !== top);
|
|
218
|
+
const except = exceptions.length > 0 ? ` except ${exceptions.join(', ')}` : '';
|
|
219
|
+
// Headless asks nobody: what the posture would ask about is refused.
|
|
220
|
+
return top === 'open'
|
|
221
|
+
? `posture open for every agent${except} (gated tools run without asking${externalGateNote(approvals, servedAgentIds)}; dangerous ones ${mode === 'headless' ? 'are refused, since headless asks nobody' : 'still ask'})`
|
|
222
|
+
: `posture guarded for every agent${except} (gated tools ${mode === 'headless' ? 'are refused, since headless asks nobody' : 'ask, or are refused with nobody to ask'})`;
|
|
223
|
+
};
|
|
129
224
|
/** One line saying whose messages arrive as the operator's, per Slack agent. */
|
|
130
225
|
export const describePrincipals = (principals, agentIds) => {
|
|
131
226
|
const covered = agentIds.filter((agentId) => (resolveAgentPrincipals(principals, agentId).slackUsers ?? []).length > 0);
|
|
@@ -143,7 +238,12 @@ export const describePrincipals = (principals, agentIds) => {
|
|
|
143
238
|
if (covered.length === 0) {
|
|
144
239
|
return closed.length === 0
|
|
145
240
|
? 'no principals configured, so every Slack sender is unknown and every fact written in Slack carries that label — set principals.slackUsers in ~/.stratus/config.json'
|
|
146
|
-
|
|
241
|
+
// Codex P2 4310107914: a refused sender never becomes a turn and never
|
|
242
|
+
// gets a trust label, so only the agents that admit them may call
|
|
243
|
+
// their senders unknown.
|
|
244
|
+
: `no principals listed, so every Slack sender is refused${closed.length === agentIds.length
|
|
245
|
+
? ''
|
|
246
|
+
: ` by ${closed.join(', ')} and unknown to ${agentIds.filter((agentId) => !closed.includes(agentId)).join(', ')}`} — nobody at all can talk to ${closed.join(', ')} until ${listKeyFor(principals, closed)} names someone`;
|
|
147
247
|
}
|
|
148
248
|
// An uncovered agent's senders are all unknown only if it admits them: a
|
|
149
249
|
// closed agent with nobody listed refuses everyone, and saying its
|
|
@@ -155,7 +255,7 @@ export const describePrincipals = (principals, agentIds) => {
|
|
|
155
255
|
return `principals set for ${covered.join(', ')}`
|
|
156
256
|
+ (uncoveredOpen.length > 0 ? `; none for ${uncoveredOpen.join(', ')}, whose Slack senders are all unknown` : '')
|
|
157
257
|
+ (uncoveredClosed.length > 0
|
|
158
|
-
? `; none for ${uncoveredClosed.join(', ')}, who refuse every sender until principals
|
|
258
|
+
? `; none for ${uncoveredClosed.join(', ')}, who refuse every sender until ${listKeyFor(principals, uncoveredClosed)} names someone`
|
|
159
259
|
: '')
|
|
160
260
|
+ door;
|
|
161
261
|
};
|
|
@@ -170,18 +270,64 @@ const classifyApprovers = (approvals, agentIds) => {
|
|
|
170
270
|
const covered = agentIds.filter((agentId) => (resolveAgentApprovals(approvals, agentId).slackApprovers ?? []).length > 0);
|
|
171
271
|
return { covered, uncovered: agentIds.filter((agentId) => !covered.includes(agentId)) };
|
|
172
272
|
};
|
|
273
|
+
/**
|
|
274
|
+
* Which calls reach the approval path for these agents (every configured
|
|
275
|
+
* one when none is named): gated ones when all are guarded, dangerous ones
|
|
276
|
+
* when all are open with no external-content gate, and otherwise (mixed, or
|
|
277
|
+
* an open agent whose `externalContent: "gate"` sends gated calls back to
|
|
278
|
+
* asking after external content) the calls that would ask.
|
|
279
|
+
*/
|
|
280
|
+
export const askingCalls = (approvals, agentIds) => {
|
|
281
|
+
const ids = agentIds.length > 0 ? agentIds : ['', ...Object.keys(approvals.agents ?? {})];
|
|
282
|
+
const resolved = ids.map((agentId) => resolveAgentApprovals(approvals, agentId));
|
|
283
|
+
const postures = new Set(resolved.map((agent) => agent.posture));
|
|
284
|
+
if (!postures.has('open')) {
|
|
285
|
+
return { call: 'gated call', calls: 'gated calls' };
|
|
286
|
+
}
|
|
287
|
+
const externalGate = resolved.some((agent) => agent.posture === 'open' && agent.externalContent === 'gate');
|
|
288
|
+
return postures.size === 1 && !externalGate
|
|
289
|
+
? { call: 'dangerous call', calls: 'dangerous calls' }
|
|
290
|
+
: { call: 'call that would ask', calls: 'calls that would ask' };
|
|
291
|
+
};
|
|
292
|
+
/** The startup warning for served agents no running channel can ask for. */
|
|
293
|
+
export const describeUnreachable = (approvals, unreachable) => `no channel can ask for ${unreachable.join(', ')}, so their ${askingCalls(approvals, unreachable).calls} will wait out the `
|
|
294
|
+
+ 'approval timeout and then be denied. Connect a Slack app for them, or run with --approvals headless.';
|
|
173
295
|
export const describeApprovers = (approvals, agentIds) => {
|
|
174
296
|
if (agentIds.length === 0) {
|
|
175
|
-
return
|
|
297
|
+
return `but no channel is running to ask through, so ${askingCalls(approvals, agentIds).calls} will wait out the approval timeout and then be denied`;
|
|
176
298
|
}
|
|
177
299
|
const { covered, uncovered } = classifyApprovers(approvals, agentIds);
|
|
178
300
|
if (covered.length === 0) {
|
|
179
|
-
return
|
|
301
|
+
return `but no approvers are configured, so every ${askingCalls(approvals, agentIds).call} is denied on arrival`;
|
|
180
302
|
}
|
|
181
303
|
return uncovered.length === 0
|
|
182
304
|
? `approvers set for ${covered.join(', ')}`
|
|
183
305
|
: `approvers set for ${covered.join(', ')}; none for ${uncovered.join(', ')}, whose calls are denied on arrival`;
|
|
184
306
|
};
|
|
307
|
+
/**
|
|
308
|
+
* The remote-mode startup line, posture-aware: under the open posture only
|
|
309
|
+
* dangerous calls (and, under `externalContent: "gate"`, gated calls in a
|
|
310
|
+
* conversation that read external content) reach Slack, so it must not
|
|
311
|
+
* promise that gated calls are parked.
|
|
312
|
+
*/
|
|
313
|
+
export const describeRemoteMode = (approvals, askable, servedAgentIds) => {
|
|
314
|
+
const top = resolveAgentApprovals(approvals, '').posture;
|
|
315
|
+
const differing = Object.keys(approvals.agents ?? {})
|
|
316
|
+
.filter((agentId) => servedAgentIds === undefined || servedAgentIds.includes(agentId))
|
|
317
|
+
.filter((agentId) => resolveAgentApprovals(approvals, agentId).posture !== top);
|
|
318
|
+
const who = `(${describeApprovers(approvals, askable)})`;
|
|
319
|
+
if (top === 'open') {
|
|
320
|
+
const guarded = differing.length > 0 ? `, except ${differing.join(', ')}'s, whose gated calls are parked too` : '';
|
|
321
|
+
return `approvals: remote — dangerous calls are parked and asked in Slack; gated ones run without asking under the open posture${externalGateNote(approvals, servedAgentIds)}${guarded} ${who}`;
|
|
322
|
+
}
|
|
323
|
+
// "Only dangerous ones" holds only when no open agent gates on external
|
|
324
|
+
// content; otherwise the note before it already says what else is parked.
|
|
325
|
+
const gateNote = externalGateNote(approvals, servedAgentIds);
|
|
326
|
+
const open = differing.length > 0
|
|
327
|
+
? `, except ${differing.join(', ')}'s, which run without asking${gateNote}${gateNote === '' ? ' (only dangerous ones are parked)' : ''}`
|
|
328
|
+
: '';
|
|
329
|
+
return `approvals: remote — gated calls are parked and asked in Slack${open} ${who}`;
|
|
330
|
+
};
|
|
185
331
|
/**
|
|
186
332
|
* The ways a gated call is already authorized before either mode's decision
|
|
187
333
|
* is reached — the standing tool grants, the approved command scopes, the
|
|
@@ -270,10 +416,37 @@ apiReachable) => {
|
|
|
270
416
|
* now; a menu that wants a shorter line takes fewer clauses, never
|
|
271
417
|
* different words.
|
|
272
418
|
*/
|
|
419
|
+
/**
|
|
420
|
+
* What reaches the approval path under the posture: gated calls when every
|
|
421
|
+
* agent is guarded, dangerous ones when every agent is open (the open
|
|
422
|
+
* posture runs gated calls before anything is asked), and, mixed, the calls
|
|
423
|
+
* that would ask. With any agent open, the posture line follows the verdict
|
|
424
|
+
* so the reader sees which agents run gated calls unasked.
|
|
425
|
+
*/
|
|
426
|
+
const postureReach = (approvals, mode, servedAgentIds) => {
|
|
427
|
+
// The served roster when it is known: an override left behind for an
|
|
428
|
+
// agent no longer served changes nothing the daemon does.
|
|
429
|
+
const agentIds = servedAgentIds ?? ['', ...Object.keys(approvals.agents ?? {})];
|
|
430
|
+
const postures = new Set(agentIds.map((agentId) => resolveAgentApprovals(approvals, agentId).posture));
|
|
431
|
+
if (!postures.has('open')) {
|
|
432
|
+
return { call: 'an uncovered gated call', calls: 'gated calls', authorized: ` Already-authorized ones still run: ${ALREADY_AUTHORIZED}`, posture: [] };
|
|
433
|
+
}
|
|
434
|
+
// No grant, scope, site or destination ever covers a dangerous call, so
|
|
435
|
+
// the all-open line offers none of them, and the mixed one only for gated.
|
|
436
|
+
const allOpen = postures.size === 1;
|
|
437
|
+
return {
|
|
438
|
+
call: allOpen ? 'an uncovered dangerous call' : 'an uncovered call that would ask',
|
|
439
|
+
calls: allOpen ? 'dangerous calls' : 'calls that would ask',
|
|
440
|
+
authorized: allOpen ? '' : ` Already-authorized gated calls still run: ${ALREADY_AUTHORIZED}`,
|
|
441
|
+
posture: [describePosture(approvals, mode, servedAgentIds)],
|
|
442
|
+
};
|
|
443
|
+
};
|
|
273
444
|
export const unattendedReachParts = (mode, approvals, channels, servedAgentIds, apiReachable, env) => {
|
|
445
|
+
const reach = postureReach(approvals, mode, servedAgentIds);
|
|
274
446
|
if (mode === 'headless') {
|
|
275
447
|
return [
|
|
276
|
-
`headless —
|
|
448
|
+
`headless — ${reach.call} is refused${reach.authorized ? `.${reach.authorized}` : ''}`,
|
|
449
|
+
...reach.posture,
|
|
277
450
|
...externalContentClause(approvals, servedAgentIds),
|
|
278
451
|
];
|
|
279
452
|
}
|
|
@@ -316,8 +489,8 @@ export const unattendedReachParts = (mode, approvals, channels, servedAgentIds,
|
|
|
316
489
|
const verdict = () => {
|
|
317
490
|
if (askable.length === 0) {
|
|
318
491
|
return apiReachable
|
|
319
|
-
? `remote —
|
|
320
|
-
:
|
|
492
|
+
? `remote — ${reach.call} parks with no Slack channel to ask through, so the control API is the only way to answer it ${unanswered}`
|
|
493
|
+
: `remote — ${reach.call} parks with no channel to ask through and no control API to answer it, so it `
|
|
321
494
|
+ (expires
|
|
322
495
|
? 'waits out the approval timeout and is denied'
|
|
323
496
|
: 'is never answered: this daemon\'s approval timeout is 0, so it parks indefinitely');
|
|
@@ -328,11 +501,11 @@ export const unattendedReachParts = (mode, approvals, channels, servedAgentIds,
|
|
|
328
501
|
// Same defect as the branch above, one case over — found by auditing
|
|
329
502
|
// the rest of this function after that one, not by review.
|
|
330
503
|
if (covered.length === 0) {
|
|
331
|
-
return
|
|
504
|
+
return `remote — ${reach.call} reaches Slack and is denied on arrival, because no approvers are configured`;
|
|
332
505
|
}
|
|
333
|
-
return `remote —
|
|
506
|
+
return `remote — ${reach.call} parks and asks in Slack, ${slack}`;
|
|
334
507
|
};
|
|
335
|
-
const parts = [verdict()];
|
|
508
|
+
const parts = [verdict(), ...reach.posture];
|
|
336
509
|
// The reverse of a stale token, and the failure that actually bites: an
|
|
337
510
|
// agent the daemon serves that no channel can ask for parks its gated
|
|
338
511
|
// calls until the timeout denies them. `runServe` warns about exactly
|
|
@@ -351,9 +524,9 @@ export const unattendedReachParts = (mode, approvals, channels, servedAgentIds,
|
|
|
351
524
|
// these calls wait for a client rather than for the timeout — a very
|
|
352
525
|
// different thing to tell an operator.
|
|
353
526
|
parts.push(apiReachable
|
|
354
|
-
? `no Slack channel can ask for ${unreachable.join(', ')}, so their
|
|
527
|
+
? `no Slack channel can ask for ${unreachable.join(', ')}, so their ${reach.calls} park until the control `
|
|
355
528
|
+ `API answers them${expires ? ' or the timeout denies them' : ' — with a timeout of 0, nothing else ever will'}`
|
|
356
|
-
: `no channel can ask for ${unreachable.join(', ')}, so their
|
|
529
|
+
: `no channel can ask for ${unreachable.join(', ')}, so their ${reach.calls} `
|
|
357
530
|
+ (expires ? 'wait out the timeout and are denied' : 'park indefinitely: this daemon\'s approval timeout is 0'));
|
|
358
531
|
}
|
|
359
532
|
// Stored tokens are a *configured* route, not a live one. The adapter
|
package/dist/approvals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
package/dist/autonomy.d.ts
CHANGED
|
@@ -10,4 +10,18 @@ import { type ApprovalsConfig, type StateEnvironment } from '@stratusagent/state
|
|
|
10
10
|
* `@stratusagent/plugins`, whose precedence this follows.
|
|
11
11
|
*/
|
|
12
12
|
export declare const autonomyDirectory: (approvals: ApprovalsConfig, plugins: Record<string, unknown>, env: StateEnvironment, agentId: string) => string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The directory the shell resolves for the agent, whether or not autonomy
|
|
15
|
+
* is on: where a command granted by name may point, and where a compound
|
|
16
|
+
* command may write its output (see `compound.ts` in
|
|
17
|
+
* `@stratusagent/permissions`).
|
|
18
|
+
*/
|
|
19
|
+
export declare const agentShellWorkspace: (plugins: Record<string, unknown>, env: StateEnvironment, agentId: string) => string;
|
|
20
|
+
/**
|
|
21
|
+
* The workspace a by-name grant or a compound command may use for this
|
|
22
|
+
* agent (`agentShellWorkspace`), or undefined when its configured shell is
|
|
23
|
+
* not one `POSIX_SHELLS` names, which keeps every command to the scopes
|
|
24
|
+
* judged one at a time.
|
|
25
|
+
*/
|
|
26
|
+
export declare const agentShellGrantRoot: (plugins: Record<string, unknown>, env: StateEnvironment, agentId: string) => string | undefined;
|
|
13
27
|
//# sourceMappingURL=autonomy.d.ts.map
|
package/dist/autonomy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomy.d.ts","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6C,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,eAAe,EAC1B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,gBAAgB,EACrB,SAAS,MAAM,KACd,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"autonomy.d.ts","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6C,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,eAAe,EAC1B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,gBAAgB,EACrB,SAAS,MAAM,KACd,MAAM,GAAG,SAGG,CAAC;AAEhB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,gBAAgB,EACrB,SAAS,MAAM,KACd,MAMF,CAAC;AAWF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,gBAAgB,EACrB,SAAS,MAAM,KACd,MAAM,GAAG,SAOX,CAAC"}
|
package/dist/autonomy.js
CHANGED
|
@@ -11,14 +11,42 @@ import { agentWorkspacePath, resolveAgentApprovals } from '@stratusagent/state';
|
|
|
11
11
|
* host's workspace otherwise. See `workspaceResolver` in
|
|
12
12
|
* `@stratusagent/plugins`, whose precedence this follows.
|
|
13
13
|
*/
|
|
14
|
-
export const autonomyDirectory = (approvals, plugins, env, agentId) =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export const autonomyDirectory = (approvals, plugins, env, agentId) => resolveAgentApprovals(approvals, agentId).autonomy === 'workspace'
|
|
15
|
+
? agentShellWorkspace(plugins, env, agentId)
|
|
16
|
+
: undefined;
|
|
17
|
+
/**
|
|
18
|
+
* The directory the shell resolves for the agent, whether or not autonomy
|
|
19
|
+
* is on: where a command granted by name may point, and where a compound
|
|
20
|
+
* command may write its output (see `compound.ts` in
|
|
21
|
+
* `@stratusagent/permissions`).
|
|
22
|
+
*/
|
|
23
|
+
export const agentShellWorkspace = (plugins, env, agentId) => {
|
|
18
24
|
const shell = plugins['@stratusagent/tool-shell'];
|
|
19
25
|
const root = shell !== null && typeof shell === 'object' && !Array.isArray(shell)
|
|
20
26
|
? resolvePluginAgentConfig(shell, agentId).workspaceRoot
|
|
21
27
|
: undefined;
|
|
22
28
|
return typeof root === 'string' && root.length > 0 ? path.join(root, agentId) : agentWorkspacePath(env, agentId);
|
|
23
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Shells whose syntax the compound reader in `@stratusagent/permissions`
|
|
32
|
+
* models: POSIX `sh` and the shells that run it as written. zsh, tcsh, csh,
|
|
33
|
+
* fish and ksh each read some line differently (`>!` is a redirection to
|
|
34
|
+
* zsh and tcsh, `=ls` a path to zsh), so for them a line is never read as a
|
|
35
|
+
* compound command and no grant applies by name.
|
|
36
|
+
*/
|
|
37
|
+
const POSIX_SHELLS = new Set(['sh', 'bash', 'dash']);
|
|
38
|
+
/**
|
|
39
|
+
* The workspace a by-name grant or a compound command may use for this
|
|
40
|
+
* agent (`agentShellWorkspace`), or undefined when its configured shell is
|
|
41
|
+
* not one `POSIX_SHELLS` names, which keeps every command to the scopes
|
|
42
|
+
* judged one at a time.
|
|
43
|
+
*/
|
|
44
|
+
export const agentShellGrantRoot = (plugins, env, agentId) => {
|
|
45
|
+
const shell = plugins['@stratusagent/tool-shell'];
|
|
46
|
+
const configured = shell !== null && typeof shell === 'object' && !Array.isArray(shell)
|
|
47
|
+
? resolvePluginAgentConfig(shell, agentId).shell
|
|
48
|
+
: undefined;
|
|
49
|
+
const binary = typeof configured === 'string' && configured.length > 0 ? configured : '/bin/sh';
|
|
50
|
+
return POSIX_SHELLS.has(path.basename(binary)) ? agentShellWorkspace(plugins, env, agentId) : undefined;
|
|
51
|
+
};
|
|
24
52
|
//# sourceMappingURL=autonomy.js.map
|
package/dist/autonomy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAA+C,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAA0B,EAC1B,OAAgC,EAChC,GAAqB,EACrB,OAAe,EACK,EAAE
|
|
1
|
+
{"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAA+C,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAA0B,EAC1B,OAAgC,EAChC,GAAqB,EACrB,OAAe,EACK,EAAE,CACtB,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW;IAChE,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;IAC5C,CAAC,CAAC,SAAS,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAgC,EAChC,GAAqB,EACrB,OAAe,EACP,EAAE;IACV,MAAM,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/E,CAAC,CAAC,wBAAwB,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAC,aAAa;QACtE,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAgC,EAChC,GAAqB,EACrB,OAAe,EACK,EAAE;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrF,CAAC,CAAC,wBAAwB,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAC,KAAK;QAC9D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1G,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqB1E,eAAO,MAAM,OAAO,GAClB,SAAS,iBAAiB,EAC1B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAuNhB,CAAC"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { createInterface } from 'node:readline';
|
|
3
|
+
import { DEFAULT_STRATUS_AGENT } from '@stratusagent/state';
|
|
4
|
+
import { defaultPosture, unflaggedApprovals } from "../trusted-config.js";
|
|
3
5
|
import { formatEvent } from "../events.js";
|
|
4
6
|
import { writeLine } from "../io.js";
|
|
5
7
|
import { defaultApprovalMode } from "../parse.js";
|
|
@@ -111,8 +113,9 @@ export const runChat = async (command, streams, env = {}) => {
|
|
|
111
113
|
};
|
|
112
114
|
const { runner, agent, metadata, runtimeContext, disposePlugins } = await createAgentRuntime(streams, {
|
|
113
115
|
runtime,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
...(command.approvals !== undefined
|
|
117
|
+
? { approvals: command.approvals }
|
|
118
|
+
: unflaggedApprovals(await defaultPosture(env, command.configPath, runtime.soul?.agent.id ?? DEFAULT_STRATUS_AGENT.id), defaultApprovalMode(env))),
|
|
116
119
|
askApproval,
|
|
117
120
|
...(command.maxTurns !== undefined ? { maxTurns: command.maxTurns } : {}),
|
|
118
121
|
...(command.configPath ? { configPath: command.configPath } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAuBL,KAAK,sBAAsB,EAW5B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvG;AAsGD,4DAA4D;AAC5D,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,sBAAsB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,gDAAgD;IAChD,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GACnB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoJjG;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,mBAAmB,EAC5B,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,MAAK,cAAmB,KACvB,OAAO,CAAC,YAAY,CA4ftB,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,mBAAmB,EAC5B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA4HhB,CAAC"}
|