@chainingintention/pi-web-cn 1.202610.4 → 2.202610.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/README.md +2 -2
- package/dist/cli.js +31 -7
- package/dist/cli.js.map +1 -1
- package/dist/client/assets/PiWebApp-BXSziMEg.js +4921 -0
- package/dist/client/assets/classic-CyM97Akm.css +54 -0
- package/dist/client/assets/external-B9K8duyP.js +2 -0
- package/dist/client/assets/graphite-DquaqFXU.css +54 -0
- package/dist/client/assets/index-cdtUOfOW.js +2 -0
- package/dist/client/assets/paper-CB1oLuRr.css +54 -0
- package/dist/client/assets/pi-web-dark-D_KtbM95.css +54 -0
- package/dist/client/assets/pi-web-light-DSNLMIBI.css +54 -0
- package/dist/client/assets/vendor-editor-core-BfnHL1Dg.js +10 -0
- package/dist/client/assets/{vendor-editor-languages-DOCw3vc9.js → vendor-editor-languages-bNquDJP0.js} +1 -1
- package/dist/client/index.html +3 -47
- package/dist/config.js +11 -2
- package/dist/config.js.map +1 -1
- package/dist/nativeServices/installedServiceDefinitions.js +10 -7
- package/dist/nativeServices/installedServiceDefinitions.js.map +1 -1
- package/dist/pi-packages/captains-log/dist/browser/index.js +43 -47
- package/dist/pi-packages/captains-log/dist/browser/panel.js +6 -10
- package/dist/pi-packages/captains-log/dist/companion.js +1 -1
- package/dist/pi-packages/captains-log/package.json +4 -4
- package/dist/pi-packages/relays/extensions/index.js +61 -0
- package/dist/pi-packages/relays/package.json +10 -1
- package/dist/pi-packages/relays/pi-web-plugin.js +52 -2
- package/dist/pi-packages/relays/prompts/relay-worktree.md +6 -16
- package/dist/pi-packages/relays/prompts/relay.md +6 -33
- package/dist/pi-packages/relays/relayDispatch.js +67 -0
- package/dist/pi-packages/relays/relayIdentity.js +37 -0
- package/dist/pi-packages/relays/relaysPanelElement.js +75 -37
- package/dist/pi-packages/relays/skills/relay/SKILL.md +24 -68
- package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +40 -219
- package/dist/pi-packages/workflows/browser/pi-web-plugin.js +42 -0
- package/dist/pi-packages/workflows/browser/worktreeDialog.js +170 -0
- package/dist/pi-packages/workflows/package.json +23 -0
- package/dist/pi-packages/workflows/prompts/worktree.md +21 -0
- package/dist/pi-packages/workflows/server-plugin.js +586 -0
- package/dist/pi-packages/workflows/vite.config.mjs +17 -0
- package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +22 -0
- package/dist/pi-web-plugins/code-highlight/package.json +13 -0
- package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +115 -105
- package/dist/pi-web-plugins/git/browser/git-panel.js +60 -46
- package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +23 -3
- package/dist/pi-web-plugins/git/git-backend.js +20 -1
- package/dist/pi-web-plugins/git/server-plugin.js +20 -3
- package/dist/pi-web-plugins/git/workspace-discovery-notify.cjs +14 -0
- package/dist/pi-web-plugins/git/workspaceDiscoveryHooks.js +186 -0
- package/dist/pi-web-plugins/info/infoInternals.js +3 -3
- package/dist/pi-web-plugins/info/pi-web-plugin.js +1 -1
- package/dist/pi-web-plugins/mermaid/browser/mermaid-engine.js +1087 -422
- package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +8 -3
- package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +39 -33
- package/dist/pi-web-plugins/updates/pi-web-plugin.js +13 -13
- package/dist/pi-web-plugins/updates/updatesLogic.js +4 -5
- package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +21 -1
- package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +39 -22
- package/dist/pi-web-plugins/zh-cn/bundled.json +44 -1
- package/dist/pi-web-plugins/zh-cn/cli.json +60 -1
- package/dist/pi-web-plugins/zh-cn/client.json +7 -1
- package/dist/pi-web-plugins/zh-cn/components.json +252 -2
- package/dist/pi-web-plugins/zh-cn/config-errors.json +17 -1
- package/dist/pi-web-plugins/zh-cn/files.json +10 -1
- package/dist/pi-web-plugins/zh-cn/main.json +1 -1
- package/dist/pi-web-plugins/zh-cn/provider-auth.json +2 -1
- package/dist/pi-web-plugins/zh-cn/server.json +83 -1
- package/dist/piAi.js +4 -0
- package/dist/piAi.js.map +1 -0
- package/dist/piRuntime.js +150 -0
- package/dist/piRuntime.js.map +1 -0
- package/dist/piSdk.js +5 -0
- package/dist/piSdk.js.map +1 -0
- package/dist/piWebUpdate.js +508 -0
- package/dist/piWebUpdate.js.map +1 -0
- package/dist/piWebVersionReport.js +43 -1
- package/dist/piWebVersionReport.js.map +1 -1
- package/dist/plugin-api.d.ts +393 -51
- package/dist/server/activity/workspaceActivityService.js +8 -1
- package/dist/server/activity/workspaceActivityService.js.map +1 -1
- package/dist/server/app.js +19 -4
- package/dist/server/app.js.map +1 -1
- package/dist/server/browserMessageProjection.js +39 -20
- package/dist/server/browserMessageProjection.js.map +1 -1
- package/dist/server/configRoutes.js +8 -0
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/index.js +10 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/knownAutoInstallPiPackages.js +6 -0
- package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
- package/dist/server/machines/machineProxyRoutes.js +37 -2
- package/dist/server/machines/machineProxyRoutes.js.map +1 -1
- package/dist/server/navigationPreferenceRoutes.js +59 -0
- package/dist/server/navigationPreferenceRoutes.js.map +1 -0
- package/dist/server/piPackageService.js +1 -1
- package/dist/server/piPackageService.js.map +1 -1
- package/dist/server/piWebPluginCatalog.js +1 -1
- package/dist/server/piWebPluginCatalog.js.map +1 -1
- package/dist/server/piWebPluginService.js +7 -1
- package/dist/server/piWebPluginService.js.map +1 -1
- package/dist/server/piWebStatus.js +17 -56
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +40 -42
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -1
- package/dist/server/plugins/pluginBackendProxyRoutes.js +40 -44
- package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
- package/dist/server/plugins/pluginBackendRegistry.js +66 -35
- package/dist/server/plugins/pluginBackendRegistry.js.map +1 -1
- package/dist/server/plugins/projectPluginSettings.js +95 -0
- package/dist/server/plugins/projectPluginSettings.js.map +1 -0
- package/dist/server/plugins/serverPluginCatalogCapability.js +106 -0
- package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -0
- package/dist/server/plugins/serverPluginRuntime.js +47 -11
- package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
- package/dist/server/projectTrustRoutes.js +1 -1
- package/dist/server/projectTrustRoutes.js.map +1 -1
- package/dist/server/projects/projectLifecycleService.js +17 -7
- package/dist/server/projects/projectLifecycleService.js.map +1 -1
- package/dist/server/realtime/sessionEventHub.js +22 -9
- package/dist/server/realtime/sessionEventHub.js.map +1 -1
- package/dist/server/sessiond/agentHttpDispatcher.js +1 -1
- package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -1
- package/dist/server/sessiond/autoInstallPiPackages.js +3 -3
- package/dist/server/sessiond/pluginBackendChannelRoutes.js +27 -14
- package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -1
- package/dist/server/sessiond/pluginBackendRoutes.js +56 -49
- package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
- package/dist/server/sessiond/pluginCatalogRoutes.js +41 -0
- package/dist/server/sessiond/pluginCatalogRoutes.js.map +1 -0
- package/dist/server/sessiond/sessionProxyRoutes.js +46 -1
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
- package/dist/server/sessiond/sessionServiceDependencies.js +1 -0
- package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
- package/dist/server/sessiond/workspaceCatalogRoutes.js +6 -2
- package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
- package/dist/server/sessiond/workspaceNotificationRoutes.js +55 -0
- package/dist/server/sessiond/workspaceNotificationRoutes.js.map +1 -0
- package/dist/server/sessiond.js +58 -8
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/askUserDomain.js +232 -0
- package/dist/server/sessions/askUserDomain.js.map +1 -0
- package/dist/server/sessions/askUserTool.js +18 -18
- package/dist/server/sessions/askUserTool.js.map +1 -1
- package/dist/server/sessions/attachmentService.js +1 -1
- package/dist/server/sessions/attachmentService.js.map +1 -1
- package/dist/server/sessions/authRoutes.js +12 -0
- package/dist/server/sessions/authRoutes.js.map +1 -1
- package/dist/server/sessions/authService.js +11 -1
- package/dist/server/sessions/authService.js.map +1 -1
- package/dist/server/sessions/builtinExtensionFactories.js +36 -0
- package/dist/server/sessions/builtinExtensionFactories.js.map +1 -0
- package/dist/server/sessions/companionBackend.js +286 -0
- package/dist/server/sessions/companionBackend.js.map +1 -0
- package/dist/server/sessions/dockerEnvironmentFacts.js +16 -1
- package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -1
- package/dist/server/sessions/extensionSessionDispatch.js +76 -0
- package/dist/server/sessions/extensionSessionDispatch.js.map +1 -0
- package/dist/server/sessions/globalProviderPolicy.js +88 -19
- package/dist/server/sessions/globalProviderPolicy.js.map +1 -1
- package/dist/server/sessions/managementAgentTools.js +2 -2
- package/dist/server/sessions/managementAgentTools.js.map +1 -1
- package/dist/server/sessions/mcpAuthFlowService.js +289 -0
- package/dist/server/sessions/mcpAuthFlowService.js.map +1 -0
- package/dist/server/sessions/mcpAuthRoutes.js +104 -0
- package/dist/server/sessions/mcpAuthRoutes.js.map +1 -0
- package/dist/server/sessions/mcpOAuthCredentialAdapter.js +92 -0
- package/dist/server/sessions/mcpOAuthCredentialAdapter.js.map +1 -0
- package/dist/server/sessions/messageHistoryTarget.js +79 -0
- package/dist/server/sessions/messageHistoryTarget.js.map +1 -0
- package/dist/server/sessions/piSessionEventConnections.js +5 -2
- package/dist/server/sessions/piSessionEventConnections.js.map +1 -1
- package/dist/server/sessions/piSessionManagerGateway.js +32 -27
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +1296 -341
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/plainTextTheme.js +1 -1
- package/dist/server/sessions/plainTextTheme.js.map +1 -1
- package/dist/server/sessions/projectAuthService.js +1 -1
- package/dist/server/sessions/projectAuthService.js.map +1 -1
- package/dist/server/sessions/projectSettingsScope.js +1 -1
- package/dist/server/sessions/projectSettingsScope.js.map +1 -1
- package/dist/server/sessions/projectTrust.js +1 -1
- package/dist/server/sessions/projectTrust.js.map +1 -1
- package/dist/server/sessions/queuedMessageMutation.js +170 -0
- package/dist/server/sessions/queuedMessageMutation.js.map +1 -0
- package/dist/server/sessions/relaySkill.js +57 -7
- package/dist/server/sessions/relaySkill.js.map +1 -1
- package/dist/server/sessions/sessionArchiveMapping.js +6 -0
- package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
- package/dist/server/sessions/sessionArchiveStore.js +5 -1
- package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
- package/dist/server/sessions/sessionArchiveTree.js +2 -2
- package/dist/server/sessions/sessionArchiveTree.js.map +1 -1
- package/dist/server/sessions/sessionCommandService.js +11 -24
- package/dist/server/sessions/sessionCommandService.js.map +1 -1
- package/dist/server/sessions/sessionImageDimensions.js +31 -0
- package/dist/server/sessions/sessionImageDimensions.js.map +1 -0
- package/dist/server/sessions/sessionMediaIndex.js +191 -0
- package/dist/server/sessions/sessionMediaIndex.js.map +1 -0
- package/dist/server/sessions/sessionMetadata.js +51 -0
- package/dist/server/sessions/sessionMetadata.js.map +1 -0
- package/dist/server/sessions/sessionModelScope.js +2 -2
- package/dist/server/sessions/sessionModelScope.js.map +1 -1
- package/dist/server/sessions/sessionNameGenerator.js +13 -33
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
- package/dist/server/sessions/sessionReadAccess.js +41 -0
- package/dist/server/sessions/sessionReadAccess.js.map +1 -0
- package/dist/server/sessions/sessionRoutes.js +61 -6
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/sessions/sessionSummaryScanner.js +62 -5
- package/dist/server/sessions/sessionSummaryScanner.js.map +1 -1
- package/dist/server/sessions/sessionUiEvents.js +17 -4
- package/dist/server/sessions/sessionUiEvents.js.map +1 -1
- package/dist/server/sessions/spawnSessionTool.js +11 -3
- package/dist/server/sessions/spawnSessionTool.js.map +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js +35 -19
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server/sessions/subsessionCompletionDelivery.js +15 -0
- package/dist/server/sessions/subsessionCompletionDelivery.js.map +1 -0
- package/dist/server/sessions/subsessionCompletionInbox.js +134 -0
- package/dist/server/sessions/subsessionCompletionInbox.js.map +1 -0
- package/dist/server/sessions/subsessionProvenance.js +27 -0
- package/dist/server/sessions/subsessionProvenance.js.map +1 -0
- package/dist/server/sessions/transcriptMarkdown.js +48 -0
- package/dist/server/sessions/transcriptMarkdown.js.map +1 -0
- package/dist/server/sessions/transcriptMessages.js +3 -0
- package/dist/server/sessions/transcriptMessages.js.map +1 -1
- package/dist/server/startupLogger.js +13 -0
- package/dist/server/startupLogger.js.map +1 -0
- package/dist/server/startupUrls.js +27 -0
- package/dist/server/startupUrls.js.map +1 -0
- package/dist/server/status/machineStatusService.js +15 -9
- package/dist/server/status/machineStatusService.js.map +1 -1
- package/dist/server/storage/navigationPreferenceStore.js +138 -0
- package/dist/server/storage/navigationPreferenceStore.js.map +1 -0
- package/dist/server/webSocketBridge.js +9 -0
- package/dist/server/webSocketBridge.js.map +1 -1
- package/dist/server/workbench/skillSync.js +1 -1
- package/dist/server/workbench/skillSync.js.map +1 -1
- package/dist/server/workbench/workbenchTools.js +2 -2
- package/dist/server/workbench/workbenchTools.js.map +1 -1
- package/dist/server/workspaces/filePreviewService.js +5 -2
- package/dist/server/workspaces/filePreviewService.js.map +1 -1
- package/dist/server/workspaces/projectPiWebConfig.js +87 -6
- package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
- package/dist/server/workspaces/workspaceChangeNotifier.js +12 -0
- package/dist/server/workspaces/workspaceChangeNotifier.js.map +1 -0
- package/dist/server/workspaces/workspaceNotificationCommand.js +64 -0
- package/dist/server/workspaces/workspaceNotificationCommand.js.map +1 -0
- package/dist/server/workspaces/workspaceProviderRegistry.js +53 -0
- package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
- package/dist/server-plugin-api.d.ts +83 -15
- package/dist/server-plugin-api.js +25 -0
- package/dist/server-plugin-api.js.map +1 -1
- package/dist/sessiond/sessionDaemonClient.js +27 -3
- package/dist/sessiond/sessionDaemonClient.js.map +1 -1
- package/dist/shared/apiTypes.js +3 -2
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/capabilities.js +3 -0
- package/dist/shared/capabilities.js.map +1 -1
- package/dist/shared/federatedRoutes.js +25 -5
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/dist/shared/machineStatus.js +11 -2
- package/dist/shared/machineStatus.js.map +1 -1
- package/dist/shared/navigationPreferences.js +6 -0
- package/dist/shared/navigationPreferences.js.map +1 -0
- package/dist/shared/piWebConfigParsing.js +54 -0
- package/dist/shared/piWebConfigParsing.js.map +1 -1
- package/dist/shared/pluginApiTypes.d.ts +55 -0
- package/dist/shared/pluginBackendProtocol.js +56 -1
- package/dist/shared/pluginBackendProtocol.js.map +1 -1
- package/dist/shared/pluginCatalogTypes.d.ts +49 -0
- package/dist/shared/pluginCatalogTypes.js +156 -0
- package/dist/shared/pluginCatalogTypes.js.map +1 -0
- package/dist/shared/sessionMedia.js +12 -0
- package/dist/shared/sessionMedia.js.map +1 -0
- package/dist/shared/streamingBehavior.js +8 -0
- package/dist/shared/streamingBehavior.js.map +1 -0
- package/dist/shared/themePreference.js +24 -0
- package/dist/shared/themePreference.js.map +1 -0
- package/dist/workspaceNotificationCli.js +95 -0
- package/dist/workspaceNotificationCli.js.map +1 -0
- package/docs/README.md +31 -0
- package/docs/config.md +77 -4
- package/docs/plugins.md +60 -11
- package/examples/session-bridge-plugin/package.json +2 -2
- package/examples/session-bridge-plugin/src/browser/index.ts +1 -1
- package/examples/session-bridge-plugin/src/companion.ts +1 -1
- package/extensions/pi-web.ts +3 -1
- package/package.json +46 -34
- package/skills/README.md +10 -9
- package/skills/relay/SKILL.md +24 -68
- package/skills/relay-runner/SKILL.md +40 -219
- package/dist/client/assets/PiWebApp-CN3g7SqA.js +0 -4362
- package/dist/client/assets/external-DUGCSDhZ.js +0 -2
- package/dist/client/assets/index-JduZlbIF.js +0 -2
- package/dist/client/assets/vendor-editor-core-YWog6mAR.js +0 -10
- package/dist/server/sessions/pendingAskStore.js +0 -275
- package/dist/server/sessions/pendingAskStore.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainingintention/pi-web-cn",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.202610.0",
|
|
4
4
|
"description": "Web UI for persistent Pi Coding Agent sessions in real workspaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Federico Jaramillo Martinez",
|
|
@@ -63,8 +63,9 @@
|
|
|
63
63
|
"typecheck": "tsc --noEmit",
|
|
64
64
|
"typecheck:cached": "tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/pi-web/typecheck.tsbuildinfo",
|
|
65
65
|
"knip": "knip",
|
|
66
|
-
"lint": "eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-web-plugins/**/*.ts\" \"pi-packages/**/*.ts\" vite.config.ts vitest.config.ts vitest.artifacts.config.ts",
|
|
66
|
+
"lint": "eslint \"src/**/*.ts\" \"extensions/**/*.ts\" \"pi-web-plugins/**/*.ts\" \"pi-packages/**/*.ts\" \"test-fixtures/browser/**/*.ts\" vite.config.ts vitest.config.ts vitest.artifacts.config.ts playwright.config.ts",
|
|
67
67
|
"test": "vitest run --config vitest.config.ts",
|
|
68
|
+
"test:browser": "playwright test",
|
|
68
69
|
"check:artifacts": "vitest run --config vitest.artifacts.config.ts",
|
|
69
70
|
"verify": "npm run typecheck && npm run lint && npm run knip && npm test",
|
|
70
71
|
"verify:staged": "node scripts/verify-staged.mjs",
|
|
@@ -82,55 +83,61 @@
|
|
|
82
83
|
"changelog:status": "changeset status"
|
|
83
84
|
},
|
|
84
85
|
"dependencies": {
|
|
85
|
-
"@codemirror/commands": "^6.
|
|
86
|
+
"@codemirror/commands": "^6.11.1",
|
|
86
87
|
"@codemirror/lang-css": "^6.3.1",
|
|
87
88
|
"@codemirror/lang-go": "^6.0.1",
|
|
88
89
|
"@codemirror/lang-html": "^6.4.11",
|
|
89
90
|
"@codemirror/lang-javascript": "^6.2.5",
|
|
90
91
|
"@codemirror/lang-json": "^6.0.2",
|
|
91
|
-
"@codemirror/lang-markdown": "^6.5.
|
|
92
|
+
"@codemirror/lang-markdown": "^6.5.2",
|
|
92
93
|
"@codemirror/lang-python": "^6.2.1",
|
|
93
94
|
"@codemirror/lang-rust": "^6.0.2",
|
|
94
|
-
"@codemirror/language": "^6.
|
|
95
|
+
"@codemirror/language": "^6.13.1",
|
|
95
96
|
"@codemirror/legacy-modes": "^6.5.3",
|
|
96
|
-
"@codemirror/state": "^6.7.
|
|
97
|
-
"@codemirror/view": "
|
|
98
|
-
"@fastify/compress": "^9.
|
|
99
|
-
"@fastify/static": "^10.1.
|
|
100
|
-
"@fastify/websocket": "^11.3.
|
|
97
|
+
"@codemirror/state": "^6.7.6",
|
|
98
|
+
"@codemirror/view": "6.43.13",
|
|
99
|
+
"@fastify/compress": "^9.2.2",
|
|
100
|
+
"@fastify/static": "^10.1.6",
|
|
101
|
+
"@fastify/websocket": "^11.3.4",
|
|
101
102
|
"@xterm/addon-fit": "^0.11.0",
|
|
102
103
|
"@xterm/xterm": "^6.0.0",
|
|
104
|
+
"css-tree": "^3.2.1",
|
|
103
105
|
"diff": "^9.0.0",
|
|
104
|
-
"fastify": "^5.
|
|
106
|
+
"fastify": "^5.12.7",
|
|
107
|
+
"highlight.js": "^11.12.0",
|
|
108
|
+
"image-size": "^2.0.4",
|
|
109
|
+
"import-meta-resolve": "^4.2.0",
|
|
105
110
|
"lit": "^3.3.3",
|
|
106
|
-
"marked": "^18.
|
|
111
|
+
"marked": "^18.1.1",
|
|
107
112
|
"node-pty": "^1.1.0",
|
|
108
|
-
"typebox": "1.3.
|
|
109
|
-
"undici": "^8.
|
|
110
|
-
"ws": "^8.
|
|
113
|
+
"pi-web-typebox": "npm:typebox@1.3.37",
|
|
114
|
+
"undici": "^8.11.2",
|
|
115
|
+
"ws": "^8.22.0",
|
|
111
116
|
"yauzl": "^3.4.0"
|
|
112
117
|
},
|
|
113
118
|
"devDependencies": {
|
|
114
|
-
"@changesets/cli": "^
|
|
115
|
-
"@earendil-works/pi-agent-core": "
|
|
116
|
-
"@earendil-works/pi-ai": "
|
|
117
|
-
"@earendil-works/pi-coding-agent": "
|
|
119
|
+
"@changesets/cli": "^3.0.3",
|
|
120
|
+
"@earendil-works/pi-agent-core": "1.3.0",
|
|
121
|
+
"@earendil-works/pi-ai": "1.3.0",
|
|
122
|
+
"@earendil-works/pi-coding-agent": "1.3.0",
|
|
118
123
|
"@eslint/js": "^10.0.1",
|
|
119
|
-
"@
|
|
120
|
-
"@types/
|
|
124
|
+
"@playwright/test": "^1.64.1",
|
|
125
|
+
"@types/css-tree": "^3.2.0",
|
|
126
|
+
"@types/node": "^26.6.5",
|
|
127
|
+
"@types/ws": "^8.18.2",
|
|
121
128
|
"@types/yauzl": "^2.10.3",
|
|
122
129
|
"@types/yazl": "^2.4.6",
|
|
123
|
-
"dompurify": "^3.4.
|
|
124
|
-
"eslint": "^10.
|
|
125
|
-
"globals": "^17.
|
|
126
|
-
"happy-dom": "^20.
|
|
127
|
-
"knip": "^6.
|
|
128
|
-
"mermaid": "^
|
|
129
|
-
"tsx": "^4.23.
|
|
130
|
+
"dompurify": "^3.4.17",
|
|
131
|
+
"eslint": "^10.12.0",
|
|
132
|
+
"globals": "^17.13.0",
|
|
133
|
+
"happy-dom": "^20.14.6",
|
|
134
|
+
"knip": "^6.41.0",
|
|
135
|
+
"mermaid": "^12.2.0",
|
|
136
|
+
"tsx": "^4.23.15",
|
|
130
137
|
"typescript": "^6.0.3",
|
|
131
|
-
"typescript-eslint": "^8.
|
|
132
|
-
"vite": "^8.
|
|
133
|
-
"vitest": "^
|
|
138
|
+
"typescript-eslint": "^8.71.2",
|
|
139
|
+
"vite": "^8.3.4",
|
|
140
|
+
"vitest": "^5.0.4",
|
|
134
141
|
"yazl": "^3.3.1"
|
|
135
142
|
},
|
|
136
143
|
"publishConfig": {
|
|
@@ -149,9 +156,14 @@
|
|
|
149
156
|
"homepage": "https://github.com/nayuto-wakusei/pi-web-ChineseTranslation#readme",
|
|
150
157
|
"packageManager": "npm@11.11.0",
|
|
151
158
|
"peerDependencies": {
|
|
152
|
-
"@earendil-works/pi-agent-core": "0.86.1 || 0.87.0",
|
|
153
|
-
"@earendil-works/pi-ai": "0.86.1 || 0.87.0",
|
|
154
|
-
"@earendil-works/pi-coding-agent": "0.86.1 || 0.87.0"
|
|
159
|
+
"@earendil-works/pi-agent-core": "0.86.1 || 0.87.0 || 1.3.0",
|
|
160
|
+
"@earendil-works/pi-ai": "0.86.1 || 0.87.0 || 1.3.0",
|
|
161
|
+
"@earendil-works/pi-coding-agent": "0.86.1 || 0.87.0 || 1.3.0"
|
|
162
|
+
},
|
|
163
|
+
"peerDependenciesMeta": {
|
|
164
|
+
"@earendil-works/pi-agent-core": { "optional": true },
|
|
165
|
+
"@earendil-works/pi-ai": { "optional": true },
|
|
166
|
+
"@earendil-works/pi-coding-agent": { "optional": true }
|
|
155
167
|
},
|
|
156
168
|
"keywords": [
|
|
157
169
|
"pi-package",
|
package/skills/README.md
CHANGED
|
@@ -7,8 +7,8 @@ Distributable agent skills developed alongside pi-web.
|
|
|
7
7
|
A tool-agnostic foundation for the [Relay Principle](https://relayprinciple.ai/):
|
|
8
8
|
carry long work through a chain of fresh agent contexts, one bounded leg and one
|
|
9
9
|
durable handoff at a time, without a standing coordinator or role hierarchy.
|
|
10
|
-
It
|
|
11
|
-
|
|
10
|
+
It centers the agreed finish line, relay-specific scope, compact baton, durable
|
|
11
|
+
history, and visible completion or need for help.
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
npx skills add jmfederico/pi-web --skill relay -a pi -g
|
|
@@ -16,13 +16,14 @@ npx skills add jmfederico/pi-web --skill relay -a pi -g
|
|
|
16
16
|
|
|
17
17
|
## relay-runner
|
|
18
18
|
|
|
19
|
-
The
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
The Pi session and record mechanics used by `/relay` and `/relay-worktree`.
|
|
20
|
+
Preparation clarifies the goal and boundaries with the human and requires explicit
|
|
21
|
+
approval before dispatch. Each fresh runner chooses its next useful slice, keeps
|
|
22
|
+
`charter.md`, `status.md`, and `log.md` durable, and hands off once or stops.
|
|
23
|
+
An optional `decisions.md` keeps consequential reasoning out of the baton.
|
|
24
|
+
The runner requires a fresh-context final review, with at most three attempts,
|
|
25
|
+
without scripting the development route. Project instructions and applicable
|
|
26
|
+
skills govern the work. Dispatch and handoff prompts select both Relay skills.
|
|
26
27
|
|
|
27
28
|
```bash
|
|
28
29
|
npx skills add jmfederico/pi-web --skill relay-runner -a pi -g
|
package/skills/relay/SKILL.md
CHANGED
|
@@ -1,94 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: relay
|
|
3
|
-
description: "
|
|
3
|
+
description: "Carry work across a chain of fresh agent contexts using a shared goal, compact baton, and durable record. Use when a user invokes Relay, discusses the Relay method, prepares a Relay, or continues an active Relay. Do not load for generic multi-step work or ordinary delegation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Relay
|
|
7
7
|
|
|
8
|
-
Relay
|
|
8
|
+
A Relay carries work across fresh agent contexts until the agreed goal is reached or an agent needs human help. Each context owns one useful slice, called a **leg**. There is no standing coordinator or fixed set of agent roles.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Follow the [Relay Principle](https://relayprinciple.ai/): give agents a destination and enough continuity to act, rather than recreating a management structure around them.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Finish line over plan
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Help the human express what they want built and how they will recognize it is done. Resolve material ambiguity before dispatch. An existing requirements document can supply the goal; reference it rather than rewriting it into a larger specification.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- **Runner:** the agent context responsible for one leg. It coordinates its own slice; it does not supervise later runners.
|
|
18
|
-
- **Leg:** one context-contained, coherent unit of progress. Leg boundaries protect context quality, not organizational ownership.
|
|
19
|
-
- **Packet:** durable state shared across otherwise independent contexts.
|
|
20
|
-
- **Baton:** the packet's compact current-state view: where the Relay is now, what comes next, and the targeted context needed by the next runner.
|
|
21
|
-
- **Handoff:** the final operational act that starts or designates at most one successor after current work is durable. A user-facing summary may follow, but no further work, durable-state mutation, tool use, or downstream steering.
|
|
22
|
-
- **Intervention:** a visible stop when the destination cannot be pursued responsibly within the current agreement.
|
|
23
|
-
- **Operational profile:** the tool- and workflow-specific policy that binds these concepts to a concrete environment.
|
|
16
|
+
Keep the goal stable and the route adaptable. Each runner checks the finish line against the current work and chooses the next useful slice. Changing the goal requires human agreement; changing implementation or sequencing within scope does not.
|
|
24
17
|
|
|
25
|
-
##
|
|
18
|
+
## Scope over script
|
|
26
19
|
|
|
27
|
-
|
|
20
|
+
Record the relay-specific boundaries, limitations, conditions, and clarifications needed to understand the request. Preserve technical requirements and any other details the human explicitly asks to include.
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
2. **One bounded leg per context.** A runner does not keep accumulating unrelated work or execute several nominal legs in one context.
|
|
31
|
-
3. **Durability before handoff.** Decisions, artifacts, current state, and blockers needed downstream are preserved outside transient conversation before a successor begins.
|
|
32
|
-
4. **At most one successor.** A runner either hands off once at the end or stops. It does not fan out the chain or hand off while its own work remains in flight.
|
|
33
|
-
5. **Fresh-context trust.** The successor is allowed to own its leg. If a runner feels it must watch and correct downstream work, the slice, packet, or intervention policy is not ready.
|
|
34
|
-
6. **Bounded orientation.** A successor starts from the stable agreement and baton, then reads only targeted supporting context. Full-history reconstruction is exceptional, not routine.
|
|
35
|
-
7. **Visible stopping.** Completion, blockers, and intervention are recorded clearly. Spawning a confused successor is worse than stopping cleanly.
|
|
36
|
-
8. **No silent goal drift.** Current-state updates cannot redefine what the Relay is trying to achieve.
|
|
22
|
+
Do not invent an implementation roadmap, speculative requirements, or a new software process. Project instructions, skills, and harness conventions remain where they belong; each runner discovers and follows what applies to its work. A Relay does not replace or weaken those rules.
|
|
37
23
|
|
|
38
|
-
##
|
|
24
|
+
## Handoff over handhold
|
|
39
25
|
|
|
40
|
-
|
|
26
|
+
A baton says **where we are**, not **how you must work**. Avoid suggesting or assigning the next slice: even a provisional suggestion can anchor the successor. Record remaining gaps and concrete dependencies instead, and trust the successor to inspect reality and choose its slice.
|
|
41
27
|
|
|
42
|
-
|
|
28
|
+
Choose a meaningful increment that fits one context, not the tiniest possible task. Investigation and related work can stay together. Leg boundaries protect context quality, not organizational ownership.
|
|
43
29
|
|
|
44
|
-
|
|
30
|
+
Finish ongoing work and preserve the state before starting at most one fresh successor. Handoff is the final operational action; only a user-facing summary follows. Do not watch or steer the successor.
|
|
45
31
|
|
|
46
|
-
|
|
32
|
+
## Record over memory
|
|
47
33
|
|
|
48
|
-
|
|
34
|
+
Keep three kinds of durable information:
|
|
49
35
|
|
|
50
|
-
|
|
36
|
+
- **Goal:** the agreed finish line and relay-specific scope. Current status cannot override it.
|
|
37
|
+
- **Baton:** current position, completed work, what remains, relevant evidence and decisions, useful pointers, and any blocker.
|
|
38
|
+
- **History:** concise entries recording each leg's result, decisions, artifacts, checks, and handoff or stop.
|
|
51
39
|
|
|
52
|
-
|
|
40
|
+
Keep the baton compact. Use history for targeted lookup, not mandatory reconstruction. Inspect the actual work as needed; the record saves rediscovering prior decisions, not reading the project.
|
|
53
41
|
|
|
54
|
-
|
|
42
|
+
## Signal over spin
|
|
55
43
|
|
|
56
|
-
|
|
44
|
+
Stop when the finish line is met, with evidence. Completion does not require finding another improvement.
|
|
57
45
|
|
|
58
|
-
|
|
46
|
+
Stop visibly when progress needs human input: record the blocker, what was tried, and the specific decision or help needed. If successive legs keep revisiting the same issue without new evidence or meaningful progress, surface that stall instead of spawning another attempt.
|
|
59
47
|
|
|
60
|
-
|
|
48
|
+
Optional cleanup, hypothetical risks, and a desire for perfection are not reasons to prolong the chain. Revisit a settled decision when facts change or concrete evidence shows it was wrong, not merely because a fresh agent has arrived.
|
|
61
49
|
|
|
62
|
-
-
|
|
63
|
-
- where or in what format durable state lives;
|
|
64
|
-
- how large a leg should be or how tasks are selected;
|
|
65
|
-
- whether work uses source control, worktrees, commits, tests, reviews, or delivery gates;
|
|
66
|
-
- how intervention reaches a human; or
|
|
67
|
-
- what project-specific quality standard applies.
|
|
68
|
-
|
|
69
|
-
An operational profile supplies those bindings and decides where to keep its identity and any operational record. Each handoff makes the active profile visible to the fresh runner. A profile may be strongly opinionated without putting its mechanics into the destination agreement or turning its choices into the definition of Relay.
|
|
70
|
-
|
|
71
|
-
Projects can layer any operational profile that fits their environment while preserving the invariants above.
|
|
72
|
-
|
|
73
|
-
## Context containment
|
|
74
|
-
|
|
75
|
-
A fresh runner normally needs only:
|
|
76
|
-
|
|
77
|
-
1. the stable agreement;
|
|
78
|
-
2. the current baton; and
|
|
79
|
-
3. the specific supporting material those surfaces identify for the leg.
|
|
80
|
-
|
|
81
|
-
A baton that routinely requires full-history or whole-artifact-tree reconstruction violates bounded orientation. A state gap that can be resolved only through broad archaeology or guessing about the destination is an intervention condition, not ordinary continuation.
|
|
82
|
-
|
|
83
|
-
## Failure smells
|
|
84
|
-
|
|
85
|
-
- **Coordinator creep:** a persistent supervisor plans, watches, or approves every leg.
|
|
86
|
-
- **Role bureaucracy:** fixed agent roles or layer ownership replace fluid, outcome-driven slices without a real constraint requiring them.
|
|
87
|
-
- **No stable finish line:** mutable current state is the only definition of done.
|
|
88
|
-
- **Baton authority creep:** status quietly narrows or expands the agreement.
|
|
89
|
-
- **Context leakage:** every runner reloads the full history or inherits an unbounded conversation.
|
|
90
|
-
- **Eager or parallel handoff:** successors begin before the current leg is durable, or one runner fans out the chain.
|
|
91
|
-
- **Oversized legs:** a runner continues beyond a coherent context-contained checkpoint.
|
|
92
|
-
- **Silent stall:** work stops without durable blocker or intervention state.
|
|
93
|
-
|
|
94
|
-
Operational details may vary widely. These failures matter because they undermine the principle, not because a particular tool or file convention was violated.
|
|
50
|
+
Tools, storage, and session creation belong to the environment-specific runner skill, not the definition of Relay.
|