@playcraft/common 0.0.55 → 0.0.57
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/agent/competitor-report.d.ts +165 -0
- package/dist/agent/competitor-report.d.ts.map +1 -0
- package/dist/agent/competitor-report.js +261 -0
- package/dist/agent/competitor-report.js.map +1 -0
- package/dist/agent/context-usage.d.ts +8 -1
- package/dist/agent/context-usage.d.ts.map +1 -1
- package/dist/agent/context-usage.js +6 -1
- package/dist/agent/context-usage.js.map +1 -1
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/model-context-window.d.ts.map +1 -1
- package/dist/agent/model-context-window.js +40 -4
- package/dist/agent/model-context-window.js.map +1 -1
- package/dist/agent/openai-responses-api.d.ts +18 -0
- package/dist/agent/openai-responses-api.d.ts.map +1 -0
- package/dist/agent/openai-responses-api.js +28 -0
- package/dist/agent/openai-responses-api.js.map +1 -0
- package/dist/agent/reference-images.d.ts +66 -0
- package/dist/agent/reference-images.d.ts.map +1 -0
- package/dist/agent/reference-images.js +181 -0
- package/dist/agent/reference-images.js.map +1 -0
- package/dist/agent/runtime-failure.d.ts +31 -0
- package/dist/agent/runtime-failure.d.ts.map +1 -0
- package/dist/agent/runtime-failure.js +83 -0
- package/dist/agent/runtime-failure.js.map +1 -0
- package/dist/agent/session-title.d.ts +8 -0
- package/dist/agent/session-title.d.ts.map +1 -0
- package/dist/agent/session-title.js +16 -0
- package/dist/agent/session-title.js.map +1 -0
- package/dist/agent/turn.d.ts +8 -0
- package/dist/agent/turn.d.ts.map +1 -0
- package/dist/agent/turn.js +7 -0
- package/dist/agent/turn.js.map +1 -0
- package/dist/agent-jobs/identity.d.ts +8 -0
- package/dist/agent-jobs/identity.d.ts.map +1 -0
- package/dist/agent-jobs/identity.js +32 -0
- package/dist/agent-jobs/identity.js.map +1 -0
- package/dist/agent-jobs/index.d.ts +34 -0
- package/dist/agent-jobs/index.d.ts.map +1 -0
- package/dist/agent-jobs/index.js +39 -0
- package/dist/agent-jobs/index.js.map +1 -0
- package/dist/agent-jobs/legacy-http-gone.d.ts +13 -0
- package/dist/agent-jobs/legacy-http-gone.d.ts.map +1 -0
- package/dist/agent-jobs/legacy-http-gone.js +15 -0
- package/dist/agent-jobs/legacy-http-gone.js.map +1 -0
- package/dist/agent-jobs/legacy-run-task.d.ts +12 -0
- package/dist/agent-jobs/legacy-run-task.d.ts.map +1 -0
- package/dist/agent-jobs/legacy-run-task.js +14 -0
- package/dist/agent-jobs/legacy-run-task.js.map +1 -0
- package/dist/agent-jobs/portal-sandbox-team-mount.d.ts +8 -0
- package/dist/agent-jobs/portal-sandbox-team-mount.d.ts.map +1 -0
- package/dist/agent-jobs/portal-sandbox-team-mount.js +10 -0
- package/dist/agent-jobs/portal-sandbox-team-mount.js.map +1 -0
- package/dist/agent-jobs/runtime-metrics.d.ts +12 -0
- package/dist/agent-jobs/runtime-metrics.d.ts.map +1 -0
- package/dist/agent-jobs/runtime-metrics.js +19 -0
- package/dist/agent-jobs/runtime-metrics.js.map +1 -0
- package/dist/agent-jobs/runtime-timing.d.ts +21 -0
- package/dist/agent-jobs/runtime-timing.d.ts.map +1 -0
- package/dist/agent-jobs/runtime-timing.js +20 -0
- package/dist/agent-jobs/runtime-timing.js.map +1 -0
- package/dist/agent-jobs/runtime-v2.d.ts +8 -0
- package/dist/agent-jobs/runtime-v2.d.ts.map +1 -0
- package/dist/agent-jobs/runtime-v2.js +10 -0
- package/dist/agent-jobs/runtime-v2.js.map +1 -0
- package/dist/agent-messages/db-message-converter.d.ts +61 -0
- package/dist/agent-messages/db-message-converter.d.ts.map +1 -0
- package/dist/agent-messages/db-message-converter.js +478 -0
- package/dist/agent-messages/db-message-converter.js.map +1 -0
- package/dist/agent-messages/index.d.ts +4 -0
- package/dist/agent-messages/index.d.ts.map +1 -0
- package/dist/agent-messages/index.js +4 -0
- package/dist/agent-messages/index.js.map +1 -0
- package/dist/agent-messages/message-merge.d.ts +31 -0
- package/dist/agent-messages/message-merge.d.ts.map +1 -0
- package/dist/agent-messages/message-merge.js +221 -0
- package/dist/agent-messages/message-merge.js.map +1 -0
- package/dist/agent-messages/runtime-user-messages.d.ts +51 -0
- package/dist/agent-messages/runtime-user-messages.d.ts.map +1 -0
- package/dist/agent-messages/runtime-user-messages.js +296 -0
- package/dist/agent-messages/runtime-user-messages.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/prefab/index.d.ts +1 -0
- package/dist/prefab/index.d.ts.map +1 -1
- package/dist/prefab/index.js +1 -0
- package/dist/prefab/index.js.map +1 -1
- package/dist/prefab/schema-condition.d.ts +27 -0
- package/dist/prefab/schema-condition.d.ts.map +1 -0
- package/dist/prefab/schema-condition.js +107 -0
- package/dist/prefab/schema-condition.js.map +1 -0
- package/dist/prefab/schema-walker.d.ts +46 -4
- package/dist/prefab/schema-walker.d.ts.map +1 -1
- package/dist/prefab/schema-walker.js +155 -11
- package/dist/prefab/schema-walker.js.map +1 -1
- package/dist/prefab/types.d.ts +21 -2
- package/dist/prefab/types.d.ts.map +1 -1
- package/dist/recommend/atom-graph/basic-atom-graph.d.ts.map +1 -1
- package/dist/recommend/atom-graph/basic-atom-graph.js +80 -63
- package/dist/recommend/atom-graph/basic-atom-graph.js.map +1 -1
- package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts.map +1 -1
- package/dist/recommend/atom-graph/basic-atom-skill-graph.js +8 -0
- package/dist/recommend/atom-graph/basic-atom-skill-graph.js.map +1 -1
- package/dist/storage/cos.d.ts +4 -4
- package/dist/storage/cos.d.ts.map +1 -1
- package/dist/storage/cos.js +19 -1
- package/dist/storage/cos.js.map +1 -1
- package/dist/storage/interface.d.ts +5 -1
- package/dist/storage/interface.d.ts.map +1 -1
- package/package.json +32 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Independent Cutover switch for legacy Portal Agent HTTP entrypoints.
|
|
3
|
+
*
|
|
4
|
+
* Expand/Migrate keep `/messages`, `/stream`, and orphan recovery serving the
|
|
5
|
+
* old protocol. Cutover sets `PORTAL_AGENT_LEGACY_HTTP_GONE=true` so those
|
|
6
|
+
* routes return HTTP 410 Gone. Default is off so Expand does not break old
|
|
7
|
+
* frontends.
|
|
8
|
+
*
|
|
9
|
+
* This flag is independent of `PORTAL_AGENT_LEGACY_RUN_TASK` (Worker callback
|
|
10
|
+
* path only).
|
|
11
|
+
*/
|
|
12
|
+
export declare function isPortalAgentLegacyHttpGoneEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
13
|
+
//# sourceMappingURL=legacy-http-gone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-http-gone.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/legacy-http-gone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Independent Cutover switch for legacy Portal Agent HTTP entrypoints.
|
|
3
|
+
*
|
|
4
|
+
* Expand/Migrate keep `/messages`, `/stream`, and orphan recovery serving the
|
|
5
|
+
* old protocol. Cutover sets `PORTAL_AGENT_LEGACY_HTTP_GONE=true` so those
|
|
6
|
+
* routes return HTTP 410 Gone. Default is off so Expand does not break old
|
|
7
|
+
* frontends.
|
|
8
|
+
*
|
|
9
|
+
* This flag is independent of `PORTAL_AGENT_LEGACY_RUN_TASK` (Worker callback
|
|
10
|
+
* path only).
|
|
11
|
+
*/
|
|
12
|
+
export function isPortalAgentLegacyHttpGoneEnabled(env = process.env) {
|
|
13
|
+
return env.PORTAL_AGENT_LEGACY_HTTP_GONE === 'true';
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=legacy-http-gone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-http-gone.js","sourceRoot":"","sources":["../../src/agent-jobs/legacy-http-gone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kCAAkC,CAChD,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,6BAA6B,KAAK,MAAM,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legacy `agent` queue + HTTP `internal/run-task` path.
|
|
3
|
+
* Disabled by default after M7 frontend hard-cut to `/turns` + Snapshot/SSE.
|
|
4
|
+
*
|
|
5
|
+
* `PORTAL_AGENT_LEGACY_RUN_TASK=true` restores the old worker callback path only.
|
|
6
|
+
* Legacy user-facing HTTP (`/messages`, `/stream`, orphan recovery) is gated by
|
|
7
|
+
* `PORTAL_AGENT_LEGACY_HTTP_GONE` independently — see `legacy-http-gone.ts`.
|
|
8
|
+
* This flag cannot roll back the V2 frontend; rollback requires redeploying the
|
|
9
|
+
* same `imageTag` for backend, worker, and frontend together.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isPortalAgentLegacyRunTaskEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
12
|
+
//# sourceMappingURL=legacy-run-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-run-task.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/legacy-run-task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legacy `agent` queue + HTTP `internal/run-task` path.
|
|
3
|
+
* Disabled by default after M7 frontend hard-cut to `/turns` + Snapshot/SSE.
|
|
4
|
+
*
|
|
5
|
+
* `PORTAL_AGENT_LEGACY_RUN_TASK=true` restores the old worker callback path only.
|
|
6
|
+
* Legacy user-facing HTTP (`/messages`, `/stream`, orphan recovery) is gated by
|
|
7
|
+
* `PORTAL_AGENT_LEGACY_HTTP_GONE` independently — see `legacy-http-gone.ts`.
|
|
8
|
+
* This flag cannot roll back the V2 frontend; rollback requires redeploying the
|
|
9
|
+
* same `imageTag` for backend, worker, and frontend together.
|
|
10
|
+
*/
|
|
11
|
+
export function isPortalAgentLegacyRunTaskEnabled(env = process.env) {
|
|
12
|
+
return env.PORTAL_AGENT_LEGACY_RUN_TASK === 'true';
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=legacy-run-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-run-task.js","sourceRoot":"","sources":["../../src/agent-jobs/legacy-run-task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal Agent workspace team-shared COS mount gray flag (Checkpoint F).
|
|
3
|
+
*
|
|
4
|
+
* Fail-closed: enabled only when `PORTAL_AGENT_SANDBOX_TEAM_MOUNT_ENABLED=true`.
|
|
5
|
+
* When off, A0 per-user mount-owner guards remain authoritative.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isPortalAgentSandboxTeamMountEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
8
|
+
//# sourceMappingURL=portal-sandbox-team-mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-sandbox-team-mount.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/portal-sandbox-team-mount.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal Agent workspace team-shared COS mount gray flag (Checkpoint F).
|
|
3
|
+
*
|
|
4
|
+
* Fail-closed: enabled only when `PORTAL_AGENT_SANDBOX_TEAM_MOUNT_ENABLED=true`.
|
|
5
|
+
* When off, A0 per-user mount-owner guards remain authoritative.
|
|
6
|
+
*/
|
|
7
|
+
export function isPortalAgentSandboxTeamMountEnabled(env = process.env) {
|
|
8
|
+
return env.PORTAL_AGENT_SANDBOX_TEAM_MOUNT_ENABLED === 'true';
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=portal-sandbox-team-mount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-sandbox-team-mount.js","sourceRoot":"","sources":["../../src/agent-jobs/portal-sandbox-team-mount.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,uCAAuC,KAAK,MAAM,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type AgentRuntimeMetrics = {
|
|
2
|
+
recordGateOccupancy(key: string, occupied: number, limit: number): void;
|
|
3
|
+
recordRenewFailure(scope: 'mutex' | 'gate' | 'lease', key: string): void;
|
|
4
|
+
recordCancelLatency(kind: 'manager' | 'execution', latencyMs: number): void;
|
|
5
|
+
};
|
|
6
|
+
export type AgentRuntimeMetricsLogger = {
|
|
7
|
+
debug?(message: string): void;
|
|
8
|
+
warn(message: string): void;
|
|
9
|
+
};
|
|
10
|
+
export declare const noopAgentRuntimeMetrics: AgentRuntimeMetrics;
|
|
11
|
+
export declare function createLoggingAgentRuntimeMetrics(logger: AgentRuntimeMetricsLogger): AgentRuntimeMetrics;
|
|
12
|
+
//# sourceMappingURL=runtime-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-metrics.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/runtime-metrics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACxE,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzE,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7E,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,mBAIrC,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,GAChC,mBAAmB,CAgBrB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const noopAgentRuntimeMetrics = {
|
|
2
|
+
recordGateOccupancy() { },
|
|
3
|
+
recordRenewFailure() { },
|
|
4
|
+
recordCancelLatency() { },
|
|
5
|
+
};
|
|
6
|
+
export function createLoggingAgentRuntimeMetrics(logger) {
|
|
7
|
+
return {
|
|
8
|
+
recordGateOccupancy(key, occupied, limit) {
|
|
9
|
+
logger.debug?.(`[agent-metrics] gate occupancy key=${key} occupied=${occupied}/${limit}`);
|
|
10
|
+
},
|
|
11
|
+
recordRenewFailure(scope, key) {
|
|
12
|
+
logger.warn(`[agent-metrics] renew failure scope=${scope} key=${key}`);
|
|
13
|
+
},
|
|
14
|
+
recordCancelLatency(kind, latencyMs) {
|
|
15
|
+
logger.debug?.(`[agent-metrics] cancel latency kind=${kind} latencyMs=${latencyMs}`);
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=runtime-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-metrics.js","sourceRoot":"","sources":["../../src/agent-jobs/runtime-metrics.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D,mBAAmB,KAAI,CAAC;IACxB,kBAAkB,KAAI,CAAC;IACvB,mBAAmB,KAAI,CAAC;CACzB,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAC9C,MAAiC;IAEjC,OAAO;QACL,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK;YACtC,MAAM,CAAC,KAAK,EAAE,CACZ,sCAAsC,GAAG,aAAa,QAAQ,IAAI,KAAK,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,kBAAkB,CAAC,KAAK,EAAE,GAAG;YAC3B,MAAM,CAAC,IAAI,CAAC,uCAAuC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,mBAAmB,CAAC,IAAI,EAAE,SAAS;YACjC,MAAM,CAAC,KAAK,EAAE,CACZ,uCAAuC,IAAI,cAAc,SAAS,EAAE,CACrE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Portal Agent V2 timing — BullMQ lockDuration, DB lease, Redis TTL.
|
|
3
|
+
*
|
|
4
|
+
* Invariant: heartbeatIntervalMs * 3 <= dbLeaseMs <= redisSlotTtlMs <= bullmqLockDurationMs
|
|
5
|
+
*/
|
|
6
|
+
export declare const PORTAL_AGENT_DB_LEASE_MS = 120000;
|
|
7
|
+
export declare const PORTAL_AGENT_HEARTBEAT_INTERVAL_MS = 30000;
|
|
8
|
+
export declare const PORTAL_AGENT_REDIS_SLOT_TTL_MS = 120000;
|
|
9
|
+
export declare const PORTAL_AGENT_SESSION_MUTEX_TTL_MS = 120000;
|
|
10
|
+
export declare const PORTAL_AGENT_BULLMQ_LOCK_DURATION_MS = 120000;
|
|
11
|
+
export declare const PORTAL_AGENT_BULLMQ_STALLED_INTERVAL_MS = 120000;
|
|
12
|
+
export type PortalAgentRuntimeTiming = {
|
|
13
|
+
dbLeaseMs: number;
|
|
14
|
+
heartbeatIntervalMs: number;
|
|
15
|
+
redisSlotTtlMs: number;
|
|
16
|
+
sessionMutexTtlMs: number;
|
|
17
|
+
bullmqLockDurationMs: number;
|
|
18
|
+
bullmqStalledIntervalMs: number;
|
|
19
|
+
};
|
|
20
|
+
export declare const PORTAL_AGENT_RUNTIME_TIMING: PortalAgentRuntimeTiming;
|
|
21
|
+
//# sourceMappingURL=runtime-timing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-timing.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/runtime-timing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAChD,eAAO,MAAM,kCAAkC,QAAS,CAAC;AACzD,eAAO,MAAM,8BAA8B,SAAU,CAAC;AACtD,eAAO,MAAM,iCAAiC,SAAU,CAAC;AACzD,eAAO,MAAM,oCAAoC,SAAU,CAAC;AAC5D,eAAO,MAAM,uCAAuC,SAAU,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,wBAOzC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Portal Agent V2 timing — BullMQ lockDuration, DB lease, Redis TTL.
|
|
3
|
+
*
|
|
4
|
+
* Invariant: heartbeatIntervalMs * 3 <= dbLeaseMs <= redisSlotTtlMs <= bullmqLockDurationMs
|
|
5
|
+
*/
|
|
6
|
+
export const PORTAL_AGENT_DB_LEASE_MS = 120_000;
|
|
7
|
+
export const PORTAL_AGENT_HEARTBEAT_INTERVAL_MS = 30_000;
|
|
8
|
+
export const PORTAL_AGENT_REDIS_SLOT_TTL_MS = 120_000;
|
|
9
|
+
export const PORTAL_AGENT_SESSION_MUTEX_TTL_MS = 120_000;
|
|
10
|
+
export const PORTAL_AGENT_BULLMQ_LOCK_DURATION_MS = 120_000;
|
|
11
|
+
export const PORTAL_AGENT_BULLMQ_STALLED_INTERVAL_MS = 120_000;
|
|
12
|
+
export const PORTAL_AGENT_RUNTIME_TIMING = {
|
|
13
|
+
dbLeaseMs: PORTAL_AGENT_DB_LEASE_MS,
|
|
14
|
+
heartbeatIntervalMs: PORTAL_AGENT_HEARTBEAT_INTERVAL_MS,
|
|
15
|
+
redisSlotTtlMs: PORTAL_AGENT_REDIS_SLOT_TTL_MS,
|
|
16
|
+
sessionMutexTtlMs: PORTAL_AGENT_SESSION_MUTEX_TTL_MS,
|
|
17
|
+
bullmqLockDurationMs: PORTAL_AGENT_BULLMQ_LOCK_DURATION_MS,
|
|
18
|
+
bullmqStalledIntervalMs: PORTAL_AGENT_BULLMQ_STALLED_INTERVAL_MS,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=runtime-timing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-timing.js","sourceRoot":"","sources":["../../src/agent-jobs/runtime-timing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC;AACzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,iCAAiC,GAAG,OAAO,CAAC;AACzD,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC;AAC5D,MAAM,CAAC,MAAM,uCAAuC,GAAG,OAAO,CAAC;AAW/D,MAAM,CAAC,MAAM,2BAA2B,GAA6B;IACnE,SAAS,EAAE,wBAAwB;IACnC,mBAAmB,EAAE,kCAAkC;IACvD,cAAc,EAAE,8BAA8B;IAC9C,iBAAiB,EAAE,iCAAiC;IACpD,oBAAoB,EAAE,oCAAoC;IAC1D,uBAAuB,EAAE,uCAAuC;CACjE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal Agent V2 (Version 2, 第二版) runtime producer/consumer gate.
|
|
3
|
+
*
|
|
4
|
+
* Fail-closed Expand default: enabled only when `PORTAL_AGENT_RUNTIME_V2=true`.
|
|
5
|
+
* Unset or any other value keeps V2 producers/consumers off until Cutover.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isPortalAgentRuntimeV2Enabled(env?: NodeJS.ProcessEnv): boolean;
|
|
8
|
+
//# sourceMappingURL=runtime-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-v2.d.ts","sourceRoot":"","sources":["../../src/agent-jobs/runtime-v2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal Agent V2 (Version 2, 第二版) runtime producer/consumer gate.
|
|
3
|
+
*
|
|
4
|
+
* Fail-closed Expand default: enabled only when `PORTAL_AGENT_RUNTIME_V2=true`.
|
|
5
|
+
* Unset or any other value keeps V2 producers/consumers off until Cutover.
|
|
6
|
+
*/
|
|
7
|
+
export function isPortalAgentRuntimeV2Enabled(env = process.env) {
|
|
8
|
+
return env.PORTAL_AGENT_RUNTIME_V2 === 'true';
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=runtime-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-v2.js","sourceRoot":"","sources":["../../src/agent-jobs/runtime-v2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
export type DbMessageRow = {
|
|
3
|
+
role: string;
|
|
4
|
+
content: unknown;
|
|
5
|
+
messageId?: string;
|
|
6
|
+
agentId?: string | null;
|
|
7
|
+
agentName?: string | null;
|
|
8
|
+
createdAt?: string;
|
|
9
|
+
reasoningContent?: string | null;
|
|
10
|
+
messageFormat?: string | null;
|
|
11
|
+
};
|
|
12
|
+
export type AgentUIMessage = UIMessage & {
|
|
13
|
+
_agentId?: string;
|
|
14
|
+
_agentName?: string;
|
|
15
|
+
/** ISO timestamp from DB row; used for chat bubble time display. */
|
|
16
|
+
_createdAt?: string;
|
|
17
|
+
/** Persisted manager turn failure — render as inline timeline error, not session banner. */
|
|
18
|
+
_runError?: boolean;
|
|
19
|
+
runId?: string;
|
|
20
|
+
};
|
|
21
|
+
type ContentBlock = {
|
|
22
|
+
type: 'text';
|
|
23
|
+
text: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'reasoning';
|
|
26
|
+
text: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'tool-call';
|
|
29
|
+
toolCallId: string;
|
|
30
|
+
toolName: string;
|
|
31
|
+
input?: unknown;
|
|
32
|
+
args?: unknown;
|
|
33
|
+
} | {
|
|
34
|
+
type: 'tool-result';
|
|
35
|
+
toolCallId: string;
|
|
36
|
+
toolName?: string;
|
|
37
|
+
result?: unknown;
|
|
38
|
+
output?: unknown;
|
|
39
|
+
isError?: boolean;
|
|
40
|
+
};
|
|
41
|
+
export declare function parseContentBlocks(content: unknown): ContentBlock[];
|
|
42
|
+
export declare function unwrapAiSdkToolOutput(raw: unknown): unknown;
|
|
43
|
+
/**
|
|
44
|
+
* Split Manager messages at `spawn_executor` boundaries for chronological bubbles.
|
|
45
|
+
*
|
|
46
|
+
* One Manager turn is a single UIMessage with many parts (plan → spawn →
|
|
47
|
+
* "started" text). Rendering that as one bubble looks like later content was
|
|
48
|
+
* merged into an earlier bubble. Split into:
|
|
49
|
+
* pre (up to & including spawn) → tail (post-spawn text) → sub-agent
|
|
50
|
+
* so time order is: Manager announces → Manager follow-up → PM asks.
|
|
51
|
+
*
|
|
52
|
+
* (Older order was pre → sub → tail, which put PM questions above Manager's
|
|
53
|
+
* "production started" text.)
|
|
54
|
+
*/
|
|
55
|
+
export declare function interleaveSpawnMessages(messages: AgentUIMessage[]): AgentUIMessage[];
|
|
56
|
+
/** Convert legacy DB rows to AgentUIMessage list (manager + sub-agent). */
|
|
57
|
+
export declare function dbRowsToAgentUiMessages(rows: DbMessageRow[]): AgentUIMessage[];
|
|
58
|
+
/** Manager-only rows → flat UIMessage[] (no sub-agent interleaving). */
|
|
59
|
+
export declare function dbRowsToManagerUiMessages(rows: DbMessageRow[]): UIMessage[];
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=db-message-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-message-converter.d.ts","sourceRoot":"","sources":["../../src/agent-messages/db-message-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,IAAI,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAMN,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAgBnE;AAwCD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8B3D;AAuPD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAoFpF;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAgE9E;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAmB3E"}
|