impel-cli 0.20.19 → 0.20.21

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 CHANGED
@@ -187,13 +187,15 @@ it by exact agent ID (preferred) or unique exact title:
187
187
  impel codex --agent research-agent exec "answer this question"
188
188
  ```
189
189
 
190
- This path loads a generated, tenant-bound profile with Luna/low reasoning, a
191
- read-only local sandbox, the exact fixed MCP binding, and only that binding's
192
- answer/run, resume, and recovery tools. It omits the normal parent specialist
193
- instructions, so there is no parent spawn, parent wait, or relay turn. Model,
194
- profile, developer-instruction, MCP, approval, sandbox, and feature overrides
195
- are rejected with `--agent`. The selected tenant and profile integrity must
196
- match before Codex starts. Ordinary `impel codex` passthrough is unchanged.
190
+ This path loads a generated, tenant-bound profile with the ultra-fast Codex
191
+ Spark model at low reasoning for the thin adapter turns, a read-only local
192
+ sandbox, the exact fixed MCP binding, and only that binding's answer/run,
193
+ resume, and recovery tools. The selected Eve agent still performs the
194
+ substantive work. The path omits the normal parent specialist instructions, so
195
+ there is no parent spawn, parent wait, or relay turn. Model, profile,
196
+ developer-instruction, MCP, approval, sandbox, and feature overrides are
197
+ rejected with `--agent`. The selected tenant and profile integrity must match
198
+ before Codex starts. Ordinary `impel codex` passthrough is unchanged.
197
199
 
198
200
  ## Remote Fargate sessions
199
201
 
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Release notes
2
2
 
3
+ ## 0.20.21 — Faster Codex adapter turns
4
+
5
+ - Uses the ultra-fast Codex Spark model at low reasoning for generated
6
+ fixed-binding adapters; the selected Eve agent still owns the substantive
7
+ task and model choice.
8
+ - Advances the managed profile manifest so existing CLI and Desktop adapters
9
+ refresh immediately onto the faster wrapper model.
10
+
11
+ ## 0.20.20 — Minimal Codex adapter tool surface
12
+
13
+ - Disables Codex's stable multi-agent feature inside qualified managed adapter
14
+ profiles, removing collaboration tool schemas that fixed-binding children and
15
+ single-thread launches cannot legitimately use.
16
+ - Advances the managed profile manifest so existing adapters refresh onto the
17
+ smaller, configuration-enforced tool surface immediately.
18
+
3
19
  ## 0.20.19 — Recovered Codex stream accounting
4
20
 
5
21
  - Counts a zero-exit, completed Codex turn with a final agent message and one
@@ -35,6 +35,9 @@ is treated as an eager host.
35
35
  rather than receiving an unknown configuration key.
36
36
  - `mcp__impel_agent` is the native tool namespace. The server id
37
37
  `impel_agent` is not equivalent and does not qualify as direct exposure.
38
+ - Generated Codex fixed-binding adapters use `gpt-5.3-codex-spark` at low
39
+ reasoning for the thin tool-selection and terminal-relay turns. The selected
40
+ Eve agent, not this wrapper model, still owns the substantive task.
38
41
 
39
42
  ## Requalification
40
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impel-cli",
3
- "version": "0.20.19",
3
+ "version": "0.20.21",
4
4
  "description": "Prepare isolated Claude and Codex workspaces for every accessible Impel tenant",
5
5
  "type": "module",
6
6
  "bin": {
package/src/agents.js CHANGED
@@ -52,7 +52,12 @@ export const NATIVE_AGENT_RUN_TOOL = "run_native_agent";
52
52
  export const NATIVE_AGENT_RESUME_TOOL = "resume_native_agent_run";
53
53
  export const NATIVE_AGENT_RECOVER_TOOL = "recover_native_agent_runs";
54
54
  export const MANAGED_AGENT_MCP_SERVER = "impel_agent";
55
- export const MANAGED_AGENT_MANIFEST_VERSION = 11;
55
+ export const MANAGED_AGENT_MANIFEST_VERSION = 13;
56
+
57
+ // The host model only selects the fixed MCP tool and faithfully returns its
58
+ // result. Spark minimizes those two wrapper turns while the selected Eve agent
59
+ // remains responsible for the substantive work.
60
+ const CODEX_AGENT_ADAPTER_MODEL = "gpt-5.3-codex-spark";
56
61
 
57
62
  const NATIVE_AGENT_TOOL_NAMES = [
58
63
  NATIVE_AGENT_RUN_TOOL,
@@ -650,7 +655,7 @@ function codexAdapterInstructions(tenantId, agent) {
650
655
  const callerGuidance = usesVerbatimRelay(agent)
651
656
  ? adapterCallerSpawnGuidance("Codex")
652
657
  : null;
653
- const collaborationConstraint = `Never call spawn_agent, wait_agent, send_message, followup_task, interrupt_agent, or any other collaboration tool. Communicate with the caller only by returning one final response after the native-agent transport reaches terminal.`;
658
+ const collaborationConstraint = `Collaboration tools are disabled. Return one final response to the caller after the native-agent transport reaches terminal.`;
654
659
  if (usesDirectAnswer(agent)) {
655
660
  const completionGuidance = usesVerbatimRelay(agent)
656
661
  ? adapterAnswerVerbatimCompletionGuidance()
@@ -686,7 +691,7 @@ function codexAdapterInstructions(tenantId, agent) {
686
691
  function retiredAdapterInstructions(tenantId, agent) {
687
692
  return [
688
693
  `You are a recovery-only transport adapter for retired Impel native-agent binding ${JSON.stringify(agent.agentId)} in tenant ${JSON.stringify(tenantId)}.`,
689
- `Never call spawn_agent, wait_agent, send_message, followup_task, interrupt_agent, or any other collaboration tool. Communicate with the caller only by returning one final response after the native-agent transport reaches terminal.`,
694
+ `Collaboration tools are disabled. Return one final response to the caller after the native-agent transport reaches terminal.`,
690
695
  `You cannot start new work. Never call run_native_agent and never perform or recreate the assigned task yourself.`,
691
696
  `Call ${nativeToolName(NATIVE_AGENT_RECOVER_TOOL)} with {} to obtain integrity-validated pending handles for this fixed binding, then call ${nativeToolName(NATIVE_AGENT_RESUME_TOOL)} with the intended handle until it returns a terminal result. If multiple handles cannot be safely associated with the request, report them instead of choosing.`,
692
697
  `Return successful finalText byte-for-byte. For failure, return the preserved runId, output, and error without inventing a replacement result.`,
@@ -770,12 +775,15 @@ function renderCodexConfiguration({
770
775
  `name = ${JSON.stringify(name)}`,
771
776
  `description = ${JSON.stringify(description)}`,
772
777
  ] : []),
773
- 'model = "gpt-5.6-luna"',
778
+ `model = ${JSON.stringify(CODEX_AGENT_ADAPTER_MODEL)}`,
774
779
  'model_reasoning_effort = "low"',
775
780
  'sandbox_mode = "read-only"',
776
781
  `developer_instructions = ${JSON.stringify(recoveryOnly ? retiredAdapterInstructions(tenantId, agent) : codexAdapterInstructions(tenantId, agent))}`,
777
782
  "",
778
783
  ...(directCodeMode ? [
784
+ "[features]",
785
+ "multi_agent = false",
786
+ "",
779
787
  "[features.code_mode]",
780
788
  "enabled = true",
781
789
  `direct_only_tool_namespaces = [${JSON.stringify(nativeToolNamespace())}]`,