@skaile/workspaces 2.3.0 → 2.5.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 +60 -0
- package/README.md +32 -13
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-DKNYRLED.js → asset-feeds-4AWAT5PW.js} +6 -6
- package/dist/{asset-feeds-DKNYRLED.js.map → asset-feeds-4AWAT5PW.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +1 -1
- package/dist/asset-manager/index.js +5 -5
- package/dist/asset-manager/installer.js +2 -2
- package/dist/bridge/drivers/claude-sdk.js +108 -5
- package/dist/bridge/drivers/claude-sdk.js.map +1 -1
- package/dist/bridge/drivers/codex.js +1 -1
- package/dist/bridge/drivers/continue.js +2 -2
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.js +3 -3
- package/dist/bridge/drivers/goose.js +2 -2
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.js +2 -2
- package/dist/bridge/drivers/qwen.js +3 -3
- package/dist/bridge/index.js +2 -2
- package/dist/bridge/src/drivers/claude-sdk.d.ts +33 -0
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
- package/dist/{chunk-CERGXDGG.js → chunk-2OCYS5EP.js} +3 -3
- package/dist/{chunk-CERGXDGG.js.map → chunk-2OCYS5EP.js.map} +1 -1
- package/dist/{chunk-W3Q37HEF.js → chunk-3HVASHBF.js} +3 -3
- package/dist/{chunk-W3Q37HEF.js.map → chunk-3HVASHBF.js.map} +1 -1
- package/dist/{chunk-UQ3RJKDD.js → chunk-4O2RAXKJ.js} +179 -52
- package/dist/chunk-4O2RAXKJ.js.map +1 -0
- package/dist/{chunk-DZM33LQO.js → chunk-4QROZZ5Z.js} +15 -3
- package/dist/chunk-4QROZZ5Z.js.map +1 -0
- package/dist/{chunk-G2ILW47R.js → chunk-57RFYEVM.js} +3 -3
- package/dist/{chunk-G2ILW47R.js.map → chunk-57RFYEVM.js.map} +1 -1
- package/dist/{chunk-BLWNI5KW.js → chunk-AKVAZ5CB.js} +2 -2
- package/dist/{chunk-BLWNI5KW.js.map → chunk-AKVAZ5CB.js.map} +1 -1
- package/dist/{chunk-BFIK6NPZ.js → chunk-AM5LFRXJ.js} +3 -3
- package/dist/{chunk-BFIK6NPZ.js.map → chunk-AM5LFRXJ.js.map} +1 -1
- package/dist/{chunk-RDE43ORT.js → chunk-D4VHBAJC.js} +4 -4
- package/dist/{chunk-RDE43ORT.js.map → chunk-D4VHBAJC.js.map} +1 -1
- package/dist/{chunk-PTS3QN5P.js → chunk-EEHOMCRU.js} +1021 -115
- package/dist/chunk-EEHOMCRU.js.map +1 -0
- package/dist/{chunk-CXX3UGJP.js → chunk-ENBTXMPL.js} +7 -7
- package/dist/{chunk-CXX3UGJP.js.map → chunk-ENBTXMPL.js.map} +1 -1
- package/dist/{chunk-LD6YGIKZ.js → chunk-EUWN4EK4.js} +60 -21
- package/dist/chunk-EUWN4EK4.js.map +1 -0
- package/dist/{chunk-FB4GPWYC.js → chunk-FKBQRV4J.js} +57 -16
- package/dist/chunk-FKBQRV4J.js.map +1 -0
- package/dist/{chunk-WG3L5VHF.js → chunk-HY3MBSNC.js} +2 -2
- package/dist/{chunk-WG3L5VHF.js.map → chunk-HY3MBSNC.js.map} +1 -1
- package/dist/{chunk-7IRH7MGV.js → chunk-IHX2SN35.js} +9 -9
- package/dist/{chunk-7IRH7MGV.js.map → chunk-IHX2SN35.js.map} +1 -1
- package/dist/{chunk-3F54MH2T.js → chunk-JAFEMG7W.js} +4 -4
- package/dist/{chunk-3F54MH2T.js.map → chunk-JAFEMG7W.js.map} +1 -1
- package/dist/{chunk-X6BPVUV2.js → chunk-L3TS7ZO4.js} +3 -3
- package/dist/{chunk-X6BPVUV2.js.map → chunk-L3TS7ZO4.js.map} +1 -1
- package/dist/{chunk-RIEXN7WA.js → chunk-MADO7PH5.js} +2 -2
- package/dist/{chunk-RIEXN7WA.js.map → chunk-MADO7PH5.js.map} +1 -1
- package/dist/{chunk-BCTU4TN7.js → chunk-MWFYXUFK.js} +3 -3
- package/dist/{chunk-BCTU4TN7.js.map → chunk-MWFYXUFK.js.map} +1 -1
- package/dist/{chunk-TK66CMXV.js → chunk-NU4E7C5I.js} +7 -3
- package/dist/chunk-NU4E7C5I.js.map +1 -0
- package/dist/{chunk-ZE2KEPE2.js → chunk-OEGHKO5N.js} +258 -24
- package/dist/chunk-OEGHKO5N.js.map +1 -0
- package/dist/{chunk-63ZPKREA.js → chunk-P43HBWKK.js} +11 -4
- package/dist/chunk-P43HBWKK.js.map +1 -0
- package/dist/{chunk-7UZGKVSK.js → chunk-PJ6INYDD.js} +3 -3
- package/dist/{chunk-7UZGKVSK.js.map → chunk-PJ6INYDD.js.map} +1 -1
- package/dist/{chunk-CA5CWLGN.js → chunk-PKEAYYEJ.js} +7 -4
- package/dist/chunk-PKEAYYEJ.js.map +1 -0
- package/dist/{chunk-ETFETLLB.js → chunk-UZYTSIX6.js} +6 -6
- package/dist/{chunk-ETFETLLB.js.map → chunk-UZYTSIX6.js.map} +1 -1
- package/dist/{chunk-SIF5F5SN.js → chunk-V4ZLZJFN.js} +3 -3
- package/dist/{chunk-SIF5F5SN.js.map → chunk-V4ZLZJFN.js.map} +1 -1
- package/dist/{chunk-ZR5Q4KZK.js → chunk-VNIKF66R.js} +3 -3
- package/dist/{chunk-ZR5Q4KZK.js.map → chunk-VNIKF66R.js.map} +1 -1
- package/dist/{chunk-CILACPUC.js → chunk-WSARNOPP.js} +5 -5
- package/dist/{chunk-CILACPUC.js.map → chunk-WSARNOPP.js.map} +1 -1
- package/dist/{chunk-TAJBFYCT.js → chunk-YWPEDILM.js} +83 -36
- package/dist/chunk-YWPEDILM.js.map +1 -0
- package/dist/{chunk-UNP4M5ZZ.js → chunk-ZR2X4SIG.js} +4 -4
- package/dist/{chunk-UNP4M5ZZ.js.map → chunk-ZR2X4SIG.js.map} +1 -1
- package/dist/cli/index.js +50 -50
- package/dist/connectors/config.js +1 -1
- package/dist/connectors/index.js +6 -6
- package/dist/core/index.js +1 -1
- package/dist/core/src/subprocess.d.ts +5 -1
- package/dist/core/src/subprocess.d.ts.map +1 -1
- package/dist/deploy/index.js +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/{ensure-sources-R6KW7K3M.js → ensure-sources-QF72HVUM.js} +8 -8
- package/dist/{ensure-sources-R6KW7K3M.js.map → ensure-sources-QF72HVUM.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +6 -6
- package/dist/factory-assets/connectors/deploy.js +6 -6
- package/dist/factory-assets/connectors/devserver.js +6 -6
- package/dist/factory-assets/connectors/flow/CONNECTOR.md +61 -14
- package/dist/factory-assets/connectors/flow/adapter.d.ts +78 -34
- package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/adapter.js +6 -6
- package/dist/factory-assets/connectors/flow/contract/expression.d.ts +55 -0
- package/dist/factory-assets/connectors/flow/contract/expression.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract/flow.v2.schema.json +61 -134
- package/dist/factory-assets/connectors/flow/contract/index.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract/schema.d.ts +14 -2
- package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract.js +2 -2
- package/dist/factory-assets/connectors/flow/engine/bindings.d.ts +9 -0
- package/dist/factory-assets/connectors/flow/engine/bindings.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/engine.d.ts +11 -6
- package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine/index.d.ts +2 -0
- package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine/node-shape.d.ts +22 -0
- package/dist/factory-assets/connectors/flow/engine/node-shape.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts +18 -0
- package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/types.d.ts +21 -15
- package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine.js +4 -4
- package/dist/factory-assets/connectors/flow/index.d.ts +3 -0
- package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +48 -0
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/node-executor.d.ts +45 -0
- package/dist/factory-assets/connectors/flow/node-executor.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +3 -2
- package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/prompt-fragments.js +2 -2
- package/dist/factory-assets/connectors/flow/run-flow.d.ts +10 -9
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.js +7 -7
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +73 -0
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow.js +6 -6
- package/dist/factory-assets/connectors/git.js +6 -6
- package/dist/factory-assets/connectors/gmail.js +6 -6
- package/dist/factory-assets/connectors/googledrive.js +6 -6
- package/dist/factory-assets/connectors/local.js +6 -6
- package/dist/factory-assets/connectors/mattermost.js +6 -6
- package/dist/factory-assets/connectors/memory.js +6 -6
- package/dist/factory-assets/connectors/minio.js +6 -6
- package/dist/factory-assets/connectors/postgres.js +6 -6
- package/dist/factory-assets/connectors/s3.js +6 -6
- package/dist/factory-assets/connectors/sharepoint.js +6 -6
- package/dist/factory-assets/connectors/sqlite.js +6 -6
- package/dist/factory-assets/connectors/static-server.js +6 -6
- package/dist/factory-assets/connectors/tunnel.js +6 -6
- package/dist/factory-assets/connectors/webdav.js +6 -6
- package/dist/factory-assets/connectors/xstate-store.js +6 -6
- package/dist/factory-assets/connectors/xstate.js +6 -6
- package/dist/{flows-F3CJNMK6.js → flows-YIW4HL3L.js} +4 -4
- package/dist/{flows-F3CJNMK6.js.map → flows-YIW4HL3L.js.map} +1 -1
- package/dist/{helpers-KPOLCGKX.js → helpers-LURCZHA4.js} +8 -8
- package/dist/{helpers-KPOLCGKX.js.map → helpers-LURCZHA4.js.map} +1 -1
- package/dist/library/index.js +3 -3
- package/dist/library/install.js +1 -1
- package/dist/{library-publish-ZAPZS64O.js → library-publish-2GMJM3NZ.js} +14 -14
- package/dist/{library-publish-ZAPZS64O.js.map → library-publish-2GMJM3NZ.js.map} +1 -1
- package/dist/{open-library-I4F2UNOY.js → open-library-POFOXZWH.js} +12 -12
- package/dist/{open-library-I4F2UNOY.js.map → open-library-POFOXZWH.js.map} +1 -1
- package/dist/{paths-KBACHM5B.js → paths-ZLX4ITAQ.js} +6 -6
- package/dist/{paths-KBACHM5B.js.map → paths-ZLX4ITAQ.js.map} +1 -1
- package/dist/{plugin-store-CYSNVZIX.js → plugin-store-YIMNH2FH.js} +3 -3
- package/dist/{plugin-store-CYSNVZIX.js.map → plugin-store-YIMNH2FH.js.map} +1 -1
- package/dist/{project-SIHZBTGB.js → project-GVOPZEJZ.js} +9 -9
- package/dist/{project-SIHZBTGB.js.map → project-GVOPZEJZ.js.map} +1 -1
- package/dist/resolver/index.js +1 -1
- package/dist/runner/index.js +15 -12
- package/dist/runner/src/serve.d.ts +3 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +5 -5
- package/dist/sdk/bridge.js +2 -2
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/flow.js +4 -4
- package/dist/sdk/index.js +15 -12
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +1 -1
- package/dist/sdk/runner.js +15 -12
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/types.js +1 -1
- package/dist/session/index.js +2 -2
- package/dist/session/src/dispatcher.d.ts.map +1 -1
- package/dist/{setup-KMBXMV25.js → setup-RHWARBBB.js} +5 -5
- package/dist/{setup-KMBXMV25.js.map → setup-RHWARBBB.js.map} +1 -1
- package/dist/{skills-LHS4TOKK.js → skills-HGVH6UTA.js} +5 -5
- package/dist/{skills-LHS4TOKK.js.map → skills-HGVH6UTA.js.map} +1 -1
- package/dist/{source-X226ZJPR.js → source-FB3T4IHP.js} +13 -13
- package/dist/{source-X226ZJPR.js.map → source-FB3T4IHP.js.map} +1 -1
- package/dist/{source-manifest-publish-N2QVUR5U.js → source-manifest-publish-XTRDVPSC.js} +15 -15
- package/dist/{source-manifest-publish-N2QVUR5U.js.map → source-manifest-publish-XTRDVPSC.js.map} +1 -1
- package/dist/tui/index.js +15 -12
- package/dist/tui/index.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/src/events.d.ts +20 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/flow.d.ts +26 -0
- package/dist/types/src/flow.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/protocol.d.ts +1 -0
- package/dist/types/src/protocol.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +12 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +4 -4
- package/dist/workspace-plugin/adapters/omp.js +7 -7
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-63ZPKREA.js.map +0 -1
- package/dist/chunk-CA5CWLGN.js.map +0 -1
- package/dist/chunk-DZM33LQO.js.map +0 -1
- package/dist/chunk-FB4GPWYC.js.map +0 -1
- package/dist/chunk-LD6YGIKZ.js.map +0 -1
- package/dist/chunk-PTS3QN5P.js.map +0 -1
- package/dist/chunk-TAJBFYCT.js.map +0 -1
- package/dist/chunk-TK66CMXV.js.map +0 -1
- package/dist/chunk-UQ3RJKDD.js.map +0 -1
- package/dist/chunk-ZE2KEPE2.js.map +0 -1
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { WorkspacePlugin } from './chunk-
|
|
1
|
+
import { WorkspacePlugin } from './chunk-AKVAZ5CB.js';
|
|
2
2
|
import { assembleSystemPrompt, buildCapabilitiesPromptSection } from './chunk-W3UDISS2.js';
|
|
3
3
|
import { WebSocketServerTransport } from './chunk-WQ7DE5UC.js';
|
|
4
|
-
import { EventNormalizer } from './chunk-
|
|
4
|
+
import { EventNormalizer } from './chunk-VNIKF66R.js';
|
|
5
5
|
import { SUPPORTED_CLOUDS, CLOUD_SECRET_ENV_KEYS } from './chunk-ISQWMBKD.js';
|
|
6
6
|
import { classifyClaudeSdkError } from './chunk-GAH4YRCI.js';
|
|
7
|
-
import { createDriver } from './chunk-
|
|
7
|
+
import { createDriver } from './chunk-HY3MBSNC.js';
|
|
8
|
+
import { resolveFlowPath } from './chunk-EUWN4EK4.js';
|
|
8
9
|
import { findAiAssetsRoot, deployCatalogEntry, undeployCatalogEntry } from './chunk-BEAIJRVF.js';
|
|
9
|
-
import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, ConnectorStartupError, buildSdkConnectorTools, buildSdkFlowTools } from './chunk-
|
|
10
|
+
import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, ConnectorStartupError, buildSdkConnectorTools, SessionNodeExecutor, SessionInlineSubFlowRunner, buildSdkFlowTools } from './chunk-EEHOMCRU.js';
|
|
10
11
|
import { loadConnectorDeclarations, SecretProviderChain, PreMintedSecretProvider, InMemorySecretProvider, resolvedConfigToDeclarations, isKnownSecretRef, deriveSingleMaterializedConnectorDeclaration } from './chunk-ZNIHTT22.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { loadFlow } from './chunk-4O2RAXKJ.js';
|
|
13
|
+
import { parseFlowDefinition } from './chunk-OEGHKO5N.js';
|
|
14
|
+
import { renderStimulusPrompt, buildOrchestratorPrompt } from './chunk-FKBQRV4J.js';
|
|
15
|
+
import { PROTOCOL_VERSION } from './chunk-D4VHBAJC.js';
|
|
16
|
+
import { resolveSettings, resolveApiKey, providerEnvKey } from './chunk-P43HBWKK.js';
|
|
15
17
|
import { resolveDriverPaths } from './chunk-K5GBV4SA.js';
|
|
16
18
|
import { resolveRuntimeAssets } from './chunk-UFY2HFLO.js';
|
|
17
19
|
import { resolveSkWorkspaceConfig, resolveAgentDir, cloudConfigFromProfile, stageMaterializedSkills, loadMcpServerDeclarations, COMPACTION_DEFAULTS, validateAssetRecipeAttr, deriveSingleMaterializedMcpDeclaration } from './chunk-Q26C5GLO.js';
|
|
@@ -4651,6 +4653,11 @@ function pendingDecisionOp(decision) {
|
|
|
4651
4653
|
}
|
|
4652
4654
|
};
|
|
4653
4655
|
}
|
|
4656
|
+
function hasRejectedParkedApproval(execution) {
|
|
4657
|
+
return Object.values(execution.nodes ?? {}).some(
|
|
4658
|
+
(node) => node.status === "awaiting_approval" && node.approval?.decision === "rejected" && node.approval.decidedAt != null
|
|
4659
|
+
);
|
|
4660
|
+
}
|
|
4654
4661
|
function hostOpResumeStimulus(op, payload) {
|
|
4655
4662
|
switch (op) {
|
|
4656
4663
|
case "applyApproval":
|
|
@@ -4748,21 +4755,23 @@ async function executeConnectorMutate(cmd, deps) {
|
|
|
4748
4755
|
});
|
|
4749
4756
|
if (payload.pendingDecisions === void 0) {
|
|
4750
4757
|
respond({ ok: true });
|
|
4758
|
+
if (entry.hydratedStateChanged || hasRejectedParkedApproval(plan.execution)) {
|
|
4759
|
+
deps.signalStimulus(entry, { kind: "resumed_after_hibernation" });
|
|
4760
|
+
}
|
|
4751
4761
|
return;
|
|
4752
4762
|
}
|
|
4753
4763
|
const { toApply, reconciled } = reconcilePendingDecisions(
|
|
4754
4764
|
plan.execution,
|
|
4755
4765
|
payload.pendingDecisions
|
|
4756
4766
|
);
|
|
4757
|
-
let
|
|
4767
|
+
let appliedAny = false;
|
|
4758
4768
|
const applied = [];
|
|
4759
4769
|
for (const decision of toApply) {
|
|
4760
4770
|
const { op, payload: opPayload } = pendingDecisionOp(decision);
|
|
4761
4771
|
try {
|
|
4762
4772
|
await deps.executeOp(entry.connectorId, op, opPayload);
|
|
4763
4773
|
applied.push(decision.nodeId);
|
|
4764
|
-
|
|
4765
|
-
if (stimulus) lastApplied = { target: entry, stimulus };
|
|
4774
|
+
appliedAny = true;
|
|
4766
4775
|
} catch (err) {
|
|
4767
4776
|
reconciled.skipped.push({ nodeId: decision.nodeId, reason: "not_parked" });
|
|
4768
4777
|
deps.log.warn("flow hydrate reconciliation refused", {
|
|
@@ -4774,7 +4783,9 @@ async function executeConnectorMutate(cmd, deps) {
|
|
|
4774
4783
|
}
|
|
4775
4784
|
reconciled.applied = applied;
|
|
4776
4785
|
respond({ ok: true, reconciled });
|
|
4777
|
-
if (
|
|
4786
|
+
if (appliedAny || entry.hydratedStateChanged || hasRejectedParkedApproval(plan.execution)) {
|
|
4787
|
+
deps.signalStimulus(entry, { kind: "resumed_after_hibernation" });
|
|
4788
|
+
}
|
|
4778
4789
|
return;
|
|
4779
4790
|
}
|
|
4780
4791
|
case "reject": {
|
|
@@ -4804,6 +4815,9 @@ async function executeConnectorMutate(cmd, deps) {
|
|
|
4804
4815
|
if (resumeStimulus) {
|
|
4805
4816
|
const active = deps.flowState().activeFlow;
|
|
4806
4817
|
if (active) deps.signalStimulus(active, resumeStimulus);
|
|
4818
|
+
} else if (cmd.op === "hydrate" && typeof result === "string" && JSON.stringify(payload.state) !== result) {
|
|
4819
|
+
const active = deps.flowState().activeFlow;
|
|
4820
|
+
if (active) deps.signalStimulus(active, { kind: "resumed_after_hibernation" });
|
|
4807
4821
|
}
|
|
4808
4822
|
return;
|
|
4809
4823
|
}
|
|
@@ -4818,6 +4832,8 @@ function reconstructTypedStimulus(meta) {
|
|
|
4818
4832
|
switch (meta.kind) {
|
|
4819
4833
|
case "flow_started":
|
|
4820
4834
|
return { kind: "flow_started" };
|
|
4835
|
+
case "resumed_after_hibernation":
|
|
4836
|
+
return { kind: "resumed_after_hibernation" };
|
|
4821
4837
|
case "user_message":
|
|
4822
4838
|
return typeof meta.text === "string" ? {
|
|
4823
4839
|
kind: "user_message",
|
|
@@ -5390,6 +5406,19 @@ async function startAgentServer(opts) {
|
|
|
5390
5406
|
}
|
|
5391
5407
|
const flowConnectorReadiness = createFlowConnectorReadiness(() => getOnlyActiveFlow() !== null);
|
|
5392
5408
|
const flowMutateConnectorWaitMs = resolveFlowMutateConnectorWaitMs();
|
|
5409
|
+
async function ensureFlowDriverStarted() {
|
|
5410
|
+
if (driverStarted) return;
|
|
5411
|
+
await driver.start();
|
|
5412
|
+
driverStarted = true;
|
|
5413
|
+
driver.on("agent-event", (event) => {
|
|
5414
|
+
const normalized = normalizer.normalize(event);
|
|
5415
|
+
for (const e of normalized) forwardNormalizedEvent(e);
|
|
5416
|
+
});
|
|
5417
|
+
driver.on("error", (err) => {
|
|
5418
|
+
log(`[serve] driver error: ${err.message}`);
|
|
5419
|
+
sendEvent({ type: "error", message: err.message, fatal: true });
|
|
5420
|
+
});
|
|
5421
|
+
}
|
|
5393
5422
|
function getOrCreateStimulusBus() {
|
|
5394
5423
|
if (stimulusBus) return stimulusBus;
|
|
5395
5424
|
stimulusBus = createSessionStimulusBus({
|
|
@@ -5402,23 +5431,14 @@ async function startAgentServer(opts) {
|
|
|
5402
5431
|
return;
|
|
5403
5432
|
}
|
|
5404
5433
|
const stimulus = stimulusFromMetas(metas);
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
);
|
|
5410
|
-
if (!driverStarted) {
|
|
5411
|
-
await driver.start();
|
|
5412
|
-
driverStarted = true;
|
|
5413
|
-
driver.on("agent-event", (event) => {
|
|
5414
|
-
const normalized = normalizer.normalize(event);
|
|
5415
|
-
for (const e of normalized) forwardNormalizedEvent(e);
|
|
5416
|
-
});
|
|
5417
|
-
driver.on("error", (err) => {
|
|
5418
|
-
log(`[serve] driver error: ${err.message}`);
|
|
5419
|
-
sendEvent({ type: "error", message: err.message, fatal: true });
|
|
5420
|
-
});
|
|
5434
|
+
await entry.adapter.drainRuntimeNodes(entry.handle);
|
|
5435
|
+
const execution = entry.adapter.getExecution(entry.handle);
|
|
5436
|
+
if (execution.done || execution.status === "failed" || execution.status === "cancelled") {
|
|
5437
|
+
return;
|
|
5421
5438
|
}
|
|
5439
|
+
if (!entry.adapter.shouldDriveAgentTurn(entry.handle, stimulus)) return;
|
|
5440
|
+
const fullPrompt = buildOrchestratorPrompt(entry.flowDef, execution, stimulus);
|
|
5441
|
+
await ensureFlowDriverStarted();
|
|
5422
5442
|
await awaitFlowAgentEnd(fullPrompt, FLOW_TURN_TIMEOUT_MS);
|
|
5423
5443
|
},
|
|
5424
5444
|
log: serverLog
|
|
@@ -5476,9 +5496,23 @@ async function startAgentServer(opts) {
|
|
|
5476
5496
|
}
|
|
5477
5497
|
async function createActiveFlow(flowDef, seedOrExecution) {
|
|
5478
5498
|
const bus = getOrCreateStimulusBus();
|
|
5499
|
+
const nodeExecutor = new SessionNodeExecutor({ workspaceDir: opts.projectDir });
|
|
5500
|
+
const inlineSubFlowRunner = new SessionInlineSubFlowRunner({
|
|
5501
|
+
resolveFlow: (flowId) => loadFlow(resolveFlowPath(flowId, opts.projectDir)),
|
|
5502
|
+
nodeExecutor,
|
|
5503
|
+
driveAgentTurn: async ({ flow, execution, stimulus }) => {
|
|
5504
|
+
await ensureFlowDriverStarted();
|
|
5505
|
+
await awaitFlowAgentEnd(
|
|
5506
|
+
buildOrchestratorPrompt(flow, execution, stimulus),
|
|
5507
|
+
FLOW_TURN_TIMEOUT_MS
|
|
5508
|
+
);
|
|
5509
|
+
}
|
|
5510
|
+
});
|
|
5479
5511
|
const baseOptions = {
|
|
5480
5512
|
stimulusBus: bus,
|
|
5481
|
-
useBusForStimulus: true
|
|
5513
|
+
useBusForStimulus: true,
|
|
5514
|
+
nodeExecutor,
|
|
5515
|
+
inlineSubFlowRunner
|
|
5482
5516
|
};
|
|
5483
5517
|
const options = "execution" in seedOrExecution ? { flow: flowDef, execution: seedOrExecution.execution, ...baseOptions } : { flow: flowDef, seed: seedOrExecution.seed, ...baseOptions };
|
|
5484
5518
|
const seedRunId = "execution" in seedOrExecution ? seedOrExecution.execution.runId : seedOrExecution.seed.runId;
|
|
@@ -5495,6 +5529,7 @@ async function startAgentServer(opts) {
|
|
|
5495
5529
|
});
|
|
5496
5530
|
const adapter = manager.get(connectorId).connector;
|
|
5497
5531
|
const runId = adapter.getExecution(handle).runId;
|
|
5532
|
+
const hydratedStateChanged = "execution" in seedOrExecution && JSON.stringify(adapter.getExecution(handle)) !== JSON.stringify(seedOrExecution.execution);
|
|
5498
5533
|
adapter.onStateChange(handle, (state) => {
|
|
5499
5534
|
sendEvent({
|
|
5500
5535
|
type: "state_changed",
|
|
@@ -5502,7 +5537,7 @@ async function startAgentServer(opts) {
|
|
|
5502
5537
|
state
|
|
5503
5538
|
});
|
|
5504
5539
|
});
|
|
5505
|
-
if ("seed" in seedOrExecution) {
|
|
5540
|
+
if ("seed" in seedOrExecution || hydratedStateChanged) {
|
|
5506
5541
|
sendEvent({
|
|
5507
5542
|
type: "state_changed",
|
|
5508
5543
|
store: `flow:${runId}`,
|
|
@@ -5510,9 +5545,9 @@ async function startAgentServer(opts) {
|
|
|
5510
5545
|
});
|
|
5511
5546
|
}
|
|
5512
5547
|
driver.config.flowTestDriver = {
|
|
5513
|
-
getState: () => adapter.
|
|
5548
|
+
getState: () => adapter.getAgentExecution(handle),
|
|
5514
5549
|
execute: (op, args) => adapter.executeOp(handle, op, args),
|
|
5515
|
-
mandatoryGates: () => adapter.
|
|
5550
|
+
mandatoryGates: () => adapter.getMandatoryAgentApprovalNodeIds(handle)
|
|
5516
5551
|
};
|
|
5517
5552
|
if (agentSession?.driverType === "claude-sdk") {
|
|
5518
5553
|
try {
|
|
@@ -5532,7 +5567,14 @@ async function startAgentServer(opts) {
|
|
|
5532
5567
|
}
|
|
5533
5568
|
}
|
|
5534
5569
|
emitAvailability();
|
|
5535
|
-
const entry = {
|
|
5570
|
+
const entry = {
|
|
5571
|
+
runId,
|
|
5572
|
+
flowDef,
|
|
5573
|
+
adapter,
|
|
5574
|
+
handle,
|
|
5575
|
+
connectorId,
|
|
5576
|
+
hydratedStateChanged
|
|
5577
|
+
};
|
|
5536
5578
|
const pruned = registerActiveFlow(activeFlows, runId, entry);
|
|
5537
5579
|
if (pruned.length > 0) serverLog.debug("pruned terminal flow runs", { runIds: pruned });
|
|
5538
5580
|
flowConnectorReadiness.drain();
|
|
@@ -6107,6 +6149,7 @@ async function startAgentServer(opts) {
|
|
|
6107
6149
|
});
|
|
6108
6150
|
}
|
|
6109
6151
|
async function handlePrompt(cmd) {
|
|
6152
|
+
if (cmd.messageId) sendEvent({ type: "prompt_ack", messageId: cmd.messageId });
|
|
6110
6153
|
if (!await awaitSessionReadyOrFail()) return;
|
|
6111
6154
|
if (!secretsProvisioned) {
|
|
6112
6155
|
log("[serve] prompt received before secrets provisioned \u2014 rejecting");
|
|
@@ -6247,7 +6290,11 @@ async function startAgentServer(opts) {
|
|
|
6247
6290
|
},
|
|
6248
6291
|
createActiveFlow: async (flowDef, seedOrExecution) => {
|
|
6249
6292
|
const entry = await createActiveFlow(flowDef, seedOrExecution);
|
|
6250
|
-
return {
|
|
6293
|
+
return {
|
|
6294
|
+
runId: entry.runId,
|
|
6295
|
+
connectorId: entry.connectorId,
|
|
6296
|
+
hydratedStateChanged: entry.hydratedStateChanged
|
|
6297
|
+
};
|
|
6251
6298
|
},
|
|
6252
6299
|
waitForFlowConnector: (timeoutMs, isSatisfied) => flowConnectorReadiness.wait(timeoutMs, isSatisfied),
|
|
6253
6300
|
connectorWaitMs: flowMutateConnectorWaitMs,
|
|
@@ -6717,5 +6764,5 @@ function touchSession(state) {
|
|
|
6717
6764
|
}
|
|
6718
6765
|
|
|
6719
6766
|
export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createSessionStimulusBus, defineCapability, deleteSession, dispatchRunnerCapabilityInvocation, emitSystemPromptComposed, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, mcpAuthSecretKey, newSession, pickRepointedManager, planFlowMutate, reconcilePendingDecisions, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile };
|
|
6720
|
-
//# sourceMappingURL=chunk-
|
|
6721
|
-
//# sourceMappingURL=chunk-
|
|
6767
|
+
//# sourceMappingURL=chunk-YWPEDILM.js.map
|
|
6768
|
+
//# sourceMappingURL=chunk-YWPEDILM.js.map
|