@iaforged/context-code 1.2.9 → 1.2.10

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.
Files changed (172) hide show
  1. package/README.md +119 -119
  2. package/context-bootstrap.js +26 -26
  3. package/dist/src/QueryEngine.js +394 -327
  4. package/dist/src/bridge/bridgeUI.js +1 -1
  5. package/dist/src/buddy/prompt.js +4 -4
  6. package/dist/src/cli/handlers/auth.js +126 -9
  7. package/dist/src/cli/print.js +35 -1
  8. package/dist/src/commands/agent/agent.js +28 -2
  9. package/dist/src/commands/agent/agentStore.js +8 -1
  10. package/dist/src/commands/agent/index.js +1 -1
  11. package/dist/src/commands/bridge-kick.js +9 -9
  12. package/dist/src/commands/commit.js +34 -34
  13. package/dist/src/commands/init-verifiers.js +3 -3
  14. package/dist/src/commands/init.js +88 -88
  15. package/dist/src/commands/insights.js +787 -787
  16. package/dist/src/commands/install.js +19 -19
  17. package/dist/src/commands/login/login.js +21 -12
  18. package/dist/src/commands/logout/logout.js +9 -0
  19. package/dist/src/commands/model/model.js +9 -4
  20. package/dist/src/commands/orchestrate/SwarmUI.js +50 -0
  21. package/dist/src/commands/orchestrate/index.js +2 -2
  22. package/dist/src/commands/orchestrate/orchestrate.js +708 -12
  23. package/dist/src/commands/pr_comments/index.js +33 -33
  24. package/dist/src/commands/profile/index.js +1 -1
  25. package/dist/src/commands/profile/profile.js +52 -3
  26. package/dist/src/commands/provider/index.js +1 -1
  27. package/dist/src/commands/provider/provider.js +117 -45
  28. package/dist/src/commands/resumen/index.js +9 -0
  29. package/dist/src/commands/resumen/resumen.js +29 -0
  30. package/dist/src/commands/security-review.js +190 -190
  31. package/dist/src/commands/swarm-auto/index.js +9 -0
  32. package/dist/src/commands/swarm-auto/swarmAuto.js +111 -0
  33. package/dist/src/commands/swarm-init/index.js +9 -0
  34. package/dist/src/commands/swarm-init/swarmInit.js +72 -0
  35. package/dist/src/commands/team/team.js +39 -6
  36. package/dist/src/commands.js +14 -0
  37. package/dist/src/components/LogoV2/CondensedLogo.js +2 -2
  38. package/dist/src/components/PromptInput/PromptInputQueuedCommands.js +3 -3
  39. package/dist/src/components/agents/agentFileUtils.js +6 -6
  40. package/dist/src/components/permissions/hooks.js +5 -5
  41. package/dist/src/constants/outputStyles.js +83 -83
  42. package/dist/src/core/agents/blueprints.js +58 -0
  43. package/dist/src/core/agents/cliAdapter.js +61 -0
  44. package/dist/src/core/agents/registry.js +93 -0
  45. package/dist/src/core/agents/runtime.js +4 -0
  46. package/dist/src/core/agents/runtime.smoke.js +42 -0
  47. package/dist/src/core/agents/swarm.smoke.js +48 -0
  48. package/dist/src/core/agents/swarmTools.js +38 -0
  49. package/dist/src/core/auth/index.js +2 -0
  50. package/dist/src/core/auth/loginCliAdapter.js +24 -0
  51. package/dist/src/core/auth/loginCore.js +67 -0
  52. package/dist/src/core/auth/logoutCliAdapter.js +34 -0
  53. package/dist/src/core/auth/logoutCore.js +52 -0
  54. package/dist/src/core/auth/preflight.smoke.js +151 -0
  55. package/dist/src/core/index.js +21 -0
  56. package/dist/src/core/mcp/blueprints.js +27 -0
  57. package/dist/src/core/mcp/common.js +14 -0
  58. package/dist/src/core/mcp/runtime.js +67 -0
  59. package/dist/src/core/mcp/runtime.smoke.js +50 -0
  60. package/dist/src/core/mcp/swarmClient.js +40 -0
  61. package/dist/src/core/mcp/swarmSetup.js +43 -0
  62. package/dist/src/core/providers/cliAdapter.js +39 -0
  63. package/dist/src/core/providers/contracts.js +1 -0
  64. package/dist/src/core/providers/index.js +3 -0
  65. package/dist/src/core/providers/llmCore.js +123 -0
  66. package/dist/src/core/providers/providerCore.js +141 -0
  67. package/dist/src/core/providers/providerModelCompatibility.js +98 -0
  68. package/dist/src/core/providers/providerParitySmoke.js +83 -0
  69. package/dist/src/core/providers/providerProfileModelSmoke.js +80 -0
  70. package/dist/src/core/query/contracts.js +1 -0
  71. package/dist/src/core/query/runtime.js +117 -0
  72. package/dist/src/core/query/runtime.smoke.js +39 -0
  73. package/dist/src/core/query/timelineThinking.smoke.js +25 -0
  74. package/dist/src/core/query/wiring.smoke.js +76 -0
  75. package/dist/src/core/skills/cliAdapter.js +38 -0
  76. package/dist/src/core/skills/index.js +52 -0
  77. package/dist/src/core/skills/runtime.smoke.js +53 -0
  78. package/dist/src/core/tasks/runtime.js +205 -0
  79. package/dist/src/core/tasks/runtime.smoke.js +63 -0
  80. package/dist/src/core/tasks/sdkAdapter.js +4 -0
  81. package/dist/src/core/tools/contracts.js +3 -0
  82. package/dist/src/core/tools/fileResolution.js +112 -0
  83. package/dist/src/core/tools/fileResolution.smoke.js +33 -0
  84. package/dist/src/core/tools/filesCore.js +51 -0
  85. package/dist/src/core/tools/filesCore.smoke.js +108 -0
  86. package/dist/src/core/tools/gitCore.js +20 -0
  87. package/dist/src/core/tools/imageParity.smoke.js +36 -0
  88. package/dist/src/core/tools/notebookParity.smoke.js +68 -0
  89. package/dist/src/core/tools/registry.js +22 -0
  90. package/dist/src/core/tools/runtime.smoke.js +32 -0
  91. package/dist/src/core/tools/shellCore.js +60 -0
  92. package/dist/src/core/types/agentContext.js +9 -0
  93. package/dist/src/core/types/auth.js +3 -0
  94. package/dist/src/core/types/command.js +13 -0
  95. package/dist/src/core/types/provider.js +3 -0
  96. package/dist/src/core/types/sdkEvent.js +10 -0
  97. package/dist/src/core/types/swarm.js +1 -0
  98. package/dist/src/cost-tracker.js +3 -3
  99. package/dist/src/hooks/useAwaySummary.js +22 -9
  100. package/dist/src/main.js +32 -2
  101. package/dist/src/screens/REPL.js +9 -0
  102. package/dist/src/services/AgentSummary/agentSummary.js +10 -10
  103. package/dist/src/services/autoDream/autoDream.js +5 -5
  104. package/dist/src/services/autoDream/consolidationPrompt.js +49 -49
  105. package/dist/src/services/compact/prompt.js +238 -238
  106. package/dist/src/services/limits/sessionCounter.js +17 -17
  107. package/dist/src/services/mcp/client.js +27 -1
  108. package/dist/src/services/orchestration/execution/AgentTaskExecutor.js +39 -20
  109. package/dist/src/services/orchestration/execution/OrchestrationExecutionRuntime.js +65 -58
  110. package/dist/src/skills/bundled/loop.js +57 -57
  111. package/dist/src/skills/bundled/remember.js +53 -53
  112. package/dist/src/skills/bundled/simplify.js +49 -49
  113. package/dist/src/skills/bundled/skillify.js +2 -2
  114. package/dist/src/state/onChangeAppState.js +6 -0
  115. package/dist/src/tasks/LocalAgentTask/LocalAgentTask.js +5 -5
  116. package/dist/src/tasks/LocalMainSessionTask.js +5 -5
  117. package/dist/src/tasks/LocalShellTask/LocalShellTask.js +13 -13
  118. package/dist/src/tools/AgentTool/forkSubagent.js +25 -25
  119. package/dist/src/tools/AskUserQuestionTool/prompt.js +29 -29
  120. package/dist/src/tools/BashTool/BashTool.js +27 -2
  121. package/dist/src/tools/BriefTool/prompt.js +14 -14
  122. package/dist/src/tools/EnterPlanModeTool/EnterPlanModeTool.js +12 -12
  123. package/dist/src/tools/EnterPlanModeTool/prompt.js +140 -140
  124. package/dist/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.js +18 -18
  125. package/dist/src/tools/ExitPlanModeTool/prompt.js +23 -23
  126. package/dist/src/tools/ExitWorktreeTool/prompt.js +29 -29
  127. package/dist/src/tools/FileEditTool/prompt.js +7 -7
  128. package/dist/src/tools/FileReadTool/FileReadTool.js +18 -1
  129. package/dist/src/tools/FileWriteTool/prompt.js +6 -6
  130. package/dist/src/tools/GlobTool/prompt.js +4 -4
  131. package/dist/src/tools/GrepTool/prompt.js +10 -10
  132. package/dist/src/tools/LSPTool/prompt.js +18 -18
  133. package/dist/src/tools/ListMcpResourcesTool/prompt.js +15 -15
  134. package/dist/src/tools/PowerShellTool/PowerShellTool.js +25 -2
  135. package/dist/src/tools/ReadMcpResourceTool/prompt.js +13 -13
  136. package/dist/src/tools/SendMessageTool/prompt.js +36 -36
  137. package/dist/src/tools/SkillTool/prompt.js +21 -21
  138. package/dist/src/tools/SleepTool/prompt.js +10 -10
  139. package/dist/src/tools/TaskCreateTool/prompt.js +41 -41
  140. package/dist/src/tools/TaskGetTool/prompt.js +21 -21
  141. package/dist/src/tools/TaskListTool/prompt.js +30 -30
  142. package/dist/src/tools/TaskOutputTool/TaskOutputTool.js +8 -8
  143. package/dist/src/tools/TaskStopTool/prompt.js +5 -5
  144. package/dist/src/tools/TaskUpdateTool/prompt.js +74 -74
  145. package/dist/src/tools/TodoWriteTool/prompt.js +178 -178
  146. package/dist/src/tools/ToolSearchTool/prompt.js +9 -9
  147. package/dist/src/tools/WebFetchTool/WebFetchTool.js +9 -9
  148. package/dist/src/tools/WebFetchTool/prompt.js +31 -31
  149. package/dist/src/tools/WebSearchTool/prompt.js +26 -26
  150. package/dist/src/utils/agentContext.js +2 -0
  151. package/dist/src/utils/agenticSessionSearch.js +38 -38
  152. package/dist/src/utils/config.js +2 -0
  153. package/dist/src/utils/genericProcessUtils.js +21 -21
  154. package/dist/src/utils/heapDumpService.js +4 -4
  155. package/dist/src/utils/mcpValidation.js +2 -2
  156. package/dist/src/utils/model/modelStrings.js +1 -1
  157. package/dist/src/utils/model/providers.js +5 -0
  158. package/dist/src/utils/orchestration/store/providerAgentStore.js +22 -22
  159. package/dist/src/utils/orchestration/store/providerWorkspaceStore.js +10 -10
  160. package/dist/src/utils/orchestration/store/runStore.js +68 -68
  161. package/dist/src/utils/orchestration/store/teamStore.js +28 -28
  162. package/dist/src/utils/permissions/permissionExplainer.js +6 -6
  163. package/dist/src/utils/permissions/permissionsDb.js +43 -43
  164. package/dist/src/utils/sdkEventQueue.js +2 -0
  165. package/dist/src/utils/secureStorage/sqliteStorage.js +12 -12
  166. package/dist/src/utils/standardMcp/common.js +15 -0
  167. package/dist/src/utils/standardMcp/setup.js +52 -0
  168. package/dist/src/utils/swarm/teammatePromptAddendum.js +10 -10
  169. package/dist/src/utils/task/framework.js +6 -6
  170. package/package.json +1 -1
  171. package/dist/src/commands/usage/index.js +0 -7
  172. package/dist/src/commands/usage/usage.js +0 -5
