@opengeni/runtime 3.0.0-canary.1 → 3.0.1-canary.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.
@@ -23,7 +23,7 @@ import {
23
23
  withRunCredentialsClient,
24
24
  withRunCredentialsSession,
25
25
  wrapCapabilityToolsForTurnCancellation
26
- } from "./chunk-46BFUGFL.js";
26
+ } from "./chunk-FQM5VV5D.js";
27
27
  import {
28
28
  MemorySession,
29
29
  connectMcpServers
@@ -9018,6 +9018,8 @@ Use \`session_events\` for conversation history: its default returns user and co
9018
9018
 
9019
9019
  For a yielded command, use \`command_read\` to read available output and status, or \`command_wait\` to wait briefly using the same command interface. Keep the command ID and output cursor. A terminal read suppresses any still-pending completion notification; a running read does not. Earlier tool results and delivered messages never change. Use \`command_input\` only to send input where supported, not to poll output. An unsupported input capability does not imply output is unavailable. Give foreground commands a realistic requested wait; default to 10 seconds (yield_time_ms: 10000). An internal polling slice is not a reason to return a background handle.
9020
9020
 
9021
+ Command completion alone resumes you only while you have an explicit \`wait_for_input\` registered. If remaining work depends on background commands, register that session-level wait before ending your turn. If you finish normally, command results remain retained and can accompany later input, but do not start another turn by themselves. No per-command dismissal is required.
9022
+
9021
9023
  If the user asks to create, inspect, continue, pause, resume, steer, rename, or otherwise manage a session, use the corresponding session tool. Pause affects the selected workstream and its descendants: pausing an ancestor also stops you, so you cannot then Resume yourself. Coordinate disjoint edits through messages instead of ancestor Pause.
9022
9024
 
9023
9025
  Create a child worker only for a concrete, bounded subtask that can run independently and whose result has a clear integration point in the current request. Before spawning, decide what output you need and keep the parent's concurrent work disjoint. Do not delegate a scope that you will also perform yourself. If no useful independent work remains, continue in this session. Do not repurpose or direct an unrelated existing session unless the user explicitly asks. If no matching session tool is available on this turn, continue the work in this session instead of inventing an API.
@@ -12198,7 +12200,7 @@ import { existsSync, readdirSync } from "fs";
12198
12200
  // ../sdk/package.json
12199
12201
  var package_default = {
12200
12202
  name: "@opengeni/sdk",
12201
- version: "6.0.0-canary.1",
12203
+ version: "6.1.0-canary.1",
12202
12204
  description: "Framework-agnostic TypeScript SDK for the OpenGeni API: typed client, session lifecycle, SSE event streaming with reconnect + replay-by-sequence, and proxy re-streaming helpers.",
12203
12205
  license: "Apache-2.0",
12204
12206
  repository: {
@@ -12272,6 +12274,10 @@ var package_default = {
12272
12274
  types: "./src/pr-review.ts",
12273
12275
  default: "./src/pr-review.ts"
12274
12276
  },
12277
+ "./organization-integration-policy": {
12278
+ types: "./src/organization-integration-policy.ts",
12279
+ default: "./src/organization-integration-policy.ts"
12280
+ },
12275
12281
  "./organization-private-session-settings": {
12276
12282
  types: "./src/organization-private-session-settings.ts",
12277
12283
  default: "./src/organization-private-session-settings.ts"
@@ -12346,7 +12352,7 @@ var package_default = {
12346
12352
  // ../react/package.json
12347
12353
  var package_default2 = {
12348
12354
  name: "@opengeni/react",
12349
- version: "6.0.0-canary.1",
12355
+ version: "6.1.0-canary.1",
12350
12356
  description: "React hooks and styled components for OpenGeni: live session streaming, chat composer, message timeline, session status, and fleet views \u2014 token-themed (CSS variables), dark-first, built on Tailwind v4 + Radix + Motion.",
12351
12357
  license: "Apache-2.0",
12352
12358
  repository: {
@@ -12599,7 +12605,7 @@ var package_default2 = {
12599
12605
  // ../codemode/package.json
12600
12606
  var package_default3 = {
12601
12607
  name: "@opengeni/codemode",
12602
- version: "0.5.8-canary.1",
12608
+ version: "0.5.9-canary.1",
12603
12609
  description: "Attempt-frozen programmatic tool catalog and execution authority for OpenGeni.",
12604
12610
  license: "Apache-2.0",
12605
12611
  repository: {
@@ -12649,7 +12655,7 @@ var package_default3 = {
12649
12655
  // ../ogtool/package.json
12650
12656
  var package_default4 = {
12651
12657
  name: "@opengeni/ogtool",
12652
- version: "0.3.40-canary.1",
12658
+ version: "0.3.41-canary.1",
12653
12659
  description: "Codemode CLI and typed client entrypoint for an OpenGeni execution attempt.",
12654
12660
  license: "Apache-2.0",
12655
12661
  repository: {
@@ -17149,7 +17155,7 @@ function workspaceEnvironmentInstructions(environment) {
17149
17155
  function coreInstructions(workspaceEnvironment, rig) {
17150
17156
  return [
17151
17157
  "If the session has a goal, you own it: keep working until you call opengeni__goal_complete with concrete evidence or opengeni__goal_pause with a rationale; resume a paused goal with opengeni__goal_resume regardless of who paused it or why; revise it with opengeni__goal_update; create one with opengeni__goal_set when given a long-running objective.",
17152
- "Use knowledge_search and knowledge_get when retained information is relevant. For questions about what the workspace knows, ground the answer in authorized Knowledge and attached sources. Missing internal facts remain unknown; do not infer a person's role or cite unrelated public search results as evidence. Keep any relevant external research clearly separate from workspace records. Default retrieval returns published information. Before retaining or correcting anything, also search view=needs_review for existing pending entries and collections; read those with knowledge_get view=needs_review. Pending means unapproved: you may inspect and improve it, but do not present it as accepted knowledge or activate behavioral guidance from it. Reuse the existing entryId and current version instead of creating another proposal each run. Save durable facts, decisions, requirements, incidents, fixes and outcomes autonomously with knowledge_save when useful for future work, whether requested explicitly or learned during ordinary work. When a user supplies or confirms a durable fact, use knowledge_retain_message to retain the actual message and cite its returned entryId/revisionId in the finding evidence. Preserve existing source evidence and relationships when correcting an entry; do not replace them with empty arrays merely because the user confirmed a new value. Explicit confirmation can supersede a conflicting pending proposal, but explain that outcome to the user. Preserve uncertainty and exact supporting evidence; the fact label is not a verification claim. Chat attachments retain their original files and automatically prepare source text when authoring is enabled. Use knowledge_retain_file for a newly fetched file or failed preparation. A source entry contains retained original text; a finding states a useful conclusion and cites the exact source revision. Do not create both when they would simply repeat the same text. Reuse collections for customers, products, systems or subjects across sources, and link one entry to multiple collections instead of copying it. Technical incidents belong with the affected system and should include cause, fix and outcome when known. Reorganize references when useful; do not erase source evidence or revision history. Private tasks author personal Knowledge; shared tasks author workspace Knowledge. Automatic publishes immediately, Review first keeps a pending proposal without pausing your task, and Off prevents authoring while permitting retrieval. Never bypass review by making a new entry, switching tools, or asking for another approval. Reuse the same operationId and exact request after an uncertain save, including recovery. Use task_note_save for temporary coordination in this task tree. Conversation history is separate. Workspace instructions are concise standing rules; Skills are reusable procedures with their own Agent learning settings. Do not save the same content in multiple authorities.",
17158
+ "Use knowledge_search and knowledge_get when retained information is relevant. For questions about what the workspace knows, ground the answer in authorized Knowledge and attached sources. Missing internal facts remain unknown; do not infer a person's role or cite unrelated public search results as evidence. Keep any relevant external research clearly separate from workspace records. Default retrieval returns published information. Before retaining or correcting anything, also search view=needs_review for existing pending entries and collections; read those with knowledge_get view=needs_review. Pending means unapproved: you may inspect and improve it, but do not present it as accepted knowledge or activate behavioral guidance from it. Reuse the existing entryId and current version instead of creating another proposal each run. Save durable facts, decisions, requirements, incidents, fixes and outcomes autonomously with knowledge_save only when they help a plausible future task. Do not retain routine approvals, acknowledgments, temporary task instructions, status chatter or raw screenshots merely because they occurred. Before saving, use knowledge_prepare_save when available to fetch the authorized collection map with descriptions and parent IDs plus related published and pending entries; otherwise search both views and browse collections. Skip unchanged duplicates, improve the existing entry when appropriate, and create a new entry only for distinct useful information. Read the current entry before correcting it and preserve uncertainty, conflicting evidence and existing relationships. When a user supplies or confirms a durable fact, use knowledge_retain_message to retain the actual message and cite its returned entryId/revisionId in the finding evidence. Preserve existing source evidence and relationships when correcting an entry; do not replace them with empty arrays merely because the user confirmed a new value. Explicit confirmation can supersede a conflicting pending proposal, but explain that outcome to the user. Preserve uncertainty and exact supporting evidence; the fact label is not a verification claim. Chat attachments retain their original files for the conversation without automatically publishing OCR or source text into Knowledge. Inspect an image visually in the current task; save only a useful supported observation, requirement or incident when warranted. Use knowledge_retain_file purpose=evidence only when a selected finding needs the original as supporting evidence, or purpose=reference when deliberately retaining a reusable source document. Supporting sources remain accessible through evidence links and explicit includeEvidence searches, but do not fill ordinary Knowledge discovery. An upload alone is not a reason to save Knowledge. A source entry contains retained original text; a finding states a useful conclusion and cites the exact source revision. Do not create both when they would simply repeat the same text. Reuse collections for customers, products, systems or subjects across sources, and link one entry to multiple collections instead of copying it. Technical incidents belong with the affected system and should include cause, fix and outcome when known. Reorganize references when useful; do not erase source evidence or revision history. Private tasks author personal Knowledge; shared tasks author workspace Knowledge. Automatic publishes immediately, Review first keeps a pending proposal without pausing your task, and Off prevents authoring while permitting retrieval. Never bypass review by making a new entry, switching tools, or asking for another approval. Reuse the same operationId and exact request after an uncertain save, including recovery. Use task_note_save for temporary coordination in this task tree. Conversation history is separate. Workspace instructions are concise standing rules; Skills are reusable procedures with their own Agent learning settings. Do not save the same content in multiple authorities.",
17153
17159
  ...workspaceEnvironment ? workspaceEnvironmentInstructions(workspaceEnvironment) : [],
17154
17160
  // Rig doctrine (M3): data-conditional, inside the non-bypassable CORE so a
17155
17161
  // white-label persona template can never drop it. Absent for rig-less sessions.
@@ -17752,7 +17758,7 @@ function installMcpApprovalPolicy(agent, policies, connectorActionPolicy, approv
17752
17758
  const originalNeedsApproval = tool2.needsApproval.bind(tool2);
17753
17759
  const originalInvoke = tool2.invoke.bind(tool2);
17754
17760
  const legacyApproval = !policy.connectorBacked && mcpToolRequiresApproval(policy.requireApproval, unprefixed);
17755
- if (!policy.connectorBacked && !legacyApproval) {
17761
+ if (!policy.connectorBacked && !legacyApproval && !connectorActionPolicy) {
17756
17762
  return tool2;
17757
17763
  }
17758
17764
  const connectorCall = (approvalId, args) => {
@@ -17986,7 +17992,7 @@ function installInteractionInterventionPolicy(agent, approvedToolCallId) {
17986
17992
  }
17987
17993
  function applyMcpApprovalPolicy(agent, settings, connectorActionPolicy, resolvedMcpConnectionIds, approvedToolCallId) {
17988
17994
  const policies = settings.mcpServers.filter(
17989
- (server) => Boolean(server.connectionRef) || server.requireApproval === true || Array.isArray(server.requireApproval) && server.requireApproval.length > 0
17995
+ (server) => Boolean(server.connectionRef) || Boolean(connectorActionPolicy && attemptToolSource(server.id) === "mcp") || server.requireApproval === true || Array.isArray(server.requireApproval) && server.requireApproval.length > 0
17990
17996
  ).map((server) => {
17991
17997
  const connectionId = () => {
17992
17998
  return resolvedMcpConnectionId(server, resolvedMcpConnectionIds) ?? (server.connectionRef ? null : sessionMcpApprovalConnectionId(server.id, server.url));
@@ -18778,7 +18784,11 @@ function installAttemptConnectorActionGatewayLifecycle(definitions, registry, re
18778
18784
  const binding = byModelName.get(definition.modelName);
18779
18785
  const config = registry.get(definition.identity.serverId);
18780
18786
  const legacyMcpApproval = Boolean(config) && !config.connectionRef && definition.approval === "human";
18781
- if (!binding && !config?.connectionRef && !legacyMcpApproval) return definition;
18787
+ const workspaceConnectorPolicy = Boolean(
18788
+ connectorActionPolicy && config && attemptToolSource(config.id) === "mcp"
18789
+ );
18790
+ if (!binding && !config?.connectionRef && !legacyMcpApproval && !workspaceConnectorPolicy)
18791
+ return definition;
18782
18792
  if (definition.lifecycle) {
18783
18793
  throw new Error(`Connector action tool already owns a lifecycle: ${definition.modelName}`);
18784
18794
  }
@@ -18803,7 +18813,7 @@ function installAttemptConnectorActionGatewayLifecycle(definitions, registry, re
18803
18813
  serverId: definition.identity.serverId,
18804
18814
  toolName: definition.identity.toolName,
18805
18815
  arguments: arguments_,
18806
- approvalMode: "session_mcp"
18816
+ ...legacyMcpApproval ? { approvalMode: "session_mcp" } : {}
18807
18817
  });
18808
18818
  return {
18809
18819
  ...definition,
@@ -23549,4 +23559,4 @@ export {
23549
23559
  runAzureCliLoginHook,
23550
23560
  renderSessionGoalContext2 as renderSessionGoalContext
23551
23561
  };
23552
- //# sourceMappingURL=chunk-NDKFIK4M.js.map
23562
+ //# sourceMappingURL=chunk-PQOZZ2PK.js.map