@tangle-network/agent-profile-materialize 1.1.0 → 1.1.1

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.
@@ -148,8 +148,10 @@ export declare function assertSkippableDimensions(skip: readonly string[] | unde
148
148
  * guarantee — so the plan refuses the intent (harnessSystemPromptIntents in
149
149
  * @tangle-network/agent-interface answers `replace: false` for opencode).
150
150
  *
151
- * The two declarations describe the two executor shapes that CAN reach it, and
152
- * each gets the lowering it can actually apply:
151
+ * The replacement declarations describe the executor shapes that can reach it;
152
+ * each gets the lowering it can apply. Codex launchers separately declare
153
+ * `codex.developer-instructions` to consume ordinary instructions as additive
154
+ * context; undeclared callers retain workspace files:
153
155
  *
154
156
  * - `systemPrompt` — the executor applies the plan's launch flags to the
155
157
  * spawn it owns, so the plan writes the generated `mode: primary` agent and
@@ -159,10 +161,10 @@ export declare function assertSkippableDimensions(skip: readonly string[] | unde
159
161
  * plan hands the text over in {@link WorkspacePlan.systemPromptBinding}
160
162
  * instead of writing a workspace agent that would never be selected.
161
163
  *
162
- * They are mutually exclusive claims about the same caller: declaring both is a
164
+ * The replacement declarations are mutually exclusive: declaring both is a
163
165
  * caller bug, not a broader capability.
164
166
  */
165
- export declare const BINDABLE_LAUNCH_CONTROLS: readonly ["systemPrompt", "opencode.agent-prompt"];
167
+ export declare const BINDABLE_LAUNCH_CONTROLS: readonly ["systemPrompt", "codex.developer-instructions", "opencode.agent-prompt"];
166
168
  export type BindableLaunchControl = (typeof BINDABLE_LAUNCH_CONTROLS)[number];
167
169
  /** Reject a binding declaration this materializer has no lowering for, rather than ignoring it. */
168
170
  export declare function assertBindableLaunchControls(binds: readonly string[] | undefined): ReadonlySet<BindableLaunchControl>;
@@ -52,8 +52,10 @@ export function assertSkippableDimensions(skip) {
52
52
  * guarantee — so the plan refuses the intent (harnessSystemPromptIntents in
53
53
  * @tangle-network/agent-interface answers `replace: false` for opencode).
54
54
  *
55
- * The two declarations describe the two executor shapes that CAN reach it, and
56
- * each gets the lowering it can actually apply:
55
+ * The replacement declarations describe the executor shapes that can reach it;
56
+ * each gets the lowering it can apply. Codex launchers separately declare
57
+ * `codex.developer-instructions` to consume ordinary instructions as additive
58
+ * context; undeclared callers retain workspace files:
57
59
  *
58
60
  * - `systemPrompt` — the executor applies the plan's launch flags to the
59
61
  * spawn it owns, so the plan writes the generated `mode: primary` agent and
@@ -63,11 +65,12 @@ export function assertSkippableDimensions(skip) {
63
65
  * plan hands the text over in {@link WorkspacePlan.systemPromptBinding}
64
66
  * instead of writing a workspace agent that would never be selected.
65
67
  *
66
- * They are mutually exclusive claims about the same caller: declaring both is a
68
+ * The replacement declarations are mutually exclusive: declaring both is a
67
69
  * caller bug, not a broader capability.
68
70
  */
69
71
  export const BINDABLE_LAUNCH_CONTROLS = [
70
72
  "systemPrompt",
73
+ "codex.developer-instructions",
71
74
  ...EXECUTOR_SYSTEM_PROMPT_BINDINGS,
72
75
  ];
73
76
  const BINDABLE_LAUNCH_CONTROL_SET = new Set(BINDABLE_LAUNCH_CONTROLS);
@@ -82,7 +82,7 @@ export function lowerProfilePrompt(profile, harness, binds, instructionsRoot, bu
82
82
  unsupported("instructions", "instruction ref is not inline (github refs need async pre-resolution)");
83
83
  }
84
84
  if (instructions.length) {
85
- if (harness === "codex") {
85
+ if (harness === "codex" && binds.has("codex.developer-instructions")) {
86
86
  // Codex's developer channel composes profile context without replacing
87
87
  // repository AGENTS.md or the harness's own system instructions.
88
88
  plan.appendSystemPrompt = instructions.join("\n\n");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-profile-materialize",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Materialize an AgentProfile into the native per-harness workspace files (the one shared materializer for cli-bridge, agent-container, and VB).",
5
5
  "type": "module",
6
6
  "repository": {
@@ -35,8 +35,8 @@
35
35
  "@tangle-network/agent-interface": "^3.0.0 || ^4.0.0 || ^5.0.0"
36
36
  },
37
37
  "tangleRelease": {
38
- "sourceSha": "ce60ebd2e2bcf72a575754bc886f82e3b843c192",
39
- "mergedAt": "2026-10-27T04:52:24-06:00"
38
+ "sourceSha": "978d63826f9678b70d7e77f21742d4d99b91e580",
39
+ "mergedAt": "2026-10-27T06:00:15-06:00"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsc -p tsconfig.json",