@pennixrv/trellis 0.7.1-beta.17 → 0.7.1-beta.19

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 (93) hide show
  1. package/dist/commands/teamwork/adapters/acp.d.ts +5 -0
  2. package/dist/commands/teamwork/adapters/acp.d.ts.map +1 -1
  3. package/dist/commands/teamwork/adapters/acp.js +19 -12
  4. package/dist/commands/teamwork/adapters/acp.js.map +1 -1
  5. package/dist/commands/teamwork/adapters/codex.d.ts +1 -1
  6. package/dist/commands/teamwork/adapters/codex.d.ts.map +1 -1
  7. package/dist/commands/teamwork/adapters/codex.js +4 -13
  8. package/dist/commands/teamwork/adapters/codex.js.map +1 -1
  9. package/dist/commands/teamwork/artifact.d.ts +4 -1
  10. package/dist/commands/teamwork/artifact.d.ts.map +1 -1
  11. package/dist/commands/teamwork/artifact.js +37 -6
  12. package/dist/commands/teamwork/artifact.js.map +1 -1
  13. package/dist/commands/teamwork/batch.d.ts +6 -0
  14. package/dist/commands/teamwork/batch.d.ts.map +1 -1
  15. package/dist/commands/teamwork/batch.js +118 -3
  16. package/dist/commands/teamwork/batch.js.map +1 -1
  17. package/dist/commands/teamwork/context-loader.d.ts.map +1 -1
  18. package/dist/commands/teamwork/context-loader.js +15 -3
  19. package/dist/commands/teamwork/context-loader.js.map +1 -1
  20. package/dist/commands/teamwork/coordination.d.ts +66 -0
  21. package/dist/commands/teamwork/coordination.d.ts.map +1 -1
  22. package/dist/commands/teamwork/coordination.js +82 -6
  23. package/dist/commands/teamwork/coordination.js.map +1 -1
  24. package/dist/commands/teamwork/coordinator.d.ts.map +1 -1
  25. package/dist/commands/teamwork/coordinator.js +6 -1
  26. package/dist/commands/teamwork/coordinator.js.map +1 -1
  27. package/dist/commands/teamwork/create.d.ts +1 -0
  28. package/dist/commands/teamwork/create.d.ts.map +1 -1
  29. package/dist/commands/teamwork/create.js +2 -1
  30. package/dist/commands/teamwork/create.js.map +1 -1
  31. package/dist/commands/teamwork/guard.d.ts +2 -2
  32. package/dist/commands/teamwork/guard.d.ts.map +1 -1
  33. package/dist/commands/teamwork/guard.js +8 -4
  34. package/dist/commands/teamwork/guard.js.map +1 -1
  35. package/dist/commands/teamwork/index.d.ts.map +1 -1
  36. package/dist/commands/teamwork/index.js +27 -4
  37. package/dist/commands/teamwork/index.js.map +1 -1
  38. package/dist/commands/teamwork/prompt.d.ts +4 -0
  39. package/dist/commands/teamwork/prompt.d.ts.map +1 -0
  40. package/dist/commands/teamwork/prompt.js +33 -0
  41. package/dist/commands/teamwork/prompt.js.map +1 -0
  42. package/dist/commands/teamwork/result.d.ts +52 -0
  43. package/dist/commands/teamwork/result.d.ts.map +1 -0
  44. package/dist/commands/teamwork/result.js +94 -0
  45. package/dist/commands/teamwork/result.js.map +1 -0
  46. package/dist/commands/teamwork/run.d.ts +1 -0
  47. package/dist/commands/teamwork/run.d.ts.map +1 -1
  48. package/dist/commands/teamwork/run.js +111 -21
  49. package/dist/commands/teamwork/run.js.map +1 -1
  50. package/dist/commands/teamwork/runtime.d.ts.map +1 -1
  51. package/dist/commands/teamwork/runtime.js +49 -2
  52. package/dist/commands/teamwork/runtime.js.map +1 -1
  53. package/dist/commands/teamwork/send.d.ts +1 -0
  54. package/dist/commands/teamwork/send.d.ts.map +1 -1
  55. package/dist/commands/teamwork/send.js +2 -1
  56. package/dist/commands/teamwork/send.js.map +1 -1
  57. package/dist/commands/teamwork/spawn.d.ts +6 -3
  58. package/dist/commands/teamwork/spawn.d.ts.map +1 -1
  59. package/dist/commands/teamwork/spawn.js +12 -28
  60. package/dist/commands/teamwork/spawn.js.map +1 -1
  61. package/dist/commands/teamwork/supervisor/inbox.d.ts +1 -0
  62. package/dist/commands/teamwork/supervisor/inbox.d.ts.map +1 -1
  63. package/dist/commands/teamwork/supervisor/inbox.js +25 -9
  64. package/dist/commands/teamwork/supervisor/inbox.js.map +1 -1
  65. package/dist/commands/teamwork/supervisor.d.ts +2 -0
  66. package/dist/commands/teamwork/supervisor.d.ts.map +1 -1
  67. package/dist/commands/teamwork/supervisor.js +1 -0
  68. package/dist/commands/teamwork/supervisor.js.map +1 -1
  69. package/dist/commands/teamwork/teammate-config.d.ts +4 -1
  70. package/dist/commands/teamwork/teammate-config.d.ts.map +1 -1
  71. package/dist/commands/teamwork/teammate-config.js +48 -16
  72. package/dist/commands/teamwork/teammate-config.js.map +1 -1
  73. package/dist/commands/teamwork/teammate-launch.d.ts +6 -0
  74. package/dist/commands/teamwork/teammate-launch.d.ts.map +1 -1
  75. package/dist/commands/teamwork/teammate-launch.js +24 -3
  76. package/dist/commands/teamwork/teammate-launch.js.map +1 -1
  77. package/dist/commands/teamwork/wait.d.ts +2 -0
  78. package/dist/commands/teamwork/wait.d.ts.map +1 -1
  79. package/dist/commands/teamwork/wait.js +44 -3
  80. package/dist/commands/teamwork/wait.js.map +1 -1
  81. package/dist/migrations/manifests/0.7.1-beta.18.json +9 -0
  82. package/dist/migrations/manifests/0.7.1-beta.19.json +9 -0
  83. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +2 -2
  84. package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +6 -3
  85. package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +20 -5
  86. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +8 -4
  87. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +31 -6
  88. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +28 -3
  89. package/dist/templates/trellis/agents/profiles/research.md +4 -4
  90. package/dist/templates/trellis/agents/teammate.md +4 -75
  91. package/dist/templates/trellis/config.yaml +2 -5
  92. package/dist/templates/trellis/teamwork.json +6 -5
  93. package/package.json +2 -2
