@omercnet/paseo-omp 2.0.2-next.260.1 → 2.0.2-next.271.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/OVERVIEW.md CHANGED
@@ -2,7 +2,7 @@ OMP adds an agent provider for the OMP coding agent, plus an OMP sidebar and wor
2
2
 
3
3
  ## Setup
4
4
 
5
- - Paseo ^0.11.0 || ^0.12.0.
5
+ - Paseo ^0.12.0.
6
6
  - OMP 18.1.15 or newer on the daemon host, speaking RPC protocol v2. Older runtimes are rejected.
7
7
  - Provider options let you change the OMP command, set environment values, choose an output redaction mode and set a session directory and timeout. Named OMP profiles appear as separate `OMP · <profile>` providers.
8
8
 
package/README.md CHANGED
@@ -24,7 +24,7 @@ before capture.
24
24
 
25
25
  ## Quick start
26
26
 
27
- Requirements: Paseo `^0.11.0 || ^0.12.0`, OMP `18.1.15` or newer, and OMP RPC protocol v2. The config screen and Hub row use the 0.11 screen and sidebar APIs, so Paseo 0.9 and 0.10 hosts are no longer supported.
27
+ Requirements: Paseo `^0.12.0`, OMP `18.1.15` or newer, and OMP RPC protocol v2. Workspace discovery passes `includeBackground`, which throws on hosts that do not advertise `features.backgroundWorkspaces` (new in 0.12), so older hosts are not supported.
28
28
 
