@roackb2/heddle 0.0.31 → 0.0.34
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/README.md +31 -5
- package/dist/examples/programmatic-loop.js +2 -0
- package/dist/examples/programmatic-loop.js.map +1 -1
- package/dist/src/cli/ask.d.ts +1 -0
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +20 -4
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/auth.d.ts +15 -0
- package/dist/src/cli/auth.d.ts.map +1 -0
- package/dist/src/cli/auth.js +79 -0
- package/dist/src/cli/auth.js.map +1 -0
- package/dist/src/cli/chat/App.d.ts +1 -1
- package/dist/src/cli/chat/App.d.ts.map +1 -1
- package/dist/src/cli/chat/App.js +17 -3
- package/dist/src/cli/chat/App.js.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.js +20 -6
- package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.js +2 -0
- package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts +3 -0
- package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
- package/dist/src/cli/chat/state/local-commands.js +47 -0
- package/dist/src/cli/chat/state/local-commands.js.map +1 -1
- package/dist/src/cli/chat/submit.d.ts +1 -0
- package/dist/src/cli/chat/submit.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.js +1 -0
- package/dist/src/cli/chat/submit.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts +13 -1
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +24 -3
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/cli/daemon.d.ts +1 -0
- package/dist/src/cli/daemon.d.ts.map +1 -1
- package/dist/src/cli/daemon.js +1 -0
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
- package/dist/src/cli/heartbeat/worker.js +4 -5
- package/dist/src/cli/heartbeat/worker.js.map +1 -1
- package/dist/src/cli/main.js +31 -1
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/remote/control-plane-client.d.ts +11 -4
- package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
- package/dist/src/core/agent/post-mutation.d.ts +0 -7
- package/dist/src/core/agent/post-mutation.d.ts.map +1 -1
- package/dist/src/core/agent/post-mutation.js +0 -66
- package/dist/src/core/agent/post-mutation.js.map +1 -1
- package/dist/src/core/agent/progress-reminders.js +4 -4
- package/dist/src/core/agent/progress-reminders.js.map +1 -1
- package/dist/src/core/agent/run-agent.d.ts.map +1 -1
- package/dist/src/core/agent/run-agent.js +48 -63
- package/dist/src/core/agent/run-agent.js.map +1 -1
- package/dist/src/core/auth/openai-oauth.d.ts +64 -0
- package/dist/src/core/auth/openai-oauth.d.ts.map +1 -0
- package/dist/src/core/auth/openai-oauth.js +279 -0
- package/dist/src/core/auth/openai-oauth.js.map +1 -0
- package/dist/src/core/auth/provider-credentials.d.ts +52 -0
- package/dist/src/core/auth/provider-credentials.d.ts.map +1 -0
- package/dist/src/core/auth/provider-credentials.js +151 -0
- package/dist/src/core/auth/provider-credentials.js.map +1 -0
- package/dist/src/core/chat/compaction.js +5 -2
- package/dist/src/core/chat/compaction.js.map +1 -1
- package/dist/src/core/chat/session-submit.d.ts +1 -0
- package/dist/src/core/chat/session-submit.d.ts.map +1 -1
- package/dist/src/core/chat/session-submit.js +16 -5
- package/dist/src/core/chat/session-submit.js.map +1 -1
- package/dist/src/core/chat/storage.js +4 -4
- package/dist/src/core/chat/storage.js.map +1 -1
- package/dist/src/core/chat/trace-summary.d.ts.map +1 -1
- package/dist/src/core/chat/trace-summary.js +2 -0
- package/dist/src/core/chat/trace-summary.js.map +1 -1
- package/dist/src/core/llm/factory.d.ts +3 -0
- package/dist/src/core/llm/factory.d.ts.map +1 -1
- package/dist/src/core/llm/factory.js +11 -2
- package/dist/src/core/llm/factory.js.map +1 -1
- package/dist/src/core/llm/openai-models.d.ts +2 -0
- package/dist/src/core/llm/openai-models.d.ts.map +1 -1
- package/dist/src/core/llm/openai-models.js +29 -1
- package/dist/src/core/llm/openai-models.js.map +1 -1
- package/dist/src/core/llm/openai.d.ts +13 -0
- package/dist/src/core/llm/openai.d.ts.map +1 -1
- package/dist/src/core/llm/openai.js +127 -8
- package/dist/src/core/llm/openai.js.map +1 -1
- package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
- package/dist/src/core/prompts/system-prompt.js +7 -1
- package/dist/src/core/prompts/system-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 +20 -2
- package/dist/src/core/runtime/agent-loop.js.map +1 -1
- package/dist/src/core/runtime/api-keys.d.ts +27 -0
- package/dist/src/core/runtime/api-keys.d.ts.map +1 -1
- package/dist/src/core/runtime/api-keys.js +57 -4
- package/dist/src/core/runtime/api-keys.js.map +1 -1
- package/dist/src/core/runtime/default-tools.d.ts +3 -0
- package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
- package/dist/src/core/runtime/default-tools.js +7 -0
- package/dist/src/core/runtime/default-tools.js.map +1 -1
- package/dist/src/core/tools/delete-file.d.ts +7 -0
- package/dist/src/core/tools/delete-file.d.ts.map +1 -0
- package/dist/src/core/tools/delete-file.js +79 -0
- package/dist/src/core/tools/delete-file.js.map +1 -0
- package/dist/src/core/tools/move-file.d.ts +7 -0
- package/dist/src/core/tools/move-file.d.ts.map +1 -0
- package/dist/src/core/tools/move-file.js +82 -0
- package/dist/src/core/tools/move-file.js.map +1 -0
- package/dist/src/core/tools/report-state.js +1 -1
- package/dist/src/core/tools/report-state.js.map +1 -1
- package/dist/src/core/tools/view-image.d.ts +3 -0
- package/dist/src/core/tools/view-image.d.ts.map +1 -1
- package/dist/src/core/tools/view-image.js +197 -14
- package/dist/src/core/tools/view-image.js.map +1 -1
- package/dist/src/core/tools/web-search.d.ts +2 -0
- package/dist/src/core/tools/web-search.d.ts.map +1 -1
- package/dist/src/core/tools/web-search.js +6 -0
- package/dist/src/core/tools/web-search.js.map +1 -1
- package/dist/src/core/trace/format.d.ts.map +1 -1
- package/dist/src/core/trace/format.js +3 -0
- package/dist/src/core/trace/format.js.map +1 -1
- package/dist/src/core/types.d.ts +7 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/app.d.ts +3 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +1 -0
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/features/control-plane/router.d.ts +11 -4
- package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/router.js +6 -0
- package/dist/src/server/features/control-plane/router.js.map +1 -1
- package/dist/src/server/features/control-plane/services/ask.d.ts +1 -0
- package/dist/src/server/features/control-plane/services/ask.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/ask.js +6 -3
- package/dist/src/server/features/control-plane/services/ask.js.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +5 -4
- 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 +64 -3
- package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
- package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/control-plane-state.js +6 -0
- package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -1
- package/dist/src/server/features/control-plane/types.d.ts +6 -0
- package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
- package/dist/src/server/router.d.ts +11 -4
- package/dist/src/server/router.d.ts.map +1 -1
- package/dist/src/server/types.d.ts +2 -0
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/web/assets/MonacoDiffViewer-DM8Cy5Xf.js +4 -0
- package/dist/src/web/assets/chunk-DECur_0Z.js +1 -0
- package/dist/src/web/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/src/web/assets/css-ejLFi3lO.js +3 -0
- package/dist/src/web/assets/editor-Br_kD0ds.css +1 -0
- package/dist/src/web/assets/editor.api2-DRhrSk9h.js +872 -0
- package/dist/src/web/assets/editor.worker-DWlYVeeX.js +26 -0
- package/dist/src/web/assets/go-CaScRb1i.js +1 -0
- package/dist/src/web/assets/html-Cft6PSNf.js +1 -0
- package/dist/src/web/assets/{index-CAWhKnGd.css → index-BEeN-RT5.css} +1 -1
- package/dist/src/web/assets/index-BKDg9H_-.js +56 -0
- package/dist/src/web/assets/java-_yhwA1y2.js +1 -0
- package/dist/src/web/assets/javascript-6bpvthJD.js +1 -0
- package/dist/src/web/assets/json.worker-CCzEOxDx.js +58 -0
- package/dist/src/web/assets/jsonMode-yXXGoTnD.js +10 -0
- package/dist/src/web/assets/markdown-wO2PN3EC.js +1 -0
- package/dist/src/web/assets/python-kY56oSAs.js +1 -0
- package/dist/src/web/assets/rust-BOwv_5ZO.js +1 -0
- package/dist/src/web/assets/scss-Cdfe_FFe.js +3 -0
- package/dist/src/web/assets/shell-Dgo0Jcwc.js +1 -0
- package/dist/src/web/assets/typescript-KZ9-zMZK.js +1 -0
- package/dist/src/web/assets/yaml-B3q_s4Yl.js +1 -0
- package/dist/src/web/index.html +3 -2
- package/package.json +2 -1
- package/dist/src/web/assets/index-D35_IzEn.js +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/factory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/factory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,UAAU,CA6BlF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,uBAA4B,GAAG,WAAW,CAUrF;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -6,18 +6,27 @@ import { DEFAULT_ANTHROPIC_MODEL, DEFAULT_LLM_PROVIDER, DEFAULT_OPENAI_MODEL } f
|
|
|
6
6
|
import { createAnthropicAdapter } from './anthropic.js';
|
|
7
7
|
import { createOpenAiAdapter } from './openai.js';
|
|
8
8
|
import { inferProviderFromModel } from './providers.js';
|
|
9
|
+
import { resolveOAuthCredentialForModel } from '../runtime/api-keys.js';
|
|
9
10
|
export function createLlmAdapter(options = {}) {
|
|
10
11
|
const provider = resolveLlmProvider(options);
|
|
12
|
+
const model = options.model
|
|
13
|
+
?? (provider === 'anthropic' ? DEFAULT_ANTHROPIC_MODEL : DEFAULT_OPENAI_MODEL);
|
|
14
|
+
const credential = options.credential
|
|
15
|
+
?? (!options.apiKey && provider === 'openai' ? resolveOAuthCredentialForModel(model, {
|
|
16
|
+
storePath: options.credentialStorePath,
|
|
17
|
+
}) : undefined);
|
|
11
18
|
switch (provider) {
|
|
12
19
|
case 'openai':
|
|
13
20
|
return createOpenAiAdapter({
|
|
14
21
|
apiKey: options.apiKey,
|
|
15
|
-
model
|
|
22
|
+
model,
|
|
23
|
+
credential,
|
|
24
|
+
credentialStorePath: options.credentialStorePath,
|
|
16
25
|
});
|
|
17
26
|
case 'anthropic':
|
|
18
27
|
return createAnthropicAdapter({
|
|
19
28
|
apiKey: options.apiKey,
|
|
20
|
-
model
|
|
29
|
+
model,
|
|
21
30
|
});
|
|
22
31
|
case 'google':
|
|
23
32
|
throw new Error(`Model provider "google" is not wired yet. Add a Gemini adapter before using model ${JSON.stringify(options.model ?? 'gemini')}.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/core/llm/factory.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sBAAsB;AACtB,8DAA8D;AAC9D,8EAA8E;AAE9E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/core/llm/factory.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sBAAsB;AACtB,8DAA8D;AAC9D,8EAA8E;AAE9E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAUxE,MAAM,UAAU,gBAAgB,CAAC,UAAmC,EAAE;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,GACT,OAAO,CAAC,KAAK;WACV,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACjF,MAAM,UAAU,GACd,OAAO,CAAC,UAAU;WACf,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,8BAA8B,CAAC,KAAK,EAAE;YACnF,SAAS,EAAE,OAAO,CAAC,mBAAmB;SACvC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAElB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK;gBACL,UAAU;gBACV,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;aACjD,CAAC,CAAC;QACL,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK;aACN,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CACb,qFAAqF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CAClI,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmC,EAAE;IACtE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -6,9 +6,11 @@ export declare const BUILT_IN_MODEL_GROUPS: BuiltInModelGroup[];
|
|
|
6
6
|
export declare const OPENAI_MODEL_GROUPS: BuiltInModelGroup[];
|
|
7
7
|
export declare const COMMON_BUILT_IN_MODELS: string[];
|
|
8
8
|
export declare const COMMON_OPENAI_MODELS: string[];
|
|
9
|
+
export declare const OPENAI_ACCOUNT_SIGN_IN_MODELS: string[];
|
|
9
10
|
export declare function formatOpenAiModelGroups(): string;
|
|
10
11
|
export declare function formatBuiltInModelGroups(): string;
|
|
11
12
|
export declare function filterOpenAiModels(query: string): string[];
|
|
13
|
+
export declare function isOpenAiAccountSignInModel(model: string): boolean;
|
|
12
14
|
export declare function filterBuiltInModels(query: string): string[];
|
|
13
15
|
export declare function estimateOpenAiContextWindow(model: string): number | undefined;
|
|
14
16
|
export declare function estimateBuiltInContextWindow(model: string): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-models.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/openai-models.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"openai-models.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/openai-models.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,EA6CpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAElD,CAAC;AAEF,eAAO,MAAM,sBAAsB,UAAyD,CAAC;AAC7F,eAAO,MAAM,oBAAoB,UAAuD,CAAC;AACzF,eAAO,MAAM,6BAA6B,UAWzC,CAAC;AAMF,wBAAgB,uBAAuB,IAAI,MAAM,CAOhD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAOjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO1D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO9E"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
// Keep this curated rather than mirroring the entire provider catalog.
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
export const BUILT_IN_MODEL_GROUPS = [
|
|
6
|
+
{
|
|
7
|
+
label: 'OpenAI · GPT-5.5',
|
|
8
|
+
models: ['gpt-5.5', 'gpt-5.5-pro'],
|
|
9
|
+
},
|
|
6
10
|
{
|
|
7
11
|
label: 'OpenAI · GPT-5.4',
|
|
8
12
|
models: ['gpt-5.4', 'gpt-5.4-pro', 'gpt-5.4-mini', 'gpt-5.4-nano'],
|
|
@@ -25,7 +29,7 @@ export const BUILT_IN_MODEL_GROUPS = [
|
|
|
25
29
|
},
|
|
26
30
|
{
|
|
27
31
|
label: 'OpenAI · Coding-optimized',
|
|
28
|
-
models: ['gpt-5.1-codex', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
|
|
32
|
+
models: ['gpt-5.3-codex', 'gpt-5.3-codex-spark', 'gpt-5.2-codex', 'gpt-5.1-codex', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
|
|
29
33
|
},
|
|
30
34
|
{
|
|
31
35
|
label: 'Anthropic · Claude 4',
|
|
@@ -47,6 +51,18 @@ export const BUILT_IN_MODEL_GROUPS = [
|
|
|
47
51
|
export const OPENAI_MODEL_GROUPS = BUILT_IN_MODEL_GROUPS.filter((group) => group.label.startsWith('OpenAI · '));
|
|
48
52
|
export const COMMON_BUILT_IN_MODELS = BUILT_IN_MODEL_GROUPS.flatMap((group) => group.models);
|
|
49
53
|
export const COMMON_OPENAI_MODELS = OPENAI_MODEL_GROUPS.flatMap((group) => group.models);
|
|
54
|
+
export const OPENAI_ACCOUNT_SIGN_IN_MODELS = [
|
|
55
|
+
'gpt-5.5',
|
|
56
|
+
'gpt-5.4',
|
|
57
|
+
'gpt-5.4-mini',
|
|
58
|
+
'gpt-5.1-codex',
|
|
59
|
+
'gpt-5.1-codex-max',
|
|
60
|
+
'gpt-5.1-codex-mini',
|
|
61
|
+
'gpt-5.2',
|
|
62
|
+
'gpt-5.2-codex',
|
|
63
|
+
'gpt-5.3-codex',
|
|
64
|
+
'gpt-5.3-codex-spark',
|
|
65
|
+
];
|
|
50
66
|
const BUILT_IN_CONTEXT_WINDOW_ESTIMATES = new Map(COMMON_BUILT_IN_MODELS.map((model) => [model, inferContextWindowEstimate(model)]));
|
|
51
67
|
export function formatOpenAiModelGroups() {
|
|
52
68
|
return OPENAI_MODEL_GROUPS
|
|
@@ -71,6 +87,9 @@ export function filterOpenAiModels(query) {
|
|
|
71
87
|
}
|
|
72
88
|
return COMMON_OPENAI_MODELS.filter((model) => model.toLowerCase().includes(normalized));
|
|
73
89
|
}
|
|
90
|
+
export function isOpenAiAccountSignInModel(model) {
|
|
91
|
+
return OPENAI_ACCOUNT_SIGN_IN_MODELS.includes(model.trim());
|
|
92
|
+
}
|
|
74
93
|
export function filterBuiltInModels(query) {
|
|
75
94
|
const normalized = query.trim().toLowerCase();
|
|
76
95
|
if (!normalized) {
|
|
@@ -89,6 +108,15 @@ export function estimateBuiltInContextWindow(model) {
|
|
|
89
108
|
return BUILT_IN_CONTEXT_WINDOW_ESTIMATES.get(normalized) ?? inferContextWindowEstimate(normalized);
|
|
90
109
|
}
|
|
91
110
|
function inferContextWindowEstimate(model) {
|
|
111
|
+
if (model.startsWith('gpt-5.5')) {
|
|
112
|
+
return 1_050_000;
|
|
113
|
+
}
|
|
114
|
+
if (model === 'gpt-5.4' || model === 'gpt-5.4-pro') {
|
|
115
|
+
return 1_050_000;
|
|
116
|
+
}
|
|
117
|
+
if (model === 'gpt-5.4-mini') {
|
|
118
|
+
return 400_000;
|
|
119
|
+
}
|
|
92
120
|
if (model.startsWith('gpt-4.1')) {
|
|
93
121
|
return 128_000;
|
|
94
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-models.js","sourceRoot":"","sources":["../../../../src/core/llm/openai-models.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,8EAA8E;AAO9E,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD;QACE,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC;KACnE;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;KAC3D;IACD;QACE,KAAK,EAAE,iCAAiC;QACxC,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC;KAC9C;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC;KACpD;IACD;QACE,KAAK,EAAE,2BAA2B;QAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;KAC/C;IACD;QACE,KAAK,EAAE,2BAA2B;QAClC,MAAM,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-models.js","sourceRoot":"","sources":["../../../../src/core/llm/openai-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
+
import type { Fetch as OpenAiFetch } from 'openai/core.js';
|
|
1
2
|
import type { LlmAdapter } from './types.js';
|
|
3
|
+
import { type OpenAiOAuthCredential } from '../auth/openai-oauth.js';
|
|
4
|
+
import { type StoredProviderCredential } from '../auth/provider-credentials.js';
|
|
2
5
|
export type OpenAiAdapterOptions = {
|
|
3
6
|
apiKey?: string;
|
|
4
7
|
model?: string;
|
|
8
|
+
credential?: StoredProviderCredential;
|
|
9
|
+
credentialStorePath?: string;
|
|
10
|
+
fetchImpl?: CompatibleFetch;
|
|
5
11
|
};
|
|
12
|
+
type CompatibleFetch = (url: unknown, init?: unknown) => Promise<globalThis.Response>;
|
|
6
13
|
/**
|
|
7
14
|
* Create an LLM adapter backed by the OpenAI chat completions API.
|
|
8
15
|
*/
|
|
9
16
|
export declare function createOpenAiAdapter(options?: OpenAiAdapterOptions): LlmAdapter;
|
|
17
|
+
export declare function createOpenAiOAuthFetch(initialCredential: OpenAiOAuthCredential, options?: {
|
|
18
|
+
storePath?: string;
|
|
19
|
+
fetchImpl?: CompatibleFetch;
|
|
20
|
+
refreshBeforeMs?: number;
|
|
21
|
+
}): OpenAiFetch;
|
|
22
|
+
export {};
|
|
10
23
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/openai.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAA8E,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/openai.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAA8E,MAAM,YAAY,CAAC;AAGzH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAGzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAEtF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,CAiIlF;AA8BD,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,qBAAqB,EACxC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GACL,WAAW,CA+Bb"}
|
|
@@ -3,12 +3,21 @@
|
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
5
|
import { DEFAULT_OPENAI_MODEL } from '../config.js';
|
|
6
|
+
import { OPENAI_CODEX_RESPONSES_ENDPOINT, refreshOpenAiOAuthCredential, } from '../auth/openai-oauth.js';
|
|
7
|
+
import { setStoredProviderCredential, } from '../auth/provider-credentials.js';
|
|
8
|
+
import { isOpenAiAccountSignInModel, OPENAI_ACCOUNT_SIGN_IN_MODELS } from './openai-models.js';
|
|
6
9
|
/**
|
|
7
10
|
* Create an LLM adapter backed by the OpenAI chat completions API.
|
|
8
11
|
*/
|
|
9
12
|
export function createOpenAiAdapter(options = {}) {
|
|
13
|
+
const oauthCredential = options.credential?.type === 'oauth' ? options.credential : undefined;
|
|
10
14
|
const client = new OpenAI({
|
|
11
|
-
apiKey:
|
|
15
|
+
apiKey: oauthCredential ? 'heddle-oauth-placeholder'
|
|
16
|
+
: firstDefinedNonEmpty(options.apiKey, process.env.OPENAI_API_KEY, process.env.PERSONAL_OPENAI_API_KEY),
|
|
17
|
+
fetch: oauthCredential ? createOpenAiOAuthFetch(oauthCredential, {
|
|
18
|
+
storePath: options.credentialStorePath,
|
|
19
|
+
fetchImpl: options.fetchImpl,
|
|
20
|
+
}) : options.fetchImpl,
|
|
12
21
|
});
|
|
13
22
|
const model = options.model ?? DEFAULT_OPENAI_MODEL;
|
|
14
23
|
const capabilities = {
|
|
@@ -24,15 +33,19 @@ export function createOpenAiAdapter(options = {}) {
|
|
|
24
33
|
capabilities,
|
|
25
34
|
},
|
|
26
35
|
async chat(messages, tools, signal, onStreamEvent) {
|
|
27
|
-
|
|
36
|
+
if (oauthCredential && !isOpenAiAccountSignInModel(model)) {
|
|
37
|
+
throw new Error(`OpenAI account sign-in is not enabled for model ${model}. Use one of ${formatOpenAiAccountSignInModels()}, or set OPENAI_API_KEY to use Platform API-key mode.`);
|
|
38
|
+
}
|
|
39
|
+
const request = buildOpenAiResponsesRequest(messages, {
|
|
28
40
|
model,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
tools,
|
|
42
|
+
oauthMode: Boolean(oauthCredential),
|
|
43
|
+
});
|
|
44
|
+
const stream = await client.responses.stream({
|
|
45
|
+
...request,
|
|
34
46
|
}, { signal });
|
|
35
47
|
let streamedContent = '';
|
|
48
|
+
const streamedToolCalls = new Map();
|
|
36
49
|
for await (const event of stream) {
|
|
37
50
|
if (event.type === 'response.output_text.delta' && event.delta) {
|
|
38
51
|
streamedContent += event.delta;
|
|
@@ -42,10 +55,40 @@ export function createOpenAiAdapter(options = {}) {
|
|
|
42
55
|
if (event.type === 'response.output_text.done') {
|
|
43
56
|
streamedContent = event.text;
|
|
44
57
|
onStreamEvent?.({ type: 'content.done', content: event.text });
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (event.type === 'response.output_item.added' || event.type === 'response.output_item.done') {
|
|
61
|
+
const item = event.item;
|
|
62
|
+
if (item.type === 'function_call'
|
|
63
|
+
&& typeof item.id === 'string'
|
|
64
|
+
&& typeof item.call_id === 'string'
|
|
65
|
+
&& typeof item.name === 'string') {
|
|
66
|
+
const existing = streamedToolCalls.get(item.id);
|
|
67
|
+
streamedToolCalls.set(item.id, {
|
|
68
|
+
id: item.call_id,
|
|
69
|
+
tool: item.name,
|
|
70
|
+
argumentsText: typeof item.arguments === 'string' && item.arguments.length > 0 ? item.arguments
|
|
71
|
+
: existing?.argumentsText ?? '',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (event.type === 'response.function_call_arguments.delta') {
|
|
77
|
+
const existing = streamedToolCalls.get(event.item_id);
|
|
78
|
+
if (existing) {
|
|
79
|
+
existing.argumentsText += event.delta;
|
|
80
|
+
}
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (event.type === 'response.function_call_arguments.done') {
|
|
84
|
+
const existing = streamedToolCalls.get(event.item_id);
|
|
85
|
+
if (existing) {
|
|
86
|
+
existing.argumentsText = event.arguments;
|
|
87
|
+
}
|
|
45
88
|
}
|
|
46
89
|
}
|
|
47
90
|
const response = await stream.finalResponse();
|
|
48
|
-
const
|
|
91
|
+
const finalResponseToolCalls = response.output.flatMap((item) => {
|
|
49
92
|
if (item.type !== 'function_call'
|
|
50
93
|
|| typeof item.call_id !== 'string'
|
|
51
94
|
|| typeof item.name !== 'string'
|
|
@@ -58,6 +101,7 @@ export function createOpenAiAdapter(options = {}) {
|
|
|
58
101
|
input: JSON.parse(item.arguments),
|
|
59
102
|
}];
|
|
60
103
|
});
|
|
104
|
+
const toolCalls = finalResponseToolCalls.length > 0 ? finalResponseToolCalls : parseStreamedToolCalls(streamedToolCalls);
|
|
61
105
|
const diagnostics = extractAssistantDiagnostics(response, toolCalls.length > 0);
|
|
62
106
|
const content = streamedContent || (diagnostics?.rationale ?? extractAssistantContent(response, toolCalls.length > 0));
|
|
63
107
|
if (!streamedContent && content) {
|
|
@@ -73,9 +117,67 @@ export function createOpenAiAdapter(options = {}) {
|
|
|
73
117
|
},
|
|
74
118
|
};
|
|
75
119
|
}
|
|
120
|
+
function parseStreamedToolCalls(streamedToolCalls) {
|
|
121
|
+
const toolCalls = [];
|
|
122
|
+
for (const entry of streamedToolCalls.values()) {
|
|
123
|
+
if (!entry.argumentsText.trim()) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
toolCalls.push({
|
|
127
|
+
id: entry.id,
|
|
128
|
+
tool: entry.tool,
|
|
129
|
+
input: JSON.parse(entry.argumentsText),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return toolCalls;
|
|
133
|
+
}
|
|
134
|
+
function formatOpenAiAccountSignInModels() {
|
|
135
|
+
return OPENAI_ACCOUNT_SIGN_IN_MODELS.join(', ');
|
|
136
|
+
}
|
|
76
137
|
function firstDefinedNonEmpty(...values) {
|
|
77
138
|
return values.find((value) => typeof value === 'string' && value.trim().length > 0);
|
|
78
139
|
}
|
|
140
|
+
export function createOpenAiOAuthFetch(initialCredential, options = {}) {
|
|
141
|
+
let credential = initialCredential;
|
|
142
|
+
const fetcher = options.fetchImpl ?? fetch;
|
|
143
|
+
const refreshBeforeMs = options.refreshBeforeMs ?? 60_000;
|
|
144
|
+
const oauthFetch = async (requestInput, init) => {
|
|
145
|
+
if (credential.expiresAt <= Date.now() + refreshBeforeMs) {
|
|
146
|
+
credential = await refreshOpenAiOAuthCredential(credential, { fetchImpl: fetcher });
|
|
147
|
+
setStoredProviderCredential(credential, options.storePath);
|
|
148
|
+
}
|
|
149
|
+
const request = requestInput instanceof Request ? requestInput : undefined;
|
|
150
|
+
const requestInit = init;
|
|
151
|
+
const headers = new Headers(requestInit?.headers ?? request?.headers);
|
|
152
|
+
headers.delete('authorization');
|
|
153
|
+
headers.delete('Authorization');
|
|
154
|
+
headers.set('authorization', `Bearer ${credential.accessToken}`);
|
|
155
|
+
if (credential.accountId) {
|
|
156
|
+
headers.set('ChatGPT-Account-Id', credential.accountId);
|
|
157
|
+
}
|
|
158
|
+
const url = normalizeRequestUrl(requestInput);
|
|
159
|
+
const rewrittenUrl = shouldRouteToCodexResponses(url) ? OPENAI_CODEX_RESPONSES_ENDPOINT : url.toString();
|
|
160
|
+
return await fetcher(rewrittenUrl, {
|
|
161
|
+
...requestInit,
|
|
162
|
+
method: requestInit?.method ?? request?.method,
|
|
163
|
+
body: requestInit?.body ?? request?.body ?? undefined,
|
|
164
|
+
headers,
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
return oauthFetch;
|
|
168
|
+
}
|
|
169
|
+
function normalizeRequestUrl(requestInput) {
|
|
170
|
+
if (requestInput instanceof URL) {
|
|
171
|
+
return requestInput;
|
|
172
|
+
}
|
|
173
|
+
if (requestInput instanceof Request) {
|
|
174
|
+
return new URL(requestInput.url);
|
|
175
|
+
}
|
|
176
|
+
return new URL(String(requestInput));
|
|
177
|
+
}
|
|
178
|
+
function shouldRouteToCodexResponses(url) {
|
|
179
|
+
return url.pathname.endsWith('/responses') || url.pathname.endsWith('/chat/completions');
|
|
180
|
+
}
|
|
79
181
|
// ---------------------------------------------------------------------------
|
|
80
182
|
// Internal converters
|
|
81
183
|
// ---------------------------------------------------------------------------
|
|
@@ -125,6 +227,23 @@ function extractUsage(response) {
|
|
|
125
227
|
function toResponseInput(messages) {
|
|
126
228
|
return messages.flatMap((message) => toResponseInputItems(message));
|
|
127
229
|
}
|
|
230
|
+
function buildOpenAiResponsesRequest(messages, options) {
|
|
231
|
+
const systemMessages = options.oauthMode ? messages.filter((message) => message.role === 'system') : [];
|
|
232
|
+
const inputMessages = options.oauthMode ? messages.filter((message) => message.role !== 'system') : messages;
|
|
233
|
+
const instructions = options.oauthMode ?
|
|
234
|
+
systemMessages.map((message) => message.content.trim()).filter(Boolean).join('\n\n')
|
|
235
|
+
: undefined;
|
|
236
|
+
return {
|
|
237
|
+
model: options.model,
|
|
238
|
+
input: toResponseInput(inputMessages),
|
|
239
|
+
tools: options.tools.length > 0 ? options.tools.map(toResponseTool) : undefined,
|
|
240
|
+
store: false,
|
|
241
|
+
reasoning: {
|
|
242
|
+
summary: options.oauthMode ? 'auto' : 'detailed',
|
|
243
|
+
},
|
|
244
|
+
...(instructions ? { instructions } : {}),
|
|
245
|
+
};
|
|
246
|
+
}
|
|
128
247
|
function toResponseInputItems(msg) {
|
|
129
248
|
switch (msg.role) {
|
|
130
249
|
case 'system':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/core/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/core/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAmHpG"}
|
|
@@ -13,6 +13,10 @@ You help a user understand, inspect, change, verify, and explain work in the cur
|
|
|
13
13
|
|
|
14
14
|
You are not a generic chatbot. You are an operator-facing agent working in a real workspace with traces, approvals, and tool execution.
|
|
15
15
|
|
|
16
|
+
Your job is to help user completes their requested task. When the given task and the intention is clear, you should continue the work to help user complete their goal.
|
|
17
|
+
|
|
18
|
+
Only stop and ask user if there's something genuinely unclear and you need clarification from the user.
|
|
19
|
+
|
|
16
20
|
## Your Goal
|
|
17
21
|
|
|
18
22
|
${goal}
|
|
@@ -110,7 +114,9 @@ If the task involved changes or verification, prefer a short summary followed by
|
|
|
110
114
|
|
|
111
115
|
## Blocked State
|
|
112
116
|
|
|
113
|
-
-
|
|
117
|
+
- Use report_state only when you are genuinely blocked, when a tool/runtime limitation prevents the next concrete action, or when you need to capture a grounded blocker for a future maintainer. Do not use it for ordinary progress updates, plan restatements, or cases where the next concrete action is already available and can be executed now.
|
|
118
|
+
- When you have enough evidence to continue, continue. Do not stop after intermediate inspection or partial progress just to restate the plan in different words.
|
|
119
|
+
- For bounded implementation work, carry the current slice through until it is actually complete or honestly blocked, even if the user did not explicitly say "continue" again.
|
|
114
120
|
|
|
115
121
|
## When to Stop
|
|
116
122
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAwB;AACxB,uCAAuC;AACvC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAmB,EAAE,cAAuB;IAC1F,OAAO
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAwB;AACxB,uCAAuC;AACvC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAmB,EAAE,cAAuB;IAC1F,OAAO;;;;;;;;;;;;EAYP,IAAI;;;;;;;;;;;;kCAY4B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;;EAEpD,cAAc,CAAC,CAAC,CAAC,yBAAyB,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wQAuFmM,CAAC;AACzQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/agent-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/agent-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvF,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAAC;IAClD,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5G,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyIzF"}
|
|
@@ -3,7 +3,7 @@ import { DEFAULT_OPENAI_MODEL } from '../config.js';
|
|
|
3
3
|
import { inferProviderFromModel } from '../llm/providers.js';
|
|
4
4
|
import { runAgent } from '../agent/run-agent.js';
|
|
5
5
|
import { createLogger } from '../utils/logger.js';
|
|
6
|
-
import { resolveApiKeyForModel } from './api-keys.js';
|
|
6
|
+
import { resolveApiKeyForModel, resolveProviderCredentialSourceForModel, } from './api-keys.js';
|
|
7
7
|
import { createFinishedAgentLoopState, generateRunId, getHistoryFromAgentLoopCheckpoint, getHistoryFromAgentLoopState } from './events.js';
|
|
8
8
|
export async function runAgentLoop(options) {
|
|
9
9
|
const runId = generateRunId();
|
|
@@ -11,16 +11,32 @@ export async function runAgentLoop(options) {
|
|
|
11
11
|
const provider = inferProviderFromModel(model);
|
|
12
12
|
const workspaceRoot = resolve(options.workspaceRoot ?? process.cwd());
|
|
13
13
|
const apiKey = options.apiKey ?? resolveApiKeyForModel(model);
|
|
14
|
-
const
|
|
14
|
+
const providerCredentialSource = resolveProviderCredentialSourceForModel(model, {
|
|
15
|
+
apiKey,
|
|
16
|
+
apiKeyProvider: options.apiKey ? 'explicit' : apiKey ? provider : undefined,
|
|
17
|
+
credentialStorePath: options.stateDir ? resolve(workspaceRoot, options.stateDir) : undefined,
|
|
18
|
+
});
|
|
19
|
+
const llm = options.llm ?? await createLoopLlmAdapter({
|
|
20
|
+
model,
|
|
21
|
+
apiKey,
|
|
22
|
+
credentialStorePath: options.stateDir ? resolve(workspaceRoot, options.stateDir) : undefined,
|
|
23
|
+
});
|
|
15
24
|
const logger = options.logger ?? createLogger({ pretty: false, level: 'info', console: false });
|
|
16
25
|
const tools = await resolveTools({
|
|
17
26
|
...options,
|
|
18
27
|
model,
|
|
19
28
|
apiKey,
|
|
29
|
+
providerCredentialSource,
|
|
20
30
|
workspaceRoot,
|
|
21
31
|
});
|
|
22
32
|
const now = () => new Date().toISOString();
|
|
23
33
|
const startedAt = now();
|
|
34
|
+
logger.info({
|
|
35
|
+
model,
|
|
36
|
+
provider,
|
|
37
|
+
credentialSource: providerCredentialSource.type,
|
|
38
|
+
credentialProvider: 'provider' in providerCredentialSource ? providerCredentialSource.provider : undefined,
|
|
39
|
+
}, 'Agent runtime configured');
|
|
24
40
|
const resumeMetadata = getResumeMetadata(options.resumeFrom);
|
|
25
41
|
options.onEvent?.({
|
|
26
42
|
type: 'loop.started',
|
|
@@ -161,6 +177,8 @@ async function resolveTools(options) {
|
|
|
161
177
|
...createDefaultAgentTools({
|
|
162
178
|
model: options.model,
|
|
163
179
|
apiKey: options.apiKey,
|
|
180
|
+
providerCredentialSource: options.providerCredentialSource,
|
|
181
|
+
credentialStorePath: options.stateDir ? resolve(options.workspaceRoot, options.stateDir) : undefined,
|
|
164
182
|
workspaceRoot: options.workspaceRoot,
|
|
165
183
|
stateDir: options.stateDir,
|
|
166
184
|
memoryDir: options.memoryDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../../src/core/runtime/agent-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../../src/core/runtime/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
import type { LlmProvider } from '../llm/types.js';
|
|
2
|
+
import { type StoredProviderCredential } from '../auth/provider-credentials.js';
|
|
2
3
|
export type ApiKeyRuntime = {
|
|
3
4
|
apiKey?: string;
|
|
4
5
|
apiKeyProvider?: LlmProvider | 'explicit';
|
|
6
|
+
credentialStorePath?: string;
|
|
7
|
+
preferApiKey?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type ProviderCredentialSource = {
|
|
10
|
+
type: 'explicit-api-key';
|
|
11
|
+
} | {
|
|
12
|
+
type: 'env-api-key';
|
|
13
|
+
provider: LlmProvider;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'oauth';
|
|
16
|
+
provider: LlmProvider;
|
|
17
|
+
accountId?: string;
|
|
18
|
+
expiresAt?: number;
|
|
19
|
+
} | {
|
|
20
|
+
type: 'missing';
|
|
21
|
+
provider: LlmProvider;
|
|
5
22
|
};
|
|
6
23
|
export declare function resolveProviderApiKey(provider: LlmProvider): string | undefined;
|
|
7
24
|
export declare function resolveApiKeyForModel(model: string, runtime?: ApiKeyRuntime): string | undefined;
|
|
25
|
+
export declare function resolveOAuthCredentialForModel(model: string, options?: {
|
|
26
|
+
storePath?: string;
|
|
27
|
+
}): Extract<StoredProviderCredential, {
|
|
28
|
+
type: 'oauth';
|
|
29
|
+
}> | undefined;
|
|
30
|
+
export declare function hasProviderCredentialForModel(model: string, runtime?: ApiKeyRuntime & {
|
|
31
|
+
credentialStorePath?: string;
|
|
32
|
+
}): boolean;
|
|
33
|
+
export declare function resolveProviderCredentialSourceForModel(model: string, runtime?: ApiKeyRuntime): ProviderCredentialSource;
|
|
34
|
+
export declare function formatMissingProviderCredentialMessage(model: string): string;
|
|
8
35
|
//# sourceMappingURL=api-keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAS/E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAchG;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,SAAS,CAIlE;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GAAG;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAET;AAED,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GACtB,wBAAwB,CAqC1B;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW5E"}
|