deepline 0.3.308 → 0.3.310
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/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +67 -14
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +4 -1
- package/dist/bundling-sources/shared_libs/plays/share/static-pipeline-summary.ts +97 -22
- package/dist/cli/auth-CP4YBO33.js +31 -0
- package/dist/cli/{auth-ZWX4BF5K.mjs → auth-CS6NQ737.mjs} +4 -4
- package/dist/cli/{billing-H24FGAKE.js → billing-7SIQJUEI.js} +70 -70
- package/dist/cli/{billing-CLV5QRFQ.mjs → billing-SDRP5BYV.mjs} +4 -4
- package/dist/cli/{chunk-WEZVPZPE.js → chunk-4YCPND5A.js} +2 -2
- package/dist/cli/{chunk-O7NNH76S.js → chunk-5VVRQY4Y.js} +6 -6
- package/dist/cli/{chunk-XFYVL7EM.mjs → chunk-7L27LIZO.mjs} +2 -2
- package/dist/cli/{chunk-ASWZTTKT.mjs → chunk-AV4CJWNP.mjs} +175 -50
- package/dist/cli/{chunk-IFIGQWHC.js → chunk-D3HSRXCJ.js} +6 -6
- package/dist/cli/{chunk-UGTYNMRX.js → chunk-DCUYMHHV.js} +48 -48
- package/dist/cli/{chunk-3GIUCJAT.mjs → chunk-HYACJPRJ.mjs} +1 -1
- package/dist/cli/{chunk-SRZ6XDX3.js → chunk-JVCD2CWD.js} +26 -26
- package/dist/cli/{chunk-GONK2N7U.js → chunk-KKAAKV77.js} +1 -1
- package/dist/cli/{chunk-CXU7ME5X.mjs → chunk-LUJGLZCJ.mjs} +2 -2
- package/dist/cli/{chunk-T3P4NRZU.mjs → chunk-M4KGWEN2.mjs} +1 -1
- package/dist/cli/{chunk-GBFIAI4L.js → chunk-MWY35HT3.js} +250 -125
- package/dist/cli/{chunk-ZHHF24O5.js → chunk-N2VXH4GK.js} +15 -15
- package/dist/cli/{chunk-HGI6RGHB.mjs → chunk-NKRSVEP4.mjs} +1 -1
- package/dist/cli/{chunk-XSDL3NHZ.mjs → chunk-NXFFT73P.mjs} +3 -3
- package/dist/cli/{chunk-ABMGEW3C.mjs → chunk-OJWZADOG.mjs} +1 -1
- package/dist/cli/{chunk-TH3YBIJT.js → chunk-PNNFR4L5.js} +6 -6
- package/dist/cli/{chunk-QTCFSRGC.js → chunk-QARMMLYE.js} +4 -4
- package/dist/cli/{chunk-YEJMVAD3.js → chunk-RYO6353O.js} +6 -6
- package/dist/cli/{chunk-JUAVGRD7.mjs → chunk-T25I3M2J.mjs} +6 -6
- package/dist/cli/{chunk-YSZSERRZ.mjs → chunk-VN7Y4LVH.mjs} +1 -1
- package/dist/cli/{chunk-BPD7TR27.mjs → chunk-XOIOZ5JA.mjs} +2 -2
- package/dist/cli/{client-A5ILG5GT.mjs → client-G7HWPY6S.mjs} +3 -3
- package/dist/cli/client-MIVDO6SP.js +20 -0
- package/dist/cli/{csv-NZ7KAYEF.mjs → csv-4JIXNZ6J.mjs} +3 -3
- package/dist/cli/{csv-VSSAAXFX.js → csv-6GDEDRY6.js} +12 -12
- package/dist/cli/{db-ICLEBSNO.js → db-MXNCRZNY.js} +20 -20
- package/dist/cli/{db-YSAJUBLD.mjs → db-TGAQ7XWX.mjs} +4 -4
- package/dist/cli/{executions-XCAJB5TF.js → executions-VEBKTUFZ.js} +6 -6
- package/dist/cli/{executions-MUJRAT5R.mjs → executions-XSGG4VCW.mjs} +4 -4
- package/dist/cli/{feedback-DBZMBHZG.js → feedback-GI3Q4RGW.js} +6 -6
- package/dist/cli/{feedback-6C7Y2SCJ.mjs → feedback-PY4ZCKEV.mjs} +3 -3
- package/dist/cli/git-5KB2XFJ6.js +23 -0
- package/dist/cli/{git-EAH67ITA.mjs → git-7QAK7CKT.mjs} +4 -4
- package/dist/cli/index.js +73 -73
- package/dist/cli/index.mjs +30 -30
- package/dist/cli/{legacy-noops-EJTOLTVO.js → legacy-noops-2VT7K2VQ.js} +7 -7
- package/dist/cli/{legacy-noops-O5INQP6Q.mjs → legacy-noops-KCG3YZCN.mjs} +4 -4
- package/dist/cli/{monitors-5OYO2DPJ.js → monitors-7CLNZE7C.js} +85 -85
- package/dist/cli/{monitors-SBBBMUFY.mjs → monitors-GTIHVO56.mjs} +4 -4
- package/dist/cli/{org-Z7LTOL3H.mjs → org-FCPAM7NW.mjs} +4 -4
- package/dist/cli/{org-SJRPJG42.js → org-HTA6MXVO.js} +60 -60
- package/dist/cli/{play-VQJ6ABZ2.js → play-Q5SVL5MG.js} +220 -220
- package/dist/cli/{play-2JTIEOZM.mjs → play-YO22ZNSN.mjs} +6 -6
- package/dist/cli/{providers-MX4CV2EH.mjs → providers-25X5A5JC.mjs} +4 -4
- package/dist/cli/{providers-43MR5XOV.js → providers-YHWPMW4J.js} +7 -7
- package/dist/cli/{quickstart-A6W3HEE2.js → quickstart-SLE7UMAK.js} +5 -5
- package/dist/cli/{quickstart-Y4YLKRZ3.mjs → quickstart-Z4CXNAQ3.mjs} +3 -3
- package/dist/cli/{search-FRKDLJQG.mjs → search-RQO3ZVKK.mjs} +5 -5
- package/dist/cli/{search-AMUFSAFP.js → search-UBWCREKT.js} +6 -6
- package/dist/cli/{secrets-E4EX7O3J.mjs → secrets-MV6MRXW5.mjs} +4 -4
- package/dist/cli/{secrets-XITHKZW2.js → secrets-N37STTK4.js} +13 -13
- package/dist/cli/{sessions-6YXAUJII.mjs → sessions-4M2BUN2J.mjs} +4 -4
- package/dist/cli/{sessions-6HJFDIR2.js → sessions-KBWZYHNE.js} +5 -5
- package/dist/cli/{settings-LBJSZIET.mjs → settings-EYMOSUED.mjs} +7 -7
- package/dist/cli/{settings-J5NRLCV2.js → settings-OCRYSYWC.js} +74 -74
- package/dist/cli/{setup-2ES4CTO5.js → setup-3UKEGBFB.js} +41 -41
- package/dist/cli/{setup-75FENNVH.mjs → setup-TUVPIGJV.mjs} +6 -6
- package/dist/cli/{skills-XGZDUXW6.mjs → skills-56ADS5BA.mjs} +4 -4
- package/dist/cli/skills-CUWFLZG4.js +28 -0
- package/dist/cli/{tools-2LEKXOGY.mjs → tools-M73P2E7K.mjs} +5 -5
- package/dist/cli/{tools-ZOQOGDKI.js → tools-XSF6FCIM.js} +50 -50
- package/dist/cli/update-QOQRJM2S.js +28 -0
- package/dist/cli/{update-SNK3IN3I.mjs → update-Y6KMCBWD.mjs} +6 -6
- package/dist/cli/{workflow-W3AYTB3J.js → workflow-DHQ3NCVT.js} +15 -15
- package/dist/cli/{workflow-G7ZM3MAC.mjs → workflow-DWKZA4FR.mjs} +5 -5
- package/dist/index.js +6 -6
- package/dist/index.mjs +3 -3
- package/dist/install-integrity.json +68 -68
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli/auth-LWNR7TQB.js +0 -31
- package/dist/cli/client-3J76AMVE.js +0 -20
- package/dist/cli/git-2NSE4WIK.js +0 -23
- package/dist/cli/skills-VLTAVA4K.js +0 -28
- package/dist/cli/update-5CZOVYQT.js +0 -28
|
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
|
|
|
200
200
|
// getters keep their established compatibility behavior.
|
|
201
201
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
202
202
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
203
|
-
version: '0.3.
|
|
203
|
+
version: '0.3.310',
|
|
204
204
|
updateSummary:
|
|
205
205
|
'Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.',
|
|
206
206
|
packageCapabilities: {
|
package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts
CHANGED
|
@@ -379,6 +379,12 @@ async function reconcileAndDeleteTimedOutDaytonaSandbox(input: {
|
|
|
379
379
|
daytona: DaytonaClient;
|
|
380
380
|
sandboxName: string;
|
|
381
381
|
cancellationSignal?: AbortSignal;
|
|
382
|
+
emitStage?: DaytonaStageEmitter;
|
|
383
|
+
operationIdentity?: {
|
|
384
|
+
providerOperationToken: string;
|
|
385
|
+
orgId: string;
|
|
386
|
+
runId?: string;
|
|
387
|
+
};
|
|
382
388
|
}): Promise<TimedOutDaytonaSandboxReconciliation> {
|
|
383
389
|
if (!input.daytona.get) return { kind: 'not_found' };
|
|
384
390
|
let lastDeleteConflict: unknown = null;
|
|
@@ -391,12 +397,26 @@ async function reconcileAndDeleteTimedOutDaytonaSandbox(input: {
|
|
|
391
397
|
try {
|
|
392
398
|
sandbox = await input.daytona.get(input.sandboxName);
|
|
393
399
|
} catch (error) {
|
|
400
|
+
const providerStatus =
|
|
401
|
+
error && typeof error === 'object' && 'statusCode' in error
|
|
402
|
+
? error.statusCode
|
|
403
|
+
: null;
|
|
404
|
+
input.emitStage?.('create:reconcile_lookup_failed', {
|
|
405
|
+
providerStatus:
|
|
406
|
+
typeof providerStatus === 'number' ? providerStatus : null,
|
|
407
|
+
});
|
|
408
|
+
// Invalid provider credentials are not a sandbox state transition.
|
|
409
|
+
if (providerStatus === 401 || providerStatus === 403) throw error;
|
|
394
410
|
// A current absence is not proof that the sent create cannot commit.
|
|
395
411
|
// Return it to the durable operation owner without another create or
|
|
396
412
|
// releasing capacity; later recovery re-reads the same identity.
|
|
397
413
|
if (isDaytonaSandboxNotFound(error)) return { kind: 'not_found' };
|
|
398
414
|
continue;
|
|
399
415
|
}
|
|
416
|
+
input.emitStage?.('create:reconcile_state', {
|
|
417
|
+
sandboxId: sandbox.id,
|
|
418
|
+
state: sandbox.state ?? null,
|
|
419
|
+
});
|
|
400
420
|
// `create` waits only a bounded interval, but the named sandbox may finish
|
|
401
421
|
// the same create transition immediately afterwards. It is already the
|
|
402
422
|
// durable identity associated with this provider operation, so reusing it
|
|
@@ -405,6 +425,26 @@ async function reconcileAndDeleteTimedOutDaytonaSandbox(input: {
|
|
|
405
425
|
if (sandbox.state === 'started') {
|
|
406
426
|
return { kind: 'started', sandbox };
|
|
407
427
|
}
|
|
428
|
+
if (input.operationIdentity) {
|
|
429
|
+
const expected = input.operationIdentity;
|
|
430
|
+
const configuredOrganizationId =
|
|
431
|
+
process.env.DAYTONA_ORGANIZATION_ID?.trim();
|
|
432
|
+
if (
|
|
433
|
+
sandbox.name !== input.sandboxName ||
|
|
434
|
+
sandbox.labels?.source !== DAYTONA_PLAY_RUNNER_LABEL_SOURCE ||
|
|
435
|
+
sandbox.labels?.operationKey !== expected.providerOperationToken ||
|
|
436
|
+
sandbox.labels?.orgId !== normalizeLabelValue(expected.orgId) ||
|
|
437
|
+
(normalizeLabelValue(expected.runId) &&
|
|
438
|
+
sandbox.labels?.runId !== normalizeLabelValue(expected.runId)) ||
|
|
439
|
+
!sandbox.organizationId?.trim() ||
|
|
440
|
+
(configuredOrganizationId &&
|
|
441
|
+
sandbox.organizationId !== configuredOrganizationId)
|
|
442
|
+
) {
|
|
443
|
+
throw new Error(
|
|
444
|
+
'Daytona resumed sandbox identity or organization routing does not match its reserved operation. Cleanup and fallback suppressed.',
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
408
448
|
try {
|
|
409
449
|
await input.daytona.delete(sandbox, 30);
|
|
410
450
|
} catch (error) {
|
|
@@ -474,14 +514,24 @@ async function createRetriedOneShotDaytonaSandbox(input: {
|
|
|
474
514
|
const reservation = await input.reserveSandboxCapacity?.(attempt);
|
|
475
515
|
const sandboxName = daytonaSandboxName(reservation?.providerOperationToken);
|
|
476
516
|
if (reservation?.resumeExistingProviderOperation) {
|
|
477
|
-
if (!
|
|
517
|
+
if (!reservation.providerOperationToken) {
|
|
478
518
|
throw new DaytonaSandboxTransitionPendingError(sandboxName);
|
|
479
519
|
}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
520
|
+
// Recovery must converge when the timed-out create has stopped or failed,
|
|
521
|
+
// using the same provider-confirmed cleanup path as its initial observer.
|
|
522
|
+
const reconciliation = await reconcileAndDeleteTimedOutDaytonaSandbox({
|
|
523
|
+
daytona: input.daytona,
|
|
524
|
+
sandboxName,
|
|
525
|
+
cancellationSignal: input.cancellationSignal,
|
|
526
|
+
emitStage: input.emitStage,
|
|
527
|
+
operationIdentity: {
|
|
528
|
+
providerOperationToken: reservation.providerOperationToken,
|
|
529
|
+
orgId: input.orgId,
|
|
530
|
+
runId: input.context.runId ?? undefined,
|
|
531
|
+
},
|
|
532
|
+
});
|
|
533
|
+
if (reconciliation.kind === 'started') {
|
|
534
|
+
const sandbox = reconciliation.sandbox;
|
|
485
535
|
const acquiredAt = Date.now();
|
|
486
536
|
input.emitStage('create:resumed', {
|
|
487
537
|
attempt,
|
|
@@ -494,15 +544,17 @@ async function createRetriedOneShotDaytonaSandbox(input: {
|
|
|
494
544
|
attemptElapsedMs: acquiredAt - attemptStartedAt,
|
|
495
545
|
sandboxCapacityLeaseId: reservation.leaseId,
|
|
496
546
|
};
|
|
497
|
-
} catch (error) {
|
|
498
|
-
if (error instanceof DaytonaSandboxTransitionPendingError) throw error;
|
|
499
|
-
if (!isDaytonaSandboxNotFound(error)) {
|
|
500
|
-
throw new DaytonaSandboxTransitionPendingError(sandboxName);
|
|
501
|
-
}
|
|
502
|
-
// A lookup 404 does not prove that an earlier sent create cannot still
|
|
503
|
-
// commit. Keep the durable identity reserved; never hedge its outcome.
|
|
504
|
-
throw new DaytonaSandboxTransitionPendingError(sandboxName);
|
|
505
547
|
}
|
|
548
|
+
if (reconciliation.kind === 'deleted') {
|
|
549
|
+
await input.releaseSandboxCapacity?.(reservation.leaseId);
|
|
550
|
+
throw new DaytonaSandboxAcquisitionUnavailableError(
|
|
551
|
+
'daytona_sandbox_start_timeout',
|
|
552
|
+
'The resumed timed-out Daytona sandbox was reconciled and deleted before fallback.',
|
|
553
|
+
);
|
|
554
|
+
}
|
|
555
|
+
// Neither absence nor an ongoing transition proves that create cannot
|
|
556
|
+
// commit. Retain the durable identity and its capacity reservation.
|
|
557
|
+
throw new DaytonaSandboxTransitionPendingError(sandboxName);
|
|
506
558
|
}
|
|
507
559
|
let sandbox: DaytonaSandbox;
|
|
508
560
|
try {
|
|
@@ -551,6 +603,7 @@ async function createRetriedOneShotDaytonaSandbox(input: {
|
|
|
551
603
|
daytona: input.daytona,
|
|
552
604
|
sandboxName,
|
|
553
605
|
cancellationSignal: input.cancellationSignal,
|
|
606
|
+
emitStage: input.emitStage,
|
|
554
607
|
});
|
|
555
608
|
} catch (reconciliationError) {
|
|
556
609
|
await recordCreateFailure();
|
package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts
CHANGED
|
@@ -2271,6 +2271,10 @@ async function settleObservedTerminal(input: {
|
|
|
2271
2271
|
});
|
|
2272
2272
|
return;
|
|
2273
2273
|
}
|
|
2274
|
+
// The terminal and its outbox fact are already committed. Visibility must
|
|
2275
|
+
// not wait for the mixed-version billing repair below; repair still finishes
|
|
2276
|
+
// before this worker retires the attempt.
|
|
2277
|
+
requestTerminalOutboxProjection({ ...input, trigger: input.source });
|
|
2274
2278
|
const backfilledBilling = await input.deps.runWithClient((client) =>
|
|
2275
2279
|
ensurePostgresSchedulerTerminalComputeBillingJob(
|
|
2276
2280
|
client,
|
|
@@ -2288,7 +2292,6 @@ async function settleObservedTerminal(input: {
|
|
|
2288
2292
|
},
|
|
2289
2293
|
);
|
|
2290
2294
|
}
|
|
2291
|
-
requestTerminalOutboxProjection({ ...input, trigger: input.source });
|
|
2292
2295
|
}
|
|
2293
2296
|
|
|
2294
2297
|
/**
|
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
deriveStaticPipelineEntryInputFields,
|
|
8
8
|
flattenStaticPipeline,
|
|
9
9
|
getTopLevelPipelineSubsteps,
|
|
10
|
+
inputFieldFromStaticCsvArg,
|
|
11
|
+
type PlayStaticColumnProducer,
|
|
10
12
|
type PlayStaticPipeline,
|
|
11
13
|
type PlayStaticSubstep,
|
|
12
14
|
} from '../static-pipeline';
|
|
@@ -473,17 +475,49 @@ function publicSubstepBase(
|
|
|
473
475
|
);
|
|
474
476
|
}
|
|
475
477
|
|
|
478
|
+
function projectPublicColumnProducer(
|
|
479
|
+
producer: PlayStaticColumnProducer,
|
|
480
|
+
depth: number,
|
|
481
|
+
maxDepth: number,
|
|
482
|
+
): PlayStaticColumnProducer {
|
|
483
|
+
return {
|
|
484
|
+
id: producer.id,
|
|
485
|
+
kind: producer.kind,
|
|
486
|
+
field: producer.field,
|
|
487
|
+
...(producer.toolId ? { toolId: producer.toolId } : {}),
|
|
488
|
+
...(producer.playId ? { playId: producer.playId } : {}),
|
|
489
|
+
...(producer.conditional !== undefined
|
|
490
|
+
? { conditional: producer.conditional }
|
|
491
|
+
: {}),
|
|
492
|
+
substep: projectPublicSubstep(
|
|
493
|
+
producer.substep,
|
|
494
|
+
maxDepth === Infinity ? depth + 1 : MAX_PUBLIC_SUBSTEP_DEPTH,
|
|
495
|
+
maxDepth,
|
|
496
|
+
),
|
|
497
|
+
...(maxDepth === Infinity && producer.steps
|
|
498
|
+
? {
|
|
499
|
+
steps: producer.steps.map((step) =>
|
|
500
|
+
projectPublicColumnProducer(step, depth + 1, maxDepth),
|
|
501
|
+
),
|
|
502
|
+
}
|
|
503
|
+
: {}),
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
|
|
476
507
|
function projectPublicPipeline(
|
|
477
508
|
pipeline: PlayStaticPipeline,
|
|
478
509
|
depth: number,
|
|
510
|
+
maxDepth = MAX_PUBLIC_SUBSTEP_DEPTH,
|
|
479
511
|
): PlayStaticPipeline {
|
|
512
|
+
const safePipeline = buildAppGraphPipeline(pipeline)!;
|
|
513
|
+
if (maxDepth === Infinity) return safePipeline;
|
|
480
514
|
return {
|
|
481
|
-
...
|
|
482
|
-
stages: (
|
|
483
|
-
projectPublicSubstep(substep, depth),
|
|
515
|
+
...safePipeline,
|
|
516
|
+
stages: (safePipeline.stages ?? []).map((substep) =>
|
|
517
|
+
projectPublicSubstep(substep, depth, maxDepth),
|
|
484
518
|
),
|
|
485
|
-
substeps:
|
|
486
|
-
projectPublicSubstep(substep, depth),
|
|
519
|
+
substeps: safePipeline.substeps.map((substep) =>
|
|
520
|
+
projectPublicSubstep(substep, depth, maxDepth),
|
|
487
521
|
),
|
|
488
522
|
};
|
|
489
523
|
}
|
|
@@ -491,12 +525,21 @@ function projectPublicPipeline(
|
|
|
491
525
|
function projectPublicSubstep(
|
|
492
526
|
substep: PlayStaticSubstep,
|
|
493
527
|
depth: number,
|
|
528
|
+
maxDepth = MAX_PUBLIC_SUBSTEP_DEPTH,
|
|
494
529
|
): PlayStaticSubstep {
|
|
495
530
|
const base = publicSubstepBase(substep);
|
|
496
|
-
const projectChildren = depth <
|
|
531
|
+
const projectChildren = depth < maxDepth;
|
|
497
532
|
const child = (value: PlayStaticSubstep) =>
|
|
498
|
-
projectPublicSubstep(value, depth + 1);
|
|
533
|
+
projectPublicSubstep(value, depth + 1, maxDepth);
|
|
499
534
|
|
|
535
|
+
if (substep.type === 'csv' && maxDepth === Infinity) {
|
|
536
|
+
return {
|
|
537
|
+
...base,
|
|
538
|
+
type: 'csv',
|
|
539
|
+
field: substep.field,
|
|
540
|
+
...(substep.path ? { path: `input.${substep.field}` } : {}),
|
|
541
|
+
} as PlayStaticSubstep;
|
|
542
|
+
}
|
|
500
543
|
if (substep.type === 'dataset') {
|
|
501
544
|
return {
|
|
502
545
|
...base,
|
|
@@ -506,20 +549,9 @@ function projectPublicSubstep(
|
|
|
506
549
|
id: column.id,
|
|
507
550
|
source: column.source,
|
|
508
551
|
...(column.sqlName ? { sqlName: column.sqlName } : {}),
|
|
509
|
-
producers: column.producers.map((producer) =>
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
field: producer.field,
|
|
513
|
-
...(producer.toolId ? { toolId: producer.toolId } : {}),
|
|
514
|
-
...(producer.playId ? { playId: producer.playId } : {}),
|
|
515
|
-
...(producer.conditional !== undefined
|
|
516
|
-
? { conditional: producer.conditional }
|
|
517
|
-
: {}),
|
|
518
|
-
substep: projectPublicSubstep(
|
|
519
|
-
producer.substep,
|
|
520
|
-
MAX_PUBLIC_SUBSTEP_DEPTH,
|
|
521
|
-
),
|
|
522
|
-
})),
|
|
552
|
+
producers: column.producers.map((producer) =>
|
|
553
|
+
projectPublicColumnProducer(producer, depth, maxDepth),
|
|
554
|
+
),
|
|
523
555
|
})),
|
|
524
556
|
steps: projectChildren ? (substep.steps ?? []).map(child) : [],
|
|
525
557
|
} as PlayStaticSubstep;
|
|
@@ -571,7 +603,7 @@ function projectPublicSubstep(
|
|
|
571
603
|
field: substep.field,
|
|
572
604
|
pipeline:
|
|
573
605
|
projectChildren && substep.pipeline
|
|
574
|
-
? projectPublicPipeline(substep.pipeline, depth + 1)
|
|
606
|
+
? projectPublicPipeline(substep.pipeline, depth + 1, maxDepth)
|
|
575
607
|
: null,
|
|
576
608
|
} as PlayStaticSubstep;
|
|
577
609
|
}
|
|
@@ -581,6 +613,10 @@ function projectPublicSubstep(
|
|
|
581
613
|
type: 'play_launch',
|
|
582
614
|
playId: substep.playId,
|
|
583
615
|
field: substep.field,
|
|
616
|
+
pipeline:
|
|
617
|
+
projectChildren && substep.pipeline
|
|
618
|
+
? projectPublicPipeline(substep.pipeline, depth + 1, maxDepth)
|
|
619
|
+
: null,
|
|
584
620
|
} as PlayStaticSubstep;
|
|
585
621
|
}
|
|
586
622
|
return base as PlayStaticSubstep;
|
|
@@ -601,6 +637,45 @@ export function buildPublicSubsteps(
|
|
|
601
637
|
return topLevel.map((substep) => projectPublicSubstep(substep, 0));
|
|
602
638
|
}
|
|
603
639
|
|
|
640
|
+
/** Full structural graph for an authenticated, sandboxed app view. Unlike the
|
|
641
|
+
* share package, this retains nested branches while excluding source locations
|
|
642
|
+
* and raw parameter text. The dashboard and MCP App then use one renderer. */
|
|
643
|
+
export function buildAppGraphPipeline(
|
|
644
|
+
staticPipeline: unknown,
|
|
645
|
+
): PlayStaticPipeline | null {
|
|
646
|
+
const pipeline = asPipeline(staticPipeline);
|
|
647
|
+
if (!pipeline) return null;
|
|
648
|
+
const docflow = buildPublicDocflow(pipeline);
|
|
649
|
+
const csvInput = inputFieldFromStaticCsvArg(pipeline.csvArg);
|
|
650
|
+
return {
|
|
651
|
+
...(docflow ? { docflow } : {}),
|
|
652
|
+
...(pipeline.tableNamespace
|
|
653
|
+
? { tableNamespace: pipeline.tableNamespace }
|
|
654
|
+
: {}),
|
|
655
|
+
...(pipeline.inputFields ? { inputFields: [...pipeline.inputFields] } : {}),
|
|
656
|
+
...(pipeline.csvArg ? { csvArg: `input.${csvInput ?? 'csv'}` } : {}),
|
|
657
|
+
...(pipeline.csvDescription
|
|
658
|
+
? { csvDescription: pipeline.csvDescription }
|
|
659
|
+
: {}),
|
|
660
|
+
...(pipeline.datasetDescription
|
|
661
|
+
? { datasetDescription: pipeline.datasetDescription }
|
|
662
|
+
: {}),
|
|
663
|
+
fields: [...pipeline.fields],
|
|
664
|
+
...(pipeline.returnFields
|
|
665
|
+
? { returnFields: pipeline.returnFields.map((field) => ({ ...field })) }
|
|
666
|
+
: {}),
|
|
667
|
+
stages: (pipeline.stages ?? []).map((substep) =>
|
|
668
|
+
projectPublicSubstep(substep, 0, Infinity),
|
|
669
|
+
),
|
|
670
|
+
substeps: pipeline.substeps.map((substep) =>
|
|
671
|
+
projectPublicSubstep(substep, 0, Infinity),
|
|
672
|
+
),
|
|
673
|
+
...(pipeline.sheetContract
|
|
674
|
+
? { sheetContract: pipeline.sheetContract }
|
|
675
|
+
: {}),
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
|
|
604
679
|
/** Distinct provider names across the full (flattened) pipeline. */
|
|
605
680
|
export function extractProviderNames(staticPipeline: unknown): string[] {
|
|
606
681
|
const pipeline = asPipeline(staticPipeline);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkDCUYMHHVjs = require('./chunk-DCUYMHHV.js');
|
|
13
|
+
require('./chunk-RYO6353O.js');
|
|
14
|
+
require('./chunk-QARMMLYE.js');
|
|
15
|
+
require('./chunk-XNYIZMNQ.js');
|
|
16
|
+
require('./chunk-KKAAKV77.js');
|
|
17
|
+
require('./chunk-7P5AA3SN.js');
|
|
18
|
+
require('./chunk-OG64RBAC.js');
|
|
19
|
+
require('./chunk-COGTRVWW.js');
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
exports.EXIT_WORKSPACE_MISMATCH = _chunkDCUYMHHVjs.EXIT_WORKSPACE_MISMATCH; exports.clearPendingClaim = _chunkDCUYMHHVjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkDCUYMHHVjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkDCUYMHHVjs.handleRegister; exports.handleStatus = _chunkDCUYMHHVjs.handleStatus; exports.handleWait = _chunkDCUYMHHVjs.handleWait; exports.readPendingAuthClaim = _chunkDCUYMHHVjs.readPendingAuthClaim; exports.registerAuthCommands = _chunkDCUYMHHVjs.registerAuthCommands; exports.reportSetupCompleted = _chunkDCUYMHHVjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkDCUYMHHVjs.resolvePendingAuthClaimForResume;
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
registerAuthCommands,
|
|
10
10
|
reportSetupCompleted,
|
|
11
11
|
resolvePendingAuthClaimForResume
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-LUJGLZCJ.mjs";
|
|
13
|
+
import "./chunk-OJWZADOG.mjs";
|
|
14
|
+
import "./chunk-M4KGWEN2.mjs";
|
|
15
15
|
import "./chunk-DLIRSHV6.mjs";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-VN7Y4LVH.mjs";
|
|
17
17
|
import "./chunk-NXGCO4JB.mjs";
|
|
18
18
|
import "./chunk-WZYKRD7T.mjs";
|
|
19
19
|
import "./chunk-KRD6H754.mjs";
|