@piagent/platform 1.36.1 → 1.37.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/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/README.vi.md +1 -1
- package/docs/command-reference-vietnamese.md +2 -2
- package/docs/distribution-standard.md +6 -6
- package/docs/languages.json +2 -2
- package/docs/operator-manual-vietnamese.md +7 -7
- package/docs/publishing-for-teams.md +1 -0
- package/docs/release-install-policy.md +2 -2
- package/docs/team-onboarding.md +2 -2
- package/docs-site/architecture.html +1 -1
- package/docs-site/benchmark.html +1 -1
- package/docs-site/commands.html +1 -1
- package/docs-site/content/en/index.html +4 -4
- package/docs-site/content/en/whats-new.html +6 -0
- package/docs-site/content/index.html +4 -4
- package/docs-site/content/whats-new.html +6 -0
- package/docs-site/context-engine.html +1 -1
- package/docs-site/ecosystem.html +1 -1
- package/docs-site/en/architecture.html +1 -1
- package/docs-site/en/benchmark.html +1 -1
- package/docs-site/en/commands.html +1 -1
- package/docs-site/en/context-engine.html +1 -1
- package/docs-site/en/ecosystem.html +1 -1
- package/docs-site/en/index.html +5 -5
- package/docs-site/en/mcp-approval.html +1 -1
- package/docs-site/en/mcp-auth.html +1 -1
- package/docs-site/en/mcp-servers.html +1 -1
- package/docs-site/en/mcp.html +1 -1
- package/docs-site/en/permissions.html +1 -1
- package/docs-site/en/profiles.html +1 -1
- package/docs-site/en/quickstart.html +1 -1
- package/docs-site/en/runtime.html +1 -1
- package/docs-site/en/scope.html +1 -1
- package/docs-site/en/security.html +1 -1
- package/docs-site/en/team.html +1 -1
- package/docs-site/en/whats-new.html +7 -1
- package/docs-site/en/windows.html +1 -1
- package/docs-site/en/workflows.html +1 -1
- package/docs-site/index.html +5 -5
- package/docs-site/mcp-approval.html +1 -1
- package/docs-site/mcp-auth.html +1 -1
- package/docs-site/mcp-servers.html +1 -1
- package/docs-site/mcp.html +1 -1
- package/docs-site/permissions.html +1 -1
- package/docs-site/profiles.html +1 -1
- package/docs-site/quickstart.html +1 -1
- package/docs-site/runtime.html +1 -1
- package/docs-site/scope.html +1 -1
- package/docs-site/security.html +1 -1
- package/docs-site/team.html +1 -1
- package/docs-site/whats-new.html +7 -1
- package/docs-site/windows.html +1 -1
- package/docs-site/workflows.html +1 -1
- package/evals/long-task-soak-v1/README.md +96 -0
- package/evals/long-task-soak-v1/lib/judge.mjs +67 -0
- package/evals/long-task-soak-v1/lib/persona.mjs +63 -0
- package/evals/long-task-soak-v1/lib/report.mjs +35 -0
- package/evals/long-task-soak-v1/lib/session-loop.mjs +165 -0
- package/evals/long-task-soak-v1/lib/workspace.mjs +115 -0
- package/evals/long-task-soak-v1/runner.mjs +89 -0
- package/evals/long-task-soak-v1/scenarios/autonomous-node-inventory.json +15 -0
- package/evals/long-task-soak-v1/scenarios/business-python-billing.json +34 -0
- package/evals/long-task-soak-v1/scenarios/framework-go-docker.json +40 -0
- package/evals/long-task-soak-v1/scenarios/framework-playwright-e2e.json +15 -0
- package/evals/long-task-soak-v1/scenarios/harness-guardrails-secrets.json +23 -0
- package/evals/long-task-soak-v1/scenarios/long-horizon-polyglot-rename.json +30 -0
- package/evals/long-task-soak-v1/scenarios/long-node-inventory-platform.json +64 -0
- package/evals/long-task-soak-v1/scenarios/long-polyglot-platform.json +288 -0
- package/evals/long-task-soak-v1/scenarios/long-postgres-booking-platform.json +210 -0
- package/evals/long-task-soak-v1/scenarios/long-python-billing-platform.json +84 -0
- package/evals/long-task-soak-v1/scenarios/mixed-requirement-change.json +20 -0
- package/evals/long-task-soak-v1/scenarios/stability-flaky-slow-suite.json +22 -0
- package/evals/long-task-soak-v1/scenarios/thirdparty-postgres-integration.json +30 -0
- package/evals/long-task-soak-v1/surfaces/terminal-rpc.mjs +150 -0
- package/evals/long-task-soak-v1/surfaces/webui-gateway.mjs +214 -0
- package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
- package/package.json +2 -1
- package/packages/piagent-core/package.json +1 -1
- package/packages/piagent-core/runtime/managed-failure.mjs +5 -0
- package/scripts/company-terminal.mjs +2 -1
- package/scripts/piagent-studio.mjs +13 -3
|
@@ -15,16 +15,17 @@ const digest = file => createHash('sha256').update(fs.readFileSync(file)).digest
|
|
|
15
15
|
process.removeAllListeners('warning');
|
|
16
16
|
process.on('warning', warning => { if (warning.name !== 'ExperimentalWarning') process.stderr.write(`${warning.name}: ${warning.message}\n`); });
|
|
17
17
|
const args = process.argv.slice(2), flags = new Map();
|
|
18
|
-
if (args.includes('--help')) { console.log('piagent studio [--web [--no-open] | --serve | --check | --doctor | --prompt <text> [--json]] [--config <Agent Watch configuration>] [--project <folder>]\nDefaults: the configuration imported into ~/.pi/agent and the current project. Personal sessions remain under pi / piagent dashboard.\n--json with --prompt writes the event stream of `pi --mode json` (JSONL on stdout; failures on stderr, exit 1).'); process.exit(0); }
|
|
18
|
+
if (args.includes('--help')) { console.log('piagent studio [--web [--no-open] | --serve | --check | --doctor | --prompt <text> [--json] | --rpc] [--config <Agent Watch configuration>] [--project <folder>]\nDefaults: the configuration imported into ~/.pi/agent and the current project. Personal sessions remain under pi / piagent dashboard.\n--json with --prompt writes the event stream of `pi --mode json` (JSONL on stdout; failures on stderr, exit 1).\n--rpc speaks the protocol of `pi --mode rpc` on stdin/stdout for one company conversation (several messages, questions as extension UI requests).'); process.exit(0); }
|
|
19
19
|
for (let i = 0; i < args.length; i++) {
|
|
20
|
-
if (['--check', '--doctor', '--web', '--serve', '--no-open', '--json'].includes(args[i])) { flags.set(args[i], true); continue; }
|
|
20
|
+
if (['--check', '--doctor', '--web', '--serve', '--no-open', '--json', '--rpc'].includes(args[i])) { flags.set(args[i], true); continue; }
|
|
21
21
|
if (!['--config', '--project', '--prompt'].includes(args[i]) || flags.has(args[i]) || !args[i + 1]) throw Error('managed-launch-arguments');
|
|
22
22
|
flags.set(args[i], args[++i]);
|
|
23
23
|
}
|
|
24
24
|
if (flags.has('--json') && !flags.has('--prompt')) throw Error('managed-launch-arguments');
|
|
25
|
+
if (flags.has('--rpc') && ['--check', '--doctor', '--web', '--serve', '--prompt', '--json'].some((f) => flags.has(f))) throw Error('managed-launch-arguments');
|
|
25
26
|
const home = os.homedir();
|
|
26
27
|
// Joining Agent Watch takes a few seconds; keys typed before the Terminal draws are lost, so say so.
|
|
27
|
-
if (!['--check', '--prompt', '--serve', '--doctor', '--web'].some((f) => flags.has(f)) && process.stderr.isTTY) process.stderr.write('Piagent công ty: đang kết nối Agent Watch, chờ ô nhập hiện ra rồi gõ…\n');
|
|
28
|
+
if (!['--check', '--prompt', '--serve', '--doctor', '--web', '--rpc'].some((f) => flags.has(f)) && process.stderr.isTTY) process.stderr.write('Piagent công ty: đang kết nối Agent Watch, chờ ô nhập hiện ra rồi gõ…\n');
|
|
28
29
|
// Do this before importing the SDK: it must not discover personal keys, Node
|
|
29
30
|
// preload hooks, proxy overrides or provider endpoints from an ambient shell.
|
|
30
31
|
const clean = { PATH: '/usr/bin:/bin', HOME: home, LANG: 'en_US.UTF-8', TERM: process.env.TERM || 'xterm-256color', ...interopEnvironment() };
|
|
@@ -182,6 +183,15 @@ try {
|
|
|
182
183
|
const { failureLines } = await import('./company-terminal.mjs');
|
|
183
184
|
process.stderr.write(`${failureLines(last.errorMessage) ?? String(last.errorMessage??'Agent Watch: the request failed [managed-request-failed]')}\n`);process.exitCode = 1;
|
|
184
185
|
}
|
|
186
|
+
} else if (flags.has('--rpc')) {
|
|
187
|
+
// One company conversation driven by a client (a script, a test that
|
|
188
|
+
// plays the member) over Pi's RPC protocol. Pi exits the process when the
|
|
189
|
+
// client closes stdin, so the conversation, its broker and its lease are
|
|
190
|
+
// released inside Pi's own dispose instead of the finally below.
|
|
191
|
+
process.env.PI_OFFLINE = '1'; process.env.PI_SKIP_VERSION_CHECK = '1';
|
|
192
|
+
const dispose = host.dispose.bind(host);
|
|
193
|
+
host.dispose = async () => { try { await dispose(); } finally { await current?.dispose(); current = null; hold?.release(); } };
|
|
194
|
+
await api.runRpcMode(host);
|
|
185
195
|
} else {
|
|
186
196
|
// The company terminal runs the pinned Pi release: no "Run pi update" notice
|
|
187
197
|
// (updating Pi breaks the Agent Watch import), no package-update, catalog or
|