@aria-cli/tools 1.0.12 → 1.0.14
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/dist/index.js +378 -70
- package/dist/network-runtime/index.js +8 -12
- package/dist-cjs/index.js +400 -435
- package/dist-cjs/network-runtime/index.js +8 -172
- package/package.json +8 -6
- package/dist/.tsbuildinfo +0 -1
- package/dist/ask-user-interaction.js +0 -22
- package/dist/cache/web-cache.js +0 -66
- package/dist/definitions/arion.js +0 -104
- package/dist/definitions/browser/browser.js +0 -418
- package/dist/definitions/browser/index.js +0 -4
- package/dist/definitions/browser/pw-downloads.js +0 -114
- package/dist/definitions/browser/pw-interactions.js +0 -199
- package/dist/definitions/browser/pw-responses.js +0 -76
- package/dist/definitions/browser/pw-session.js +0 -310
- package/dist/definitions/browser/pw-shared.js +0 -66
- package/dist/definitions/browser/pw-snapshot.js +0 -301
- package/dist/definitions/browser/pw-state.js +0 -62
- package/dist/definitions/browser/types.js +0 -4
- package/dist/definitions/code-intelligence.js +0 -470
- package/dist/definitions/core.js +0 -109
- package/dist/definitions/delegation.js +0 -512
- package/dist/definitions/deploy.js +0 -65
- package/dist/definitions/filesystem.js +0 -196
- package/dist/definitions/frg.js +0 -63
- package/dist/definitions/index.js +0 -20
- package/dist/definitions/memory.js +0 -123
- package/dist/definitions/messaging.js +0 -625
- package/dist/definitions/meta.js +0 -349
- package/dist/definitions/network.js +0 -159
- package/dist/definitions/outlook.js +0 -277
- package/dist/definitions/patch/apply-patch.js +0 -184
- package/dist/definitions/patch/fuzzy-match.js +0 -166
- package/dist/definitions/patch/index.js +0 -1
- package/dist/definitions/patch/patch-parser.js +0 -207
- package/dist/definitions/patch/sandbox-paths.js +0 -105
- package/dist/definitions/process/index.js +0 -4
- package/dist/definitions/process/process-registry.js +0 -213
- package/dist/definitions/process/process.js +0 -386
- package/dist/definitions/process/pty-keys.js +0 -254
- package/dist/definitions/process/session-slug.js +0 -142
- package/dist/definitions/quip.js +0 -195
- package/dist/definitions/search.js +0 -60
- package/dist/definitions/session-history.js +0 -69
- package/dist/definitions/shell.js +0 -181
- package/dist/definitions/slack.js +0 -180
- package/dist/definitions/web.js +0 -109
- package/dist/executors/apply-patch.js +0 -901
- package/dist/executors/arion.js +0 -119
- package/dist/executors/code-intelligence.js +0 -882
- package/dist/executors/deploy.js +0 -848
- package/dist/executors/filesystem.js +0 -1122
- package/dist/executors/frg-freshness.js +0 -576
- package/dist/executors/frg.js +0 -298
- package/dist/executors/index.js +0 -46
- package/dist/executors/learning-meta.js +0 -1146
- package/dist/executors/lsp-client.js +0 -296
- package/dist/executors/memory.js +0 -750
- package/dist/executors/meta.js +0 -220
- package/dist/executors/process-registry.js +0 -465
- package/dist/executors/pty-session-store.js +0 -30
- package/dist/executors/pty.js +0 -271
- package/dist/executors/restart.js +0 -119
- package/dist/executors/search-freshness.js +0 -195
- package/dist/executors/search-types.js +0 -52
- package/dist/executors/search.js +0 -66
- package/dist/executors/self-diagnose.js +0 -398
- package/dist/executors/session-history.js +0 -283
- package/dist/executors/shell-safety.js +0 -473
- package/dist/executors/shell.js +0 -954
- package/dist/executors/utils.js +0 -33
- package/dist/executors/web.js +0 -542
- package/dist/extraction/content-extraction.js +0 -235
- package/dist/extraction/index.js +0 -4
- package/dist/headless-control-contract.js +0 -967
- package/dist/local-control-http-auth.js +0 -2
- package/dist/mcp/client.js +0 -181
- package/dist/mcp/connection.js +0 -480
- package/dist/mcp/index.js +0 -10
- package/dist/mcp/jsonrpc.js +0 -144
- package/dist/mcp/types.js +0 -7
- package/dist/network-control-adapter.js +0 -72
- package/dist/network-runtime/address-types.js +0 -165
- package/dist/network-runtime/db-owner-fencing.js +0 -69
- package/dist/network-runtime/delivery-receipts.js +0 -267
- package/dist/network-runtime/direct-endpoint-authority.js +0 -25
- package/dist/network-runtime/local-control-contract.js +0 -627
- package/dist/network-runtime/node-store-contract.js +0 -34
- package/dist/network-runtime/pair-route-contract.js +0 -77
- package/dist/network-runtime/peer-capabilities.js +0 -28
- package/dist/network-runtime/peer-principal-ref.js +0 -12
- package/dist/network-runtime/peer-state-machine.js +0 -121
- package/dist/network-runtime/protocol-schemas.js +0 -205
- package/dist/network-runtime/runtime-bootstrap-contract.js +0 -60
- package/dist/outlook/desktop-session.js +0 -279
- package/dist/policy.js +0 -149
- package/dist/providers/brave.js +0 -62
- package/dist/providers/duckduckgo.js +0 -176
- package/dist/providers/exa.js +0 -63
- package/dist/providers/firecrawl.js +0 -55
- package/dist/providers/index.js +0 -7
- package/dist/providers/jina.js +0 -49
- package/dist/providers/router.js +0 -96
- package/dist/providers/search-provider.js +0 -32
- package/dist/providers/tavily.js +0 -54
- package/dist/quip/desktop-session.js +0 -317
- package/dist/registry/index.js +0 -1
- package/dist/registry/registry.js +0 -756
- package/dist/runtime-socket-local-control-client.js +0 -330
- package/dist/security/dns-normalization.js +0 -19
- package/dist/security/dns-pinning.js +0 -123
- package/dist/security/external-content.js +0 -91
- package/dist/security/ssrf.js +0 -181
- package/dist/slack/desktop-session.js +0 -324
- package/dist/tool-factory.js +0 -47
- package/dist/types.js +0 -7
- package/dist/utils/retry.js +0 -132
- package/dist/utils/safe-parse-json.js +0 -160
- package/dist/utils/url.js +0 -19
- package/dist-cjs/.tsbuildinfo +0 -1
- package/dist-cjs/ask-user-interaction.js +0 -27
- package/dist-cjs/cache/web-cache.js +0 -70
- package/dist-cjs/definitions/arion.js +0 -107
- package/dist-cjs/definitions/browser/browser.js +0 -421
- package/dist-cjs/definitions/browser/index.js +0 -8
- package/dist-cjs/definitions/browser/pw-downloads.js +0 -117
- package/dist-cjs/definitions/browser/pw-interactions.js +0 -213
- package/dist-cjs/definitions/browser/pw-responses.js +0 -84
- package/dist-cjs/definitions/browser/pw-session.js +0 -326
- package/dist-cjs/definitions/browser/pw-shared.js +0 -72
- package/dist-cjs/definitions/browser/pw-snapshot.js +0 -307
- package/dist-cjs/definitions/browser/pw-state.js +0 -70
- package/dist-cjs/definitions/browser/types.js +0 -5
- package/dist-cjs/definitions/code-intelligence.js +0 -473
- package/dist-cjs/definitions/core.js +0 -133
- package/dist-cjs/definitions/delegation.js +0 -515
- package/dist-cjs/definitions/deploy.js +0 -68
- package/dist-cjs/definitions/filesystem.js +0 -199
- package/dist-cjs/definitions/frg.js +0 -66
- package/dist-cjs/definitions/index.js +0 -43
- package/dist-cjs/definitions/memory.js +0 -126
- package/dist-cjs/definitions/messaging.js +0 -631
- package/dist-cjs/definitions/meta.js +0 -352
- package/dist-cjs/definitions/network.js +0 -162
- package/dist-cjs/definitions/outlook.js +0 -280
- package/dist-cjs/definitions/patch/apply-patch.js +0 -191
- package/dist-cjs/definitions/patch/fuzzy-match.js +0 -172
- package/dist-cjs/definitions/patch/index.js +0 -5
- package/dist-cjs/definitions/patch/patch-parser.js +0 -215
- package/dist-cjs/definitions/patch/sandbox-paths.js +0 -113
- package/dist-cjs/definitions/process/index.js +0 -8
- package/dist-cjs/definitions/process/process-registry.js +0 -231
- package/dist-cjs/definitions/process/process.js +0 -389
- package/dist-cjs/definitions/process/pty-keys.js +0 -259
- package/dist-cjs/definitions/process/session-slug.js +0 -145
- package/dist-cjs/definitions/quip.js +0 -198
- package/dist-cjs/definitions/search.js +0 -63
- package/dist-cjs/definitions/session-history.js +0 -72
- package/dist-cjs/definitions/shell.js +0 -184
- package/dist-cjs/definitions/slack.js +0 -183
- package/dist-cjs/definitions/web.js +0 -112
- package/dist-cjs/executors/apply-patch.js +0 -938
- package/dist-cjs/executors/arion.js +0 -125
- package/dist-cjs/executors/code-intelligence.js +0 -925
- package/dist-cjs/executors/deploy.js +0 -869
- package/dist-cjs/executors/filesystem.js +0 -1167
- package/dist-cjs/executors/frg-freshness.js +0 -627
- package/dist-cjs/executors/frg.js +0 -334
- package/dist-cjs/executors/index.js +0 -143
- package/dist-cjs/executors/learning-meta.js +0 -1165
- package/dist-cjs/executors/lsp-client.js +0 -310
- package/dist-cjs/executors/memory.js +0 -796
- package/dist-cjs/executors/meta.js +0 -226
- package/dist-cjs/executors/process-registry.js +0 -469
- package/dist-cjs/executors/pty-session-store.js +0 -34
- package/dist-cjs/executors/pty.js +0 -312
- package/dist-cjs/executors/restart.js +0 -155
- package/dist-cjs/executors/search-freshness.js +0 -234
- package/dist-cjs/executors/search-types.js +0 -56
- package/dist-cjs/executors/search.js +0 -102
- package/dist-cjs/executors/self-diagnose.js +0 -434
- package/dist-cjs/executors/session-history.js +0 -320
- package/dist-cjs/executors/shell-safety.js +0 -478
- package/dist-cjs/executors/shell.js +0 -1001
- package/dist-cjs/executors/utils.js +0 -73
- package/dist-cjs/executors/web.js +0 -547
- package/dist-cjs/extraction/content-extraction.js +0 -243
- package/dist-cjs/extraction/index.js +0 -8
- package/dist-cjs/headless-control-contract.js +0 -972
- package/dist-cjs/local-control-http-auth.js +0 -5
- package/dist-cjs/mcp/client.js +0 -185
- package/dist-cjs/mcp/connection.js +0 -484
- package/dist-cjs/mcp/index.js +0 -30
- package/dist-cjs/mcp/jsonrpc.js +0 -148
- package/dist-cjs/mcp/types.js +0 -8
- package/dist-cjs/network-control-adapter.js +0 -77
- package/dist-cjs/network-runtime/address-types.js +0 -168
- package/dist-cjs/network-runtime/db-owner-fencing.js +0 -76
- package/dist-cjs/network-runtime/delivery-receipts.js +0 -276
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +0 -29
- package/dist-cjs/network-runtime/local-control-contract.js +0 -633
- package/dist-cjs/network-runtime/node-store-contract.js +0 -38
- package/dist-cjs/network-runtime/pair-route-contract.js +0 -80
- package/dist-cjs/network-runtime/peer-capabilities.js +0 -37
- package/dist-cjs/network-runtime/peer-principal-ref.js +0 -15
- package/dist-cjs/network-runtime/peer-state-machine.js +0 -129
- package/dist-cjs/network-runtime/protocol-schemas.js +0 -212
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +0 -63
- package/dist-cjs/outlook/desktop-session.js +0 -318
- package/dist-cjs/policy.js +0 -155
- package/dist-cjs/providers/brave.js +0 -66
- package/dist-cjs/providers/duckduckgo.js +0 -180
- package/dist-cjs/providers/exa.js +0 -67
- package/dist-cjs/providers/firecrawl.js +0 -59
- package/dist-cjs/providers/index.js +0 -17
- package/dist-cjs/providers/jina.js +0 -53
- package/dist-cjs/providers/router.js +0 -100
- package/dist-cjs/providers/search-provider.js +0 -36
- package/dist-cjs/providers/tavily.js +0 -58
- package/dist-cjs/quip/desktop-session.js +0 -353
- package/dist-cjs/registry/index.js +0 -6
- package/dist-cjs/registry/registry.js +0 -761
- package/dist-cjs/runtime-socket-local-control-client.js +0 -367
- package/dist-cjs/security/dns-normalization.js +0 -22
- package/dist-cjs/security/dns-pinning.js +0 -160
- package/dist-cjs/security/external-content.js +0 -95
- package/dist-cjs/security/ssrf.js +0 -221
- package/dist-cjs/slack/desktop-session.js +0 -366
- package/dist-cjs/tool-factory.js +0 -50
- package/dist-cjs/types.js +0 -8
- package/dist-cjs/utils/retry.js +0 -169
- package/dist-cjs/utils/safe-parse-json.js +0 -164
- package/dist-cjs/utils/url.js +0 -23
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @aria/tools - Session History tool executor
|
|
4
|
-
*
|
|
5
|
-
* Implementation of session history operations for ARIA tool system.
|
|
6
|
-
* Provides list, search, get, current, stats, delete, and set_title actions
|
|
7
|
-
* against the SessionHistory SQLite database.
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
-
var ownKeys = function(o) {
|
|
27
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
-
var ar = [];
|
|
29
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
-
return ar;
|
|
31
|
-
};
|
|
32
|
-
return ownKeys(o);
|
|
33
|
-
};
|
|
34
|
-
return function (mod) {
|
|
35
|
-
if (mod && mod.__esModule) return mod;
|
|
36
|
-
var result = {};
|
|
37
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
-
__setModuleDefault(result, mod);
|
|
39
|
-
return result;
|
|
40
|
-
};
|
|
41
|
-
})();
|
|
42
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.getSessionHistory = getSessionHistory;
|
|
44
|
-
exports.executeSessionHistory = executeSessionHistory;
|
|
45
|
-
const os = __importStar(require("node:os"));
|
|
46
|
-
const path = __importStar(require("node:path"));
|
|
47
|
-
const utils_js_1 = require("./utils.js");
|
|
48
|
-
// ============================================================================
|
|
49
|
-
// Helpers
|
|
50
|
-
// ============================================================================
|
|
51
|
-
/** Max content length per message in 'get' output to prevent context blowout */
|
|
52
|
-
const MAX_MESSAGE_CONTENT_LENGTH = 2000;
|
|
53
|
-
/**
|
|
54
|
-
* Cached fallback SessionHistory instance — created once per process via
|
|
55
|
-
* dynamic import of @aria/cli's SessionHistory class. This avoids a hard
|
|
56
|
-
* package dependency (tools → cli) while still giving the tool access to
|
|
57
|
-
* the real SQLite history DB when ctx.sessionHistory isn't wired through.
|
|
58
|
-
*/
|
|
59
|
-
/** Cached fallback SessionHistory — resolved once per process via dynamic import. */
|
|
60
|
-
let _fallbackSessionHistory;
|
|
61
|
-
let _fallbackPromise = null;
|
|
62
|
-
async function resolveFallbackSessionHistory() {
|
|
63
|
-
if (_fallbackSessionHistory !== undefined)
|
|
64
|
-
return _fallbackSessionHistory;
|
|
65
|
-
if (_fallbackPromise)
|
|
66
|
-
return _fallbackPromise;
|
|
67
|
-
_fallbackPromise = (async () => {
|
|
68
|
-
try {
|
|
69
|
-
// Dynamic import of @aria/cli (optionalDependency, ESM-only).
|
|
70
|
-
// Using a variable prevents TS from resolving the specifier statically
|
|
71
|
-
// and from downleveling to require() in CJS output.
|
|
72
|
-
const _specifier = "@aria-cli/cli";
|
|
73
|
-
const mod = (await Promise.resolve(`${_specifier}`).then(s => __importStar(require(s))));
|
|
74
|
-
const SessionHistory = mod.SessionHistory;
|
|
75
|
-
const ariaHome = process.env.ARIA_HOME ?? path.join(os.homedir(), ".aria");
|
|
76
|
-
// Determine active arion from config or default to "ARIA"
|
|
77
|
-
let arionName = "ARIA";
|
|
78
|
-
try {
|
|
79
|
-
const { readFileSync, existsSync } = await Promise.resolve().then(() => __importStar(require("node:fs")));
|
|
80
|
-
const configPath = path.join(ariaHome, "config.json");
|
|
81
|
-
if (existsSync(configPath)) {
|
|
82
|
-
const raw = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
83
|
-
if (raw.activeArion)
|
|
84
|
-
arionName = raw.activeArion;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// Ignore config read errors
|
|
89
|
-
}
|
|
90
|
-
const dbPath = SessionHistory.resolvePerArionPath(ariaHome, arionName);
|
|
91
|
-
_fallbackSessionHistory = new SessionHistory(dbPath);
|
|
92
|
-
return _fallbackSessionHistory;
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// @aria/cli not available (e.g. isolated worker) — no fallback
|
|
96
|
-
_fallbackSessionHistory = null;
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
})();
|
|
100
|
-
return _fallbackPromise;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Get the SessionHistoryRef — from ToolContext if wired, otherwise create
|
|
104
|
-
* a fallback instance by dynamically importing @aria/cli's SessionHistory.
|
|
105
|
-
*/
|
|
106
|
-
async function getSessionHistory(ctx) {
|
|
107
|
-
if (ctx.sessionHistory)
|
|
108
|
-
return ctx.sessionHistory;
|
|
109
|
-
return resolveFallbackSessionHistory();
|
|
110
|
-
}
|
|
111
|
-
function formatSessions(sessions) {
|
|
112
|
-
return sessions.map((s) => ({
|
|
113
|
-
id: s.id,
|
|
114
|
-
title: s.title,
|
|
115
|
-
arion: s.arion,
|
|
116
|
-
model: s.model,
|
|
117
|
-
messageCount: s.messageCount,
|
|
118
|
-
updatedAt: s.updatedAt.toISOString(),
|
|
119
|
-
completedAt: s.completedAt?.toISOString(),
|
|
120
|
-
preview: s.preview,
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
function truncateContent(content, max) {
|
|
124
|
-
if (content.length <= max)
|
|
125
|
-
return content;
|
|
126
|
-
return content.slice(0, max - 3) + "...";
|
|
127
|
-
}
|
|
128
|
-
function resolveSessionId(sh, rawId) {
|
|
129
|
-
// Try exact match first (full UUID), then prefix
|
|
130
|
-
if (rawId.length === 36) {
|
|
131
|
-
const session = sh.getSession(rawId);
|
|
132
|
-
return session ? rawId : null;
|
|
133
|
-
}
|
|
134
|
-
return sh.findSessionByPrefix(rawId);
|
|
135
|
-
}
|
|
136
|
-
// ============================================================================
|
|
137
|
-
// Main Executor
|
|
138
|
-
// ============================================================================
|
|
139
|
-
/**
|
|
140
|
-
* Execute a session_history action.
|
|
141
|
-
*/
|
|
142
|
-
async function executeSessionHistory(input, ctx) {
|
|
143
|
-
if (ctx.abortSignal?.aborted)
|
|
144
|
-
return (0, utils_js_1.fail)("Operation cancelled");
|
|
145
|
-
if (!input.action) {
|
|
146
|
-
return (0, utils_js_1.fail)("action is required. Valid actions: list, search, get, current, stats, delete, set_title");
|
|
147
|
-
}
|
|
148
|
-
const sh = await getSessionHistory(ctx);
|
|
149
|
-
if (!sh) {
|
|
150
|
-
return (0, utils_js_1.fail)("Session history is not available in this context");
|
|
151
|
-
}
|
|
152
|
-
try {
|
|
153
|
-
switch (input.action) {
|
|
154
|
-
case "list":
|
|
155
|
-
return executeList(input, sh);
|
|
156
|
-
case "search":
|
|
157
|
-
return executeSearch(input, sh);
|
|
158
|
-
case "get":
|
|
159
|
-
return executeGet(input, sh);
|
|
160
|
-
case "current":
|
|
161
|
-
return executeCurrent(ctx, sh);
|
|
162
|
-
case "stats":
|
|
163
|
-
return executeStats(sh);
|
|
164
|
-
case "delete":
|
|
165
|
-
return executeDelete(input, sh);
|
|
166
|
-
case "set_title":
|
|
167
|
-
return executeSetTitle(input, sh);
|
|
168
|
-
default:
|
|
169
|
-
return (0, utils_js_1.fail)(`Unknown action "${input.action}". Valid actions: list, search, get, current, stats, delete, set_title`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
catch (err) {
|
|
173
|
-
return (0, utils_js_1.fail)((0, utils_js_1.getErrorMessage)(err));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
// ============================================================================
|
|
177
|
-
// Action Implementations
|
|
178
|
-
// ============================================================================
|
|
179
|
-
function executeList(input, sh) {
|
|
180
|
-
const limit = input.limit ?? 20;
|
|
181
|
-
const offset = input.offset ?? 0;
|
|
182
|
-
const sessions = sh.listSessions(limit, offset);
|
|
183
|
-
const formatted = formatSessions(sessions);
|
|
184
|
-
const output = {
|
|
185
|
-
sessions: formatted,
|
|
186
|
-
total: formatted.length,
|
|
187
|
-
limit,
|
|
188
|
-
offset,
|
|
189
|
-
};
|
|
190
|
-
if (formatted.length === 0) {
|
|
191
|
-
return (0, utils_js_1.success)("No sessions found", output);
|
|
192
|
-
}
|
|
193
|
-
const summaryLines = formatted.map((s) => `• ${s.id.slice(0, 8)}… | ${s.title || "(untitled)"} | ${s.messageCount} msgs | ${s.arion} | ${s.updatedAt.slice(0, 10)}`);
|
|
194
|
-
return (0, utils_js_1.success)(`Found ${formatted.length} session(s):\n${summaryLines.join("\n")}`, output);
|
|
195
|
-
}
|
|
196
|
-
function executeSearch(input, sh) {
|
|
197
|
-
if (!input.query || input.query.trim() === "") {
|
|
198
|
-
return (0, utils_js_1.fail)("query is required for 'search' action");
|
|
199
|
-
}
|
|
200
|
-
const limit = input.limit ?? 20;
|
|
201
|
-
const offset = input.offset ?? 0;
|
|
202
|
-
const sessions = sh.searchSessionsFts(input.query, limit, offset);
|
|
203
|
-
const formatted = formatSessions(sessions);
|
|
204
|
-
const output = {
|
|
205
|
-
sessions: formatted,
|
|
206
|
-
total: formatted.length,
|
|
207
|
-
limit,
|
|
208
|
-
offset,
|
|
209
|
-
};
|
|
210
|
-
if (formatted.length === 0) {
|
|
211
|
-
return (0, utils_js_1.success)(`No sessions found matching "${input.query}"`, output);
|
|
212
|
-
}
|
|
213
|
-
const summaryLines = formatted.map((s) => `• ${s.id.slice(0, 8)}… | ${s.title || "(untitled)"} | ${s.messageCount} msgs | ${s.arion} | ${s.updatedAt.slice(0, 10)}`);
|
|
214
|
-
return (0, utils_js_1.success)(`Found ${formatted.length} session(s) matching "${input.query}":\n${summaryLines.join("\n")}`, output);
|
|
215
|
-
}
|
|
216
|
-
function executeGet(input, sh) {
|
|
217
|
-
if (!input.sessionId || input.sessionId.trim() === "") {
|
|
218
|
-
return (0, utils_js_1.fail)("sessionId is required for 'get' action");
|
|
219
|
-
}
|
|
220
|
-
const resolvedId = resolveSessionId(sh, input.sessionId);
|
|
221
|
-
if (!resolvedId) {
|
|
222
|
-
return (0, utils_js_1.fail)(`Session not found for ID/prefix "${input.sessionId}"`);
|
|
223
|
-
}
|
|
224
|
-
const session = sh.getSession(resolvedId);
|
|
225
|
-
if (!session) {
|
|
226
|
-
return (0, utils_js_1.fail)(`Session ${resolvedId} not found`);
|
|
227
|
-
}
|
|
228
|
-
const messageLimit = input.messageLimit ?? 50;
|
|
229
|
-
// Take the last N messages to avoid context blowout
|
|
230
|
-
const messagesSlice = session.messages.slice(-messageLimit);
|
|
231
|
-
const formattedMessages = messagesSlice.map((m) => ({
|
|
232
|
-
role: m.role,
|
|
233
|
-
content: truncateContent(m.content, MAX_MESSAGE_CONTENT_LENGTH),
|
|
234
|
-
createdAt: m.createdAt.toISOString(),
|
|
235
|
-
toolCallId: m.toolCallId,
|
|
236
|
-
}));
|
|
237
|
-
// Also fetch metrics if available (getRunMetrics may not exist on all impls)
|
|
238
|
-
let metrics;
|
|
239
|
-
try {
|
|
240
|
-
const rawMetrics = sh.getRunMetrics?.(resolvedId) ?? [];
|
|
241
|
-
metrics =
|
|
242
|
-
rawMetrics.length > 0
|
|
243
|
-
? rawMetrics.map((rm) => ({
|
|
244
|
-
turnCount: rm.turnCount,
|
|
245
|
-
inputTokens: rm.inputTokens,
|
|
246
|
-
outputTokens: rm.outputTokens,
|
|
247
|
-
estimatedCost: rm.estimatedCost,
|
|
248
|
-
wallTimeMs: rm.wallTimeMs,
|
|
249
|
-
}))
|
|
250
|
-
: undefined;
|
|
251
|
-
}
|
|
252
|
-
catch {
|
|
253
|
-
// Non-critical — metrics may not be available
|
|
254
|
-
}
|
|
255
|
-
const output = {
|
|
256
|
-
id: session.id,
|
|
257
|
-
arion: session.arion,
|
|
258
|
-
model: session.model,
|
|
259
|
-
messageCount: session.messages.length,
|
|
260
|
-
messages: formattedMessages,
|
|
261
|
-
metrics,
|
|
262
|
-
};
|
|
263
|
-
const truncNote = session.messages.length > messageLimit
|
|
264
|
-
? ` (showing last ${messageLimit} of ${session.messages.length})`
|
|
265
|
-
: "";
|
|
266
|
-
return (0, utils_js_1.success)(`Session ${session.id.slice(0, 8)}… | ${session.arion} | ${session.model} | ${session.messages.length} messages${truncNote}`, output);
|
|
267
|
-
}
|
|
268
|
-
function executeCurrent(ctx, sh) {
|
|
269
|
-
if (!ctx.currentSessionId) {
|
|
270
|
-
return (0, utils_js_1.fail)("No current session ID available");
|
|
271
|
-
}
|
|
272
|
-
const output = {
|
|
273
|
-
sessionId: ctx.currentSessionId,
|
|
274
|
-
};
|
|
275
|
-
// Try to get session details if available
|
|
276
|
-
const session = sh.getSession(ctx.currentSessionId);
|
|
277
|
-
if (session) {
|
|
278
|
-
return (0, utils_js_1.success)(`Current session: ${session.id.slice(0, 8)}… | ${session.arion} | ${session.model} | ${session.messages.length} messages`, {
|
|
279
|
-
...output,
|
|
280
|
-
arion: session.arion,
|
|
281
|
-
model: session.model,
|
|
282
|
-
messageCount: session.messages.length,
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
return (0, utils_js_1.success)(`Current session: ${ctx.currentSessionId}`, output);
|
|
286
|
-
}
|
|
287
|
-
function executeStats(sh) {
|
|
288
|
-
const totalSessions = sh.getSessionCount?.() ?? 0;
|
|
289
|
-
const incompleteSessions = (sh.getIncompleteSessions?.(1000) ?? []).length;
|
|
290
|
-
const output = {
|
|
291
|
-
totalSessions,
|
|
292
|
-
incompleteSessions,
|
|
293
|
-
};
|
|
294
|
-
return (0, utils_js_1.success)(`Session stats: ${totalSessions} total, ${incompleteSessions} incomplete, ${totalSessions - incompleteSessions} completed`, output);
|
|
295
|
-
}
|
|
296
|
-
function executeDelete(input, sh) {
|
|
297
|
-
if (!input.sessionId || input.sessionId.trim() === "") {
|
|
298
|
-
return (0, utils_js_1.fail)("sessionId is required for 'delete' action");
|
|
299
|
-
}
|
|
300
|
-
const resolvedId = resolveSessionId(sh, input.sessionId);
|
|
301
|
-
if (!resolvedId) {
|
|
302
|
-
return (0, utils_js_1.fail)(`Session not found for ID/prefix "${input.sessionId}"`);
|
|
303
|
-
}
|
|
304
|
-
sh.deleteSession(resolvedId);
|
|
305
|
-
return (0, utils_js_1.success)(`Deleted session ${resolvedId}`);
|
|
306
|
-
}
|
|
307
|
-
function executeSetTitle(input, sh) {
|
|
308
|
-
if (!input.sessionId || input.sessionId.trim() === "") {
|
|
309
|
-
return (0, utils_js_1.fail)("sessionId is required for 'set_title' action");
|
|
310
|
-
}
|
|
311
|
-
if (!input.title || input.title.trim() === "") {
|
|
312
|
-
return (0, utils_js_1.fail)("title is required for 'set_title' action");
|
|
313
|
-
}
|
|
314
|
-
const resolvedId = resolveSessionId(sh, input.sessionId);
|
|
315
|
-
if (!resolvedId) {
|
|
316
|
-
return (0, utils_js_1.fail)(`Session not found for ID/prefix "${input.sessionId}"`);
|
|
317
|
-
}
|
|
318
|
-
sh.setSessionTitle(resolvedId, input.title);
|
|
319
|
-
return (0, utils_js_1.success)(`Set title of session ${resolvedId.slice(0, 8)}… to "${input.title}"`);
|
|
320
|
-
}
|