@dv.nghiem/flowdeck 0.5.1 → 0.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkHjD,QAAA,MAAM,MAAM,EAAE,MAqSb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkHjD,QAAA,MAAM,MAAM,EAAE,MAuSb,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -5951,7 +5951,7 @@ function isRegisteredAgent(agent) {
5951
5951
  function isTextPart2(part) {
5952
5952
  return part.type === "text";
5953
5953
  }
5954
- function createDelegateTool(client, statePersistence) {
5954
+ function createDelegateTool(client, statePersistence, ensureRunContext) {
5955
5955
  return tool13({
5956
5956
  description: "Delegate work to another FlowDeck agent. Use this instead of raw @agent references for any work requiring write/edit/bash or specialist knowledge. " + "Modes: direct (single agent), council (fan out the same task to multiple agents in parallel), pipeline (sequential stages where each stage's output is passed to the next via context.previousOutput). " + "For council mode, provide context.agents (non-empty string array). For pipeline mode, provide context.stages (non-empty array of { agent, task? }).",
5957
5957
  args: {
@@ -5965,15 +5965,13 @@ function createDelegateTool(client, statePersistence) {
5965
5965
  const directory = ctx.directory;
5966
5966
  const sessionID = ctx.sessionID;
5967
5967
  const resolvedMode = normalizeMode(mode);
5968
- const runCtx = statePersistence.getRunContext(sessionID);
5968
+ let runCtx = statePersistence.getRunContext(sessionID);
5969
5969
  if (!runCtx) {
5970
- return {
5971
- span_id: "",
5972
- run_id: "",
5973
- status: "blocked",
5974
- output: "",
5975
- error: "No active run context for this session. Start a command first."
5976
- };
5970
+ runCtx = ensureRunContext({
5971
+ sessionID,
5972
+ description: task,
5973
+ agent
5974
+ });
5977
5975
  }
5978
5976
  if (!getBudget(runCtx.runId)) {
5979
5977
  init(runCtx.runId);
@@ -11440,13 +11438,46 @@ function createHarnessController(config) {
11440
11438
  function log(msg) {
11441
11439
  appLog(msg);
11442
11440
  }
11443
- function getRunCtxOrThrow(sessionID) {
11441
+ function getRunCtxStrict(sessionID) {
11444
11442
  const ctx = statePersistence.getRunContext(sessionID);
11445
11443
  if (!ctx) {
11446
11444
  throw new Error(`No active run context for session ${sessionID}`);
11447
11445
  }
11448
11446
  return ctx;
11449
11447
  }
11448
+ const ensureRunContext = (input) => {
11449
+ const { sessionID, command = "auto", description, agent } = input;
11450
+ const existing = statePersistence.getRunContext(sessionID);
11451
+ if (existing) {
11452
+ return existing;
11453
+ }
11454
+ const route = buildAdaptiveWorkflow(description);
11455
+ state.currentWorkflowClass = route.workflowClass ?? route.taskType;
11456
+ const currentStage = route.stageSequence[0]?.name ?? "discuss";
11457
+ const runCtx = statePersistence.startRun(command, { arguments: description, agent }, sessionID);
11458
+ const assembledContext = contextIngress.assemble({
11459
+ runId: runCtx.runId,
11460
+ sessionId: sessionID,
11461
+ projectRoot: directory,
11462
+ command,
11463
+ description,
11464
+ currentStage
11465
+ });
11466
+ const budget = assembledContext.tokenBudget;
11467
+ log(`[context-ingress] run=${sessionID} trivial=${assembledContext.isTrivialChat} ` + `tokens=${budget.usedTokens}/${budget.limitTokens} (${budget.component})`);
11468
+ const ctxWithWorkflow = {
11469
+ ...runCtx,
11470
+ workflowClass: state.currentWorkflowClass,
11471
+ currentStage
11472
+ };
11473
+ statePersistence.updateRunContext(ctxWithWorkflow);
11474
+ statePersistence.recordObservation(ctxWithWorkflow, "workflow", JSON.stringify({
11475
+ workflowClass: state.currentWorkflowClass,
11476
+ currentStage,
11477
+ stageSequence: route.stageSequence.map((s) => s.name)
11478
+ }));
11479
+ return ctxWithWorkflow;
11480
+ };
11450
11481
  function buildCommandAuditEntry(req, runCtx) {
11451
11482
  return {
11452
11483
  id: randomUUID8(),
@@ -11511,31 +11542,12 @@ function createHarnessController(config) {
11511
11542
  state.lastCommandOutput = null;
11512
11543
  state.lastActiveSessionID = req.sessionID;
11513
11544
  const description = `${req.command} ${req.arguments ?? ""}`.trim();
11514
- const route = buildAdaptiveWorkflow(description);
11515
- state.currentWorkflowClass = route.workflowClass ?? route.taskType;
11516
- const currentStage = route.stageSequence[0]?.name ?? "discuss";
11517
- const runCtx = statePersistence.startRun(req.command, { arguments: req.arguments }, req.sessionID);
11518
- const assembledContext = contextIngress.assemble({
11519
- runId: runCtx.runId,
11520
- sessionId: req.sessionID,
11521
- projectRoot: directory,
11545
+ const ctxWithWorkflow = ensureRunContext({
11546
+ sessionID: req.sessionID,
11522
11547
  command: req.command,
11523
11548
  description,
11524
- currentStage
11549
+ agent: req.agent
11525
11550
  });
11526
- const budget = assembledContext.tokenBudget;
11527
- log(`[context-ingress] run=${req.sessionID} trivial=${assembledContext.isTrivialChat} ` + `tokens=${budget.usedTokens}/${budget.limitTokens} (${budget.component})`);
11528
- const ctxWithWorkflow = {
11529
- ...runCtx,
11530
- workflowClass: state.currentWorkflowClass,
11531
- currentStage
11532
- };
11533
- statePersistence.updateRunContext(ctxWithWorkflow);
11534
- statePersistence.recordObservation(ctxWithWorkflow, "workflow", JSON.stringify({
11535
- workflowClass: state.currentWorkflowClass,
11536
- currentStage,
11537
- stageSequence: route.stageSequence.map((s) => s.name)
11538
- }));
11539
11551
  try {
11540
11552
  auditLog.append(buildCommandAuditEntry(req, ctxWithWorkflow));
11541
11553
  } catch (error) {
@@ -11545,7 +11557,11 @@ function createHarnessController(config) {
11545
11557
  return ctxWithWorkflow;
11546
11558
  },
11547
11559
  evaluateToolCall(req) {
11548
- const runCtx = getRunCtxOrThrow(req.sessionID);
11560
+ const runCtx = statePersistence.getRunContext(req.sessionID) ?? ensureRunContext({
11561
+ sessionID: req.sessionID,
11562
+ description: `${req.tool} ${JSON.stringify(req.args)} auto-invoked`,
11563
+ agent: req.agent
11564
+ });
11549
11565
  state.lastActiveSessionID = req.sessionID;
11550
11566
  const agent = req.agent ?? "orchestrator";
11551
11567
  try {
@@ -11617,6 +11633,7 @@ function createHarnessController(config) {
11617
11633
  return contextIngress.getAssembledContext(sessionID);
11618
11634
  },
11619
11635
  endRun,
11636
+ ensureRunContext,
11620
11637
  getCurrentStage(sessionID) {
11621
11638
  const sid = sessionID ?? state.lastActiveSessionID;
11622
11639
  if (!sid)
@@ -11693,7 +11710,7 @@ var plugin = async (input, _options) => {
11693
11710
  contextIngress
11694
11711
  });
11695
11712
  harness.init();
11696
- const delegateTool = createDelegateTool(client, harness.getStatePersistence());
11713
+ const delegateTool = createDelegateTool(client, harness.getStatePersistence(), (input2) => harness.ensureRunContext(input2));
11697
11714
  const contextMonitor = harness.getContextMonitor();
11698
11715
  const shellEnvHook = createShellEnvHook({ directory, worktree });
11699
11716
  const todoHook = createTodoHook(client);
@@ -11,6 +11,7 @@ import type { AssembledContext, RunContext } from "./harness-types";
11
11
  import { type ContextIngressService } from "./context-ingress";
12
12
  import { type StatePersistenceService } from "./state-persistence";
13
13
  import { createContextWindowMonitorHook } from "../hooks/context-window-monitor";
14
+ import type { EnsureRunContext } from "./harness-types";
14
15
  import { type VerificationLayer } from "./verification-layer";
15
16
  import { type RecoveryLayer } from "./recovery-layer";
16
17
  export interface HarnessControllerConfig {
@@ -43,6 +44,7 @@ export interface SessionEvent {
43
44
  export interface HarnessController {
44
45
  init(): void;
45
46
  onCommandBefore(req: CommandRequest): RunContext;
47
+ ensureRunContext: EnsureRunContext;
46
48
  evaluateToolCall(req: ToolCallRequest): PolicyDecision;
47
49
  recordToolOutcome(req: ToolCallRequest, output: unknown, status: "success" | "error" | "blocked"): void;
48
50
  onSessionEvent(evt: SessionEvent): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-controller.d.ts","sourceRoot":"","sources":["../../src/services/harness-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-controller.d.ts","sourceRoot":"","sources":["../../src/services/harness-controller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAc,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3F,OAAO,EAA0B,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAG1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAIhF,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAW1E,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,MAAM,EAAE,aAAa,CAAA;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;IAC3I,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,IAAI,IAAI,CAAA;IACZ,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,UAAU,CAAA;IAChD,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,CAAA;IACtD,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;IACvG,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAA;IACpE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9G,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACvD,mBAAmB,IAAI,uBAAuB,CAAA;IAC9C,iBAAiB,IAAI,qBAAqB,CAAA;IAC1C,iBAAiB,IAAI,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAA;CACvE;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CA+U1F"}
@@ -106,6 +106,13 @@ export interface RunContext {
106
106
  workflowClass?: string;
107
107
  currentStage?: string;
108
108
  }
109
+ /** Lazy, idempotent run-context initializer used by tools and auto-routers. */
110
+ export type EnsureRunContext = (input: {
111
+ sessionID: string;
112
+ command?: string;
113
+ description: string;
114
+ agent?: string;
115
+ }) => RunContext;
109
116
  /** Possible recovery actions when a run is stuck or fails. */
110
117
  export type RecoveryAction = "retry" | "fallback-agent" | "escalate" | "stop";
111
118
  /** Arguments accepted by the delegate tool. */
@@ -1 +1 @@
1
- {"version":3,"file":"harness-types.d.ts","sourceRoot":"","sources":["../../src/services/harness-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-types.d.ts","sourceRoot":"","sources":["../../src/services/harness-types.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  import { type ToolDefinition } from "@opencode-ai/plugin";
11
11
  import type { OpencodeClient } from "@opencode-ai/sdk";
12
12
  import type { StatePersistenceService } from "../services/state-persistence";
13
- import type { DelegateResult, DelegateToolArgs } from "../services/harness-types";
13
+ import type { DelegateResult, DelegateToolArgs, EnsureRunContext } from "../services/harness-types";
14
14
  export type { DelegateResult, DelegateToolArgs };
15
- export declare function createDelegateTool(client: OpencodeClient, statePersistence: StatePersistenceService): ToolDefinition;
15
+ export declare function createDelegateTool(client: OpencodeClient, statePersistence: StatePersistenceService, ensureRunContext: EnsureRunContext): ToolDefinition;
16
16
  //# sourceMappingURL=delegate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,kBAAkB,CAAA;AAGtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAc,MAAM,2BAA2B,CAAA;AAK7F,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAA;AA6ChD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,uBAAuB,GACxC,cAAc,CAsPhB"}
1
+ {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,kBAAkB,CAAA;AAGtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAc,MAAM,2BAA2B,CAAA;AAK/G,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAA;AA6ChD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,uBAAuB,EACzC,gBAAgB,EAAE,gBAAgB,GACjC,cAAc,CAoPhB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dv.nghiem/flowdeck",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "FlowDeck — structured planning and execution workflows for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",