@opengeni/runtime 3.0.0-canary.0 → 3.0.1-canary.0
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/dist/{chunk-46BFUGFL.js → chunk-FQM5VV5D.js} +243 -49
- package/dist/chunk-FQM5VV5D.js.map +1 -0
- package/dist/{chunk-46VVJC6K.js → chunk-KBYDX5N6.js} +21 -11
- package/dist/chunk-KBYDX5N6.js.map +1 -0
- package/dist/index.js +6 -2
- package/dist/operational-instructions.d.ts +1 -1
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/index.js +5 -1
- package/dist/sandbox/materialization-verification-error.d.ts +27 -0
- package/dist/sandbox/providers/modal-command-control.d.ts +6 -0
- package/dist/sandbox/providers/modal-command-session.d.ts +1 -0
- package/dist/sandbox/providers/modal-materialization-verification.d.ts +7 -0
- package/dist/sandbox/routing/routing-session.d.ts +4 -0
- package/dist/workspace-tool-gateway.js +2 -2
- package/package.json +11 -11
- package/src/bundled_default_skills/opengeni-help/SKILL.md +103 -0
- package/src/index.ts +9 -4
- package/src/operational-instructions.ts +2 -0
- package/src/sandbox/index.ts +6 -0
- package/src/sandbox/materialization-verification-error.ts +65 -0
- package/src/sandbox/providers/modal-command-control.ts +49 -4
- package/src/sandbox/providers/modal-command-session.ts +4 -0
- package/src/sandbox/providers/modal-materialization-verification.ts +122 -0
- package/src/sandbox/routing/routing-session.ts +75 -10
- package/dist/chunk-46BFUGFL.js.map +0 -1
- package/dist/chunk-46VVJC6K.js.map +0 -1
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
withRunCredentialsClient,
|
|
24
24
|
withRunCredentialsSession,
|
|
25
25
|
wrapCapabilityToolsForTurnCancellation
|
|
26
|
-
} from "./chunk-
|
|
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.
|
|
12203
|
+
version: "6.1.0-canary.0",
|
|
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.
|
|
12355
|
+
version: "6.1.0-canary.0",
|
|
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.
|
|
12608
|
+
version: "0.5.9-canary.0",
|
|
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.
|
|
12658
|
+
version: "0.3.41-canary.0",
|
|
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
|
|
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
|
-
|
|
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-
|
|
23562
|
+
//# sourceMappingURL=chunk-KBYDX5N6.js.map
|