29
29
  ```bash
30
30
  paseo plugin install npm:@omercnet/paseo-omp@<version>
@@ -125,7 +125,7 @@ Existing agents whose provider is `omp` remain owned by the bundled provider. Ne
125
125
 
126
126
  OMP `18.1.15` is the oldest version tested end to end. The direct provider's hard compatibility gate is `rpc-ui` protocol v2: metadata-free legacy ready frames and v1-only runtimes are rejected before a provider session opens because they cannot support the advertised persistence and conversation-rewind capabilities. Typed tool approvals remain capability-gated and fall back as described above. For terminal completion, a matching `agent_end.requestId` is authoritative and mismatches are ignored before state changes. Released OMP 18.2.x builds that omit that field use an ordered fallback requiring a fresh correlated native user entry followed by current-turn assistant activity, an idle non-compacting runtime, and no conflicting permission, tool, steer, or child-session work. Ambiguous events while OMP is active are ignored; unresolved ambiguity after confirmed idle fails only the Paseo turn. This trades a bounded residual same-agent stale-event risk for compatibility with released OMP instead of terminating and lazily restarting the runtime after every later prompt. Paseo clients, including mobile clients inside reconnect grace, do not own or terminate the daemon-managed OMP session.
127
127
 
128
- Paseo 0.11 is the minimum supported release. The controlled Docker canary is pinned to official 0.11.1; nightly SDK checks cover the latest and beta channels. The canary preserves nested provider-subagent ancestry and spawning-tool links, and validates npm-managed plugin sources, platform-owned external URL opening, and whole-item timeline transforms before Overview grouping.
128
+ Paseo 0.12 is the minimum supported release. The controlled Docker canary is pinned to official 0.12.0-beta.2; nightly SDK checks cover the latest and beta channels. The canary preserves nested provider-subagent ancestry and spawning-tool links, and validates npm-managed plugin sources, platform-owned external URL opening, and whole-item timeline transforms before Overview grouping.
129
129
 
130
130
  Install, update, disable, or remove `paseo-omp` independently of the bundled provider. Verify the provider snapshot contains `omp-plugin` after installation; a bundled `omp` entry may remain present and is not modified by this plugin.
131
131
 
package/index.client.tsx CHANGED
@@ -99,6 +99,7 @@ async function loadAgents(paseo: PaseoApi): Promise<AgentEntry[]> {
99
99
  let cursor: string | undefined;
100
100
  for (let page = 0; page < MAX_PAGES; page += 1) {
101
101
  const result = await paseo.agents.list({
102
+ filter: { includeBackground: true },
102
103
  sort: [{ key: "updated_at", direction: "desc" }],
103
104
  page: { limit: PAGE_LIMIT, ...(cursor ? { cursor } : {}) },
104
105
  });
@@ -137,7 +138,8 @@ export function registerConfigAndHub(
137
138
  }
138
139
  const { HubSidebarItem } = createHubSidebar(() =>
139
140
  loadHubSnapshot(
140
- () => client.paseo.workspaces.list({ page: { limit: 200 } }),
141
+ () =>
142
+ client.paseo.workspaces.list({ filter: { includeBackground: true }, page: { limit: 200 } }),
141
143
  async (cwd) => (await client.rpc(listHubProcesses, { cwd })).processes,
142
144
  ),
143
145
  );
@@ -504,7 +506,7 @@ export default function contribute(client: PluginClientContext) {
504
506
  let unsubscribeAgentDirectory = () => {};
505
507
  let releaseAgentDirectory: (() => Promise<void>) | undefined;
506
508
  void client.paseo.agents
507
- .list({ subscribe: {} })
509
+ .list({ subscribe: {}, filter: { includeBackground: true } })
508
510
  .then(({ subscription }) => {
509
511
  if (!subscription) return;
510
512
  if (disposed) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omercnet/paseo-omp",
3
- "version": "2.0.2-next.260.1",
3
+ "version": "2.0.2-next.271.1",
4
4
  "type": "module",
5
5
  "description": "Paseo integration for OMP, including its direct provider and workspace tooling.",
6
6
  "license": "MIT",
package/paseo-plugin.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "paseo-omp",
3
3
  "description": "Paseo integration for OMP, including its direct provider and workspace tooling.",
4
- "requirements": { "paseo": "^0.11.0 || ^0.12.0" },
4
+ "requirements": { "paseo": "^0.12.0" },
5
5
  "build": [["node", "scripts/prepare-dependencies.mjs"]]
6
6
  }
@@ -1,2 +1,2 @@
1
1
  /** Release Please keeps this bundle-safe constant aligned with package.json. */
2
- export const PASEO_OMP_PACKAGE_VERSION = "2.0.2-next.260.1"; // x-release-please-version
2
+ export const PASEO_OMP_PACKAGE_VERSION = "2.0.2-next.271.1"; // x-release-please-version
@@ -166,7 +166,10 @@ function preflightProviderInput(input: unknown): void {
166
166
  ) {
167
167
  throw new OmpPublicError("Prompt output schema is too large");
168
168
  }
169
- if (prompt?.outputSchema !== undefined || prompt?.clearPendingPermissions === true) {
169
+ if (
170
+ prompt?.outputSchema !== undefined ||
171
+ (prompt?.clearPendingPermissions === true && prompt.delivery !== "steer")
172
+ ) {
170
173
  throw new OmpPublicError("OMP does not support structured output or permission controls");
171
174
  }
172
175
  }
@@ -183,7 +183,10 @@ function padLineNumber(lineNumber: number | null): string {
183
183
  }
184
184
 
185
185
  export function promptPayload(input: SessionPromptInput): OmpPromptPayload {
186
- if (input.prompt.outputSchema !== undefined || input.prompt.clearPendingPermissions) {
186
+ if (
187
+ input.prompt.outputSchema !== undefined ||
188
+ (input.prompt.clearPendingPermissions && input.prompt.delivery !== "steer")
189
+ ) {
187
190
  throw new OmpPublicError("OMP does not support structured output or permission controls");
188
191
  }
189
192
  if (input.prompt.input.type === "command") {
@@ -1073,7 +1073,12 @@ export class OmpProviderSession implements OmpOpenedSession {
1073
1073
  }
1074
1074
 
1075
1075
  if (input.prompt.delivery === "steer") {
1076
- await this.steer(input.prompt.clientMessageId, payload);
1076
+ await this.steer(
1077
+ input.prompt.clientMessageId,
1078
+ payload,
1079
+ undefined,
1080
+ input.prompt.clearPendingPermissions === true,
1081
+ );
1077
1082
  return;
1078
1083
  }
1079
1084
  if (
@@ -2130,6 +2135,7 @@ export class OmpProviderSession implements OmpOpenedSession {
2130
2135
  clientMessageId: string,
2131
2136
  payload: OmpPromptPayload,
2132
2137
  expectedTurn = this.activeTurn,
2138
+ clearPendingPermissions = false,
2133
2139
  ): Promise<void> {
2134
2140
  const turn = expectedTurn;
2135
2141
  if (!this.isSteerableTurn(turn)) {
@@ -2204,6 +2210,10 @@ export class OmpProviderSession implements OmpOpenedSession {
2204
2210
  this.cancelAmbiguousTerminal(turn);
2205
2211
  turn.deferredAgentEnd = undefined;
2206
2212
  this.acceptPendingUser(turn, pending);
2213
+ if (clearPendingPermissions) {
2214
+ turn.awaitingPermissionEvidence = false;
2215
+ this.permissions.resolveTurnPermissions(turn.turnId);
2216
+ }
2207
2217
  this.emit({
2208
2218
  type: "session.prompt_result",
2209
2219
  sessionId: this.id,