@roackb2/heddle 0.0.35 → 0.0.37
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/src/cli/chat/App.d.ts.map +1 -1
- package/dist/src/cli/chat/App.js +94 -80
- package/dist/src/cli/chat/App.js.map +1 -1
- package/dist/src/cli/chat/components/PromptInput.d.ts +5 -0
- package/dist/src/cli/chat/components/PromptInput.d.ts.map +1 -1
- package/dist/src/cli/chat/components/PromptInput.js +131 -85
- package/dist/src/cli/chat/components/PromptInput.js.map +1 -1
- package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.d.ts +6 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.js +38 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts +48 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.js +171 -0
- package/dist/src/cli/chat/hooks/tui-agent-turn-result.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts +24 -0
- package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-compaction-status.js +65 -0
- package/dist/src/cli/chat/hooks/tui-compaction-status.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts +28 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.js +41 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell-result.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts +22 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell.js +127 -0
- package/dist/src/cli/chat/hooks/tui-direct-shell.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-drift-observer.d.ts +13 -0
- package/dist/src/cli/chat/hooks/tui-drift-observer.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-drift-observer.js +36 -0
- package/dist/src/cli/chat/hooks/tui-drift-observer.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts +31 -0
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.js +83 -0
- package/dist/src/cli/chat/hooks/tui-ordinary-turn.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts +23 -0
- package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-run-loop-events.js +74 -0
- package/dist/src/cli/chat/hooks/tui-run-loop-events.js.map +1 -0
- package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts +8 -0
- package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/tui-tool-approval.js +37 -0
- package/dist/src/cli/chat/hooks/tui-tool-approval.js.map +1 -0
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.js +59 -551
- package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
- package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts +58 -0
- package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -0
- package/dist/src/cli/chat/hooks/useChatStatusSummary.js +85 -0
- package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -0
- package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.js +1 -0
- package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +1 -1
- package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/format.js +21 -0
- package/dist/src/cli/chat/utils/format.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +5 -3
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/core/agent/run-agent.js +9 -8
- package/dist/src/core/agent/run-agent.js.map +1 -1
- package/dist/src/core/agent/tool-dispatch.d.ts.map +1 -1
- package/dist/src/core/agent/tool-dispatch.js +8 -7
- package/dist/src/core/agent/tool-dispatch.js.map +1 -1
- package/dist/src/core/agent/util.d.ts +0 -4
- package/dist/src/core/agent/util.d.ts.map +1 -1
- package/dist/src/core/agent/util.js +1 -7
- package/dist/src/core/agent/util.js.map +1 -1
- package/dist/src/core/chat/ordinary-turn.d.ts +34 -0
- package/dist/src/core/chat/ordinary-turn.d.ts.map +1 -0
- package/dist/src/core/chat/ordinary-turn.js +274 -0
- package/dist/src/core/chat/ordinary-turn.js.map +1 -0
- package/dist/src/core/chat/session-submit.d.ts +4 -4
- package/dist/src/core/chat/session-submit.d.ts.map +1 -1
- package/dist/src/core/chat/session-submit.js +23 -282
- package/dist/src/core/chat/session-submit.js.map +1 -1
- package/dist/src/core/chat/session-title.d.ts +15 -0
- package/dist/src/core/chat/session-title.d.ts.map +1 -0
- package/dist/src/core/chat/session-title.js +17 -0
- package/dist/src/core/chat/session-title.js.map +1 -0
- package/dist/src/core/chat/session-turn-preflight.d.ts +37 -0
- package/dist/src/core/chat/session-turn-preflight.d.ts.map +1 -0
- package/dist/src/core/chat/session-turn-preflight.js +43 -0
- package/dist/src/core/chat/session-turn-preflight.js.map +1 -0
- package/dist/src/core/chat/session-turn-result.d.ts +36 -0
- package/dist/src/core/chat/session-turn-result.d.ts.map +1 -0
- package/dist/src/core/chat/session-turn-result.js +60 -0
- package/dist/src/core/chat/session-turn-result.js.map +1 -0
- package/dist/src/core/chat/tool-approval-host.d.ts +22 -0
- package/dist/src/core/chat/tool-approval-host.d.ts.map +1 -0
- package/dist/src/core/chat/tool-approval-host.js +14 -0
- package/dist/src/core/chat/tool-approval-host.js.map +1 -0
- package/dist/src/core/chat/turn-host.d.ts +25 -0
- package/dist/src/core/chat/turn-host.d.ts.map +1 -0
- package/dist/src/core/chat/turn-host.js +2 -0
- package/dist/src/core/chat/turn-host.js.map +1 -0
- package/dist/src/core/llm/openai.d.ts +7 -0
- package/dist/src/core/llm/openai.d.ts.map +1 -1
- package/dist/src/core/llm/openai.js +56 -0
- package/dist/src/core/llm/openai.js.map +1 -1
- package/dist/src/core/memory/domain-prompt.d.ts.map +1 -1
- package/dist/src/core/memory/domain-prompt.js +48 -32
- package/dist/src/core/memory/domain-prompt.js.map +1 -1
- package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
- package/dist/src/core/runtime/agent-loop.js +9 -3
- package/dist/src/core/runtime/agent-loop.js.map +1 -1
- package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
- package/dist/src/core/runtime/default-tools.js +1 -0
- package/dist/src/core/runtime/default-tools.js.map +1 -1
- package/dist/src/core/tools/file-edit-core.d.ts.map +1 -1
- package/dist/src/core/tools/file-edit-core.js +21 -2
- package/dist/src/core/tools/file-edit-core.js.map +1 -1
- package/dist/src/core/tools/memory-checkpoint.js +1 -1
- package/dist/src/core/tools/memory-checkpoint.js.map +1 -1
- package/dist/src/core/tools/record-knowledge.js +8 -4
- package/dist/src/core/tools/record-knowledge.js.map +1 -1
- package/dist/src/core/tools/view-image.d.ts.map +1 -1
- package/dist/src/core/tools/view-image.js +23 -58
- package/dist/src/core/tools/view-image.js.map +1 -1
- package/dist/src/core/tools/web-search.d.ts +2 -1
- package/dist/src/core/tools/web-search.d.ts.map +1 -1
- package/dist/src/core/tools/web-search.js +76 -3
- package/dist/src/core/tools/web-search.js.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-session-events.d.ts +26 -0
- package/dist/src/server/features/control-plane/services/chat-session-events.d.ts.map +1 -0
- package/dist/src/server/features/control-plane/services/chat-session-events.js +61 -0
- package/dist/src/server/features/control-plane/services/chat-session-events.js.map +1 -0
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.js +21 -39
- package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import { type CyberLoopKinematicsObserver, type LlmAdapter } from '../../../index.js';
|
|
3
|
+
import type { ChatRuntimeConfig } from '../utils/runtime.js';
|
|
4
|
+
import type { ChatDriftObserverOptions } from './useAgentRun.js';
|
|
5
|
+
export declare function createTuiChatDriftObserver(args: {
|
|
6
|
+
prompt: string;
|
|
7
|
+
referenceAssistantText?: string;
|
|
8
|
+
llm: LlmAdapter;
|
|
9
|
+
runtime: ChatRuntimeConfig;
|
|
10
|
+
logger: Logger;
|
|
11
|
+
options: ChatDriftObserverOptions | undefined;
|
|
12
|
+
}): Promise<CyberLoopKinematicsObserver | undefined>;
|
|
13
|
+
//# sourceMappingURL=tui-drift-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-drift-observer.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-drift-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAqC,KAAK,2BAA2B,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC/C,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAuCnD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createCyberLoopKinematicsObserver } from '../../../index.js';
|
|
2
|
+
import { resolveApiKeyForModel, resolveProviderCredentialSourceForModel } from '../utils/runtime.js';
|
|
3
|
+
export async function createTuiChatDriftObserver(args) {
|
|
4
|
+
const { prompt, referenceAssistantText, llm, runtime, logger, options } = args;
|
|
5
|
+
if (!options?.enabled) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const llmInfo = llm.info;
|
|
9
|
+
const credentialSource = llmInfo?.provider === 'openai' ?
|
|
10
|
+
resolveProviderCredentialSourceForModel(llmInfo.model, runtime)
|
|
11
|
+
: undefined;
|
|
12
|
+
if (credentialSource?.type === 'oauth') {
|
|
13
|
+
const message = 'CyberLoop drift detection requires OpenAI Platform API-key mode for embeddings; active auth is OpenAI account sign-in.';
|
|
14
|
+
logger.debug({ model: llmInfo?.model, credentialSource: credentialSource.type }, message);
|
|
15
|
+
options.onError?.(new Error(message));
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
return await createCyberLoopKinematicsObserver({
|
|
20
|
+
goal: prompt,
|
|
21
|
+
referenceText: referenceAssistantText,
|
|
22
|
+
apiKey: llm.info?.provider === 'openai' ? resolveApiKeyForModel(llm.info.model, runtime) : undefined,
|
|
23
|
+
onAnnotation: options.onAnnotation,
|
|
24
|
+
onError: (error) => {
|
|
25
|
+
logger.debug({ error: error instanceof Error ? error.message : String(error) }, 'CyberLoop drift observer failed');
|
|
26
|
+
options.onError?.(error);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
logger.debug({ error: error instanceof Error ? error.message : String(error) }, 'CyberLoop drift observer unavailable');
|
|
32
|
+
options.onError?.(error);
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=tui-drift-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-drift-observer.js","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-drift-observer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAqD,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,uCAAuC,EAAE,MAAM,qBAAqB,CAAC;AAIrG,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAOhD;IACC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/E,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACvD,uCAAuC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IACZ,IAAI,gBAAgB,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,wHAAwH,CAAC;QACzI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,iCAAiC,CAAC;YAC7C,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,sBAAsB;YACrC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACpG,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACjE,iCAAiC,CAClC,CAAC;gBACF,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACjE,sCAAsC,CACvC,CAAC;QACF,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RunResult } from '../../../index.js';
|
|
2
|
+
import type { ChatSession } from '../state/types.js';
|
|
3
|
+
import type { ChatRuntimeConfig } from '../utils/runtime.js';
|
|
4
|
+
import { createTuiToolApprovalPort } from './tui-tool-approval.js';
|
|
5
|
+
import type { ActionState } from './useAgentRun.js';
|
|
6
|
+
import type { CyberLoopKinematicsObserver } from '../../../index.js';
|
|
7
|
+
type SessionUpdater = (sessionId: string, updater: (session: ChatSession) => ChatSession) => void;
|
|
8
|
+
type ParsePlanState = (output: unknown) => ActionState extends {
|
|
9
|
+
setCurrentPlan: (value: infer T) => void;
|
|
10
|
+
} ? T : never;
|
|
11
|
+
export declare function executeTuiOrdinaryTurn(args: {
|
|
12
|
+
prompt: string;
|
|
13
|
+
displayText?: string;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
runtime: ChatRuntimeConfig;
|
|
16
|
+
state: ActionState;
|
|
17
|
+
updateSessionById: SessionUpdater;
|
|
18
|
+
parsePlanState: ParsePlanState;
|
|
19
|
+
maybeAutoNameSession: (sessionId: string, prompt: string, responseText: string) => void;
|
|
20
|
+
isProjectApproved: Parameters<typeof createTuiToolApprovalPort>[0]['isProjectApproved'];
|
|
21
|
+
rememberProjectApproval: Parameters<typeof createTuiToolApprovalPort>[0]['rememberProjectApproval'];
|
|
22
|
+
driftObserver: CyberLoopKinematicsObserver | undefined;
|
|
23
|
+
turnAbortSignal: AbortSignal;
|
|
24
|
+
leaseOwner: {
|
|
25
|
+
ownerKind: 'tui';
|
|
26
|
+
ownerId: string;
|
|
27
|
+
clientLabel: string;
|
|
28
|
+
};
|
|
29
|
+
}): Promise<RunResult | undefined>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=tui-ordinary-turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-ordinary-turn.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-ordinary-turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,KAAK,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,WAAW,KAAK,IAAI,CAAC;AAElG,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,SAAS;IAAE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,iBAAiB,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,iBAAiB,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACxF,uBAAuB,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACpG,aAAa,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACvD,eAAe,EAAE,WAAW,CAAC;IAC7B,UAAU,EAAE;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAkGjC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { executeOrdinaryChatTurn } from '../../../core/chat/ordinary-turn.js';
|
|
2
|
+
import { createTuiCompactionStatusPort } from './tui-compaction-status.js';
|
|
3
|
+
import { finalizeSuccessfulTuiOrdinaryTurn } from './tui-agent-turn-result.js';
|
|
4
|
+
import { createTuiRunLoopEventAdapter } from './tui-run-loop-events.js';
|
|
5
|
+
import { createTuiToolApprovalPort } from './tui-tool-approval.js';
|
|
6
|
+
export async function executeTuiOrdinaryTurn(args) {
|
|
7
|
+
const { prompt, displayText, sessionId, runtime, state, updateSessionById, parsePlanState, maybeAutoNameSession, isProjectApproved, rememberProjectApproval, driftObserver, turnAbortSignal, leaseOwner, } = args;
|
|
8
|
+
const compactionPort = createTuiCompactionStatusPort({
|
|
9
|
+
state,
|
|
10
|
+
sessionId,
|
|
11
|
+
updateSessionById,
|
|
12
|
+
});
|
|
13
|
+
if (displayText) {
|
|
14
|
+
updateSessionById(sessionId, (session) => ({
|
|
15
|
+
...session,
|
|
16
|
+
messages: [...session.messages, { id: state.nextLocalId(), role: 'user', text: displayText }],
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
const runLoopEvents = createTuiRunLoopEventAdapter({
|
|
20
|
+
state,
|
|
21
|
+
sessionId,
|
|
22
|
+
updateSessionById,
|
|
23
|
+
parsePlanState,
|
|
24
|
+
});
|
|
25
|
+
const approvalPort = createTuiToolApprovalPort({
|
|
26
|
+
state,
|
|
27
|
+
isProjectApproved,
|
|
28
|
+
rememberProjectApproval,
|
|
29
|
+
});
|
|
30
|
+
const result = await executeOrdinaryChatTurn({
|
|
31
|
+
workspaceRoot: runtime.workspaceRoot,
|
|
32
|
+
stateRoot: runtime.stateRoot,
|
|
33
|
+
sessionStoragePath: runtime.sessionCatalogFile,
|
|
34
|
+
sessionId,
|
|
35
|
+
prompt,
|
|
36
|
+
apiKey: runtime.apiKey,
|
|
37
|
+
preferApiKey: runtime.preferApiKey,
|
|
38
|
+
credentialStorePath: runtime.credentialStorePath,
|
|
39
|
+
systemContext: runtime.systemContext,
|
|
40
|
+
memoryMaintenanceMode: 'background',
|
|
41
|
+
host: {
|
|
42
|
+
events: {
|
|
43
|
+
onAgentLoopEvent: (event) => {
|
|
44
|
+
driftObserver?.observer.handleEvent(event);
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
compaction: compactionPort,
|
|
48
|
+
approvals: approvalPort,
|
|
49
|
+
},
|
|
50
|
+
onCompactionStatus: (event) => compactionPort.onFinalCompactionStatus?.(event),
|
|
51
|
+
onAssistantStream: runLoopEvents.onAssistantStream,
|
|
52
|
+
onTraceEvent: runLoopEvents.onTraceEvent,
|
|
53
|
+
shouldStop: () => state.interruptRequestedRef.current,
|
|
54
|
+
abortSignal: turnAbortSignal,
|
|
55
|
+
leaseOwner,
|
|
56
|
+
});
|
|
57
|
+
if (!result) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const { readChatSession } = await import('../state/storage.js');
|
|
61
|
+
const persistedSession = readChatSession(runtime.sessionCatalogFile, sessionId, true);
|
|
62
|
+
if (!persistedSession) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const { latestHistory } = finalizeSuccessfulTuiOrdinaryTurn({
|
|
66
|
+
persistedSession,
|
|
67
|
+
displayText,
|
|
68
|
+
outcome: result.outcome,
|
|
69
|
+
prompt,
|
|
70
|
+
sessionId,
|
|
71
|
+
state,
|
|
72
|
+
maybeAutoNameSession,
|
|
73
|
+
updateSessionById,
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
outcome: result.outcome,
|
|
77
|
+
summary: result.summary,
|
|
78
|
+
transcript: latestHistory,
|
|
79
|
+
trace: [],
|
|
80
|
+
toolResults: [],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=tui-ordinary-turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-ordinary-turn.js","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-ordinary-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TraceEvent } from '../../../index.js';
|
|
2
|
+
import type { ChatSession } from '../state/types.js';
|
|
3
|
+
import type { ActionState } from './useAgentRun.js';
|
|
4
|
+
export type TuiAssistantStreamUpdate = {
|
|
5
|
+
step: number;
|
|
6
|
+
text: string;
|
|
7
|
+
done: boolean;
|
|
8
|
+
};
|
|
9
|
+
type SessionUpdater = (sessionId: string, updater: (session: ChatSession) => ChatSession) => void;
|
|
10
|
+
type PlanStateParser = (output: unknown) => ActionState extends {
|
|
11
|
+
setCurrentPlan: (value: infer T) => void;
|
|
12
|
+
} ? T : never;
|
|
13
|
+
export declare function createTuiRunLoopEventAdapter(args: {
|
|
14
|
+
state: ActionState;
|
|
15
|
+
sessionId: string;
|
|
16
|
+
updateSessionById: SessionUpdater;
|
|
17
|
+
parsePlanState: PlanStateParser;
|
|
18
|
+
}): {
|
|
19
|
+
onAssistantStream(update: TuiAssistantStreamUpdate): void;
|
|
20
|
+
onTraceEvent(event: TraceEvent): void;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=tui-run-loop-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-run-loop-events.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-run-loop-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAErF,KAAK,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,WAAW,KAAK,IAAI,CAAC;AAElG,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,SAAS;IAAE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEzH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,eAAe,CAAC;CACjC;8BAO6B,wBAAwB;wBAQ9B,UAAU;EAgEjC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { previewEditFileInput } from '../../../core/tools/edit-file.js';
|
|
2
|
+
import { formatEditPreviewHistoryMessage, formatPlanHistoryMessage, toLiveEvent } from '../utils/format.js';
|
|
3
|
+
export function createTuiRunLoopEventAdapter(args) {
|
|
4
|
+
const { state, sessionId, updateSessionById, parsePlanState } = args;
|
|
5
|
+
const appendedEditPreviewIds = new Set();
|
|
6
|
+
const appendedPlanSteps = new Set();
|
|
7
|
+
const streamingBuffers = new Map();
|
|
8
|
+
return {
|
|
9
|
+
onAssistantStream(update) {
|
|
10
|
+
streamingBuffers.set(update.step, update.text);
|
|
11
|
+
state.setCurrentAssistantText(update.text || undefined);
|
|
12
|
+
if (update.done) {
|
|
13
|
+
streamingBuffers.delete(update.step);
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
onTraceEvent(event) {
|
|
17
|
+
if (event.type === 'assistant.turn' && event.content.trim()) {
|
|
18
|
+
streamingBuffers.delete(event.step);
|
|
19
|
+
state.setCurrentAssistantText(event.content);
|
|
20
|
+
}
|
|
21
|
+
if (event.type === 'tool.call' && event.call.tool === 'edit_file') {
|
|
22
|
+
void previewEditFileInput(event.call.input).then((preview) => {
|
|
23
|
+
if (!preview || appendedEditPreviewIds.has(event.call.id)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
appendedEditPreviewIds.add(event.call.id);
|
|
27
|
+
updateSessionById(sessionId, (session) => ({
|
|
28
|
+
...session,
|
|
29
|
+
messages: [
|
|
30
|
+
...session.messages,
|
|
31
|
+
{
|
|
32
|
+
id: state.nextLocalId(),
|
|
33
|
+
role: 'assistant',
|
|
34
|
+
text: formatEditPreviewHistoryMessage(preview),
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
}));
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (event.type === 'tool.result' && event.tool === 'update_plan') {
|
|
41
|
+
state.setCurrentPlan(parsePlanState(event.result.output));
|
|
42
|
+
if (!appendedPlanSteps.has(event.step)) {
|
|
43
|
+
const renderedPlan = formatPlanHistoryMessage(event.result.output);
|
|
44
|
+
if (renderedPlan) {
|
|
45
|
+
appendedPlanSteps.add(event.step);
|
|
46
|
+
updateSessionById(sessionId, (session) => ({
|
|
47
|
+
...session,
|
|
48
|
+
messages: [
|
|
49
|
+
...session.messages,
|
|
50
|
+
{
|
|
51
|
+
id: state.nextLocalId(),
|
|
52
|
+
role: 'assistant',
|
|
53
|
+
text: renderedPlan,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const next = toLiveEvent(event);
|
|
61
|
+
if (!next) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
state.setLiveEvents((current) => {
|
|
65
|
+
const previous = current[current.length - 1];
|
|
66
|
+
if (previous?.text === next) {
|
|
67
|
+
return current;
|
|
68
|
+
}
|
|
69
|
+
return [...current, { id: state.nextLocalId(), text: next }].slice(-8);
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=tui-run-loop-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-run-loop-events.js","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-run-loop-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ChatTurnApprovalPort } from '../../../core/chat/turn-host.js';
|
|
2
|
+
import type { ActionState } from './useAgentRun.js';
|
|
3
|
+
export declare function createTuiToolApprovalPort(args: {
|
|
4
|
+
state: ActionState;
|
|
5
|
+
isProjectApproved: (call: Parameters<NonNullable<ChatTurnApprovalPort['requestToolApproval']>>[0]['call']) => boolean;
|
|
6
|
+
rememberProjectApproval: (call: Parameters<NonNullable<ChatTurnApprovalPort['requestToolApproval']>>[0]['call']) => void;
|
|
7
|
+
}): ChatTurnApprovalPort;
|
|
8
|
+
//# sourceMappingURL=tui-tool-approval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-tool-approval.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-tool-approval.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IACtH,uBAAuB,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC1H,GAAG,oBAAoB,CAmCvB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { requestToolApproval } from '../../../core/chat/tool-approval-host.js';
|
|
2
|
+
import { previewEditFileInput } from '../../../core/tools/edit-file.js';
|
|
3
|
+
import { createProjectApprovalRuleForCall, describeProjectApprovalRule } from '../state/approval-rules.js';
|
|
4
|
+
export function createTuiToolApprovalPort(args) {
|
|
5
|
+
const { state, isProjectApproved, rememberProjectApproval } = args;
|
|
6
|
+
return {
|
|
7
|
+
async requestToolApproval(request) {
|
|
8
|
+
if (!request) {
|
|
9
|
+
return { approved: false, reason: 'Missing approval request.' };
|
|
10
|
+
}
|
|
11
|
+
const { call, tool } = request;
|
|
12
|
+
if (isProjectApproved(call)) {
|
|
13
|
+
return {
|
|
14
|
+
approved: true,
|
|
15
|
+
reason: 'Approved by saved project rule',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const editPreview = call.tool === 'edit_file' ? await previewEditFileInput(call.input) : undefined;
|
|
19
|
+
return await requestToolApproval({
|
|
20
|
+
call,
|
|
21
|
+
tool,
|
|
22
|
+
storePending: ({ resolve }) => {
|
|
23
|
+
const rememberedRule = createProjectApprovalRuleForCall(call);
|
|
24
|
+
state.setPendingApproval({
|
|
25
|
+
call,
|
|
26
|
+
tool,
|
|
27
|
+
editPreview,
|
|
28
|
+
rememberForProject: () => rememberProjectApproval(call),
|
|
29
|
+
rememberLabel: rememberedRule ? describeProjectApprovalRule(rememberedRule) : undefined,
|
|
30
|
+
resolve,
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=tui-tool-approval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-tool-approval.js","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/tui-tool-approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAG3G,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACC,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC;IAEnE,OAAO;QACL,KAAK,CAAC,mBAAmB,CAAC,OAAO;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;YAClE,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAC/B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,gCAAgC;iBACzC,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnG,OAAO,MAAM,mBAAmB,CAAC;gBAC/B,IAAI;gBACJ,IAAI;gBACJ,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;oBAC5B,MAAM,cAAc,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;oBAC9D,KAAK,CAAC,kBAAkB,CAAC;wBACvB,IAAI;wBACJ,IAAI;wBACJ,WAAW;wBACX,kBAAkB,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC;wBACvD,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;wBACvF,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -57,7 +57,7 @@ type UseAgentRunArgs = {
|
|
|
57
57
|
updateActiveSession: ActiveSessionUpdater;
|
|
58
58
|
drift?: ChatDriftObserverOptions;
|
|
59
59
|
};
|
|
60
|
-
type ChatDriftObserverOptions = {
|
|
60
|
+
export type ChatDriftObserverOptions = {
|
|
61
61
|
enabled: boolean;
|
|
62
62
|
onRunStart?: () => void;
|
|
63
63
|
onAnnotation?: (annotation: CyberLoopObserverAnnotation) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentRun.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/useAgentRun.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAgentRun.d.ts","sourceRoot":"","sources":["../../../../../src/cli/chat/hooks/useAgentRun.ts"],"names":[],"mappings":"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"}
|