synthos 0.10.0 → 0.11.0
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 +5 -5
- package/default-pages/elevenlabs_effects_studio/chat-history.json +1 -0
- package/default-pages/elevenlabs_effects_studio/page.html +1345 -1363
- package/default-pages/elevenlabs_effects_studio/page.json +13 -11
- package/default-pages/elevenlabs_voice_studio/chat-history.json +1 -0
- package/default-pages/elevenlabs_voice_studio/page.html +782 -801
- package/default-pages/elevenlabs_voice_studio/page.json +13 -11
- package/default-pages/json_tools/chat-history.json +1 -0
- package/default-pages/json_tools/page.html +70 -90
- package/default-pages/json_tools/page.json +12 -10
- package/default-pages/my_notes/chat-history.json +1 -0
- package/default-pages/my_notes/page.html +115 -131
- package/default-pages/my_notes/page.json +14 -12
- package/default-pages/neon_asteroids/chat-history.json +1 -0
- package/default-pages/neon_asteroids/page.html +1777 -1803
- package/default-pages/neon_asteroids/page.json +14 -12
- package/default-pages/oregon_trail/chat-history.json +1 -0
- package/default-pages/oregon_trail/page.html +290 -307
- package/default-pages/oregon_trail/page.json +14 -12
- package/default-pages/solar_explorer/chat-history.json +1 -0
- package/default-pages/solar_explorer/page.html +1929 -1951
- package/default-pages/solar_explorer/page.json +14 -12
- package/default-pages/solar_tutorial/chat-history.json +1 -0
- package/default-pages/solar_tutorial/page.html +464 -478
- package/default-pages/solar_tutorial/page.json +12 -10
- package/default-pages/us_map/chat-history.json +1 -0
- package/default-pages/us_map/page.html +170 -193
- package/default-pages/us_map/page.json +14 -12
- package/default-pages/us_map/page.light.png +0 -0
- package/default-pages/us_map_1850/chat-history.json +1 -0
- package/default-pages/us_map_1850/page.html +302 -326
- package/default-pages/us_map_1850/page.json +14 -12
- package/default-pages/western_cities_1850/chat-history.json +1 -0
- package/default-pages/western_cities_1850/page.html +503 -527
- package/default-pages/western_cities_1850/page.json +14 -12
- package/default-themes/aurora-dawn.v3.css +15 -14
- package/default-themes/aurora-dusk.v3.css +26 -26
- package/default-themes/cosmos-dawn.v3.css +15 -14
- package/default-themes/cosmos-dusk.v3.css +26 -26
- package/default-themes/elemental-dawn.v3.css +200 -0
- package/default-themes/nebula-dawn.v3.css +15 -14
- package/default-themes/nebula-dusk.v3.css +24 -24
- package/default-themes/solar-flare-dawn.v3.css +15 -14
- package/default-themes/solar-flare-dusk.v3.css +26 -26
- package/dist/builders/anthropic.d.ts +26 -2
- package/dist/builders/anthropic.d.ts.map +1 -1
- package/dist/builders/anthropic.js +132 -31
- package/dist/builders/anthropic.js.map +1 -1
- package/dist/builders/claudecode.d.ts +13 -0
- package/dist/builders/claudecode.d.ts.map +1 -0
- package/dist/builders/claudecode.js +253 -0
- package/dist/builders/claudecode.js.map +1 -0
- package/dist/builders/index.d.ts +2 -1
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +8 -1
- package/dist/builders/index.js.map +1 -1
- package/dist/builders/openai.js +2 -1
- package/dist/builders/openai.js.map +1 -1
- package/dist/builders/types.d.ts +31 -7
- package/dist/builders/types.d.ts.map +1 -1
- package/dist/builders/types.js +60 -28
- package/dist/builders/types.js.map +1 -1
- package/dist/connectors/types.d.ts +8 -0
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +13 -6
- package/dist/init.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +161 -14
- package/dist/migrations.js.map +1 -1
- package/dist/models/anthropic.d.ts +1 -0
- package/dist/models/anthropic.d.ts.map +1 -1
- package/dist/models/anthropic.js +129 -29
- package/dist/models/anthropic.js.map +1 -1
- package/dist/models/chainOfThought.d.ts.map +1 -1
- package/dist/models/chainOfThought.js +32 -19
- package/dist/models/chainOfThought.js.map +1 -1
- package/dist/models/index.d.ts +2 -2
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +2 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/providers.d.ts +1 -0
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/providers.js +12 -4
- package/dist/models/providers.js.map +1 -1
- package/dist/models/types.d.ts +15 -1
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/pages.d.ts +57 -8
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +258 -45
- package/dist/pages.js.map +1 -1
- package/dist/service/createCompletePrompt.d.ts.map +1 -1
- package/dist/service/createCompletePrompt.js +5 -0
- package/dist/service/createCompletePrompt.js.map +1 -1
- package/dist/service/mediaCache.d.ts +36 -0
- package/dist/service/mediaCache.d.ts.map +1 -0
- package/dist/service/mediaCache.js +182 -0
- package/dist/service/mediaCache.js.map +1 -0
- package/dist/service/pageValidator.d.ts +25 -0
- package/dist/service/pageValidator.d.ts.map +1 -0
- package/dist/service/pageValidator.js +315 -0
- package/dist/service/pageValidator.js.map +1 -0
- package/dist/service/server.d.ts.map +1 -1
- package/dist/service/server.js +4 -0
- package/dist/service/server.js.map +1 -1
- package/dist/service/sharedTableSchema.d.ts +73 -0
- package/dist/service/sharedTableSchema.d.ts.map +1 -0
- package/dist/service/sharedTableSchema.js +206 -0
- package/dist/service/sharedTableSchema.js.map +1 -0
- package/dist/service/transformPage.d.ts +49 -11
- package/dist/service/transformPage.d.ts.map +1 -1
- package/dist/service/transformPage.js +354 -241
- package/dist/service/transformPage.js.map +1 -1
- package/dist/service/useApiRoutes.d.ts.map +1 -1
- package/dist/service/useApiRoutes.js +288 -34
- package/dist/service/useApiRoutes.js.map +1 -1
- package/dist/service/useConnectorRoutes.d.ts.map +1 -1
- package/dist/service/useConnectorRoutes.js +170 -32
- package/dist/service/useConnectorRoutes.js.map +1 -1
- package/dist/service/useDataRoutes.d.ts.map +1 -1
- package/dist/service/useDataRoutes.js +59 -2
- package/dist/service/useDataRoutes.js.map +1 -1
- package/dist/service/useExtractRoutes.d.ts +4 -0
- package/dist/service/useExtractRoutes.d.ts.map +1 -0
- package/dist/service/useExtractRoutes.js +304 -0
- package/dist/service/useExtractRoutes.js.map +1 -0
- package/dist/service/usePageRoutes.d.ts +17 -0
- package/dist/service/usePageRoutes.d.ts.map +1 -1
- package/dist/service/usePageRoutes.js +1385 -483
- package/dist/service/usePageRoutes.js.map +1 -1
- package/dist/service/useSharedDataRoutes.d.ts.map +1 -1
- package/dist/service/useSharedDataRoutes.js +54 -2
- package/dist/service/useSharedDataRoutes.js.map +1 -1
- package/dist/settings.d.ts +27 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +40 -1
- package/dist/settings.js.map +1 -1
- package/dist/themes.d.ts +0 -5
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +3 -95
- package/dist/themes.js.map +1 -1
- package/migration-rules/v2-to-v3.md +277 -119
- package/package.json +5 -1
- package/{default-pages/application → required-pages/_shell}/page.html +56 -42
- package/required-pages/_shell/page.json +14 -0
- package/required-pages/_starters/page.html +534 -0
- package/required-pages/_starters/page.json +12 -0
- package/required-pages/builder/page.html +353 -43
- package/required-pages/builder/page.json +12 -10
- package/required-pages/pages/page.html +697 -924
- package/required-pages/pages/page.json +12 -10
- package/required-pages/settings/page.html +1879 -1753
- package/required-pages/settings/page.json +12 -10
- package/required-pages/synthos_apis/page.html +834 -845
- package/required-pages/synthos_apis/page.json +12 -10
- package/required-pages/synthos_scripts/page.html +74 -88
- package/required-pages/synthos_scripts/page.json +12 -10
- package/scripts/append-instructions.py +90 -0
- package/scripts/audit-instructions.py +76 -0
- package/scripts/cleanup-shell-markup.mjs +112 -0
- package/service-connectors/buffer/connector.json +46 -0
- package/service-connectors/canva/connector.json +67 -0
- package/service-connectors/elevenlabs/connector.json +1 -1
- package/src/builders/anthropic.ts +155 -30
- package/src/builders/claudecode.ts +310 -0
- package/src/builders/index.ts +7 -1
- package/src/builders/openai.ts +2 -1
- package/src/builders/types.ts +93 -32
- package/src/connectors/types.ts +8 -0
- package/src/init.ts +13 -7
- package/src/migrations.ts +187 -16
- package/src/models/anthropic.ts +140 -30
- package/src/models/chainOfThought.ts +33 -18
- package/src/models/index.ts +2 -2
- package/src/models/providers.ts +12 -3
- package/src/models/types.ts +21 -1
- package/src/pages.ts +271 -35
- package/src/service/createCompletePrompt.ts +6 -0
- package/src/service/mediaCache.ts +206 -0
- package/src/service/pageValidator.ts +337 -0
- package/src/service/server.ts +4 -0
- package/src/service/sharedTableSchema.ts +236 -0
- package/src/service/transformPage.ts +370 -260
- package/src/service/useApiRoutes.ts +282 -32
- package/src/service/useConnectorRoutes.ts +189 -34
- package/src/service/useDataRoutes.ts +198 -116
- package/src/service/useExtractRoutes.ts +331 -0
- package/src/service/usePageRoutes.ts +1411 -394
- package/src/service/useSharedDataRoutes.ts +184 -109
- package/src/settings.ts +65 -0
- package/src/themes.ts +78 -180
- package/starters/blank_starter/chat-history.json +1 -0
- package/starters/blank_starter/page.dark.png +0 -0
- package/starters/blank_starter/page.html +47 -0
- package/starters/blank_starter/page.json +13 -0
- package/starters/blank_starter/page.light.png +0 -0
- package/starters/calculator_starter/chat-history.json +1 -0
- package/starters/calculator_starter/page.dark.png +0 -0
- package/starters/calculator_starter/page.html +232 -0
- package/starters/calculator_starter/page.json +13 -0
- package/starters/calculator_starter/page.light.png +0 -0
- package/starters/calendar_starter/chat-history.json +1 -0
- package/starters/calendar_starter/page.dark.png +0 -0
- package/starters/calendar_starter/page.html +495 -0
- package/starters/calendar_starter/page.json +13 -0
- package/starters/calendar_starter/page.light.png +0 -0
- package/starters/chat_starter/chat-history.json +1 -0
- package/starters/chat_starter/page.dark.png +0 -0
- package/starters/chat_starter/page.html +351 -0
- package/starters/chat_starter/page.json +13 -0
- package/starters/chat_starter/page.light.png +0 -0
- package/starters/checklist_starter/chat-history.json +1 -0
- package/starters/checklist_starter/page.dark.png +0 -0
- package/starters/checklist_starter/page.html +437 -0
- package/starters/checklist_starter/page.json +13 -0
- package/starters/checklist_starter/page.light.png +0 -0
- package/starters/dashboard_starter/chat-history.json +1 -0
- package/starters/dashboard_starter/page.dark.png +0 -0
- package/starters/dashboard_starter/page.html +195 -0
- package/starters/dashboard_starter/page.json +13 -0
- package/starters/dashboard_starter/page.light.png +0 -0
- package/starters/form_starter/chat-history.json +1 -0
- package/starters/form_starter/page.dark.png +0 -0
- package/starters/form_starter/page.html +313 -0
- package/starters/form_starter/page.json +13 -0
- package/starters/form_starter/page.light.png +0 -0
- package/starters/gallery_starter/chat-history.json +1 -0
- package/starters/gallery_starter/page.dark.png +0 -0
- package/starters/gallery_starter/page.html +418 -0
- package/starters/gallery_starter/page.json +13 -0
- package/starters/gallery_starter/page.light.png +0 -0
- package/starters/generator_starter/chat-history.json +1 -0
- package/starters/generator_starter/page.dark.png +0 -0
- package/starters/generator_starter/page.html +261 -0
- package/starters/generator_starter/page.json +13 -0
- package/starters/generator_starter/page.light.png +0 -0
- package/starters/index.html +538 -0
- package/starters/kanban_starter/chat-history.json +1 -0
- package/starters/kanban_starter/page.dark.png +0 -0
- package/starters/kanban_starter/page.html +432 -0
- package/starters/kanban_starter/page.json +13 -0
- package/starters/kanban_starter/page.light.png +0 -0
- package/starters/presentation_builder/chat-history.json +1 -0
- package/starters/presentation_builder/page.dark.png +0 -0
- package/starters/presentation_builder/page.html +970 -0
- package/starters/presentation_builder/page.json +15 -0
- package/starters/presentation_builder/page.light.png +0 -0
- package/starters/presentation_builder/presentation_voice/voice_config.json +9 -0
- package/starters/pulse_starter/chat-history.json +1 -0
- package/starters/pulse_starter/page.dark.png +0 -0
- package/starters/pulse_starter/page.html +698 -0
- package/starters/pulse_starter/page.json +13 -0
- package/starters/pulse_starter/page.light.png +0 -0
- package/starters/quiz_starter/chat-history.json +1 -0
- package/starters/quiz_starter/page.dark.png +0 -0
- package/starters/quiz_starter/page.html +292 -0
- package/starters/quiz_starter/page.json +13 -0
- package/starters/quiz_starter/page.light.png +0 -0
- package/starters/reference_starter/chat-history.json +1 -0
- package/starters/reference_starter/page.dark.png +0 -0
- package/starters/reference_starter/page.html +250 -0
- package/starters/reference_starter/page.json +13 -0
- package/starters/reference_starter/page.light.png +0 -0
- package/starters/retro_game_starter/chat-history.json +1 -0
- package/starters/retro_game_starter/page.dark.png +0 -0
- package/{default-pages → starters}/retro_game_starter/page.html +1281 -1308
- package/starters/retro_game_starter/page.json +15 -0
- package/starters/retro_game_starter/page.light.png +0 -0
- package/starters/roster_starter/chat-history.json +1 -0
- package/starters/roster_starter/page.dark.png +0 -0
- package/starters/roster_starter/page.html +600 -0
- package/starters/roster_starter/page.json +13 -0
- package/starters/roster_starter/page.light.png +0 -0
- package/starters/server.js +182 -0
- package/starters/start.cmd +1 -0
- package/starters/timeline_starter/chat-history.json +1 -0
- package/starters/timeline_starter/page.dark.png +0 -0
- package/starters/timeline_starter/page.html +446 -0
- package/starters/timeline_starter/page.json +13 -0
- package/starters/timeline_starter/page.light.png +0 -0
- package/starters/tutorial_starter/chat-history.json +1 -0
- package/starters/tutorial_starter/page.dark.png +0 -0
- package/starters/tutorial_starter/page.html +283 -0
- package/starters/tutorial_starter/page.json +13 -0
- package/starters/tutorial_starter/page.light.png +0 -0
- package/static-files/agent.v3.js +122 -0
- package/static-files/connector.v3.js +48 -0
- package/static-files/extract.v3.js +188 -0
- package/static-files/helpers.v3.js +50 -6
- package/static-files/page-bridge.js +114 -0
- package/static-files/page.v3.js +1292 -1290
- package/static-files/script.v3.js +32 -0
- package/static-files/server.v3.js +89 -0
- package/static-files/shell-bridge.v3.js +174 -0
- package/static-files/shell-modals.v3.js +521 -0
- package/static-files/{shell.css → shell.v3.css} +271 -22
- package/static-files/shell.v3.js +1865 -0
- package/static-files/storage.v3.js +176 -0
- package/tests/anthropic.spec.ts +42 -7
- package/tests/builders.spec.ts +72 -4
- package/tests/pageValidator.spec.ts +548 -0
- package/tests/profiles.spec.ts +122 -0
- package/tests/providers.spec.ts +1 -1
- package/tests/sharedTableSchema.spec.ts +242 -0
- package/tests/transformPage.spec.ts +62 -81
- package/default-pages/application/page.json +0 -10
- package/default-pages/retro_game_starter/page.json +0 -12
- package/default-pages/sidebar_page/page.html +0 -51
- package/default-pages/sidebar_page/page.json +0 -10
- package/default-pages/two-panel_page/page.html +0 -68
- package/default-pages/two-panel_page/page.json +0 -10
|
@@ -14,27 +14,27 @@
|
|
|
14
14
|
--themeDarker: #7a4310;
|
|
15
15
|
--themeSecondary: #eb9950;
|
|
16
16
|
--themeTertiary: #f0b67e;
|
|
17
|
-
--themeLight: #
|
|
18
|
-
--themeLighter: #
|
|
19
|
-
--themeLighterAlt: #
|
|
17
|
+
--themeLight: #3a2510;
|
|
18
|
+
--themeLighter: #301e0c;
|
|
19
|
+
--themeLighterAlt: #261808;
|
|
20
20
|
|
|
21
21
|
/* -----------------------------------------------------------------------
|
|
22
|
-
PALETTE — Neutrals (
|
|
22
|
+
PALETTE — Neutrals (standardized grayscale, dark mode)
|
|
23
23
|
----------------------------------------------------------------------- */
|
|
24
24
|
--black: #000000;
|
|
25
|
-
--neutralDarker: #
|
|
26
|
-
--neutralDark: #
|
|
27
|
-
--neutralPrimary: #
|
|
28
|
-
--neutralPrimaryAlt: #
|
|
29
|
-
--neutralSecondary: #
|
|
30
|
-
--neutralSecondaryAlt: #
|
|
31
|
-
--neutralTertiary: #
|
|
32
|
-
--neutralTertiaryAlt: #
|
|
33
|
-
--neutralQuaternary: #
|
|
34
|
-
--neutralQuaternaryAlt: #
|
|
35
|
-
--neutralLight: #
|
|
36
|
-
--neutralLighter: #
|
|
37
|
-
--neutralLighterAlt: #
|
|
25
|
+
--neutralDarker: #0a0a0a;
|
|
26
|
+
--neutralDark: #141414;
|
|
27
|
+
--neutralPrimary: #1b1b1b;
|
|
28
|
+
--neutralPrimaryAlt: #242424;
|
|
29
|
+
--neutralSecondary: #2e2e2e;
|
|
30
|
+
--neutralSecondaryAlt: #3b3b3b;
|
|
31
|
+
--neutralTertiary: #595959;
|
|
32
|
+
--neutralTertiaryAlt: #7a7a7a;
|
|
33
|
+
--neutralQuaternary: #8a8a8a;
|
|
34
|
+
--neutralQuaternaryAlt: #9a9a9a;
|
|
35
|
+
--neutralLight: #afafaf;
|
|
36
|
+
--neutralLighter: #e0e0e0;
|
|
37
|
+
--neutralLighterAlt: #f0f0f0;
|
|
38
38
|
--white: #ffffff;
|
|
39
39
|
|
|
40
40
|
/* -----------------------------------------------------------------------
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
--bodyText: var(--neutralLighter);
|
|
55
55
|
--bodyTextChecked: var(--white);
|
|
56
56
|
--bodySubtext: var(--neutralTertiaryAlt);
|
|
57
|
-
--disabledText: var(--
|
|
58
|
-
--disabledBodyText: var(--
|
|
59
|
-
--disabledSubtext: var(--
|
|
60
|
-
--disabledBodySubtext: var(--
|
|
57
|
+
--disabledText: var(--neutralTertiary);
|
|
58
|
+
--disabledBodyText: var(--neutralTertiary);
|
|
59
|
+
--disabledSubtext: var(--neutralTertiary);
|
|
60
|
+
--disabledBodySubtext: var(--neutralTertiary);
|
|
61
61
|
|
|
62
62
|
/* -----------------------------------------------------------------------
|
|
63
63
|
LINKS
|
|
@@ -75,15 +75,15 @@
|
|
|
75
75
|
--buttonBackgroundChecked: var(--neutralSecondary);
|
|
76
76
|
--buttonBackgroundCheckedHovered: var(--neutralSecondaryAlt);
|
|
77
77
|
--buttonBackgroundPressed: var(--neutralSecondary);
|
|
78
|
-
--buttonBackgroundDisabled: var(--
|
|
78
|
+
--buttonBackgroundDisabled: var(--neutralSecondaryAlt);
|
|
79
79
|
--buttonBorder: var(--neutralSecondaryAlt);
|
|
80
|
-
--buttonBorderDisabled: var(--
|
|
80
|
+
--buttonBorderDisabled: var(--neutralTertiary);
|
|
81
81
|
--buttonText: var(--neutralLighter);
|
|
82
82
|
--buttonTextHovered: var(--white);
|
|
83
83
|
--buttonTextChecked: var(--white);
|
|
84
84
|
--buttonTextCheckedHovered: var(--white);
|
|
85
85
|
--buttonTextPressed: var(--white);
|
|
86
|
-
--buttonTextDisabled: var(--
|
|
86
|
+
--buttonTextDisabled: var(--neutralQuaternary);
|
|
87
87
|
|
|
88
88
|
/* -----------------------------------------------------------------------
|
|
89
89
|
BUTTONS — Primary
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
--primaryButtonBackground: var(--themePrimary);
|
|
92
92
|
--primaryButtonBackgroundHovered: var(--themeDarkAlt);
|
|
93
93
|
--primaryButtonBackgroundPressed: var(--themeDark);
|
|
94
|
-
--primaryButtonBackgroundDisabled: var(--
|
|
94
|
+
--primaryButtonBackgroundDisabled: var(--neutralSecondaryAlt);
|
|
95
95
|
--primaryButtonBorder: transparent;
|
|
96
96
|
--primaryButtonText: var(--white);
|
|
97
97
|
--primaryButtonTextHovered: var(--white);
|
|
98
98
|
--primaryButtonTextPressed: var(--white);
|
|
99
|
-
--primaryButtonTextDisabled: var(--
|
|
99
|
+
--primaryButtonTextDisabled: var(--neutralQuaternary);
|
|
100
100
|
|
|
101
101
|
/* -----------------------------------------------------------------------
|
|
102
102
|
BUTTONS — Accent
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { completePrompt } from '../models';
|
|
2
|
+
import { ToolDefinition, ToolHandler } from '../models/types';
|
|
2
3
|
import { Attachment, Builder, BuilderResult, ContextSection } from './types';
|
|
3
4
|
export interface AnthropicBuilderOptions {
|
|
4
5
|
apiKey?: string;
|
|
@@ -9,14 +10,32 @@ export interface AnthropicBuilderOptions {
|
|
|
9
10
|
isFirstEdit?: boolean;
|
|
10
11
|
/** When true, retry the last edit — forces Opus + no ranged writes, skips classification. */
|
|
11
12
|
tryAgain?: boolean;
|
|
13
|
+
/** Number of messages in the chat history (used for early-conversation bypass). */
|
|
14
|
+
historyLength?: number;
|
|
15
|
+
/** Pre-computed classification result — skips re-classifying in the builder. */
|
|
16
|
+
preClassified?: ClassifyResult;
|
|
12
17
|
}
|
|
13
18
|
export type Classification = 'question' | 'easy-change' | 'medium-change' | 'hard-change' | 're-write';
|
|
19
|
+
/** Sketches passed to the classifier so it can decide which sections to expand. */
|
|
20
|
+
export interface ClassifierSection {
|
|
21
|
+
/** Section title (e.g. "<CONFIGURED_AGENTS>"). */
|
|
22
|
+
title: string;
|
|
23
|
+
/** Compact one-line summary the classifier reads. */
|
|
24
|
+
sketch: string;
|
|
25
|
+
}
|
|
14
26
|
export interface ClassifyResult {
|
|
15
27
|
classification: Classification;
|
|
16
28
|
/** When classification is "question", this contains the answer text. */
|
|
17
29
|
answer?: string;
|
|
30
|
+
/** Section titles the classifier picked to render in full. Empty = render all sketches. */
|
|
31
|
+
expand: string[];
|
|
18
32
|
}
|
|
19
|
-
export declare function classifyRequest(apiKey: string, pageHtml: string, userMessage: string): Promise<ClassifyResult>;
|
|
33
|
+
export declare function classifyRequest(apiKey: string, pageHtml: string, userMessage: string, sections?: ClassifierSection[]): Promise<ClassifyResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Returns true when the message is very likely a pure information question
|
|
36
|
+
* (no intent to modify the page). Used to bypass the full Sonnet classifier.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isLikelyQuestion(message: string): boolean;
|
|
20
39
|
/**
|
|
21
40
|
* Create an Anthropic-tuned builder.
|
|
22
41
|
*
|
|
@@ -26,6 +45,11 @@ export declare function classifyRequest(apiKey: string, pageHtml: string, userMe
|
|
|
26
45
|
* @param options Optional API key and model name for classifier routing.
|
|
27
46
|
*/
|
|
28
47
|
export declare function createAnthropicBuilder(complete: completePrompt, userInstructions?: string, productName?: string, options?: AnthropicBuilderOptions): Builder;
|
|
29
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Appended to <INSTRUCTIONS> when tools are bound so the model knows it may
|
|
50
|
+
* fetch additional context on demand.
|
|
51
|
+
*/
|
|
52
|
+
export declare const TOOLS_INSTRUCTION_HINT = "You may call the provided tools to load additional context only if you need it. You may call multiple tools in parallel in a single turn.";
|
|
53
|
+
export declare function buildWithModel(model: completePrompt, currentPage: ContextSection, additionalSections: ContextSection[], userMessage: string, userInstructions: string | undefined, productName: string, attachments?: Attachment[], outputSchema?: Record<string, unknown>, tools?: ToolDefinition[], toolHandlers?: Record<string, ToolHandler>, onToolCall?: (names: string[]) => void): Promise<BuilderResult>;
|
|
30
54
|
export declare function parseBuilderResponse(raw: string): BuilderResult;
|
|
31
55
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/builders/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,cAAc,EAAgB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/builders/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,cAAc,EAAgB,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAkD,cAAc,EAAE,MAAM,SAAS,CAAC;AAM7H,MAAM,WAAW,uBAAuB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,CAAC;IACtD,kGAAkG;IAClG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,aAAa,CAAC,EAAE,cAAc,CAAC;CAClC;AAMD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,CAAC;AAEvG,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAC9B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AA4BD,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,GAC/B,OAAO,CAAC,cAAc,CAAC,CAkCzB;AAwBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMzD;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAgHT;AAMD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,8IAA8I,CAAC;AAElL,wBAAsB,cAAc,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,cAAc,EAC3B,kBAAkB,EAAE,cAAc,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,GACvC,OAAO,CAAC,aAAa,CAAC,CA0DxB;AAkBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA+B/D"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseBuilderResponse = exports.buildWithModel = exports.createAnthropicBuilder = exports.classifyRequest = void 0;
|
|
3
|
+
exports.parseBuilderResponse = exports.buildWithModel = exports.TOOLS_INSTRUCTION_HINT = exports.createAnthropicBuilder = exports.isLikelyQuestion = exports.classifyRequest = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
const transformPage_1 = require("../service/transformPage");
|
|
6
6
|
const types_1 = require("./types");
|
|
7
|
-
const CLASSIFIER_SYSTEM_PROMPT = `You classify user messages for a web page builder. Default to a change request. Only classify as "question" when the user is purely asking for information with zero implication that anything should change.
|
|
7
|
+
const CLASSIFIER_SYSTEM_PROMPT = `You classify user messages for a web page builder and pick which context sections the builder needs. Default to a change request. Only classify as "question" when the user is purely asking for information with zero implication that anything should change.
|
|
8
8
|
|
|
9
9
|
<DECISION_RULES>
|
|
10
10
|
Step 1 — Is this a pure information question with zero change implication?
|
|
@@ -18,36 +18,86 @@ Step 2 — Classify complexity:
|
|
|
18
18
|
"hard-change": Complex new features, significant new JS, games, animations, restructuring layout, forms with validation, multi-step work.
|
|
19
19
|
"re-write": Complete page overhaul, fundamental restructure, "start over", "rebuild", "redo the whole page".
|
|
20
20
|
|
|
21
|
+
Step 3 — Which context sections does the model need to fulfill this request?
|
|
22
|
+
Read the AVAILABLE_SECTIONS list in the user message — each line is "<SECTION_TITLE>: <one-line sketch>" describing what's in the section.
|
|
23
|
+
Return an "expand" array of section titles (matching exactly, including the angle brackets) the model needs in full.
|
|
24
|
+
Include a title only if the page currently uses that feature OR the user's request will likely require it.
|
|
25
|
+
Sections you don't expand will still be visible to the model as their sketch — so the model knows the section exists, just not the full content.
|
|
26
|
+
Omit sections that are clearly unrelated to this request.
|
|
27
|
+
|
|
21
28
|
<OUTPUT_FORMAT>
|
|
22
29
|
Return only JSON. No other text.
|
|
23
|
-
- Change: { "classification": "easy-change"
|
|
24
|
-
- Question: { "classification": "question", "answer": "<brief answer>" }`;
|
|
25
|
-
async function classifyRequest(apiKey, pageHtml, userMessage) {
|
|
30
|
+
- Change: { "classification": "easy-change", "expand": ["<FLUENTLM_COMPONENTS>"] }
|
|
31
|
+
- Question: { "classification": "question", "answer": "<brief answer>", "expand": [] }`;
|
|
32
|
+
async function classifyRequest(apiKey, pageHtml, userMessage, sections) {
|
|
26
33
|
try {
|
|
27
|
-
const sonnet = (0, models_1.anthropic)({ apiKey, model: 'claude-sonnet-4-
|
|
34
|
+
const sonnet = (0, models_1.anthropic)({ apiKey, model: 'claude-sonnet-4-6' });
|
|
35
|
+
const sectionList = (sections ?? [])
|
|
36
|
+
.map(s => `${s.title}: ${s.sketch}`)
|
|
37
|
+
.join('\n');
|
|
38
|
+
const sectionsBlock = sectionList
|
|
39
|
+
? `\n\n<AVAILABLE_SECTIONS>\n${sectionList}`
|
|
40
|
+
: '';
|
|
28
41
|
const result = await sonnet({
|
|
29
42
|
system: { role: 'system', content: CLASSIFIER_SYSTEM_PROMPT },
|
|
30
|
-
prompt: { role: 'user', content: `<PAGE_HTML>\n${pageHtml}\n\n<USER_MESSAGE>\n${userMessage}` },
|
|
43
|
+
prompt: { role: 'user', content: `<PAGE_HTML>\n${pageHtml}\n\n<USER_MESSAGE>\n${userMessage}${sectionsBlock}` },
|
|
31
44
|
jsonMode: true,
|
|
32
45
|
});
|
|
33
46
|
if (!result.completed || !result.value) {
|
|
34
|
-
return { classification: 'hard-change' };
|
|
47
|
+
return { classification: 'hard-change', expand: [] };
|
|
35
48
|
}
|
|
36
49
|
const parsed = JSON.parse(result.value);
|
|
37
50
|
const c = parsed.classification;
|
|
51
|
+
const allowed = new Set((sections ?? []).map(s => s.title));
|
|
52
|
+
const expand = parseExpand(parsed.expand, allowed);
|
|
38
53
|
if (c === 'question') {
|
|
39
|
-
return { classification: 'question', answer: typeof parsed.answer === 'string' ? parsed.answer : '' };
|
|
54
|
+
return { classification: 'question', answer: typeof parsed.answer === 'string' ? parsed.answer : '', expand };
|
|
40
55
|
}
|
|
41
56
|
if (c === 'easy-change' || c === 'medium-change' || c === 'hard-change' || c === 're-write') {
|
|
42
|
-
return { classification: c };
|
|
57
|
+
return { classification: c, expand };
|
|
43
58
|
}
|
|
44
|
-
return { classification: 'hard-change' };
|
|
59
|
+
return { classification: 'hard-change', expand };
|
|
45
60
|
}
|
|
46
61
|
catch {
|
|
47
|
-
return { classification: 'hard-change' };
|
|
62
|
+
return { classification: 'hard-change', expand: [] };
|
|
48
63
|
}
|
|
49
64
|
}
|
|
50
65
|
exports.classifyRequest = classifyRequest;
|
|
66
|
+
/**
|
|
67
|
+
* Validate the classifier's expand[] against the set of titles it was offered.
|
|
68
|
+
* Unknown / non-string entries are dropped silently.
|
|
69
|
+
*/
|
|
70
|
+
function parseExpand(raw, allowed) {
|
|
71
|
+
if (!Array.isArray(raw))
|
|
72
|
+
return [];
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const item of raw) {
|
|
75
|
+
if (typeof item === 'string' && allowed.has(item)) {
|
|
76
|
+
out.push(item);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Lightweight question heuristic — replaces Sonnet classifier for Q&A detection
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
const QUESTION_WORDS = /^(?:what|how|why|where|when|which|is|are|does|do|can|could|should|would|will)\b/i;
|
|
85
|
+
const ACTION_VERBS = /\b(?:add|change|make|create|build|fix|update|remove|delete|move|replace|resize|rewrite|redo|redesign)\b/i;
|
|
86
|
+
/**
|
|
87
|
+
* Returns true when the message is very likely a pure information question
|
|
88
|
+
* (no intent to modify the page). Used to bypass the full Sonnet classifier.
|
|
89
|
+
*/
|
|
90
|
+
function isLikelyQuestion(message) {
|
|
91
|
+
const trimmed = message.trim();
|
|
92
|
+
if (!trimmed.endsWith('?'))
|
|
93
|
+
return false;
|
|
94
|
+
if (!QUESTION_WORDS.test(trimmed))
|
|
95
|
+
return false;
|
|
96
|
+
if (ACTION_VERBS.test(trimmed))
|
|
97
|
+
return false;
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
exports.isLikelyQuestion = isLikelyQuestion;
|
|
51
101
|
// ---------------------------------------------------------------------------
|
|
52
102
|
// Anthropic builder factory
|
|
53
103
|
// ---------------------------------------------------------------------------
|
|
@@ -62,28 +112,28 @@ exports.classifyRequest = classifyRequest;
|
|
|
62
112
|
function createAnthropicBuilder(complete, userInstructions, productName, options) {
|
|
63
113
|
const name = productName ?? 'SynthOS';
|
|
64
114
|
return {
|
|
65
|
-
async run(currentPage, additionalSections, userMessage, newBuild, attachments) {
|
|
115
|
+
async run(currentPage, additionalSections, userMessage, newBuild, attachments, tools, toolHandlers, onToolCall) {
|
|
66
116
|
try {
|
|
67
117
|
const isOpus = options?.model?.startsWith('claude-opus-');
|
|
68
118
|
const noRanged = types_1.CHANGE_OPS_SCHEMA_NO_RANGED;
|
|
69
119
|
// Non-Opus models or missing apiKey: existing behavior
|
|
70
120
|
if (!isOpus || !options?.apiKey) {
|
|
71
|
-
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments);
|
|
121
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, undefined, tools, toolHandlers, onToolCall);
|
|
72
122
|
}
|
|
73
123
|
// Console errors bypass classification — always route to Opus with no ranged writes
|
|
74
124
|
if (userMessage.includes('CONSOLE_ERRORS:')) {
|
|
75
125
|
console.log('classifyRequest: console errors detected → routing to ' + options.model + ' (no ranged)');
|
|
76
|
-
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
126
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
77
127
|
}
|
|
78
128
|
// New builds always use Opus with no ranged writes
|
|
79
129
|
if (newBuild) {
|
|
80
130
|
console.log('classifyRequest: new build → routing to ' + options.model + ' (no ranged)');
|
|
81
|
-
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
131
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
82
132
|
}
|
|
83
133
|
// First edit to a saved page (v0→v1) — force Opus with no ranged writes
|
|
84
134
|
if (options?.isFirstEdit) {
|
|
85
135
|
console.log('classifyRequest: first edit (v0→v1) → routing to ' + options.model + ' (no ranged)');
|
|
86
|
-
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
136
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
87
137
|
}
|
|
88
138
|
// Try again — force Opus with no ranged writes, skip classification
|
|
89
139
|
if (options?.tryAgain) {
|
|
@@ -91,31 +141,69 @@ function createAnthropicBuilder(complete, userInstructions, productName, options
|
|
|
91
141
|
let opus = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-opus-4-6' });
|
|
92
142
|
if (options.wrapModel)
|
|
93
143
|
opus = options.wrapModel(opus);
|
|
94
|
-
return buildWithModel(opus, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
144
|
+
return buildWithModel(opus, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
145
|
+
}
|
|
146
|
+
// --- Opt-1: Smart classification bypass ---
|
|
147
|
+
// Small pages (<5KB) — Opus cost delta is negligible; classifier cost exceeds savings
|
|
148
|
+
if (currentPage.content.length < 5_000) {
|
|
149
|
+
console.log('classifyRequest: small page (<5KB) → routing to ' + options.model + ' (no ranged, bypass)');
|
|
150
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
151
|
+
}
|
|
152
|
+
// Image attachments — always structural changes; classifier can't inspect images
|
|
153
|
+
if (attachments && attachments.length > 0) {
|
|
154
|
+
console.log('classifyRequest: image attachments → routing to ' + options.model + ' (no ranged, bypass)');
|
|
155
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
156
|
+
}
|
|
157
|
+
// Early conversations (history <= 2) — almost always builds/edits
|
|
158
|
+
if (typeof options.historyLength === 'number' && options.historyLength <= 2) {
|
|
159
|
+
console.log('classifyRequest: early conversation (history <= 2) → routing to ' + options.model + ' (no ranged, bypass)');
|
|
160
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
161
|
+
}
|
|
162
|
+
// Keyword-based Q&A detection — lightweight heuristic replaces full-page Sonnet call
|
|
163
|
+
if (isLikelyQuestion(userMessage)) {
|
|
164
|
+
console.log('classifyRequest: likely question (heuristic) → routing to claude-sonnet-4-6 (Q&A, no page HTML)');
|
|
165
|
+
let sonnet = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-sonnet-4-6' });
|
|
166
|
+
if (options.wrapModel)
|
|
167
|
+
sonnet = options.wrapModel(sonnet);
|
|
168
|
+
// Lightweight Q&A call — send only user message + page summary, not full HTML
|
|
169
|
+
const pageTitle = currentPage.content.match(/<title[^>]*>([^<]*)<\/title>/i)?.[1] ?? 'untitled';
|
|
170
|
+
const elementCount = (currentPage.content.match(/<[a-z]/gi) ?? []).length;
|
|
171
|
+
const pageSummary = `Page: "${pageTitle}" (${elementCount} elements)`;
|
|
172
|
+
const qaResult = await sonnet({
|
|
173
|
+
system: { role: 'system', content: 'You are a helpful assistant for a web page builder. Answer the user\'s question briefly and accurately based on the page summary provided.' },
|
|
174
|
+
prompt: { role: 'user', content: `${pageSummary}\n\n${userMessage}` },
|
|
175
|
+
});
|
|
176
|
+
if (qaResult.completed && qaResult.value) {
|
|
177
|
+
return { kind: 'reply', text: qaResult.value };
|
|
178
|
+
}
|
|
179
|
+
// Fallback to classifier if Q&A call fails
|
|
180
|
+
}
|
|
181
|
+
// Classify the request — use pre-computed result if available, otherwise call Sonnet
|
|
182
|
+
const classifyResult = options.preClassified
|
|
183
|
+
?? await classifyRequest(options.apiKey, currentPage.content, userMessage);
|
|
184
|
+
if (!options.preClassified) {
|
|
185
|
+
console.log(`classifyRequest: "${classifyResult.classification}" → routing to ${routeLabel(classifyResult.classification, options.model)}`);
|
|
95
186
|
}
|
|
96
|
-
// Classify the request using Sonnet
|
|
97
|
-
const classifyResult = await classifyRequest(options.apiKey, currentPage.content, userMessage);
|
|
98
|
-
console.log(`classifyRequest: "${classifyResult.classification}" → routing to ${routeLabel(classifyResult.classification, options.model)}`);
|
|
99
187
|
// Questions — answer was already provided by the classifier
|
|
100
188
|
if (classifyResult.classification === 'question') {
|
|
101
189
|
return { kind: 'reply', text: classifyResult.answer ?? '' };
|
|
102
190
|
}
|
|
103
191
|
// Easy changes use Sonnet with default schema (ranged allowed)
|
|
104
192
|
if (classifyResult.classification === 'easy-change') {
|
|
105
|
-
let sonnet = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-sonnet-4-
|
|
193
|
+
let sonnet = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-sonnet-4-6' });
|
|
106
194
|
if (options.wrapModel)
|
|
107
195
|
sonnet = options.wrapModel(sonnet);
|
|
108
|
-
return buildWithModel(sonnet, currentPage, additionalSections, userMessage, userInstructions, name, attachments);
|
|
196
|
+
return buildWithModel(sonnet, currentPage, additionalSections, userMessage, userInstructions, name, attachments, undefined, tools, toolHandlers, onToolCall);
|
|
109
197
|
}
|
|
110
198
|
// Medium changes use Sonnet with no ranged writes
|
|
111
199
|
if (classifyResult.classification === 'medium-change') {
|
|
112
|
-
let sonnet = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-sonnet-4-
|
|
200
|
+
let sonnet = (0, models_1.anthropic)({ apiKey: options.apiKey, model: 'claude-sonnet-4-6' });
|
|
113
201
|
if (options.wrapModel)
|
|
114
202
|
sonnet = options.wrapModel(sonnet);
|
|
115
|
-
return buildWithModel(sonnet, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
203
|
+
return buildWithModel(sonnet, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
116
204
|
}
|
|
117
205
|
// Hard changes and re-writes use Opus with no ranged writes
|
|
118
|
-
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged);
|
|
206
|
+
return buildWithModel(complete, currentPage, additionalSections, userMessage, userInstructions, name, attachments, noRanged, tools, toolHandlers, onToolCall);
|
|
119
207
|
}
|
|
120
208
|
catch (err) {
|
|
121
209
|
return { kind: 'error', error: err instanceof Error ? err : new Error(String(err)) };
|
|
@@ -127,7 +215,12 @@ exports.createAnthropicBuilder = createAnthropicBuilder;
|
|
|
127
215
|
// ---------------------------------------------------------------------------
|
|
128
216
|
// Build flow — shared prompt construction + model call + parsing
|
|
129
217
|
// ---------------------------------------------------------------------------
|
|
130
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Appended to <INSTRUCTIONS> when tools are bound so the model knows it may
|
|
220
|
+
* fetch additional context on demand.
|
|
221
|
+
*/
|
|
222
|
+
exports.TOOLS_INSTRUCTION_HINT = 'You may call the provided tools to load additional context only if you need it. You may call multiple tools in parallel in a single turn.';
|
|
223
|
+
async function buildWithModel(model, currentPage, additionalSections, userMessage, userInstructions, productName, attachments, outputSchema, tools, toolHandlers, onToolCall) {
|
|
131
224
|
// -- System message: all static content (cacheable) --
|
|
132
225
|
const systemParts = [];
|
|
133
226
|
for (const section of additionalSections) {
|
|
@@ -145,6 +238,9 @@ async function buildWithModel(model, currentPage, additionalSections, userMessag
|
|
|
145
238
|
}
|
|
146
239
|
}
|
|
147
240
|
instructionParts.push((0, transformPage_1.getTransformInstr)(productName));
|
|
241
|
+
if (tools && tools.length > 0) {
|
|
242
|
+
instructionParts.push(exports.TOOLS_INSTRUCTION_HINT);
|
|
243
|
+
}
|
|
148
244
|
const instructions = instructionParts.filter(s => s.trim() !== '').join('\n');
|
|
149
245
|
systemParts.push(`<INSTRUCTIONS>\n${instructions}`);
|
|
150
246
|
const systemContent = systemParts.join('\n\n');
|
|
@@ -169,6 +265,7 @@ async function buildWithModel(model, currentPage, additionalSections, userMessag
|
|
|
169
265
|
prompt: { role: 'user', content: promptContent },
|
|
170
266
|
cacheSystem: true,
|
|
171
267
|
outputSchema: outputSchema ?? types_1.CHANGE_OPS_SCHEMA,
|
|
268
|
+
...(tools && tools.length > 0 && { tools, toolHandlers: toolHandlers ?? {}, onToolCall }),
|
|
172
269
|
});
|
|
173
270
|
if (!result.completed) {
|
|
174
271
|
return { kind: 'error', error: result.error ?? new Error('Model call failed') };
|
|
@@ -184,9 +281,9 @@ function routeLabel(classification, configuredModel) {
|
|
|
184
281
|
if (classification === 'question')
|
|
185
282
|
return 'classifier (answered inline)';
|
|
186
283
|
if (classification === 'easy-change')
|
|
187
|
-
return 'claude-sonnet-4-
|
|
284
|
+
return 'claude-sonnet-4-6';
|
|
188
285
|
if (classification === 'medium-change')
|
|
189
|
-
return 'claude-sonnet-4-
|
|
286
|
+
return 'claude-sonnet-4-6 (no ranged)';
|
|
190
287
|
if (classification === 're-write')
|
|
191
288
|
return configuredModel + ' (re-write)';
|
|
192
289
|
return configuredModel + ' (no ranged)';
|
|
@@ -195,10 +292,14 @@ function routeLabel(classification, configuredModel) {
|
|
|
195
292
|
// Response parsing — shared across builders
|
|
196
293
|
// ---------------------------------------------------------------------------
|
|
197
294
|
function parseBuilderResponse(raw) {
|
|
198
|
-
// Try parsing as a JSON object with a
|
|
295
|
+
// Try parsing as a JSON object with a changes array + optional message
|
|
199
296
|
try {
|
|
200
297
|
const parsed = JSON.parse(raw);
|
|
201
298
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
299
|
+
if (Array.isArray(parsed.changes)) {
|
|
300
|
+
const message = typeof parsed.message === 'string' ? parsed.message : undefined;
|
|
301
|
+
return { kind: 'transforms', changes: parsed.changes, message };
|
|
302
|
+
}
|
|
202
303
|
if (parsed.kind === 'transforms' && Array.isArray(parsed.changes)) {
|
|
203
304
|
return { kind: 'transforms', changes: parsed.changes };
|
|
204
305
|
}
|
|
@@ -206,7 +307,7 @@ function parseBuilderResponse(raw) {
|
|
|
206
307
|
return { kind: 'reply', text: parsed.text };
|
|
207
308
|
}
|
|
208
309
|
}
|
|
209
|
-
// Bare array — backward compat
|
|
310
|
+
// Bare array — backward compat (no message field available)
|
|
210
311
|
if (Array.isArray(parsed)) {
|
|
211
312
|
return { kind: 'transforms', changes: parsed };
|
|
212
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/builders/anthropic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/builders/anthropic.ts"],"names":[],"mappings":";;;AAAA,sCAA4F;AAE5F,4DAA8E;AAC9E,mCAA6H;AA2C7H,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;uFAwBsD,CAAC;AAEjF,KAAK,UAAU,eAAe,CACjC,MAAc,EACd,QAAgB,EAChB,WAAmB,EACnB,QAA8B;IAE9B,IAAI;QACA,MAAM,MAAM,GAAG,IAAA,kBAAoB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,aAAa,GAAG,WAAW;YAC7B,CAAC,CAAC,6BAA6B,WAAW,EAAE;YAC5C,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,QAAQ,uBAAuB,WAAW,GAAG,aAAa,EAAE,EAAE;YAC/G,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACpC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;SACxD;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,UAAU,EAAE;YAClB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;SACjH;QACD,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,UAAU,EAAE;YACzF,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SACxC;QACD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;KACpD;IAAC,MAAM;QACJ,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;KACxD;AACL,CAAC;AAvCD,0CAuCC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAY,EAAE,OAAoB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAE9E,MAAM,cAAc,GAAG,kFAAkF,CAAC;AAC1G,MAAM,YAAY,GAAG,0GAA0G,CAAC;AAEhI;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,IAAI,CAAC;AAChB,CAAC;AAND,4CAMC;AAED,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAClC,QAAwB,EACxB,gBAAyB,EACzB,WAAoB,EACpB,OAAiC;IAEjC,MAAM,IAAI,GAAG,WAAW,IAAI,SAAS,CAAC;IAEtC,OAAO;QACH,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAY,EAAE,KAAM,EAAE,YAAa,EAAE,UAAW;YAC9G,IAAI;gBACA,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,mCAA2B,CAAC;gBAE7C,uDAAuD;gBACvD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;oBAC7B,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBAClK;gBAED,oFAAoF;gBACpF,IAAI,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;oBACzC,OAAO,CAAC,GAAG,CAAC,wDAAwD,GAAG,OAAO,CAAC,KAAM,GAAG,cAAc,CAAC,CAAC;oBACxG,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,mDAAmD;gBACnD,IAAI,QAAQ,EAAE;oBACV,OAAO,CAAC,GAAG,CAAC,0CAA0C,GAAG,OAAO,CAAC,KAAM,GAAG,cAAc,CAAC,CAAC;oBAC1F,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,wEAAwE;gBACxE,IAAI,OAAO,EAAE,WAAW,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,OAAO,CAAC,KAAM,GAAG,cAAc,CAAC,CAAC;oBACnG,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,oEAAoE;gBACpE,IAAI,OAAO,EAAE,QAAQ,EAAE;oBACnB,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;oBACnF,IAAI,IAAI,GAAmB,IAAA,kBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACvG,IAAI,OAAO,CAAC,SAAS;wBAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACtD,OAAO,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC7J;gBAED,6CAA6C;gBAE7C,sFAAsF;gBACtF,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE;oBACpC,OAAO,CAAC,GAAG,CAAC,kDAAkD,GAAG,OAAO,CAAC,KAAM,GAAG,sBAAsB,CAAC,CAAC;oBAC1G,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,iFAAiF;gBACjF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,OAAO,CAAC,GAAG,CAAC,kDAAkD,GAAG,OAAO,CAAC,KAAM,GAAG,sBAAsB,CAAC,CAAC;oBAC1G,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,kEAAkE;gBAClE,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE;oBACzE,OAAO,CAAC,GAAG,CAAC,kEAAkE,GAAG,OAAO,CAAC,KAAM,GAAG,sBAAsB,CAAC,CAAC;oBAC1H,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjK;gBAED,qFAAqF;gBACrF,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;oBAC/B,OAAO,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC;oBAC/G,IAAI,MAAM,GAAmB,IAAA,kBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC1G,IAAI,OAAO,CAAC,SAAS;wBAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC1D,8EAA8E;oBAC9E,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;oBAChG,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;oBAC1E,MAAM,WAAW,GAAG,UAAU,SAAS,MAAM,YAAY,YAAY,CAAC;oBACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;wBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,4IAA4I,EAAE;wBACjL,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,OAAO,WAAW,EAAE,EAAE;qBACxE,CAAC,CAAC;oBACH,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE;wBACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;qBAClD;oBACD,2CAA2C;iBAC9C;gBAED,qFAAqF;gBACrF,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa;uBACrC,MAAM,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC/E,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oBACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAc,CAAC,cAAc,kBAAkB,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC;iBAChJ;gBAED,4DAA4D;gBAC5D,IAAI,cAAc,CAAC,cAAc,KAAK,UAAU,EAAE;oBAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;iBAC/D;gBAED,+DAA+D;gBAC/D,IAAI,cAAc,CAAC,cAAc,KAAK,aAAa,EAAE;oBACjD,IAAI,MAAM,GAAmB,IAAA,kBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC1G,IAAI,OAAO,CAAC,SAAS;wBAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC1D,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBAChK;gBAED,kDAAkD;gBAClD,IAAI,cAAc,CAAC,cAAc,KAAK,eAAe,EAAE;oBACnD,IAAI,MAAM,GAAmB,IAAA,kBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC1G,IAAI,OAAO,CAAC,SAAS;wBAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC1D,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC/J;gBAED,4DAA4D;gBAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;aACjK;YAAC,OAAO,GAAY,EAAE;gBACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACxF;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AArHD,wDAqHC;AAED,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAE9E;;;GAGG;AACU,QAAA,sBAAsB,GAAG,2IAA2I,CAAC;AAE3K,KAAK,UAAU,cAAc,CAChC,KAAqB,EACrB,WAA2B,EAC3B,kBAAoC,EACpC,WAAmB,EACnB,gBAAoC,EACpC,WAAmB,EACnB,WAA0B,EAC1B,YAAsC,EACtC,KAAwB,EACxB,YAA0C,EAC1C,UAAsC;IAEtC,uDAAuD;IACvD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;QACtC,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SAC5D;KACJ;IAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,gBAAgB,EAAE,IAAI,EAAE,EAAE;QAC1B,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC3C;IACD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;QACtC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE;YAC9B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAC/C;KACJ;IACD,gBAAgB,CAAC,IAAI,CAAC,IAAA,iCAAiB,EAAC,WAAW,CAAC,CAAC,CAAC;IACtD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,gBAAgB,CAAC,IAAI,CAAC,8BAAsB,CAAC,CAAC;KACjD;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,WAAW,CAAC,IAAI,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/C,yEAAyE;IACzE,MAAM,UAAU,GAAG,GAAG,WAAW,CAAC,KAAK,KAAK,WAAW,CAAC,OAAO,uBAAuB,WAAW,EAAE,CAAC;IAEpG,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3F,IAAI,aAAsC,CAAC;IAC3C,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,MAAM,MAAM,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACpE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5E;QACD,aAAa,GAAG,MAAM,CAAC;KAC1B;SAAM;QACH,aAAa,GAAG,UAAU,CAAC;KAC9B;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;QAClD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;QAChD,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,YAAY,IAAI,yBAAiB;QAC/C,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;KAC5F,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;KACnF;IAED,uBAAuB;IACvB,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;AAC/C,CAAC;AAtED,wCAsEC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,SAAS,UAAU,CAAC,cAA8B,EAAE,eAAuB;IACvE,IAAI,cAAc,KAAK,UAAU;QAAE,OAAO,8BAA8B,CAAC;IACzE,IAAI,cAAc,KAAK,aAAa;QAAE,OAAO,mBAAmB,CAAC;IACjE,IAAI,cAAc,KAAK,eAAe;QAAE,OAAO,+BAA+B,CAAC;IAC/E,IAAI,cAAc,KAAK,UAAU;QAAE,OAAO,eAAe,GAAG,aAAa,CAAC;IAC1E,OAAO,eAAe,GAAG,cAAc,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,SAAgB,oBAAoB,CAAC,GAAW;IAC5C,uEAAuE;IACvE,IAAI;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAChE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC/B,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;aACnE;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC/D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aAC1D;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;aAC/C;SACJ;QACD,4DAA4D;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAClD;KACJ;IAAC,MAAM;QACJ,6CAA6C;KAChD;IAED,8DAA8D;IAC9D,IAAI;QACA,MAAM,OAAO,GAAG,IAAA,+BAAe,EAAC,GAAG,CAAC,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;KAC1C;IAAC,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,wCAAwC,CAAC,EAAE,CAAC;KACxF;AACL,CAAC;AA/BD,oDA+BC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Builder } from './types';
|
|
2
|
+
export interface ClaudeCodeBuilderOptions {
|
|
3
|
+
/** Model to pass as --model to the CLI. */
|
|
4
|
+
model?: string;
|
|
5
|
+
/** Override path to the claude binary (defaults to 'claude' on PATH). */
|
|
6
|
+
commandPath?: string;
|
|
7
|
+
/** Request timeout in milliseconds (default 120 000). */
|
|
8
|
+
timeout?: number;
|
|
9
|
+
/** Additional CLI flags passed to every invocation. */
|
|
10
|
+
extraFlags?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createClaudeCodeBuilder(userInstructions?: string, productName?: string, options?: ClaudeCodeBuilderOptions): Builder;
|
|
13
|
+
//# sourceMappingURL=claudecode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudecode.d.ts","sourceRoot":"","sources":["../../src/builders/claudecode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAgD,MAAM,SAAS,CAAC;AAMhF,MAAM,WAAW,wBAAwB;IACrC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAqMD,wBAAgB,uBAAuB,CACnC,gBAAgB,CAAC,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,wBAAwB,GACnC,OAAO,CA0FT"}
|