@xrkseek/harness 0.6.0 → 0.6.2

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 (118) hide show
  1. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  2. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +63 -34
  3. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  4. package/node_modules/@xrkseek/core-session/dist/store-lock.d.ts +4 -1
  5. package/node_modules/@xrkseek/core-session/dist/store-lock.d.ts.map +1 -1
  6. package/node_modules/@xrkseek/core-session/dist/store-lock.js +63 -7
  7. package/node_modules/@xrkseek/core-session/dist/store-lock.js.map +1 -1
  8. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
  9. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +6 -5
  10. package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
  11. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +8 -4
  12. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  13. package/node_modules/@xrkseek/exec-fs/dist/index.js +14 -5
  14. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  15. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +6 -3
  16. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  17. package/node_modules/@xrkseek/preset-harness/dist/preset.js +35 -20
  18. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  19. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  20. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  21. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  22. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts +7 -4
  23. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts.map +1 -1
  24. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js +9 -4
  25. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js.map +1 -1
  26. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +7 -3
  27. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
  28. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +36 -8
  29. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
  30. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts.map +1 -1
  31. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +12 -5
  32. package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js.map +1 -1
  33. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts +15 -0
  34. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts.map +1 -1
  35. package/node_modules/@xrkseek/server-face/dist/collab-board.js +62 -2
  36. package/node_modules/@xrkseek/server-face/dist/collab-board.js.map +1 -1
  37. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  38. package/node_modules/@xrkseek/server-face/dist/dispatch.js +2 -15
  39. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  40. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +38 -21
  42. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  43. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +3 -3
  44. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
  45. package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -1
  46. package/node_modules/@xrkseek/server-face/dist/handlers/team.js +18 -0
  47. package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -1
  48. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
  49. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  50. package/node_modules/@xrkseek/server-face/dist/index.js +2 -2
  51. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  52. package/node_modules/@xrkseek/server-face/dist/permissions.d.ts +17 -1
  53. package/node_modules/@xrkseek/server-face/dist/permissions.d.ts.map +1 -1
  54. package/node_modules/@xrkseek/server-face/dist/permissions.js +24 -5
  55. package/node_modules/@xrkseek/server-face/dist/permissions.js.map +1 -1
  56. package/node_modules/@xrkseek/server-face/dist/propose-skill.d.ts +4 -2
  57. package/node_modules/@xrkseek/server-face/dist/propose-skill.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/server-face/dist/propose-skill.js +3 -3
  59. package/node_modules/@xrkseek/server-face/dist/propose-skill.js.map +1 -1
  60. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  61. package/node_modules/@xrkseek/server-face/dist/runtime.js +24 -8
  62. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  63. package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
  64. package/node_modules/@xrkseek/server-face/dist/session-capability.js +3 -1
  65. package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
  66. package/node_modules/@xrkseek/server-face/dist/session-cwd.d.ts.map +1 -1
  67. package/node_modules/@xrkseek/server-face/dist/session-cwd.js +8 -0
  68. package/node_modules/@xrkseek/server-face/dist/session-cwd.js.map +1 -1
  69. package/node_modules/@xrkseek/server-face/dist/session-inject-documents.d.ts +27 -0
  70. package/node_modules/@xrkseek/server-face/dist/session-inject-documents.d.ts.map +1 -0
  71. package/node_modules/@xrkseek/server-face/dist/session-inject-documents.js +77 -0
  72. package/node_modules/@xrkseek/server-face/dist/session-inject-documents.js.map +1 -0
  73. package/node_modules/@xrkseek/server-face/dist/session-status.js +1 -1
  74. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  75. package/node_modules/@xrkseek/server-face/dist/session-tools.d.ts +18 -1
  76. package/node_modules/@xrkseek/server-face/dist/session-tools.d.ts.map +1 -1
  77. package/node_modules/@xrkseek/server-face/dist/session-tools.js +76 -9
  78. package/node_modules/@xrkseek/server-face/dist/session-tools.js.map +1 -1
  79. package/node_modules/@xrkseek/server-face/dist/skill-documents.d.ts +3 -3
  80. package/node_modules/@xrkseek/server-face/dist/skill-documents.d.ts.map +1 -1
  81. package/node_modules/@xrkseek/server-face/dist/skill-documents.js.map +1 -1
  82. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts +2 -1
  83. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts.map +1 -1
  84. package/node_modules/@xrkseek/server-face/dist/skill-list.js +10 -3
  85. package/node_modules/@xrkseek/server-face/dist/skill-list.js.map +1 -1
  86. package/node_modules/@xrkseek/server-face/dist/skill-read.d.ts +2 -1
  87. package/node_modules/@xrkseek/server-face/dist/skill-read.d.ts.map +1 -1
  88. package/node_modules/@xrkseek/server-face/dist/skill-read.js +15 -2
  89. package/node_modules/@xrkseek/server-face/dist/skill-read.js.map +1 -1
  90. package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
  91. package/node_modules/@xrkseek/server-face/dist/slash.js +2 -3
  92. package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
  93. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  94. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +25 -27
  95. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  96. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  97. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +31 -12
  98. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  99. package/node_modules/@xrkseek/server-face/dist/xiangyang-session-migrate.d.ts.map +1 -1
  100. package/node_modules/@xrkseek/server-face/dist/xiangyang-session-migrate.js +5 -6
  101. package/node_modules/@xrkseek/server-face/dist/xiangyang-session-migrate.js.map +1 -1
  102. package/node_modules/@xrkseek/server-host/dist/index.d.ts +5 -4
  103. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  104. package/node_modules/@xrkseek/server-host/dist/index.js +28 -16
  105. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  106. package/node_modules/@xrkseek/workspace/dist/index.d.ts +9 -4
  107. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  108. package/node_modules/@xrkseek/workspace/dist/index.js +9 -5
  109. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  110. package/node_modules/@xrkseek/workspace/dist/skill-propose.d.ts +9 -1
  111. package/node_modules/@xrkseek/workspace/dist/skill-propose.d.ts.map +1 -1
  112. package/node_modules/@xrkseek/workspace/dist/skill-propose.js +44 -19
  113. package/node_modules/@xrkseek/workspace/dist/skill-propose.js.map +1 -1
  114. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +18 -1
  115. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
  116. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +26 -1
  117. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
  118. package/package.json +1 -1
