@akagilnc/pi-workflow-roles 0.1.1837 → 0.1.1842

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.
@@ -1,13 +1,6 @@
1
1
  import { lstatSync, realpathSync, statSync, writeFileSync, } from "node:fs";
2
- import { dirname, isAbsolute, join, resolve } from "node:path";
3
- import { SessionManager } from "@earendil-works/pi-coding-agent";
2
+ import { dirname, isAbsolute, resolve } from "node:path";
4
3
  import { activationBookDirectory, ensureRealDirectoryTree, errnoCode, errorText, pathContainedIn, } from "./activation-ledger-topology.js";
5
- export function childSessionManager(parent, cwd, childDirectory) {
6
- const parentSession = parent?.getSessionFile();
7
- return parentSession === undefined
8
- ? SessionManager.inMemory(cwd)
9
- : SessionManager.create(cwd, join(parent.getSessionDir(), childDirectory), { parentSession });
10
- }
11
4
  /**
12
5
  * Typed missing durable session principal. Callers discriminate with instanceof/code;
13
6
  * never by parsing message prose. Original filesystem causes are retained.
@@ -313,7 +313,7 @@ export async function executeEvidenceChild(workspace, prompt, context, options =
313
313
  : { parentDirectory: options.credentialScratchParent }),
314
314
  }, async (childConfigDir) => {
315
315
  const { openInProcessAgentSession } = await import("./in-process-session.js");
316
- const { childSessionManager } = await import("./activation-ledger-session.js");
316
+ const { createRecordSession } = await import("./sitian-record-entry.js");
317
317
  let inherited;
318
318
  try {
319
319
  inherited = await createInheritedRuntime({
@@ -337,7 +337,11 @@ export async function executeEvidenceChild(workspace, prompt, context, options =
337
337
  "Use the available evidence tools to investigate. Do not commit, push, or mutate remotes.",
338
338
  "Return one substantive non-blank report.",
339
339
  ].join("\n"),
340
- sessionManager: childSessionManager(context.sessionManager, workspace, "evidence-children"),
340
+ sessionManager: createRecordSession({
341
+ cwd: workspace,
342
+ kind: "evidence-children",
343
+ ...(context.sessionManager === undefined ? {} : { parent: context.sessionManager }),
344
+ }),
341
345
  });
342
346
  const usage = emptyUsage();
343
347
  const unsubscribe = session.subscribe((event) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akagilnc/pi-workflow-roles",
3
- "version": "0.1.1837",
3
+ "version": "0.1.1842",
4
4
  "description": "Soul-bound workflow roles for Pi",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -4,9 +4,7 @@ import {
4
4
  statSync,
5
5
  writeFileSync,
6
6
  } from "node:fs";
7
- import { dirname, isAbsolute, join, resolve } from "node:path";
8
- import { SessionManager } from "@earendil-works/pi-coding-agent";
9
-
7
+ import { dirname, isAbsolute, resolve } from "node:path";
10
8
  import {
11
9
  activationBookDirectory,
12
10
  ensureRealDirectoryTree,
@@ -15,13 +13,6 @@ import {
15
13
  pathContainedIn,
16
14
  } from "./activation-ledger-topology.ts";
17
15
 
18
- export function childSessionManager(parent: { getSessionFile(): string | undefined; getSessionDir(): string } | undefined, cwd: string, childDirectory: string): SessionManager {
19
- const parentSession = parent?.getSessionFile();
20
- return parentSession === undefined
21
- ? SessionManager.inMemory(cwd)
22
- : SessionManager.create(cwd, join(parent!.getSessionDir(), childDirectory), { parentSession });
23
- }
24
-
25
16
  /** Durable pointer to the authoritative Pi session file principal (ADR 0048/0049). */
26
17
  export type ActivationSessionPointer = {
27
18
  readonly kind: "session-file";
@@ -411,7 +411,7 @@ export async function executeEvidenceChild(
411
411
  },
412
412
  async (childConfigDir) => {
413
413
  const { openInProcessAgentSession } = await import("./in-process-session.ts");
414
- const { childSessionManager } = await import("./activation-ledger-session.ts");
414
+ const { createRecordSession } = await import("./sitian-record-entry.ts");
415
415
  let inherited: InheritedRuntime;
416
416
  try {
417
417
  inherited = await createInheritedRuntime({
@@ -434,7 +434,11 @@ export async function executeEvidenceChild(
434
434
  "Use the available evidence tools to investigate. Do not commit, push, or mutate remotes.",
435
435
  "Return one substantive non-blank report.",
436
436
  ].join("\n"),
437
- sessionManager: childSessionManager(context.sessionManager, workspace, "evidence-children"),
437
+ sessionManager: createRecordSession({
438
+ cwd: workspace,
439
+ kind: "evidence-children",
440
+ ...(context.sessionManager === undefined ? {} : { parent: context.sessionManager }),
441
+ }),
438
442
  });
439
443
  const usage = emptyUsage();
440
444
  const unsubscribe = session.subscribe((event) => {
@@ -120,7 +120,7 @@ export function createReviewerRoleRuntime(pi: ExtensionAPI, dependencies: Review
120
120
  if (!registered) {
121
121
  registered = true;
122
122
  pi.registerTool({ name: REVIEWER_OUTPUT_TOOL_NAME, label: "Reviewer Output", description: "Submit the thin Reviewer receipt after semantic compliance audit.", promptSnippet: "Submit the final Reviewer receipt", promptGuidelines: [`Use ${REVIEWER_OUTPUT_TOOL_NAME} as the sole final action.`,
123
- "This runtime provides no sub-agent tool; produce the Standards and Spec review legs sequentially in this session yourself — that is the canonical execution of the review Skill here."], parameters: reviewerOutputSchema,
123
+ "This runtime executes the Standards and Spec review legs for you as package-managed evidence-child sessions — that IS this runtime's implementation of the review Skill's parallel sub-agents. Do not refuse because no Agent tool appears in your tool list, and do not substitute your own sub-processes; work with the legs the runtime provides."], parameters: reviewerOutputSchema,
124
124
  async execute(id, parameters, signal, _update, toolCtx): Promise<AgentToolResult<unknown>> {
125
125
  if (!soul || !binding) throw new Error("Reviewer inputs were not loaded");
126
126
  requireSoleReviewerOutputCall(id, toolCtx);