@@ -2,9 +2,15 @@ import crypto from "node:crypto";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { DIR_NAMES } from "../../constants/paths.js";
5
+ import { DEFAULT_TEAMWORK_CONFIG, readCoordinationConfig, } from "./coordination.js";
5
6
  const DEFAULT_CONFIG = {
6
- teammate: { maxConcurrency: 1 },
7
- guard: { maxLiveTeammates: 6, nonBatchReserved: 0 },
7
+ teammate: {
8
+ maxConcurrency: DEFAULT_TEAMWORK_CONFIG.modes.general.max_concurrency,
9
+ },
10
+ guard: {
11
+ maxLiveTeammates: DEFAULT_TEAMWORK_CONFIG.resources.max_live_teammates,
12
+ nonBatchReserved: DEFAULT_TEAMWORK_CONFIG.resources.non_batch_reserved,
13
+ },
8
14
  };
9
15
  function integer(value, field, positive = false) {
10
16
  if (value === undefined)
@@ -44,35 +50,61 @@ function yamlInteger(content, section, key) {
44
50
  }
45
51
  return undefined;
46
52
  }
47
- export function resolveTeammateRuntimeConfig(cwd = process.cwd(), env = process.env) {
53
+ export function resolveTeammateRuntimeConfig(cwd = process.cwd(), env = process.env, mode) {
48
54
  const configPath = path.join(cwd, DIR_NAMES.WORKFLOW, "config.yaml");
49
55
  let content = "";
50
56
  try {
51
57
  content = fs.readFileSync(configPath, "utf8");
52
58
  }
53
- catch {
54
- // Built-in defaults are intentionally conservative.
59
+ catch (error) {
60
+ if (error.code !== "ENOENT")
61
+ throw error;
55
62
  }
63
+ const resolved = readCoordinationConfig(cwd);
64
+ const selected = mode ?? resolved.config.default_mode;
65
+ const legacyConcurrency = yamlInteger(content, "teammate", "max_concurrency");
66
+ const legacyLive = yamlInteger(content, "teammate_guard", "max_live_teammates");
67
+ const legacyReserved = yamlInteger(content, "teammate_guard", "non_batch_reserved");
68
+ const diagnostics = [];
69
+ if (legacyConcurrency !== undefined ||
70
+ legacyLive !== undefined ||
71
+ legacyReserved !== undefined)
72
+ diagnostics.push(resolved.legacy
73
+ ? "Legacy YAML capacity is active; migrate to .trellis/teamwork.json schema 2."
74
+ : "Legacy YAML capacity keys are ignored by teamwork.json schema 2; remove them with trellis update.");
75
+ if (resolved.legacy && resolved.source !== "built-in")
76
+ diagnostics.push("Legacy teamwork.json schema 1; update to schema 2 for mode-specific capacity.");
77
+ for (const key of [
78
+ "TRELLIS_TEAMWORK_TEAMMATE_MAX_CONCURRENCY",
79
+ "TRELLIS_TEAMWORK_MAX_LIVE_TEAMMATES",
80
+ "TRELLIS_TEAMWORK_TEAMMATE_RESERVED",
81
+ ])
82
+ if (env[key])
83
+ diagnostics.push(`${key} explicitly overrides the project capacity policy.`);
56
84
  const maxConcurrency = integer(env.TRELLIS_TEAMWORK_TEAMMATE_MAX_CONCURRENCY
57
85
  ? Number(env.TRELLIS_TEAMWORK_TEAMMATE_MAX_CONCURRENCY)
58
- : yamlInteger(content, "teammate", "max_concurrency"), "teamwork.teammate.max_concurrency", true) ?? DEFAULT_CONFIG.teammate.maxConcurrency;
86
+ : resolved.legacy && legacyConcurrency !== undefined
87
+ ? legacyConcurrency
88
+ : resolved.config.modes[selected].max_concurrency, "teamwork.teammate.max_concurrency", true) ?? DEFAULT_CONFIG.teammate.maxConcurrency;
59
89
  const maxLiveTeammates = integer(env.TRELLIS_TEAMWORK_MAX_LIVE_TEAMMATES
60
90
  ? Number(env.TRELLIS_TEAMWORK_MAX_LIVE_TEAMMATES)
61
- : yamlInteger(content, "teammate_guard", "max_live_teammates"), "teamwork.teammate_guard.max_live_teammates", true) ?? DEFAULT_CONFIG.guard.maxLiveTeammates;
91
+ : resolved.legacy && legacyLive !== undefined
92
+ ? legacyLive
93
+ : resolved.config.resources.max_live_teammates, "teamwork.teammate_guard.max_live_teammates", true) ?? DEFAULT_CONFIG.guard.maxLiveTeammates;
62
94
  const nonBatchReserved = integer(env.TRELLIS_TEAMWORK_TEAMMATE_RESERVED
63
95
  ? Number(env.TRELLIS_TEAMWORK_TEAMMATE_RESERVED)
64
- : yamlInteger(content, "teammate_guard", "non_batch_reserved"), "teamwork.teammate_guard.non_batch_reserved") ?? DEFAULT_CONFIG.guard.nonBatchReserved;
96
+ : resolved.legacy && legacyReserved !== undefined
97
+ ? legacyReserved
98
+ : resolved.config.resources.non_batch_reserved, "teamwork.teammate_guard.non_batch_reserved") ?? DEFAULT_CONFIG.guard.nonBatchReserved;
65
99
  return {
66
100
  teammate: { maxConcurrency },
67
101
  guard: { maxLiveTeammates, nonBatchReserved },
68
- ...(content
69
- ? {
70
- sourceDigest: crypto
71
- .createHash("sha256")
72
- .update(content)
73
- .digest("hex"),
74
- }
75
- : {}),
102
+ source: resolved.source,
103
+ diagnostics,
104
+ sourceDigest: crypto
105
+ .createHash("sha256")
106
+ .update(content + resolved.configDigest)
107
+ .digest("hex"),
76
108
  };