@@ -6,6 +6,12 @@
6
6
  import type { ToolDefinition } from "@xrkseek/core-tools";
7
7
  import { type SkillInstallResult } from "./skill-install.js";
8
8
  export declare const PROPOSE_SKILL_TOOL = "propose_skill";
9
+ /** Where a proposed skill is written. */
10
+ export type ProposeSkillScope = "workspace" | "global";
11
+ /** `workspace` (default) or `global`. Anything else is refused. */
12
+ export declare function parseProposeSkillScope(raw: unknown): ProposeSkillScope | undefined;
13
+ /** Home `~/.agents/skills` — global scope, not the product `~/.xrk` tree. */
14
+ export declare function defaultGlobalSkillsRoot(): string;
9
15
  /** Default tool-call count on one turn that counts as "complex" for a nudge. */
10
16
  export declare const LEARNING_LOOP_COMPLEX_TOOL_THRESHOLD = 5;
11
17
  export interface ProposeSkillDraft {
@@ -51,8 +57,10 @@ export declare function presentProposeSkillCall(args: {
51
57
  * Without `askConfirm` the tool refuses (no silent disk writes).
52
58
  */
53
59
  export declare function createProposeSkillTool(options: {
60
+ /** Current session workspace. */
54
61
  readonly resolveWorkspaceRoot: () => string;
55
- readonly resolveSkillsRoot?: () => string | undefined;
62
+ /** Home `~/.agents/skills`. Defaults to {@link defaultGlobalSkillsRoot}. */
63
+ readonly resolveGlobalSkillsRoot?: () => string;
56
64
  readonly askConfirm?: (draft: ProposeSkillDraft, signal?: AbortSignal) => Promise<ProposeSkillConfirmResult>;
57
65
  }): ToolDefinition;
58
66
  /** Record a finished turn; arm a nudge after enough complex turns (Hermes interval). */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-propose.d.ts","sourceRoot":"","sources":["../src/skill-propose.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,gFAAgF;AAChF,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAST;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,kBAAkB,CA4DpB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG;IACF,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAOA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,MAAM,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,KAAK,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACzC,GAAG,cAAc,CAoJjB;AAMD,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC,GACA,IAAI,CAYN;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAInE;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAO9C;AAED,iBAAiB;AACjB,wBAAgB,mCAAmC,IAAI,IAAI,CAG1D"}
1
+ {"version":3,"file":"skill-propose.d.ts","sourceRoot":"","sources":["../src/skill-propose.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,23 @@
4
4
  * create path — consent before commit; no background fork in this slice).
5
5
  */
6
6
  import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
7
- import { tmpdir } from "node:os";
7
+ import { homedir, tmpdir } from "node:os";
8
8
  import path from "node:path";
9
- import { installSkillFromLocalDir, resolveInstalledSkillsRoot, SkillInstallError, WORKSPACE_SKILLS_REL_DIR, } from "./skill-install.js";
9
+ import { installSkillFromLocalDir, SkillInstallError, WORKSPACE_SKILLS_REL_DIR, } from "./skill-install.js";
10
10
  import { isSkillName, parseSkillMarkdown } from "./skills.js";
11
11
  export const PROPOSE_SKILL_TOOL = "propose_skill";
12
+ /** `workspace` (default) or `global`. Anything else is refused. */
13
+ export function parseProposeSkillScope(raw) {
14
+ if (raw === undefined || raw === "workspace")
15
+ return "workspace";
16
+ if (raw === "global")
17
+ return "global";
18
+ return undefined;
19
+ }
20
+ /** Home `~/.agents/skills` — global scope, not the product `~/.xrk` tree. */
21
+ export function defaultGlobalSkillsRoot() {
22
+ return path.join(homedir(), ".agents", "skills");
23
+ }
12
24
  /** Default tool-call count on one turn that counts as "complex" for a nudge. */
13
25
  export const LEARNING_LOOP_COMPLEX_TOOL_THRESHOLD = 5;
14
26
  /**
@@ -82,9 +94,12 @@ export function presentProposeSkillCall(args) {
82
94
  export function createProposeSkillTool(options) {
83
95
  return {
84
96
  name: PROPOSE_SKILL_TOOL,
85
- description: "Propose a reusable product skill (SKILL.md) after a complex task. " +
97
+ description: "Propose a reusable SKILL.md playbook after a complex task. " +
98
+ "This is not an Agent Team member. If the user asked for a 干员, 成员, teammate, or 子代理团队的一员, call `team_save` instead. " +
86
99
  "Pass name, description, and markdown body (lessons / procedure — not a chat log). " +
87
- "The user must approve before anything is written under .agents/skills.",
100
+ "scope=workspace (default) writes the current workspace `.agents/skills`; " +
101
+ "scope=global writes the home directory `~/.agents/skills`. " +
102
+ "The user must approve before anything is written.",
88
103
  parameters: {
89
104
  type: "object",
90
105
  properties: {
@@ -100,6 +115,10 @@ export function createProposeSkillTool(options) {
100
115
  type: "string",
101
116
  description: "Markdown body after frontmatter: When to Use, Procedure, Pitfalls. Class-level lessons, not incident logs.",
102
117
  },
118
+ scope: {
119
+ type: "string",
120
+ description: "workspace (default): current workspace .agents/skills. global: home ~/.agents/skills. Not an Agent Team roster.",
121
+ },
103
122
  force: {
104
123
  type: "boolean",
105
124
  description: "Overwrite an existing skill of the same name.",
@@ -118,6 +137,13 @@ export function createProposeSkillTool(options) {
118
137
  },
119
138
  async execute(args, signal) {
120
139
  const a = args;
140
+ const scope = parseProposeSkillScope(a.scope);
141
+ if (scope === undefined) {
142
+ return {
143
+ content: 'Error: scope must be "workspace" or "global"',
144
+ isError: true,
145
+ };
146
+ }
121
147
  const name = String(a.name ?? "").trim();
122
148
  const description = String(a.description ?? "").trim();
123
149
  const body = String(a.body ?? "");
@@ -145,17 +171,15 @@ export function createProposeSkillTool(options) {
145
171
  };
146
172
  }
147
173
  const workspaceRoot = options.resolveWorkspaceRoot();
148
- const skillsRootOverride = options.resolveSkillsRoot?.();
149
- const skillsRoot = resolveInstalledSkillsRoot({
150
- workspaceRoot,
151
- ...(skillsRootOverride !== undefined
152
- ? { skillsRoot: skillsRootOverride }
153
- : {}),
154
- });
155
- const targetRel = path
156
- .join(WORKSPACE_SKILLS_REL_DIR, name, "SKILL.md")
157
- .split(path.sep)
158
- .join("/");
174
+ const skillsRoot = path.resolve(scope === "global"
175
+ ? (options.resolveGlobalSkillsRoot?.() ?? defaultGlobalSkillsRoot())
176
+ : path.join(workspaceRoot, WORKSPACE_SKILLS_REL_DIR));
177
+ const targetRel = scope === "global"
178
+ ? path.join(skillsRoot, name, "SKILL.md")
179
+ : path
180
+ .join(WORKSPACE_SKILLS_REL_DIR, name, "SKILL.md")
181
+ .split(path.sep)
182
+ .join("/");
159
183
  const draft = {
160
184
  name,
161
185
  description,
@@ -189,10 +213,8 @@ export function createProposeSkillTool(options) {
189
213
  const result = writeProposedSkill({
190
214
  workspaceRoot,
191
215
  markdown,
216
+ skillsRoot,
192
217
  ...(a.force === true ? { force: true } : {}),
193
- ...(skillsRootOverride !== undefined
194
- ? { skillsRoot: skillsRootOverride }
195
- : {}),
196
218
  });
197
219
  return {
198
220
  content: JSON.stringify({
@@ -201,6 +223,7 @@ export function createProposeSkillTool(options) {
201
223
  directory: result.directory,
202
224
  targetRel,
203
225
  skillsRoot,
226
+ scope,
204
227
  }),
205
228
  };
206
229
  }
@@ -248,7 +271,9 @@ export function learningLoopNudgeText() {
248
271
  return ("Learning loop: this session just finished a complex multi-tool turn. " +
249
272
  "If you produced a reusable procedure, call `propose_skill` with a class-level SKILL.md draft " +
250
273
  "(When to Use + Procedure + Pitfalls — not a chat transcript). " +
251
- "The user must approve before anything is written under `.agents/skills`.");
274
+ "scope=workspace writes the current workspace `.agents/skills`; scope=global writes home `~/.agents/skills`. " +
275
+ "A 干员 / 成员 / 子代理团队的一员 is `team_save`, not this tool. " +
276
+ "The user must approve before anything is written.");
252
277
  }
253
278
  /** Test hook. */
254
279
  export function resetLearningLoopNudgeStateForTests() {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-propose.js","sourceRoot":"","sources":["../src/skill-propose.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,gFAAgF;AAChF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAuBtD;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAI1C;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,QAAQ,GACZ,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpD,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QAC/C,CAAC,CAAC,gBAAgB,WAAW,EAAE,CAAC;IACpC,OAAO,cAAc,IAAI,KAAK,QAAQ,YAAY,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACvE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,iBAAiB,CACzB,oDAAoD,EACpD,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,iBAAiB,CACzB,6CAA6C,EAC7C,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,iBAAiB,CACzB,gEAAgE,EAChE,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,iBAAiB,CACzB,wDAAwD,EACxD,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAiB,CACzB,uBAAuB,IAAI,GAAG,EAC9B,YAAY,CACb,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAiB,CACzB,8CAA8C,EAC9C,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,gFAAgF;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjE,OAAO,wBAAwB,CAAC,QAAQ,EAAE;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;gBACpC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAGvC;IAMC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE;QACnC,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAOtC;IACC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,oEAAoE;YACpE,oFAAoF;YACpF,wEAAwE;QAC1E,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;iBAC/D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gEAAgE;iBACnE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4GAA4G;iBAC/G;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+CAA+C;iBAC7D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC;SAC1C;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,IAA+C,CAAC;YAC1D,OAAO,uBAAuB,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO;gBAC5C,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS;oBAC7B,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;YACxB,MAAM,CAAC,GAAG,IAKT,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,8BAA8B,IAAI,GAAG;oBAC9C,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,sCAAsC;oBAC/C,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrE,CAAC;YAED,MAAM,QAAQ,GAAG,0BAA0B,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE,kDAAkD;oBAC3D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,0BAA0B,CAAC;gBAC5C,aAAa;gBACb,GAAG,CAAC,kBAAkB,KAAK,SAAS;oBAClC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI;iBACnB,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,UAAU,CAAC;iBAChD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,MAAM,KAAK,GAAsB;gBAC/B,IAAI;gBACJ,WAAW;gBACX,IAAI;gBACJ,QAAQ;gBACR,SAAS;aACV,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO;oBACL,OAAO,EACL,4HAA4H;oBAC9H,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,OAAkC,CAAC;YACvC,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,QAAQ;wBACf,CAAC,CAAC,8BAA8B,QAAQ,EAAE;wBAC1C,CAAC,CAAC,gDAAgD;iBACrD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,kBAAkB,CAAC;oBAChC,aAAa;oBACb,QAAQ;oBACR,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,GAAG,CAAC,kBAAkB,KAAK,SAAS;wBAClC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,SAAS;wBACT,UAAU;qBACX,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7D,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACuB,CAAC;AAC7B,CAAC;AAED,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAExC,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAiB,EACjB,OAGC;IAED,MAAM,gBAAgB,GACpB,OAAO,EAAE,gBAAgB,IAAI,oCAAoC,CAAC;IACpE,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC;IAClD,IAAI,SAAS,GAAG,gBAAgB;QAAE,OAAO;IACzC,MAAM,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;QAC1B,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,qBAAqB;IACnC,OAAO,CACL,uEAAuE;QACvE,+FAA+F;QAC/F,gEAAgE;QAChE,0EAA0E,CAC3E,CAAC;AACJ,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,mCAAmC;IACjD,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"skill-propose.js","sourceRoot":"","sources":["../src/skill-propose.ts"],"names":[],"mappings":"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"}
@@ -25,11 +25,28 @@ export declare function resolveRuntimeSurface(env?: Record<string, string | unde
25
25
  * @returns markdown block, or "" when unknown.
26
26
  */
27
27
  export declare function formatRuntimeSurfaceAnchor(surface: RuntimeSurface | undefined): string;
28
+ /** Session badge (agent preset) + permission line for model-facing inject. */
29
+ export interface SessionPolicyAnchor {
30
+ /** Agent preset id shown as the session badge (e.g. harness / frugal). */
31
+ readonly badge?: string;
32
+ /**
33
+ * Human-readable permission label (same string Status / `/status` print).
34
+ * Prefer Face `formatPermissionStatusLabel`.
35
+ */
36
+ readonly permission?: string;
37
+ }
38
+ /**
39
+ * Model-facing badge + permission paragraph (session policy).
40
+ * @param policy - badge and/or permission; empty fields are omitted.
41
+ * @returns markdown block, or "" when both absent.
42
+ */
43
+ export declare function formatSessionPolicyAnchor(policy: SessionPolicyAnchor | undefined): string;
28
44
  /**
29
45
  * Durable inject anchor: absolute workspace root (+ optional runtime surface).
30
46
  * @param root - workspace root path.
31
47
  * @param displayTitle - sidebar label (display-only).
32
48
  * @param surface - runtime surface; appends the `## Runtime surface` paragraph.
49
+ * @param sessionPolicy - optional badge + permission paragraph.
33
50
  */
34
- export declare function formatWorkspaceRootAnchor(root: string, displayTitle?: string, surface?: RuntimeSurface): string;
51
+ export declare function formatWorkspaceRootAnchor(root: string, displayTitle?: string, surface?: RuntimeSurface, sessionPolicy?: SessionPolicyAnchor): string;
35
52
  //# sourceMappingURL=workspace-anchor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-anchor.d.ts","sourceRoot":"","sources":["../src/workspace-anchor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvE,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,EAAG,aAAsB,CAAC;AAe1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,cAAc,GAAG,SAAS,CAkB5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,cAAc,GAAG,SAAS,CAE5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAcR"}
1
+ {"version":3,"file":"workspace-anchor.d.ts","sourceRoot":"","sources":["../src/workspace-anchor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvE,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,EAAG,aAAsB,CAAC;AAe1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,cAAc,GAAG,SAAS,CAkB5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,cAAc,GAAG,SAAS,CAE5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,MAAM,CAOR;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,MAAM,CAiBR;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,EACxB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAgBR"}
@@ -59,13 +59,35 @@ export function formatRuntimeSurfaceAnchor(surface) {
59
59
  "Do not claim capabilities of another surface (desktop vs browser vs terminal).",
60
60
  ].join("\n");
61
61
  }
62
+ /**
63
+ * Model-facing badge + permission paragraph (session policy).
64
+ * @param policy - badge and/or permission; empty fields are omitted.
65
+ * @returns markdown block, or "" when both absent.
66
+ */
67
+ export function formatSessionPolicyAnchor(policy) {
68
+ if (!policy)
69
+ return "";
70
+ const badge = policy.badge?.trim();
71
+ const permission = policy.permission?.trim();
72
+ if (!badge && !permission)
73
+ return "";
74
+ const lines = ["## Session policy"];
75
+ if (badge) {
76
+ lines.push(`Badge (agent preset): \`${badge}\` — this session's tool composition and ceilings follow that preset.`);
77
+ }
78
+ if (permission) {
79
+ lines.push(`Permission: ${permission} — honor this approval / sandbox posture; do not assume a looser mode.`);
80
+ }
81
+ return lines.join("\n");
82
+ }
62
83
  /**
63
84
  * Durable inject anchor: absolute workspace root (+ optional runtime surface).
64
85
  * @param root - workspace root path.
65
86
  * @param displayTitle - sidebar label (display-only).
66
87
  * @param surface - runtime surface; appends the `## Runtime surface` paragraph.
88
+ * @param sessionPolicy - optional badge + permission paragraph.
67
89
  */
68
- export function formatWorkspaceRootAnchor(root, displayTitle, surface) {
90
+ export function formatWorkspaceRootAnchor(root, displayTitle, surface, sessionPolicy) {
69
91
  const path = root.trim();
70
92
  if (!path)
71
93
  return "";
@@ -80,6 +102,9 @@ export function formatWorkspaceRootAnchor(root, displayTitle, surface) {
80
102
  const surfaceBlock = formatRuntimeSurfaceAnchor(surface);
81
103
  if (surfaceBlock)
82
104
  lines.push("", surfaceBlock);
105
+ const policyBlock = formatSessionPolicyAnchor(sessionPolicy);
106
+ if (policyBlock)
107
+ lines.push("", policyBlock);
83
108
  return lines.join("\n");
84
109
  }
85
110
  //# sourceMappingURL=workspace-anchor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-anchor.js","sourceRoot":"","sources":["../src/workspace-anchor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAsB,CAAC;AAE1D,MAAM,oBAAoB,GAAmC;IAC3D,OAAO,EACL,0LAA0L;IAC5L,GAAG,EACD,sLAAsL;IACxL,GAAG,EACD,mHAAmH;IACrH,GAAG,EACD,mFAAmF;IACrF,GAAG,EACD,6EAA6E;CAChF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAuB;IAEvB,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,KAAK,EACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/E,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0C,OAAO,CAAC,GAAG;IAErD,OAAO,uBAAuB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmC;IAEnC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO;QACL,oBAAoB;QACpB,2BAA2B,oBAAoB,CAAC,OAAO,CAAC,GAAG;QAC3D,gFAAgF;KACjF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,YAAqB,EACrB,OAAwB;IAExB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,KAAK,IAAI,IAAI;QACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,KAAK,2CAA2C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,gKAAgK;QAChK,6CAA6C;KAC9C,CAAC;IACF,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"workspace-anchor.js","sourceRoot":"","sources":["../src/workspace-anchor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrkseek/harness",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {