@keystrokehq/keystroke 0.0.160 → 0.0.161
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/action.cjs +1 -1
- package/dist/action.mjs +1 -1
- package/dist/agent.cjs +115 -42
- package/dist/agent.cjs.map +1 -1
- package/dist/agent.d.cts +1 -1
- package/dist/agent.d.mts +1 -1
- package/dist/agent.mjs +115 -42
- package/dist/agent.mjs.map +1 -1
- package/dist/credentials.cjs +1 -1
- package/dist/credentials.mjs +1 -1
- package/dist/{dist-DM1Na5CA.mjs → dist-BIbZjRd7.mjs} +3 -1
- package/dist/dist-BIbZjRd7.mjs.map +1 -0
- package/dist/{dist-C8t_Snfd.mjs → dist-CQH7Ircq.mjs} +3 -3
- package/dist/{dist-C8t_Snfd.mjs.map → dist-CQH7Ircq.mjs.map} +1 -1
- package/dist/{dist-BAzfOMfz.mjs → dist-DXzvN8aq.mjs} +210 -6
- package/dist/{dist-BAzfOMfz.mjs.map → dist-DXzvN8aq.mjs.map} +1 -1
- package/dist/{dist-BkkOal_e.cjs → dist-DiqTL3ZF.cjs} +233 -5
- package/dist/{dist-BkkOal_e.cjs.map → dist-DiqTL3ZF.cjs.map} +1 -1
- package/dist/{dist-DFXV_Io5.cjs → dist-lWDTuftA.cjs} +3 -1
- package/dist/dist-lWDTuftA.cjs.map +1 -0
- package/dist/{dist-fqWJTm0u.cjs → dist-mblcM3Bv.cjs} +3 -3
- package/dist/{dist-fqWJTm0u.cjs.map → dist-mblcM3Bv.cjs.map} +1 -1
- package/dist/index-CaW3JRFU.d.cts.map +1 -1
- package/dist/index-CaW3JRFU.d.mts.map +1 -1
- package/dist/{index-DaxRr-x9.d.cts → index-DIm3_7or.d.cts} +14 -2
- package/dist/index-DIm3_7or.d.cts.map +1 -0
- package/dist/{index-BbwuSuxl.d.mts → index-IVnunyAF.d.mts} +14 -2
- package/dist/index-IVnunyAF.d.mts.map +1 -0
- package/dist/{mistral-BRIv8KXE.mjs → mistral-CDuUHkpO.mjs} +2 -2
- package/dist/{mistral-BRIv8KXE.mjs.map → mistral-CDuUHkpO.mjs.map} +1 -1
- package/dist/{mistral-DUKMgFL1.cjs → mistral-DuG294d1.cjs} +2 -2
- package/dist/{mistral-DUKMgFL1.cjs.map → mistral-DuG294d1.cjs.map} +1 -1
- package/dist/{sse-Ba5sWI6l.mjs → sse-BBd2aLiw.mjs} +2 -2
- package/dist/{sse-Ba5sWI6l.mjs.map → sse-BBd2aLiw.mjs.map} +1 -1
- package/dist/{sse-jvB09Ct-.cjs → sse-DCsg_ELF.cjs} +2 -2
- package/dist/{sse-jvB09Ct-.cjs.map → sse-DCsg_ELF.cjs.map} +1 -1
- package/dist/trigger.cjs +1 -1
- package/dist/trigger.d.cts +1 -1
- package/dist/trigger.d.mts +1 -1
- package/dist/trigger.mjs +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.mjs +1 -1
- package/package.json +1 -1
- package/dist/dist-DFXV_Io5.cjs.map +0 -1
- package/dist/dist-DM1Na5CA.mjs.map +0 -1
- package/dist/index-BbwuSuxl.d.mts.map +0 -1
- package/dist/index-DaxRr-x9.d.cts.map +0 -1
package/dist/action.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-lWDTuftA.cjs");
|
|
3
3
|
exports.CREDENTIAL_SCOPE_LEVELS = require_dist.CREDENTIAL_SCOPE_LEVELS;
|
|
4
4
|
exports.DEFAULT_CREDENTIAL_RESOLUTION_CHAIN = require_dist.DEFAULT_CREDENTIAL_RESOLUTION_CHAIN;
|
|
5
5
|
exports.actionCoreSchema = require_dist.actionCoreSchema;
|
package/dist/action.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as normalizeCredentialList, S as isCredentialInput, a as getActionCredentialRequirements, b as credentialInputSchema, c as isAction, d as registerWorkflowRunGetter, f as resolveActionTool, g as CREDENTIAL_SCOPE_LEVELS, h as runWithinActionExecution, i as executeAction, l as isStepInvocation, m as runWithRunSignal, n as createStepInvocation, o as getRunSignal, p as runOutsideActionExecution, r as defineAction, s as getWorkflowRunHandle, t as actionCoreSchema, u as isWithinActionExecution, v as DEFAULT_CREDENTIAL_RESOLUTION_CHAIN, w as toCredentialRequirement, x as defineCredential, y as credential } from "./dist-
|
|
1
|
+
import { C as normalizeCredentialList, S as isCredentialInput, a as getActionCredentialRequirements, b as credentialInputSchema, c as isAction, d as registerWorkflowRunGetter, f as resolveActionTool, g as CREDENTIAL_SCOPE_LEVELS, h as runWithinActionExecution, i as executeAction, l as isStepInvocation, m as runWithRunSignal, n as createStepInvocation, o as getRunSignal, p as runOutsideActionExecution, r as defineAction, s as getWorkflowRunHandle, t as actionCoreSchema, u as isWithinActionExecution, v as DEFAULT_CREDENTIAL_RESOLUTION_CHAIN, w as toCredentialRequirement, x as defineCredential, y as credential } from "./dist-BIbZjRd7.mjs";
|
|
2
2
|
export { CREDENTIAL_SCOPE_LEVELS, DEFAULT_CREDENTIAL_RESOLUTION_CHAIN, actionCoreSchema, createStepInvocation, credential, credentialInputSchema, defineAction, defineCredential, executeAction, getActionCredentialRequirements, getRunSignal, getWorkflowRunHandle, isAction, isCredentialInput, isStepInvocation, isWithinActionExecution, normalizeCredentialList, registerWorkflowRunGetter, resolveActionTool, runOutsideActionExecution, runWithRunSignal, runWithinActionExecution, toCredentialRequirement };
|
package/dist/agent.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_dist$1 = require("./dist-DnGkWV6x.cjs");
|
|
3
|
-
const require_dist$2 = require("./dist-
|
|
3
|
+
const require_dist$2 = require("./dist-lWDTuftA.cjs");
|
|
4
4
|
require("./env-api-keys-BFptfIIs.cjs");
|
|
5
5
|
const require_event_stream = require("./event-stream-CS-ls7wC.cjs");
|
|
6
6
|
require("./json-parse-CwSaKHrs.cjs");
|
|
7
|
-
const require_dist$3 = require("./dist-
|
|
7
|
+
const require_dist$3 = require("./dist-DiqTL3ZF.cjs");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_async_hooks = require("node:async_hooks");
|
|
10
10
|
let node_fs = require("node:fs");
|
|
@@ -901,7 +901,7 @@ function loadGoogleVertexProviderModule() {
|
|
|
901
901
|
return googleVertexProviderModulePromise;
|
|
902
902
|
}
|
|
903
903
|
function loadMistralProviderModule() {
|
|
904
|
-
mistralProviderModulePromise ||= Promise.resolve().then(() => require("./mistral-
|
|
904
|
+
mistralProviderModulePromise ||= Promise.resolve().then(() => require("./mistral-DuG294d1.cjs")).then((module) => {
|
|
905
905
|
const provider = module;
|
|
906
906
|
return {
|
|
907
907
|
stream: provider.streamMistral,
|
|
@@ -13744,13 +13744,32 @@ function runWithinAgentPromptExecution(fn) {
|
|
|
13744
13744
|
function isWithinAgentPromptExecution() {
|
|
13745
13745
|
return executingAgentPrompt.getStore() === true;
|
|
13746
13746
|
}
|
|
13747
|
+
function llmUsageFromAssistantMessage(message) {
|
|
13748
|
+
const usage = message.usage;
|
|
13749
|
+
if (!usage) return null;
|
|
13750
|
+
return {
|
|
13751
|
+
label: message.responseModel ?? message.model ?? "unknown-model",
|
|
13752
|
+
quantity: usage.totalTokens,
|
|
13753
|
+
amount: usage.cost.total,
|
|
13754
|
+
metadata: {
|
|
13755
|
+
provider: message.provider,
|
|
13756
|
+
model: message.model,
|
|
13757
|
+
responseModel: message.responseModel ?? null,
|
|
13758
|
+
input: usage.input,
|
|
13759
|
+
output: usage.output,
|
|
13760
|
+
cacheRead: usage.cacheRead,
|
|
13761
|
+
cacheWrite: usage.cacheWrite,
|
|
13762
|
+
cost: usage.cost
|
|
13763
|
+
}
|
|
13764
|
+
};
|
|
13765
|
+
}
|
|
13747
13766
|
const SKIPPED_EVENT_TYPES = new Set(["message_update", "tool_execution_update"]);
|
|
13748
13767
|
function shouldPersistAgentEvent(event) {
|
|
13749
13768
|
return !SKIPPED_EVENT_TYPES.has(event.type);
|
|
13750
13769
|
}
|
|
13751
13770
|
async function persistSessionEvent(options) {
|
|
13752
|
-
const { sessionId, memoryConfig, eventType, payload } = options;
|
|
13753
|
-
const seq = await require_dist$3.appendEvent(sessionId, eventType, payload);
|
|
13771
|
+
const { sessionId, runId, memoryConfig, eventType, payload } = options;
|
|
13772
|
+
const seq = await require_dist$3.appendEvent(sessionId, eventType, payload, { runId });
|
|
13754
13773
|
if (memoryConfig) try {
|
|
13755
13774
|
await appendSessionLine(memoryConfig, sessionId, {
|
|
13756
13775
|
seq,
|
|
@@ -13763,15 +13782,19 @@ async function persistSessionEvent(options) {
|
|
|
13763
13782
|
}
|
|
13764
13783
|
return seq;
|
|
13765
13784
|
}
|
|
13766
|
-
async function persistAgentEvent(sessionId, event,
|
|
13785
|
+
async function persistAgentEvent(sessionId, event, options) {
|
|
13786
|
+
const runId = options?.runId ?? null;
|
|
13787
|
+
const memoryConfig = options?.memoryConfig;
|
|
13767
13788
|
await persistSessionEvent({
|
|
13768
13789
|
sessionId,
|
|
13790
|
+
runId,
|
|
13769
13791
|
memoryConfig,
|
|
13770
13792
|
eventType: event.type,
|
|
13771
13793
|
payload: event
|
|
13772
13794
|
});
|
|
13773
13795
|
if (event.type === "message_end") await persistSessionEvent({
|
|
13774
13796
|
sessionId,
|
|
13797
|
+
runId,
|
|
13775
13798
|
memoryConfig,
|
|
13776
13799
|
eventType: require_dist$3.MESSAGE_EVENT_TYPE,
|
|
13777
13800
|
payload: event.message
|
|
@@ -13789,49 +13812,93 @@ async function prepareAgentSession(agentId, sessionId, options) {
|
|
|
13789
13812
|
async function runAgentPrompt(agent, agentId, input, options = {}) {
|
|
13790
13813
|
const { sessionId } = await prepareAgentSession(agentId, input.sessionId);
|
|
13791
13814
|
const priorMessages = await require_dist$3.listMessageEvents(sessionId);
|
|
13815
|
+
const runSource = await require_dist$3.resolveAgentRunSourceFromSession(sessionId);
|
|
13816
|
+
const runId = await require_dist$3.createAgentRun({
|
|
13817
|
+
sessionId,
|
|
13818
|
+
agentId,
|
|
13819
|
+
sourceKind: runSource.sourceKind,
|
|
13820
|
+
sourceId: runSource.sourceId,
|
|
13821
|
+
ranByUserId: runSource.ranByUserId
|
|
13822
|
+
});
|
|
13792
13823
|
const runPrompt = async () => {
|
|
13793
|
-
|
|
13794
|
-
|
|
13795
|
-
|
|
13796
|
-
|
|
13797
|
-
|
|
13798
|
-
...options,
|
|
13799
|
-
credentials: require_dist$3.buildCredentialRunContext({ request: {
|
|
13800
|
-
...options.credentials,
|
|
13801
|
-
...input.context
|
|
13802
|
-
} })
|
|
13803
|
-
});
|
|
13804
|
-
const memoryConfig = runtime.memory?.config;
|
|
13805
|
-
const unsubscribe = runtime.pi.subscribe(async (event) => {
|
|
13806
|
-
if (!shouldPersistAgentEvent(event)) return;
|
|
13807
|
-
await persistAgentEvent(sessionId, event, memoryConfig);
|
|
13808
|
-
});
|
|
13824
|
+
let promptError = null;
|
|
13825
|
+
let runtime;
|
|
13826
|
+
let unsubscribe;
|
|
13827
|
+
let onAbort;
|
|
13828
|
+
const pendingHandlers = /* @__PURE__ */ new Set();
|
|
13809
13829
|
const signal = require_dist$2.getRunSignal();
|
|
13810
|
-
const onAbort = () => runtime.pi.abort();
|
|
13811
|
-
if (signal.aborted) onAbort();
|
|
13812
|
-
else signal.addEventListener("abort", onAbort, { once: true });
|
|
13813
13830
|
try {
|
|
13814
|
-
|
|
13815
|
-
|
|
13831
|
+
runtime = await agent.buildRuntime({
|
|
13832
|
+
agentId,
|
|
13833
|
+
sessionId,
|
|
13834
|
+
messages: priorMessages
|
|
13835
|
+
}, {
|
|
13836
|
+
...options,
|
|
13837
|
+
credentials: require_dist$3.buildCredentialRunContext({ request: {
|
|
13838
|
+
...options.credentials,
|
|
13839
|
+
...input.context
|
|
13840
|
+
} })
|
|
13841
|
+
});
|
|
13842
|
+
const activeRuntime = runtime;
|
|
13843
|
+
const memoryConfig = activeRuntime.memory?.config;
|
|
13844
|
+
unsubscribe = activeRuntime.pi.subscribe((event) => {
|
|
13845
|
+
if (!shouldPersistAgentEvent(event)) return;
|
|
13846
|
+
const tracked = (async () => {
|
|
13847
|
+
await persistAgentEvent(sessionId, event, {
|
|
13848
|
+
runId,
|
|
13849
|
+
memoryConfig
|
|
13850
|
+
});
|
|
13851
|
+
if (event.type === "message_end" && event.message.role === "assistant") {
|
|
13852
|
+
const usage = llmUsageFromAssistantMessage(event.message);
|
|
13853
|
+
if (usage) await require_dist$3.recordLlmUsageFromAssistantMessage({
|
|
13854
|
+
runId,
|
|
13855
|
+
usage
|
|
13856
|
+
});
|
|
13857
|
+
}
|
|
13858
|
+
})().finally(() => {
|
|
13859
|
+
pendingHandlers.delete(tracked);
|
|
13860
|
+
});
|
|
13861
|
+
pendingHandlers.add(tracked);
|
|
13862
|
+
return tracked;
|
|
13863
|
+
});
|
|
13864
|
+
onAbort = () => activeRuntime.pi.abort();
|
|
13865
|
+
if (signal.aborted) onAbort();
|
|
13866
|
+
else signal.addEventListener("abort", onAbort, { once: true });
|
|
13867
|
+
const snapshot = await require_dist$3.captureConsole(async () => prompt(activeRuntime, input.message));
|
|
13868
|
+
const credentialError = activeRuntime.takeCredentialError?.();
|
|
13816
13869
|
if (credentialError && require_dist$3.isCredentialError(credentialError)) throw credentialError;
|
|
13817
13870
|
await require_dist$3.touchSession(sessionId);
|
|
13818
13871
|
return {
|
|
13819
13872
|
sessionId,
|
|
13873
|
+
runId,
|
|
13820
13874
|
messages: messages(snapshot),
|
|
13821
13875
|
error: errorMessage(snapshot) ?? null,
|
|
13822
13876
|
canceled: signal.aborted
|
|
13823
13877
|
};
|
|
13878
|
+
} catch (error) {
|
|
13879
|
+
promptError = error;
|
|
13880
|
+
throw error;
|
|
13824
13881
|
} finally {
|
|
13825
|
-
signal.removeEventListener("abort", onAbort);
|
|
13826
|
-
unsubscribe();
|
|
13827
|
-
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13882
|
+
if (onAbort) signal.removeEventListener("abort", onAbort);
|
|
13883
|
+
unsubscribe?.();
|
|
13884
|
+
await Promise.allSettled([...pendingHandlers]);
|
|
13885
|
+
if (runtime) {
|
|
13886
|
+
try {
|
|
13887
|
+
runtime.memory?.reindexSessions();
|
|
13888
|
+
} catch (err) {
|
|
13889
|
+
console.error("[memory] session reindex failed:", err);
|
|
13890
|
+
}
|
|
13891
|
+
runtime.memory?.close();
|
|
13892
|
+
await Promise.all(runtime.mcpConnections.map((connection) => connection.close()));
|
|
13893
|
+
await runtime.sandbox.dispose();
|
|
13894
|
+
}
|
|
13895
|
+
const finishedAt = /* @__PURE__ */ new Date();
|
|
13896
|
+
await require_dist$3.finalizeAgentRunFromPrompt({
|
|
13897
|
+
runId,
|
|
13898
|
+
status: promptError ? "failed" : signal.aborted ? "canceled" : "completed",
|
|
13899
|
+
error: promptError,
|
|
13900
|
+
finishedAt
|
|
13901
|
+
});
|
|
13835
13902
|
}
|
|
13836
13903
|
};
|
|
13837
13904
|
if (options.skipAgentSessionSpan) return runWithinAgentPromptExecution(runPrompt);
|
|
@@ -14247,7 +14314,11 @@ function resolvePromptReasoning(thinkingLevel) {
|
|
|
14247
14314
|
function formatValidationError(error) {
|
|
14248
14315
|
return error instanceof Error ? error.message : String(error);
|
|
14249
14316
|
}
|
|
14250
|
-
async function
|
|
14317
|
+
async function recordUsageFromMessage(message, hooks) {
|
|
14318
|
+
const usage = llmUsageFromAssistantMessage(message);
|
|
14319
|
+
if (usage) await hooks?.onUsage?.(usage);
|
|
14320
|
+
}
|
|
14321
|
+
async function runPromptText(opts, hooks) {
|
|
14251
14322
|
const model = resolvePromptModel(opts.model);
|
|
14252
14323
|
const reasoning = resolvePromptReasoning(opts.thinkingLevel);
|
|
14253
14324
|
const message = await completeSimple(model, {
|
|
@@ -14263,9 +14334,10 @@ async function runPromptText(opts) {
|
|
|
14263
14334
|
...opts.maxTokens !== void 0 ? { maxTokens: opts.maxTokens } : {}
|
|
14264
14335
|
});
|
|
14265
14336
|
if (message.stopReason === "error") throw new Error(message.errorMessage ?? "LLM request failed");
|
|
14337
|
+
await recordUsageFromMessage(message, hooks);
|
|
14266
14338
|
return extractText(message);
|
|
14267
14339
|
}
|
|
14268
|
-
async function runPromptObject(opts) {
|
|
14340
|
+
async function runPromptObject(opts, hooks) {
|
|
14269
14341
|
const schema = opts.outputSchema;
|
|
14270
14342
|
if (!schema) throw new Error("outputSchema is required for structured LLM output");
|
|
14271
14343
|
const model = resolvePromptModel(opts.model);
|
|
@@ -14295,6 +14367,7 @@ async function runPromptObject(opts) {
|
|
|
14295
14367
|
...toolChoice !== void 0 ? { toolChoice } : {}
|
|
14296
14368
|
});
|
|
14297
14369
|
if (message.stopReason === "error") throw new Error(message.errorMessage ?? "LLM request failed");
|
|
14370
|
+
await recordUsageFromMessage(message, hooks);
|
|
14298
14371
|
toolCall = extractToolCall(message);
|
|
14299
14372
|
if (!toolCall) throw new Error("Model did not return a tool call");
|
|
14300
14373
|
return schema.parse(unwrap(toolCall.arguments));
|
|
@@ -14323,9 +14396,9 @@ async function runPromptObject(opts) {
|
|
|
14323
14396
|
throw lastError instanceof Error ? lastError : new Error(String(lastError));
|
|
14324
14397
|
}
|
|
14325
14398
|
/** One-shot LLM generation for workflow `promptLlm` steps (pi-ai transport). */
|
|
14326
|
-
async function runLlm(opts) {
|
|
14327
|
-
if (opts.outputSchema) return runPromptObject(opts);
|
|
14328
|
-
return runPromptText(opts);
|
|
14399
|
+
async function runLlm(opts, hooks) {
|
|
14400
|
+
if (opts.outputSchema) return runPromptObject(opts, hooks);
|
|
14401
|
+
return runPromptText(opts, hooks);
|
|
14329
14402
|
}
|
|
14330
14403
|
//#endregion
|
|
14331
14404
|
exports.AgentCreateInputSchema = AgentCreateInputSchema;
|