@prohost/cli 0.8.2 → 0.8.3
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 +11 -0
- package/dist/agent/claude.js +12 -2
- package/dist/agent/contract.d.ts +2 -0
- package/dist/agent/contract.js +6 -0
- package/dist/agent/prompt.js +3 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ Versions follow [semver](https://semver.org/). Publishing is automated: merging
|
|
|
4
4
|
a version bump to `main` triggers `.github/workflows/npm-publish-cli.yml`, which
|
|
5
5
|
builds via `prepack`, runs the suite, publishes, and tags `cli-v<version>`.
|
|
6
6
|
|
|
7
|
+
## 0.8.3
|
|
8
|
+
|
|
9
|
+
A paired agent's shell steps read as what they do, not "Running a command".
|
|
10
|
+
|
|
11
|
+
- **Shell calls report their description.** A `Bash` call's tool event now
|
|
12
|
+
carries Claude Code's own one-line `description` of the call beside the
|
|
13
|
+
command in `args_preview` (`{"command": …, "description": "Find the
|
|
14
|
+
handler"}`). The server uses it as the step's label in the live run view and
|
|
15
|
+
keeps "Running a command" when it is absent. Nothing else in the event
|
|
16
|
+
changes.
|
|
17
|
+
|
|
7
18
|
## 0.8.2
|
|
8
19
|
|
|
9
20
|
A ProhostAI back-office agent is told its cross-account reads are allowed.
|
package/dist/agent/claude.js
CHANGED
|
@@ -358,8 +358,16 @@ export function toolArgsPreview(name, input) {
|
|
|
358
358
|
for (const key of headline) {
|
|
359
359
|
const value = args[key];
|
|
360
360
|
const text = typeof value === 'string' ? preview(value) : undefined;
|
|
361
|
-
if (text)
|
|
362
|
-
|
|
361
|
+
if (!text)
|
|
362
|
+
continue;
|
|
363
|
+
// The tool's own one-line summary of the call ("Find the failing test"),
|
|
364
|
+
// which the server prefers over the generic "Running a command" label.
|
|
365
|
+
// Capped shorter than the headline so the object stays under the
|
|
366
|
+
// server's 500-char preview bound and still parses there.
|
|
367
|
+
const description = DESCRIBED_TOOLS.has(name) && typeof args.description === 'string'
|
|
368
|
+
? preview(args.description)?.slice(0, MAX_PREVIEW_VALUE_CHARS)
|
|
369
|
+
: undefined;
|
|
370
|
+
return JSON.stringify(description ? { [key]: text, description } : { [key]: text });
|
|
363
371
|
}
|
|
364
372
|
// A headline-only tool with no headline shows nothing rather than its
|
|
365
373
|
// whole input — that input is the file content this field exists to keep
|
|
@@ -410,6 +418,8 @@ const HEADLINE_FIELDS = {
|
|
|
410
418
|
Task: ['description'],
|
|
411
419
|
Agent: ['description'],
|
|
412
420
|
};
|
|
421
|
+
/** Tools whose input carries a human `description` of the call alongside the headline. */
|
|
422
|
+
const DESCRIBED_TOOLS = new Set(['Bash', 'shell']);
|
|
413
423
|
/** The text of a `tool_result` block — a string, or its `text` parts joined. */
|
|
414
424
|
function toolResultText(content) {
|
|
415
425
|
if (typeof content === 'string')
|
package/dist/agent/contract.d.ts
CHANGED
|
@@ -325,6 +325,8 @@ export interface AgentRunRequest {
|
|
|
325
325
|
recent_messages?: RunMessage[];
|
|
326
326
|
/** What the account remembers that bears on this run. Absent on older servers. */
|
|
327
327
|
memories?: RunMemory[];
|
|
328
|
+
/** Selected records omitted whole by the server's inline context budget. */
|
|
329
|
+
memories_omitted?: number;
|
|
328
330
|
}
|
|
329
331
|
/** Reply destinations the server can bind a run to, including future surfaces. */
|
|
330
332
|
export type ReplySurface = 'conversation' | 'task' | 'cleaning' | 'none' | (string & {});
|
package/dist/agent/contract.js
CHANGED
|
@@ -280,6 +280,11 @@ function parseMemory(entry) {
|
|
|
280
280
|
return null;
|
|
281
281
|
return { content, scope: str(entry.scope) };
|
|
282
282
|
}
|
|
283
|
+
function omittedMemoryCount(value) {
|
|
284
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value > 0
|
|
285
|
+
? value
|
|
286
|
+
: undefined;
|
|
287
|
+
}
|
|
283
288
|
/**
|
|
284
289
|
* Extract the event body from a websocket frame's payload.
|
|
285
290
|
*
|
|
@@ -368,5 +373,6 @@ export function parseRunRequest(data) {
|
|
|
368
373
|
// CLI cannot be redeployed to follow.
|
|
369
374
|
recent_messages: contextList(data.recent_messages ?? context.recent_messages, parseMessage),
|
|
370
375
|
memories: contextList(data.memories ?? context.memories, parseMemory),
|
|
376
|
+
memories_omitted: omittedMemoryCount(data.memories_omitted ?? context.memories_omitted),
|
|
371
377
|
};
|
|
372
378
|
}
|
package/dist/agent/prompt.js
CHANGED
|
@@ -193,6 +193,9 @@ export function buildPrompt(run, context) {
|
|
|
193
193
|
if (run.memories?.length) {
|
|
194
194
|
lines.push('Things you remember (from earlier work in this workspace):', ...run.memories.map(renderMemory), '');
|
|
195
195
|
}
|
|
196
|
+
if (run.memories_omitted) {
|
|
197
|
+
lines.push(`Incomplete memory recall: selected records omitted whole to fit the inline budget: ${run.memories_omitted}.`, 'If your tools and permissions allow, use full-memory reads or POST /v1/memories/search (memories:read) to recover relevant context. Check each result’s scope and target before applying it; exact recovery is not guaranteed. Omitted context is not evidence that no rule applies.', '');
|
|
198
|
+
}
|
|
196
199
|
if (run.recent_messages?.length) {
|
|
197
200
|
lines.push('Conversation so far (oldest first):', ...run.recent_messages.map(renderMessage), '--- end of conversation history ---', '');
|
|
198
201
|
}
|
package/dist/version.d.ts
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
* `package.json`, so a release bump that forgets this file fails the suite
|
|
8
8
|
* instead of shipping a `User-Agent` that lies about which build is calling.
|
|
9
9
|
*/
|
|
10
|
-
export declare const CLI_VERSION = "0.8.
|
|
10
|
+
export declare const CLI_VERSION = "0.8.3";
|
|
11
11
|
/** Sent on every HTTP request the CLI makes back into ProhostAI. */
|
|
12
|
-
export declare const USER_AGENT = "prohost-cli/0.8.
|
|
12
|
+
export declare const USER_AGENT = "prohost-cli/0.8.3";
|
package/dist/version.js
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
* `package.json`, so a release bump that forgets this file fails the suite
|
|
8
8
|
* instead of shipping a `User-Agent` that lies about which build is calling.
|
|
9
9
|
*/
|
|
10
|
-
export const CLI_VERSION = '0.8.
|
|
10
|
+
export const CLI_VERSION = '0.8.3';
|
|
11
11
|
/** Sent on every HTTP request the CLI makes back into ProhostAI. */
|
|
12
12
|
export const USER_AGENT = `prohost-cli/${CLI_VERSION}`;
|