@@ -36,25 +36,25 @@ async function installLocalLauncher() {
36
36
  const { displayPath, shellPath, commandName } = getInstallTargets();
37
37
  await mkdir(dirname(shellPath), { recursive: true });
38
38
  if (env.platform === 'win32') {
39
- const script = `@echo off
40
- setlocal
41
- set "NODE_EXE="
42
- if exist "C:\\Program Files\\nodejs\\node.exe" set "NODE_EXE=C:\\Program Files\\nodejs\\node.exe"
43
- if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.14.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.14.0\\node.exe"
44
- if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.0.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.0.0\\node.exe"
45
- if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.21.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.21.0\\node.exe"
46
- if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.14.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.14.0\\node.exe"
47
- if not defined NODE_EXE (
48
- where node >nul 2>nul
49
- if not errorlevel 1 set "NODE_EXE=node"
50
- )
51
- if not defined NODE_EXE (
52
- echo Node.js no esta disponible en PATH ni en las rutas conocidas.
53
- echo Instala Node.js o ajusta el launcher para apuntar a tu node.exe.
54
- exit /b 1
55
- )
56
- if not defined MAX_THINKING_TOKENS set "MAX_THINKING_TOKENS=0"
57
- "%NODE_EXE%" "${cliPath}" %*
39
+ const script = `@echo off
40
+ setlocal
41
+ set "NODE_EXE="
42
+ if exist "C:\\Program Files\\nodejs\\node.exe" set "NODE_EXE=C:\\Program Files\\nodejs\\node.exe"
43
+ if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.14.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.14.0\\node.exe"
44
+ if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.0.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v24.0.0\\node.exe"
45
+ if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.21.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.21.0\\node.exe"
46
+ if not defined NODE_EXE if exist "C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.14.0\\node.exe" set "NODE_EXE=C:\\Users\\Lord-\\AppData\\Local\\nvm\\v22.14.0\\node.exe"
47
+ if not defined NODE_EXE (
48
+ where node >nul 2>nul
49
+ if not errorlevel 1 set "NODE_EXE=node"
50
+ )
51
+ if not defined NODE_EXE (
52
+ echo Node.js no esta disponible en PATH ni en las rutas conocidas.
53
+ echo Instala Node.js o ajusta el launcher para apuntar a tu node.exe.
54
+ exit /b 1
55
+ )
56
+ if not defined MAX_THINKING_TOKENS set "MAX_THINKING_TOKENS=0"
57
+ "%NODE_EXE%" "${cliPath}" %*
58
58
  `;
59
59
  await writeFile(shellPath, script, 'utf8');
60
60
  }
@@ -15,23 +15,32 @@ import { checkAndDisableAutoModeIfNeeded, checkAndDisableBypassPermissionsIfNeed
15
15
  import { getAPIProvider } from '../../utils/model/providers.js';
16
16
  import { switchProviderPreference } from '../../utils/model/providerSwitch.js';
17
17
  import { resetUserCache } from '../../utils/user.js';
18
+ import { applySuccessfulLogin, isCoreAuthEnabled, parseLoginProfileName, } from '../../core/auth/loginCore.js';
18
19
  export async function call(onDone, context, args) {
19
- const trimmedArgs = args?.trim() ?? '';
20
- let profileName = undefined;
21
- if (trimmedArgs) {
22
- const tokens = trimmedArgs.split(/\s+/).filter(Boolean);
23
- const profileIdx = tokens.findIndex(t => t === '--profile' || t === '-p');
24
- if (profileIdx !== -1 && tokens[profileIdx + 1]) {
25
- profileName = tokens[profileIdx + 1];
26
- }
27
- else if (tokens.length > 0 && !tokens[0].startsWith('-')) {
28
- profileName = tokens[0];
29
- }
30
- }
20
+ const profileName = parseLoginProfileName(args);
31
21
  return (_jsx(Login, { profileName: profileName, onDone: async (success, previousModel, previousProvider, targetProvider) => {
32
22
  context.onChangeAPIKey();
33
23
  context.setMessages(stripSignatureBlocks);
34
24
  if (success) {
25
+ if (isCoreAuthEnabled()) {
26
+ const outcome = applySuccessfulLogin({
27
+ context,
28
+ profileName,
29
+ previousModel,
30
+ previousProvider,
31
+ targetProvider,
32
+ transcriptClassifierEnabled: feature('TRANSCRIPT_CLASSIFIER'),
33
+ });
34
+ if (outcome.shouldOpenModelPicker) {
35
+ onDone(outcome.message, {
36
+ nextInput: '/model',
37
+ submitNextInput: true,
38
+ });
39
+ return;
40
+ }
41
+ onDone(outcome.message);
42
+ return;
43
+ }
35
44
  const restoredModel = targetProvider === 'openai'
36
45
  ? switchProviderPreference({
37
46
  currentModel: previousModel,
@@ -13,7 +13,12 @@ import { gracefulShutdownSync } from '../../utils/gracefulShutdown.js';
13
13
  import { getSecureStorage } from '../../utils/secureStorage/index.js';
14
14
  import { clearToolSchemaCache } from '../../utils/toolSchemaCache.js';
15
15
  import { resetUserCache } from '../../utils/user.js';
16
+ import { clearAuthRelatedCachesCore, isCoreAuthEnabled, performLogoutCore, } from '../../core/auth/logoutCore.js';
16
17
  export async function performLogout({ clearOnboarding = false }) {
18
+ if (isCoreAuthEnabled()) {
19
+ await performLogoutCore({ clearOnboarding });
20
+ return;
21
+ }
17
22
  // Flush telemetry BEFORE clearing credentials to prevent org data leakage
18
23
  const { flushTelemetry } = await import('../../utils/telemetry/instrumentation.js');
19
24
  await flushTelemetry();
@@ -43,6 +48,10 @@ export async function performLogout({ clearOnboarding = false }) {
43
48
  }
44
49
  // clearing anything memoized that must be invalidated when user/session/auth changes
45
50
  export async function clearAuthRelatedCaches() {
51
+ if (isCoreAuthEnabled()) {
52
+ await clearAuthRelatedCachesCore();
53
+ return;
54
+ }
46
55
  // Clear the OAuth token cache
47
56
  getClaudeAIOAuthTokens.cache?.clear?.();
48
57
  getOpenAIOAuthTokens.cache?.clear?.();
@@ -18,11 +18,16 @@ import { toProviderPreference } from '../../utils/model/providerSwitch.js';
18
18
  import { getAPIProvider } from '../../utils/model/providers.js';
19
19
  import { validateModel } from '../../utils/model/validateModel.js';
20
20
  function persistModelForActiveProvider(model) {
21
- const provider = toProviderPreference(getAPIProvider());
22
- if (isProfiledProvider(provider)) {
23
- setProviderProfileLastModel(provider, model);
21
+ try {
22
+ const provider = toProviderPreference(getAPIProvider());
23
+ if (isProfiledProvider(provider)) {
24
+ setProviderProfileLastModel(provider, model);
25
+ }
26
+ setStoredLastModelForProvider(provider, model);
27
+ }
28
+ catch {
29
+ // Nunca bloquear /model por un fallo de persistencia.
24
30
  }
25
- setStoredLastModelForProvider(provider, model);
26
31
  }
27
32
  export function ModelPickerWrapper(t0) {
28
33
  const $ = _c(17);
@@ -0,0 +1,50 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { Box, Text } from '../../ink.js';
4
+ import { coreSwarmRuntime } from '../../core/agents/runtime.js';
5
+ import { coreAgentsRegistry } from '../../core/agents/registry.js';
6
+ export function SwarmUI({ sessionId, objective, onDone }) {
7
+ const [messages, setMessages] = React.useState([]);
8
+ const [isThinking, setIsThinking] = React.useState(false);
9
+ const [currentAgentName, setCurrentAgentName] = React.useState(null);
10
+ React.useEffect(() => {
11
+ let active = true;
12
+ const runLoop = async () => {
13
+ while (active) {
14
+ setIsThinking(true);
15
+ try {
16
+ const session = coreSwarmRuntime.getSession(sessionId);
17
+ if (!session)
18
+ break;
19
+ const agent = coreAgentsRegistry.getAgent(session.activeAgentId);
20
+ setCurrentAgentName(agent?.name || 'Agente');
21
+ const result = await coreSwarmRuntime.step(sessionId, undefined, {
22
+ onStepComplete: () => {
23
+ const updatedSession = coreSwarmRuntime.getSession(sessionId);
24
+ if (updatedSession) {
25
+ setMessages([...updatedSession.history]);
26
+ }
27
+ }
28
+ });
29
+ // Si no hay delegacion y el agente termino, cerramos
30
+ if (!result.delegation && result.output.toLowerCase().includes('finalizado')) {
31
+ onDone('Enjambre completo.');
32
+ break;
33
+ }
34
+ // Pausa entre pasos para visibilidad
35
+ await new Promise(r => setTimeout(r, 1000));
36
+ }
37
+ catch (error) {
38
+ onDone(`Error en enjambre: ${error.message}`);
39
+ break;
40
+ }
41
+ finally {
42
+ setIsThinking(false);
43
+ }
44
+ }
45
+ };
46
+ runLoop();
47
+ return () => { active = false; };
48
+ }, [sessionId, onDone]);
49
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, borderStyle: "round", borderColor: "cyan", children: [_jsxs(Text, { bold: true, color: "cyan", children: ["ENJAMBRE ACTIVO: ", objective] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: messages.map(msg => (_jsxs(Box, { marginBottom: 1, children: [_jsxs(Text, { bold: true, color: msg.role === 'user' ? 'green' : 'blue', children: [msg.role === 'user' ? 'Tú' : (coreAgentsRegistry.getAgent(msg.agentId)?.name ?? 'Agente'), ":"] }), _jsxs(Text, { children: [" ", msg.content] })] }, msg.id))) }), isThinking && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { italic: true, color: "yellow", children: ["Pensando (", currentAgentName, ")..."] }) }))] }));
50
+ }
@@ -1,8 +1,8 @@
1
1
  const orchestrate = {
2
2
  type: 'local-jsx',
3
3
  name: 'orchestrate',
4
- description: 'Transicion: el hilo principal ya orquesta en modo agent-first',
5
- argumentHint: '[migrado a /agent + prompt directo]',
4
+ description: 'Crear una ejecucion de orquestacion sobre un team',
5
+ argumentHint: '<team> <objetivo>',
6
6
  load: () => import('./orchestrate.js'),
7
7
  };
8
8
  export default orchestrate;