@psnext/slingcli 2.5.20260722-2 → 2.5.20260722-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/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +9 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +25 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +32 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js +6 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +75 -26
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.js +6 -17
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +56 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js +56 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +30 -14
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +4 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js +17 -0
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +2 -7
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +14 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +2 -4
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/kimi-coding.js +249 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/bun-oauth.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +60 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +8 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.models.js +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.models.js +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/radius-config.js +18 -14
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +79 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/text.js +10 -0
- package/node_modules/@earendil-works/{pi-agent-core/dist/harness/session → pi-ai/dist/utils}/uuid.js +4 -8
- package/node_modules/@earendil-works/pi-ai/package.json +8 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +72 -57
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js +8 -11
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +63 -26
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js +6 -17
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.js +18 -15
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js +26 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +6 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +100 -24
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/usage-totals.js +52 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/client.js +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/index.js +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +5 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +20 -21
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +69 -25
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +16 -31
- package/node_modules/@earendil-works/pi-coding-agent/package.json +4 -4
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/cli.js +5 -5
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/config.js +9 -9
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/ipc/client.js +1 -1
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/ipc/server.js +1 -1
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/radius.js +8 -8
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/rpc-process.js +1 -1
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/serve.js +3 -3
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/storage.js +7 -7
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/supervisor.js +2 -2
- package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/package.json +9 -6
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +16 -10
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +4 -2
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +7 -7
- package/slingshot/index.js +253 -250
- /package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/handler.js +0 -0
- /package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/index.js +0 -0
- /package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/ipc/protocol.js +0 -0
- /package/node_modules/@earendil-works/{pi-orchestrator → pi-server}/dist/types.js +0 -0
|
@@ -837,13 +837,13 @@ export class Editor {
|
|
|
837
837
|
this.cancelAutocomplete();
|
|
838
838
|
this.lastAction = null;
|
|
839
839
|
this.exitHistoryBrowsing();
|
|
840
|
-
this.pastes.clear();
|
|
841
|
-
this.pasteCounter = 0;
|
|
842
840
|
const normalized = this.normalizeText(text);
|
|
843
841
|
// Push undo snapshot if content differs (makes programmatic changes undoable)
|
|
844
842
|
if (this.getText() !== normalized) {
|
|
845
843
|
this.pushUndoSnapshot();
|
|
846
844
|
}
|
|
845
|
+
this.pastes.clear();
|
|
846
|
+
this.pasteCounter = 0;
|
|
847
847
|
this.setTextInternal(normalized);
|
|
848
848
|
}
|
|
849
849
|
/**
|
|
@@ -1084,16 +1084,20 @@ export class Editor {
|
|
|
1084
1084
|
const targetId = Number(isPastedSegmented[1]);
|
|
1085
1085
|
this.pastes.delete(targetId);
|
|
1086
1086
|
this.pasteCounter--;
|
|
1087
|
-
//
|
|
1087
|
+
// Shift registry entries down in ascending id order, independent
|
|
1088
|
+
// of marker order in the text ([paste #3] becomes [paste #2] when
|
|
1089
|
+
// [paste #1] is removed).
|
|
1090
|
+
const higherIds = [...this.pastes.keys()].filter((id) => id > targetId).sort((a, b) => a - b);
|
|
1091
|
+
for (const id of higherIds) {
|
|
1092
|
+
this.pastes.set(id - 1, this.pastes.get(id));
|
|
1093
|
+
this.pastes.delete(id);
|
|
1094
|
+
}
|
|
1095
|
+
// Renumber markers with ids greater than the removed one.
|
|
1088
1096
|
this.state.lines = this.state.lines.map((line) => line.replace(PASTE_MARKER_REGEX, (fullMatch, idGroup, suffixGroup) => {
|
|
1089
1097
|
const x = Number(idGroup);
|
|
1090
1098
|
if (x <= targetId)
|
|
1091
1099
|
return fullMatch;
|
|
1092
|
-
|
|
1093
|
-
const newText = `[paste #${x - 1}${suffixGroup}]`;
|
|
1094
|
-
this.pastes.set(x - 1, this.pastes.get(x) ?? newText);
|
|
1095
|
-
this.pastes.delete(x);
|
|
1096
|
-
return newText;
|
|
1100
|
+
return `[paste #${x - 1}${suffixGroup}]`;
|
|
1097
1101
|
}));
|
|
1098
1102
|
}
|
|
1099
1103
|
line = this.state.lines[this.state.cursorLine] || "";
|
|
@@ -1682,14 +1686,16 @@ export class Editor {
|
|
|
1682
1686
|
}
|
|
1683
1687
|
}
|
|
1684
1688
|
pushUndoSnapshot() {
|
|
1685
|
-
this.undoStack.push(this.state);
|
|
1689
|
+
this.undoStack.push({ state: this.state, pastes: this.pastes, pasteCounter: this.pasteCounter });
|
|
1686
1690
|
}
|
|
1687
1691
|
undo() {
|
|
1688
1692
|
this.exitHistoryBrowsing();
|
|
1689
1693
|
const snapshot = this.undoStack.pop();
|
|
1690
1694
|
if (!snapshot)
|
|
1691
1695
|
return;
|
|
1692
|
-
Object.assign(this.state, snapshot);
|
|
1696
|
+
Object.assign(this.state, snapshot.state);
|
|
1697
|
+
this.pastes = snapshot.pastes;
|
|
1698
|
+
this.pasteCounter = snapshot.pasteCounter;
|
|
1693
1699
|
this.lastAction = null;
|
|
1694
1700
|
this.preferredVisualCol = null;
|
|
1695
1701
|
if (this.onChange) {
|
|
@@ -482,6 +482,8 @@ export class TUI extends Container {
|
|
|
482
482
|
}
|
|
483
483
|
// Move cursor to the end of the content to prevent overwriting/artifacts on exit
|
|
484
484
|
if (this.previousLines.length > 0) {
|
|
485
|
+
// Overwrite the inverted cursor with a normal space to clear the artifact
|
|
486
|
+
this.terminal.write(" ");
|
|
485
487
|
const targetRow = this.previousLines.length; // Line after the last content
|
|
486
488
|
const lineDiff = targetRow - this.hardwareCursorRow;
|
|
487
489
|
if (lineDiff > 0) {
|
|
@@ -1047,7 +1049,7 @@ export class TUI extends Container {
|
|
|
1047
1049
|
const logRedraw = (reason) => {
|
|
1048
1050
|
if (!debugRedraw)
|
|
1049
1051
|
return;
|
|
1050
|
-
const logPath = path.join(os.homedir(), ".
|
|
1052
|
+
const logPath = path.join(os.homedir(), ".pi", "agent", "pi-debug.log");
|
|
1051
1053
|
const msg = `[${new Date().toISOString()}] fullRender: ${reason} (prev=${this.previousLines.length}, new=${newLines.length}, height=${height})\n`;
|
|
1052
1054
|
fs.appendFileSync(logPath, msg);
|
|
1053
1055
|
};
|
|
@@ -1227,7 +1229,7 @@ export class TUI extends Container {
|
|
|
1227
1229
|
buffer += "\x1b[2K"; // Clear current line
|
|
1228
1230
|
if (!isImage && visibleWidth(line) > width) {
|
|
1229
1231
|
// Log all lines to crash file for debugging
|
|
1230
|
-
const crashLogPath = path.join(os.homedir(), ".
|
|
1232
|
+
const crashLogPath = path.join(os.homedir(), ".pi", "agent", "pi-crash.log");
|
|
1231
1233
|
const crashData = [
|
|
1232
1234
|
`Crash at ${new Date().toISOString()}`,
|
|
1233
1235
|
`Terminal width: ${width}`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@psnext/slingcli",
|
|
3
|
-
"version": "2.5.20260722-
|
|
3
|
+
"version": "2.5.20260722-3",
|
|
4
4
|
"description": "Connects Sling CLI to Publicis Sapient Slingshot enterprise LLM gateway. Bundles the pi coding-agent runtime.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
"type": "git",
|
|
30
30
|
"url": "git+https://pscode.lioncloud.net/psaiproducts/slingcli.git"
|
|
31
31
|
},
|
|
32
|
-
"slingVersion": "2.5.20260722-
|
|
32
|
+
"slingVersion": "2.5.20260722-3",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@earendil-works/pi-tui": "file:../.sling-pack/earendil-works-pi-tui-0.
|
|
35
|
-
"@earendil-works/pi-ai": "file:../.sling-pack/earendil-works-pi-ai-0.
|
|
36
|
-
"@earendil-works/pi-agent-core": "file:../.sling-pack/earendil-works-pi-agent-core-0.
|
|
37
|
-
"@earendil-works/pi-coding-agent": "file:../.sling-pack/earendil-works-pi-coding-agent-0.
|
|
38
|
-
"@earendil-works/pi-
|
|
34
|
+
"@earendil-works/pi-tui": "file:../.sling-pack/earendil-works-pi-tui-0.81.1.tgz",
|
|
35
|
+
"@earendil-works/pi-ai": "file:../.sling-pack/earendil-works-pi-ai-0.81.1.tgz",
|
|
36
|
+
"@earendil-works/pi-agent-core": "file:../.sling-pack/earendil-works-pi-agent-core-0.81.1.tgz",
|
|
37
|
+
"@earendil-works/pi-coding-agent": "file:../.sling-pack/earendil-works-pi-coding-agent-0.81.1.tgz",
|
|
38
|
+
"@earendil-works/pi-server": "file:../.sling-pack/earendil-works-pi-server-0.81.1.tgz",
|
|
39
39
|
"undici": "^7.19.1",
|
|
40
40
|
"semver": "^7.6.0"
|
|
41
41
|
},
|