77
109
  }
78
110
  export function effectiveTeammateCapacity(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"teammate-config.js","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teammate-config.js","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface TeammateWritePolicy {
9
9
  recursiveDelegation: "disabled";
10
10
  }
11
11
  export interface TeammateCapabilitySnapshot {
12
+ /** Static adapter contract, not a successful probe of the installed backend. */
13
+ evidence?: "adapter-contract";
12
14
  transport: TeammateAdapterContract["transport"];
13
15
  supportsContinuation: true;
14
16
  supportsInterrupt: true;
@@ -28,6 +30,8 @@ export interface TeammateCapabilitySnapshot {
28
30
  digest: string;
29
31
  }
30
32
  export interface TeammateLaunchSpec {
33
+ /** Absent on historical frozen plans. */
34
+ reportVersion?: 2;
31
35
  roleId: "teammate";
32
36
  provider: ResolvedTeammateProfile["provider"];
33
37
  profile?: string;
@@ -58,4 +62,6 @@ export declare function buildTeammateLaunchSpec(input: {
58
62
  contextManifests?: string[];
59
63
  protectedTargets?: readonly string[];
60
64
  }): TeammateLaunchSpec;
65
+ /** Frozen references must still name the same bytes when read by a worker. */
66
+ export declare function assertTeammateContextCurrent(launch: TeammateLaunchSpec, cwd: string): void;
61
67
  //# sourceMappingURL=teammate-launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teammate-launch.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-launch.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,WAAW,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,mBAAmB,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAChD,oBAAoB,EAAE,IAAI,CAAC;IAC3B,iBAAiB,EAAE,IAAI,CAAC;IACxB,cAAc,EAAE,IAAI,CAAC;IACrB,gBAAgB,EAAE,IAAI,CAAC;IACvB,eAAe,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE;QACT,cAAc,EAAE,IAAI,CAAC;QACrB,uBAAuB,EAAE,IAAI,CAAC;QAC9B,qBAAqB,EAAE,IAAI,CAAC;QAC5B,kBAAkB,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;QACnE,eAAe,EAAE,OAAO,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtE,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC7D,OAAO,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,0BAA0B,CAAC;CACxC;AA4DD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG;IACnD,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CA4BA;AAsDD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,uBAAuB,CAAC;IACjC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG,kBAAkB,CA0GrB"}
1
+ {"version":3,"file":"teammate-launch.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-launch.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,WAAW,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,mBAAmB,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAChD,oBAAoB,EAAE,IAAI,CAAC;IAC3B,iBAAiB,EAAE,IAAI,CAAC;IACxB,cAAc,EAAE,IAAI,CAAC;IACrB,gBAAgB,EAAE,IAAI,CAAC;IACvB,eAAe,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE;QACT,cAAc,EAAE,IAAI,CAAC;QACrB,uBAAuB,EAAE,IAAI,CAAC;QAC9B,qBAAqB,EAAE,IAAI,CAAC;QAC5B,kBAAkB,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;QACnE,eAAe,EAAE,OAAO,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtE,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC7D,OAAO,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,0BAA0B,CAAC;CACxC;AA8DD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG;IACnD,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CA8BA;AAsDD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,uBAAuB,CAAC;IACjC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG,kBAAkB,CA+GrB;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,MAAM,GACV,IAAI,CAoBN"}
@@ -3,11 +3,13 @@ import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { z } from "zod";
5
5
  import { assembleContext } from "./context-loader.js";
6
+ import { buildTeamworkInstructions } from "./prompt.js";
6
7
  import { assertTeammateHostCapability, getTeammateAdapter, } from "./teammate-adapters.js";
7
8
  import { frozenProfileSchema, } from "./profiles.js";
8
9
  const sha256 = z.string().regex(/^[a-f0-9]{64}$/);
9
10
  const frozenLaunchSchema = z
10
11
  .object({
12
+ reportVersion: z.literal(2).optional(),
11
13
  roleId: z.literal("teammate"),
12
14
  provider: frozenProfileSchema.shape.provider,
13
15
  profile: z.string().optional(),
@@ -29,6 +31,7 @@ const frozenLaunchSchema = z
29
31
  contextDigest: sha256,
30
32
  capability: z
31
33
  .object({
34
+ evidence: z.literal("adapter-contract").optional(),
32
35
  transport: z.enum(["claude-cli", "codex-app-server", "acp"]),
33
36
  supportsContinuation: z.literal(true),
34
37
  supportsInterrupt: z.literal(true),
@@ -78,7 +81,9 @@ export function parseFrozenTeammate(input) {
78
81
  if (profile[field] !== launch[field])
79
82
  throw new Error(`frozen execution ${field} does not match profile`);
80
83
  if (canonical(profile.options) !== canonical(launch.options) ||
81
- profile.rolePrompt !== launch.instructions)
84
+ (launch.reportVersion === 2
85
+ ? buildTeamworkInstructions(profile.rolePrompt, "batch")
86
+ : profile.rolePrompt) !== launch.instructions)
82
87
  throw new Error("frozen execution instructions or options do not match profile");
83
88
  const { digest: expected, ...capability } = launch.capability;
84
89
  if (hash(canonical(capability)) !== expected)
@@ -153,6 +158,7 @@ export function buildTeammateLaunchSpec(input) {
153
158
  recursiveDelegation: "disabled",
154
159
  };
155
160
  const capability = {
161
+ evidence: "adapter-contract",
156
162
  transport: adapter.transport,
157
163
  supportsContinuation: true,
158
164
  supportsInterrupt: true,
@@ -176,6 +182,7 @@ export function buildTeammateLaunchSpec(input) {
176
182
  };
177
183
  return {
178
184
  roleId: "teammate",
185
+ reportVersion: 2,
179
186
  configuration: input.profile.configuration,
180
187
  provider: input.profile.provider,
181
188
  ...(input.profile.profile ? { profile: input.profile.profile } : {}),
@@ -187,10 +194,13 @@ export function buildTeammateLaunchSpec(input) {
187
194
  ...(input.profile.profileDigest
188
195
  ? { profileDigest: input.profile.profileDigest }
189
196
  : {}),
190
- prompt: [input.profile.rolePrompt, assembled.prompt]
197
+ prompt: [
198
+ buildTeamworkInstructions(input.profile.rolePrompt, "batch"),
199
+ assembled.prompt,
200
+ ]
191
201
  .filter(Boolean)
192
202
  .join("\n\n---\n\n"),
193
- instructions: input.profile.rolePrompt,
203
+ instructions: buildTeamworkInstructions(input.profile.rolePrompt, "batch"),
194
204
  context: assembled.prompt,
195
205
  rolePath: input.profile.rolePath,
196
206
  contextPaths: assembled.paths,
@@ -200,4 +210,15 @@ export function buildTeammateLaunchSpec(input) {
200
210
  capability: capabilitySnapshot,
201
211
  };
202
212
  }
213
+ /** Frozen references must still name the same bytes when read by a worker. */
214
+ export function assertTeammateContextCurrent(launch, cwd) {
215
+ if (launch.reportVersion !== 2)
216
+ return;
217
+ const actual = hash(launch.contextPaths
218
+ .map((file) => `${file}\0${fs.readFileSync(requireRegularFile(cwd, file, "teammate context file"), "utf8")}`)
219
+ .concat(launch.contextManifests.map((manifest) => `manifest\0${manifest}\0${fs.readFileSync(requireRegularFile(cwd, manifest, "teammate context manifest"), "utf8")}`))
220
+ .join("\0"));
221
+ if (actual !== launch.contextDigest)
222
+ throw new Error("Frozen teammate context changed; construct a new plan before dispatch");
223
+ }
203
224
  //# sourceMappingURL=teammate-launch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teammate-launch.js","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teammate-launch.js","sourceRoot":"","sources":["../../../src/commands/teamwork/teammate-launch.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface WaitOptions {
10
10
  includeProgress?: boolean;
11
11
  /** Wait until every agent in --from has produced a matching event. */
12
12
  all?: boolean;
13
+ /** One normalized final result, including content validation and input identity. */
14
+ json?: boolean;
13
15
  }
14
16
  export declare function teamworkSessionWait(sessionId: string, opts: WaitOptions): Promise<void>;
15
17
  /** Parse a duration like "30s", "2m", "1h" into milliseconds. */
@@ -1 +1 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/wait.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAID,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAmBvE"}
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/wait.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAID,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAwGf;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAmBvE"}
@@ -1,4 +1,5 @@
1
- import { parseTeamworkEventKinds } from "./store/events.js";
1
+ import { parseTeamworkEventKinds, readTeamworkEvents } from "./store/events.js";
2
+ import { buildInteractiveResult } from "./result.js";
2
3
  import { resolveExistingTeamworkSession } from "./store/paths.js";
3
4
  import { normalizeThreadKey, parseCsv, parseTeamworkSessionScope, parseThreadAction, } from "./store/schema.js";
4
5
  import { watchEvents } from "./store/watch.js";
@@ -8,13 +9,24 @@ export async function teamworkSessionWait(sessionId, opts) {
8
9
  scope: parseTeamworkSessionScope(opts.scope),
9
10
  });
10
11
  const fromList = parseCsv(opts.from);
12
+ const resultWorker = fromList?.[0];
13
+ if (opts.json &&
14
+ (fromList?.length !== 1 ||
15
+ opts.all ||
16
+ opts.kind ||
17
+ opts.thread ||
18
+ opts.action ||
19
+ opts.includeProgress))
20
+ throw new Error("--json requires exactly one --from worker and no event-kind, thread, action, progress or --all filter");
11
21
  if (opts.all && (!fromList || fromList.length === 0)) {
12
22
  throw new Error("--all requires --from <a,b,...>");
13
23
  }
14
24
  const filter = {
15
25
  self: opts.as,
16
- from: fromList,
17
- kind: parseTeamworkEventKinds(opts.kind),
26
+ from: opts.json ? undefined : fromList,
27
+ kind: opts.json
28
+ ? ["turn_finished", "error", "killed"]
29
+ : parseTeamworkEventKinds(opts.kind),
18
30
  to: opts.to ?? opts.as, // default: broadcasts to me + explicit-to-me
19
31
  thread: opts.thread ? normalizeThreadKey(opts.thread) : undefined,
20
32
  action: opts.action ? parseThreadAction(opts.action) : undefined,
@@ -32,6 +44,20 @@ export async function teamworkSessionWait(sessionId, opts) {
32
44
  signal: abort.signal,
33
45
  project: ref.project,
34
46
  })) {
47
+ if (opts.json) {
48
+ if (!resultWorker)
49
+ throw new Error("Missing result worker");
50
+ const worker = resultWorker;
51
+ if (ev.by !== worker && ev.by !== `supervisor:${worker}`)
52
+ continue;
53
+ const result = buildInteractiveResult(sessionId, worker, ev, await readTeamworkEvents(sessionId, ref.project));
54
+ console.log(JSON.stringify(result));
55
+ if (result.execution.status !== "completed" ||
56
+ result.reports.some((item) => item.validation !== "passed" ||
57
+ item.report?.status !== "complete"))
58
+ process.exitCode = 1;
59
+ return;
60
+ }
35
61
  console.log(JSON.stringify(ev));
36
62
  if (!pending)
37
63
  return;
@@ -44,6 +70,21 @@ export async function teamworkSessionWait(sessionId, opts) {
44
70
  process.stderr.write(`timeout: still waiting on ${[...pending].join(",")}\n`);
45
71
  }
46
72
  process.exitCode = TIMEOUT_EXIT_CODE;
73
+ if (opts.json)
74
+ console.log(JSON.stringify({
75
+ schemaVersion: 1,
76
+ kind: "trellis_result",
77
+ mode: "interactive",
78
+ association: { sessionId, worker: resultWorker },
79
+ execution: {
80
+ status: "timeout",
81
+ stopped: false,
82
+ reason: "Wait deadline elapsed; the persistent worker remains owned by the session",
83
+ },
84
+ reports: [],
85
+ semanticValidation: "not_run",
86
+ disposition: "not_applicable",
87
+ }));
47
88
  }
48
89
  finally {
49
90
  if (timer)
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/teamwork/wait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/teamwork/wait.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.7.1-beta.18",
3
+ "description": "统一 Teamwork 输入分层与结构化结果,修复单次调用终态与诊断",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "Role initialization and mode-specific result contracts are separated from task/reference data. New content reports use schema 2; run, batch and wait provide a normalized machine result. Historical frozen reports remain readable. Tool permissions automatically allow; Codex defaults to no sandbox. Input preflight, supervisor failures, failed-attempt identity, report artifacts and diagnostics are verified.",
7
+ "migrations": [],
8
+ "notes": "Run trellis update to refresh Teamwork role cards and Skill references. Agents must request --json; default human/event views remain available. Content shape validation does not perform main-agent semantic acceptance. Existing frozen launches retain their report contract."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.7.1-beta.19",
3
+ "description": "Centralize Teamwork capacity policy and enable multi-advisor consultations",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "Mode capacity defaults 8/3/3, member defaults 1/3/3, shared budget 8; schema-2 policy with diagnosed legacy/environment compatibility; advisor supports 1–3 assignments.",
7
+ "migrations": [],
8
+ "notes": "Run trellis update for generated schema-2 policy and Skills. Review customized schema-1 policy before migrating; historical plans remain unchanged."
9
+ }
@@ -27,12 +27,12 @@ The storage root defaults to `~/.trellis/teamwork`; `TRELLIS_TEAMWORK_ROOT` over
27
27
 
28
28
  ## Configuration
29
29
 
30
- The project configuration supports `teamwork.teammate.max_concurrency` and `teamwork.teammate_guard.idle_timeout`, `max_live_teammates`, and `non_batch_reserved`. Defaults and CLI overrides are defined by the current Trellis CLI; read `packages/cli/src/commands/teamwork/teammate-config.ts` before changing them.
30
+ The schema-2 `.trellis/teamwork.json` owns mode member defaults, mode concurrency limits, and the shared live-process budget and reservation. Defaults are members 1/3/3, concurrency 8/3/3, live budget 8, and reservation 0. YAML retains `teamwork.teammate_guard.idle_timeout`; legacy YAML capacity applies only before schema-2 migration and is otherwise ignored with diagnostics. Runtime `maxConcurrency` is a resolved value, not an independent configuration. Read `coordination.ts` and `teammate-config.ts` before changing this policy.
31
31
 
32
32
  `teamwork config` resolves project defaults. `teamwork plan` freezes profile,
33
33
  configuration, instructions and evidence into schema-2 plan/brief artifacts;
34
34
  `teamwork batch --task` connects the foreground coordinator to Codex app-server,
35
- Claude CLI, Copilot ACP or DSH ACP. Claims are schema 2, reports schema 1.
35
+ Claude CLI, Copilot ACP or DSH ACP. Claims and content reports are schema 2.
36
36
  An unresolved batch keeps a durable project capacity reservation, including
37
37
  after coordinator exit. The guard and session cleanup preserve that evidence.
38
38
  Role read-only and history-use requirements are behavioral contracts; runtime
@@ -39,7 +39,7 @@ trellis teamwork context list <session> --scope global --thread <thread>
39
39
  | User intent | Read |
40
40
  |---|---|
41
41
  | `general`: bounded research, review, or verification assignments | `references/teamwork-plan-construction.md`, then `references/coordination-modes.md` |
42
- | Advisor: one bounded consultation | `references/coordination-modes.md`, then `references/teamwork-plan-construction.md` |
42
+ | Advisor: one to three bounded consultations | `references/coordination-modes.md`, then `references/teamwork-plan-construction.md` |
43
43
  | `committee`: parallel assessment by two or three distinct lenses | `references/coordination-modes.md`, then `references/teamwork-plan-construction.md` |
44
44
  | Profile, model, provider, reasoning effort, or role-card configuration | `references/teammate-configuration-matrix.md` |
45
45
  | “和 codex/claude 讨论一下”, “brainstorm with another agent” | `references/teamwork-plan-construction.md`, then `references/coordination-modes.md` |
@@ -53,7 +53,10 @@ trellis teamwork context list <session> --scope global --thread <thread>
53
53
 
54
54
  - Teammates provide research, review, verification, evidence, and advice under a role contract; they do not implement product code. Coding tools or provider permission modes do not grant that role authority. Return results in the assigned format and let the coordinator review them.
55
55
  - `general`, `advisor`, and `committee` are coordination modes, independent from profiles, providers, `run`, batch execution, and forum sessions. Read project defaults with `teamwork config`; construct a frozen plan with `teamwork plan` and execute it with `teamwork batch --task <task-dir>`.
56
- - For a managed batch, invoke one foreground `teamwork batch` command and wait for its receipt. The CLI owns FIFO admission, capacity, provider waits, retries, cancellation, report acceptance, and settlement; the main agent must not schedule per-assignment waits or retries.
56
+ - For a managed batch, invoke one foreground `teamwork batch --json` command and wait for its receipt. The CLI owns FIFO admission, capacity, provider waits, retries, cancellation, report validation, and settlement; the main agent must not schedule per-assignment waits or retries.
57
+ - Agent/program callers must use `run --json`, `batch --json`, or `wait --json --from <worker>` for final results. Default run text and default wait events are compatibility/operator views. Read `execution`, every `reports[].validation` and content status, then perform semantic review; `done`, exit zero, `complete`, and `ALL_ACCEPTED` alone do not accept a task result. `semanticValidation: not_run` explicitly leaves that decision to the main agent.
58
+ - Tool permissions are automatically allowed; the default Codex launch has no sandbox. Source/Git, memory, and delegation boundaries are prompt obligations. Do not add tool/path permission gates or describe the role as technical isolation.
59
+ - Initialization carries common/professional rules and the mode-specific result contract. Task messages carry task data, acceptance and exact identity/path references. Context manifests may choose inline, required full reading, or on-demand references; reference text never becomes system instructions. ACP has user content only and cannot claim system priority.
57
60
  - A batch runtime continuation waits on the same provider process under the same frozen deadline. It does not send another provider prompt or consume a full-attempt retry. A live `teamwork wait` host-tool continuation is a separate interactive-session workflow.
58
61
  - Select one of the six professional profiles and one of its named configurations. For multiple teammates, consider the second and third candidates and record the selection reason; using the same configuration is allowed. See the configuration matrix reference before constructing a new plan.
59
62
  - Teamwork does not create or operate Paseo workspaces, Git worktrees, or source-writing implementation agents. Those mechanisms remain independent.
@@ -64,7 +67,7 @@ trellis teamwork context list <session> --scope global --thread <thread>
64
67
  - `--as` is the speaker or worker handle, depending on the command. Use explicit, stable names when multiple agents or sessions are involved.
65
68
  - `--scope project` (default) operates on the current cwd's project bucket; `--scope global` operates on the shared `__global__` bucket. Pick scope deliberately — a global board is invisible from project listings unless `--scope global` is passed.
66
69
  - For exploratory discussion, choose distinct questions and pressure-test unresolved assumptions. Continue only while another exchange can change the decision or its evidence; do not require a fixed number of rounds or relabel a confirmation as new evidence.
67
- - **Dispatcher wait pattern**: use `--kind done` / `--kind turn_finished` (Trellis-emitted system events), not a user `--tag` as the completion signal. Tags are labels, not runtime completion events.
70
+ - **Dispatcher wait pattern**: use `wait --json --from <worker>` for a final content report. Operator event waits may use `--kind done` / `--kind turn_finished`; tags are labels, not runtime completion events. Resume an outstanding host continuation before any other host action.
68
71
  - Teamwork Sessions are event-sourced. Do not parse `events.jsonl` first; use `forum`, `thread`, `messages --thread`, and `context list`.
69
72
  - `@pennixrv/trellis-core` owns reusable Teamwork Session/thread state, event append, sequence allocation, context/title projection, reducers, and task helpers. The CLI owns flags, terminal rendering, prompts, teammate lifecycle, and process exits.
70
73
  - Teamwork plan construction belongs to the current phase coordinator. Teamwork validates and executes a frozen plan; it does not select the task phase, change task status, or create a second task state machine.
@@ -3,13 +3,28 @@
3
3
  The plan's `coordination_mode` selects the call shape. It is independent from
4
4
  the teammate role, execution profile, and Teamwork Session type.
5
5
 
6
+ All modes use the same schema-2 content report and common `--json` result
7
+ envelope. Mode selection does not waive result validation or main-agent
8
+ semantic review. It also does not transfer FIFO or process control to a model.
9
+
6
10
  Project defaults live in `.trellis/teamwork.json`: general defaults to one
7
- member, advisor to one, and committee to three. Read them with
11
+ member, advisor to three, and committee to three. Schema 2 also owns the mode
12
+ concurrency limits (general 8, advisor 3, committee 3) and the shared live-process
13
+ budget (8, with 0 reserved for non-batch work). Read them with
8
14
  `trellis teamwork config --mode <mode>`. The coordinator uses `defaultMembers`
9
15
  when composing assignments; it must write each member explicitly. The runtime
10
16
  does not invent assignments or silently duplicate one to reach the default.
11
- Changing defaults affects only newly constructed plans. Advisor must have one
12
- member, committee two or three, and general one or more within capacity.
17
+ Changing defaults affects only newly constructed plans. Advisor must have one to
18
+ three members, committee two or three, and general one or more within capacity.
19
+
20
+ Member count guides plan composition; concurrency limits simultaneous work.
21
+ Effective capacity is bounded by the selected mode, requested capacity, shared
22
+ live budget after reservations, and verified host capability. Existing live
23
+ workers and batch reservations share admission control. Environment overrides
24
+ are explicit and reported in `capacityPolicy.diagnostics`. Legacy schema 1 and
25
+ YAML capacity remain readable for compatibility. Schema 2 ignores legacy YAML
26
+ capacity keys with a diagnostic, so a stale YAML limit of 1 cannot silently
27
+ override the new policy. YAML retains idle-cleanup settings.
13
28
 
14
29
  ## `general`
15
30
 
@@ -20,8 +35,8 @@ each assignment independently.
20
35
 
21
36
  ## `advisor`
22
37
 
23
- Use advisor coordination for one bounded consultation. The plan contains
24
- exactly one assignment and its result is advice for the current coordinator.
38
+ Use advisor coordination for one to three bounded consultations. Each advisor
39
+ returns independent advice for the current coordinator; the default is three.
25
40
  The result still carries a source digest and acceptance evidence and does not
26
41
  change the task or phase by itself.
27
42
 
@@ -7,8 +7,10 @@
7
7
  | `.trellis/agents/teammate-profiles.json`,schema 2 | `default_profile`;每个 profile 的 `role`、`default_configuration` 和 2–3 套命名 `configurations` |
8
8
  | `.trellis/agents/teammate.md` | 通用角色、只读职责和结果合同 |
9
9
  | `.trellis/agents/profiles/<profile>.md` | 精确专业角色卡;普通 Markdown,通过 Trellis 注入,不注册宿主原生角色 |
10
- | `.trellis/teamwork.json`,schema 1 | `default_mode` 及三种模式的 `default_members` |
11
- | `.trellis/config.yaml` 的 `teamwork.*` | 并发和进程容量限制 |
10
+ | `.trellis/teamwork.json`,schema 2 | `default_mode`;各模式的 `default_members`、`max_concurrency`;`resources` 中的共享进程预算与非 batch 预留 |
11
+ | `.trellis/config.yaml` 的 `teamwork.teammate_guard.idle_timeout` | 空闲清理;旧容量键仅在未迁移到 schema 2 时兼容读取 |
12
+
13
+ 默认成员数为 general 1、advisor 3、committee 3;默认并发上限分别为 8、3、3,共享存活进程预算为 8,非 batch 预留为 0。成员数用于构造计划,不要求同时运行;有效并发还受显式请求、共享预算和宿主能力约束。schema 2 不再叠加旧 YAML 容量上限,兼容读取和环境覆盖均在 `capacityPolicy.diagnostics` 中说明。`capacityPolicy` 是解析结果,不是另一套配置。
12
14
 
13
15
  每套执行配置包含 `provider`、`model`,可选 `reasoning_effort` 和适配器支持的 `options`。上下文长度沿用 provider 默认,不配置 token 或预算机制。`teammate` 是内部执行者类型,公开计划不填写 `role_id`;`lens` 只表示成员的“本次关注点”。
14
16
 
@@ -29,10 +31,12 @@ trellis teamwork config --profile architecture --configuration copilot-opus --mo
29
31
 
30
32
  成员显式覆盖执行值只作用于该成员,不改项目默认。多成员应考虑同 provider 不同模型、跨 provider 同模型或不同专业的收益,填写 `selection_reason`;不强制异构、不自动轮换、不静默 fallback。`architecture + committee` 可以让 2–3 位架构成员分别使用不同配置。
31
33
 
32
- 构造器冻结有效执行值、通用加专业角色指令、上下文、模式配置摘要和能力摘要。后续改配置只影响新计划,已有计划执行时不重新解析角色文件。模型不可用、推理强度未被后端声明或选项不支持时明确失败。
34
+ 构造器冻结有效执行值、通用加专业角色指令、模式结果合同、上下文、模式配置摘要和能力摘要。能力的 `evidence: adapter-contract` 说明它来自静态适配器合同,不是已安装后端的成功探测。后续改配置只影响新计划,已有计划执行时不重新解析角色文件;新计划的参考文件在派发前后核对冻结摘要。模型不可用、推理强度未被后端声明或选项不支持时明确失败,并保留实际配置协商阶段及后端声明信息。
33
35
 
34
36
  四种 transport 为 Codex app-server、Claude Code stream-json、Copilot ACP 和 DSH ACP。Copilot 原生 CLI 支持非交互调用;这里选择 ACP 是为了统一会话、配置与取消回执。DSH 使用 `dsh --profile acp`,恢复使用其声明的 `session/resume`;Copilot 使用 `session/load`。安装、账号和真实调用结果须单独核验,fixture 通过不证明某个后端已可用。
35
37
 
36
- Codex 使用 `developerInstructions`,Claude 使用独立的 append-system-prompt;ACP v1 只有用户内容块,Trellis 将角色与任务编码为两个明确区分的块,但不宣称具有独立 system 优先级。不会动态改写 `AGENTS.md` 或注册 provider 原生 persona。
38
+ Codex 使用 `developerInstructions`,Claude 使用独立的 append-system-prompt;ACP v1 只有用户内容块,Trellis 将角色与任务放在两个明确区分的纯文本块,但不宣称具有独立 system 优先级。完整角色在同一会话成功完成一轮后不重复发送,恢复或首次失败后重新建立。参考资料通过任务数据通道发送。不会动态改写 `AGENTS.md` 或注册 provider 原生 persona。
37
39
 
38
40
  源码、Git、递归委派和隐式历史使用限制是角色义务。宿主能力检查只声明实际运行能力:前台等待、受控产物、transport 和容量;不声称完成文件系统只读或记忆隔离。可用工具与宽权限模式不授予 teammate 编写产品代码的职责。
41
+
42
+ 工具权限自动允许,不设置默认沙箱或工具/路径准入限制。Codex 默认 `danger-full-access`、`approvalPolicy: never`;ACP 自动选择后端提供的允许选项。宿主仍可能附加 AGENTS、Skills 和环境记忆,角色摘要不代表整个有效上下文摘要。