quidproquo-core 0.1.24 → 0.1.25

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.
Files changed (37) hide show
  1. package/lib/commonjs/actions/ai/askAiPrompt.d.ts +12 -0
  2. package/lib/commonjs/actions/ai/askAiPrompt.js +3 -0
  3. package/lib/commonjs/actions/ai/askAiPrompt.js.map +1 -1
  4. package/lib/commonjs/actions/ai/askAiPromptStream.d.ts +12 -0
  5. package/lib/commonjs/actions/ai/askAiPromptStream.js +3 -0
  6. package/lib/commonjs/actions/ai/askAiPromptStream.js.map +1 -1
  7. package/lib/commonjs/actions/system/SystemActionType.d.ts +1 -0
  8. package/lib/commonjs/actions/system/SystemActionType.js +1 -0
  9. package/lib/commonjs/actions/system/SystemActionType.js.map +1 -1
  10. package/lib/commonjs/actions/system/askGetRuntimeRemainingTime.d.ts +7 -0
  11. package/lib/commonjs/actions/system/askGetRuntimeRemainingTime.js +14 -0
  12. package/lib/commonjs/actions/system/askGetRuntimeRemainingTime.js.map +1 -0
  13. package/lib/commonjs/actions/system/index.d.ts +1 -0
  14. package/lib/commonjs/actions/system/index.js +1 -0
  15. package/lib/commonjs/actions/system/index.js.map +1 -1
  16. package/lib/commonjs/config/settings/storageDrive.d.ts +2 -0
  17. package/lib/commonjs/config/settings/storageDrive.js +2 -1
  18. package/lib/commonjs/config/settings/storageDrive.js.map +1 -1
  19. package/lib/esm/actions/ai/askAiPrompt.d.ts +12 -0
  20. package/lib/esm/actions/ai/askAiPrompt.js +3 -0
  21. package/lib/esm/actions/ai/askAiPrompt.js.map +1 -1
  22. package/lib/esm/actions/ai/askAiPromptStream.d.ts +12 -0
  23. package/lib/esm/actions/ai/askAiPromptStream.js +3 -0
  24. package/lib/esm/actions/ai/askAiPromptStream.js.map +1 -1
  25. package/lib/esm/actions/system/SystemActionType.d.ts +1 -0
  26. package/lib/esm/actions/system/SystemActionType.js +1 -0
  27. package/lib/esm/actions/system/SystemActionType.js.map +1 -1
  28. package/lib/esm/actions/system/askGetRuntimeRemainingTime.d.ts +7 -0
  29. package/lib/esm/actions/system/askGetRuntimeRemainingTime.js +11 -0
  30. package/lib/esm/actions/system/askGetRuntimeRemainingTime.js.map +1 -0
  31. package/lib/esm/actions/system/index.d.ts +1 -0
  32. package/lib/esm/actions/system/index.js +1 -0
  33. package/lib/esm/actions/system/index.js.map +1 -1
  34. package/lib/esm/config/settings/storageDrive.d.ts +2 -0
  35. package/lib/esm/config/settings/storageDrive.js +1 -0
  36. package/lib/esm/config/settings/storageDrive.js.map +1 -1
  37. package/package.json +2 -2
@@ -8,6 +8,15 @@ export type AskAiPromptOptions = {
8
8
  messages?: AiMessage[];
9
9
  reasoning?: AiReasoningConfig;
10
10
  caching?: boolean;
11
+ /** Stop the tool loop between steps once this much wall-clock time has passed. The
12
+ * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */
13
+ maxDurationMs?: number;
14
+ /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops
15
+ * (or `maxDurationMs` trips); client-side tools still halt it immediately. */
16
+ maxSteps?: number;
17
+ /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a
18
+ * large tool input plus reasoning can exceed; the step then finishes with `length`. */
19
+ maxOutputTokens?: number;
11
20
  };
12
21
  export interface AiPromptActionResult {
13
22
  text: string;
@@ -20,4 +29,7 @@ export declare const askAiPrompt: import("../../types").ActionRequesterFunction<
20
29
  aiName: string | undefined;
21
30
  reasoning: AiReasoningConfig | undefined;
22
31
  caching: boolean | undefined;
32
+ maxDurationMs: number | undefined;
33
+ maxSteps: number | undefined;
34
+ maxOutputTokens: number | undefined;
23
35
  }, AiPromptActionResult, never>;
@@ -13,6 +13,9 @@ exports.askAiPrompt = (0, types_1.createActionRequester)()({
13
13
  aiName: options === null || options === void 0 ? void 0 : options.aiName,
14
14
  reasoning: options === null || options === void 0 ? void 0 : options.reasoning,
15
15
  caching: options === null || options === void 0 ? void 0 : options.caching,
16
+ maxDurationMs: options === null || options === void 0 ? void 0 : options.maxDurationMs,
17
+ maxSteps: options === null || options === void 0 ? void 0 : options.maxSteps,
18
+ maxOutputTokens: options === null || options === void 0 ? void 0 : options.maxOutputTokens,
16
19
  }),
17
20
  });
18
21
  //# sourceMappingURL=askAiPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"askAiPrompt.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPrompt.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,iDAA8C;AAiBjC,QAAA,WAAW,GAAG,IAAA,6BAAqB,GAAwB,CAAC;IACvE,UAAU,EAAE,2BAAY,CAAC,MAAM;IAC/B,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;KAC1B,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\n\nexport type AskAiPromptOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n};\n\nexport interface AiPromptActionResult {\n text: string;\n}\n\nexport const askAiPrompt = createActionRequester<AiPromptActionResult>()({\n actionType: AiActionType.Prompt,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n }),\n});\n"]}
1
+ {"version":3,"file":"askAiPrompt.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPrompt.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,iDAA8C;AA0BjC,QAAA,WAAW,GAAG,IAAA,6BAAqB,GAAwB,CAAC;IACvE,UAAU,EAAE,2BAAY,CAAC,MAAM;IAC/B,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;QACzB,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;QACrC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;KAC1C,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\n\nexport type AskAiPromptOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n /** Stop the tool loop between steps once this much wall-clock time has passed. The\n * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */\n maxDurationMs?: number;\n /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops\n * (or `maxDurationMs` trips); client-side tools still halt it immediately. */\n maxSteps?: number;\n /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a\n * large tool input plus reasoning can exceed; the step then finishes with `length`. */\n maxOutputTokens?: number;\n};\n\nexport interface AiPromptActionResult {\n text: string;\n}\n\nexport const askAiPrompt = createActionRequester<AiPromptActionResult>()({\n actionType: AiActionType.Prompt,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n maxDurationMs: options?.maxDurationMs,\n maxSteps: options?.maxSteps,\n maxOutputTokens: options?.maxOutputTokens,\n }),\n});\n"]}
@@ -10,6 +10,15 @@ export type AskAiPromptStreamOptions = {
10
10
  messages?: AiMessage[];
11
11
  reasoning?: AiReasoningConfig;
12
12
  caching?: boolean;
13
+ /** Stop the tool loop between steps once this much wall-clock time has passed. The
14
+ * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */
15
+ maxDurationMs?: number;
16
+ /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops
17
+ * (or `maxDurationMs` trips); client-side tools still halt it immediately. */
18
+ maxSteps?: number;
19
+ /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a
20
+ * large tool input plus reasoning can exceed; the step then finishes with `length`. */
21
+ maxOutputTokens?: number;
13
22
  };
14
23
  export declare const askAiPromptStream: import("../../types").ActionRequesterFunction<AiActionType.PromptStream, [model: AiModel, prompt: string, options?: AskAiPromptStreamOptions | undefined], {
15
24
  model: AiModel;
@@ -19,4 +28,7 @@ export declare const askAiPromptStream: import("../../types").ActionRequesterFun
19
28
  aiName: string | undefined;
20
29
  reasoning: AiReasoningConfig | undefined;
21
30
  caching: boolean | undefined;
31
+ maxDurationMs: number | undefined;
32
+ maxSteps: number | undefined;
33
+ maxOutputTokens: number | undefined;
22
34
  }, StreamHandle<"json", AiStreamPart>, never>;
@@ -13,6 +13,9 @@ exports.askAiPromptStream = (0, types_1.createActionRequester)()({
13
13
  aiName: options === null || options === void 0 ? void 0 : options.aiName,
14
14
  reasoning: options === null || options === void 0 ? void 0 : options.reasoning,
15
15
  caching: options === null || options === void 0 ? void 0 : options.caching,
16
+ maxDurationMs: options === null || options === void 0 ? void 0 : options.maxDurationMs,
17
+ maxSteps: options === null || options === void 0 ? void 0 : options.maxSteps,
18
+ maxOutputTokens: options === null || options === void 0 ? void 0 : options.maxOutputTokens,
16
19
  }),
17
20
  });
18
21
  //# sourceMappingURL=askAiPromptStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"askAiPromptStream.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPromptStream.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD,iDAA8C;AAcjC,QAAA,iBAAiB,GAAG,IAAA,6BAAqB,GAAsC,CAAC;IAC3F,UAAU,EAAE,2BAAY,CAAC,YAAY;IACrC,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAAkC,EAAE,EAAE,CAAC,CAAC;QACnF,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;KAC1B,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { StreamHandle } from '../../types/StreamRegistry';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\nimport { AiStreamPart } from './types';\n\nexport type AskAiPromptStreamOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n};\n\nexport const askAiPromptStream = createActionRequester<StreamHandle<'json', AiStreamPart>>()({\n actionType: AiActionType.PromptStream,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptStreamOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n }),\n});\n"]}
1
+ {"version":3,"file":"askAiPromptStream.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPromptStream.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD,iDAA8C;AAuBjC,QAAA,iBAAiB,GAAG,IAAA,6BAAqB,GAAsC,CAAC;IAC3F,UAAU,EAAE,2BAAY,CAAC,YAAY;IACrC,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAAkC,EAAE,EAAE,CAAC,CAAC;QACnF,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;QACvB,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;QACzB,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;QACrC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAC3B,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;KAC1C,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { StreamHandle } from '../../types/StreamRegistry';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\nimport { AiStreamPart } from './types';\n\nexport type AskAiPromptStreamOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n /** Stop the tool loop between steps once this much wall-clock time has passed. The\n * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */\n maxDurationMs?: number;\n /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops\n * (or `maxDurationMs` trips); client-side tools still halt it immediately. */\n maxSteps?: number;\n /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a\n * large tool input plus reasoning can exceed; the step then finishes with `length`. */\n maxOutputTokens?: number;\n};\n\nexport const askAiPromptStream = createActionRequester<StreamHandle<'json', AiStreamPart>>()({\n actionType: AiActionType.PromptStream,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptStreamOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n maxDurationMs: options?.maxDurationMs,\n maxSteps: options?.maxSteps,\n maxOutputTokens: options?.maxOutputTokens,\n }),\n});\n"]}
@@ -2,5 +2,6 @@ export declare enum SystemActionType {
2
2
  Batch = "@quidproquo-core/System/Batch",
3
3
  ExecuteStory = "@quidproquo-core/System/ExecuteStory",
4
4
  GetRuntimeCorrelation = "@quidproquo-core/System/GetRuntimeCorrelation",
5
+ GetRuntimeRemainingTime = "@quidproquo-core/System/GetRuntimeRemainingTime",
5
6
  TraceStory = "@quidproquo-core/System/TraceStory"
6
7
  }
@@ -11,6 +11,7 @@ var SystemActionType;
11
11
  SystemActionType["Batch"] = "@quidproquo-core/System/Batch";
12
12
  SystemActionType["ExecuteStory"] = "@quidproquo-core/System/ExecuteStory";
13
13
  SystemActionType["GetRuntimeCorrelation"] = "@quidproquo-core/System/GetRuntimeCorrelation";
14
+ SystemActionType["GetRuntimeRemainingTime"] = "@quidproquo-core/System/GetRuntimeRemainingTime";
14
15
  // Only node runtimes implement a processor (V8-inspector based log replay tracing)
15
16
  SystemActionType["TraceStory"] = "@quidproquo-core/System/TraceStory";
16
17
  // This isn't needed as its just a hybrid runtime method for SystemBatch
@@ -1 +1 @@
1
- {"version":3,"file":"SystemActionType.js","sourceRoot":"","sources":["../../../../src/actions/system/SystemActionType.ts"],"names":[],"mappings":";AAAA,sFAAsF;AACtF,2EAA2E;AAC3E,EAAE;AACF,2BAA2B;AAC3B,EAAE;;;AAEF,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,yEAAqD,CAAA;IACrD,2FAAuE,CAAA;IAEvE,mFAAmF;IACnF,qEAAiD,CAAA;IAEjD,wEAAwE;IACxE,uDAAuD;AACzD,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B","sourcesContent":["// NOTE: The following actions have no platform specific processors and/or requestors\n// and therefore do not need to implement a SystemActionProcessor.ts\n//\n// * SystemActionType.Batch\n//\n\nexport enum SystemActionType {\n Batch = '@quidproquo-core/System/Batch',\n ExecuteStory = '@quidproquo-core/System/ExecuteStory',\n GetRuntimeCorrelation = '@quidproquo-core/System/GetRuntimeCorrelation',\n\n // Only node runtimes implement a processor (V8-inspector based log replay tracing)\n TraceStory = '@quidproquo-core/System/TraceStory',\n\n // This isn't needed as its just a hybrid runtime method for SystemBatch\n // RunParallel = '@quidproquo-core/System/RunParallel',\n}\n"]}
1
+ {"version":3,"file":"SystemActionType.js","sourceRoot":"","sources":["../../../../src/actions/system/SystemActionType.ts"],"names":[],"mappings":";AAAA,sFAAsF;AACtF,2EAA2E;AAC3E,EAAE;AACF,2BAA2B;AAC3B,EAAE;;;AAEF,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,yEAAqD,CAAA;IACrD,2FAAuE,CAAA;IACvE,+FAA2E,CAAA;IAE3E,mFAAmF;IACnF,qEAAiD,CAAA;IAEjD,wEAAwE;IACxE,uDAAuD;AACzD,CAAC,EAXW,gBAAgB,gCAAhB,gBAAgB,QAW3B","sourcesContent":["// NOTE: The following actions have no platform specific processors and/or requestors\n// and therefore do not need to implement a SystemActionProcessor.ts\n//\n// * SystemActionType.Batch\n//\n\nexport enum SystemActionType {\n Batch = '@quidproquo-core/System/Batch',\n ExecuteStory = '@quidproquo-core/System/ExecuteStory',\n GetRuntimeCorrelation = '@quidproquo-core/System/GetRuntimeCorrelation',\n GetRuntimeRemainingTime = '@quidproquo-core/System/GetRuntimeRemainingTime',\n\n // Only node runtimes implement a processor (V8-inspector based log replay tracing)\n TraceStory = '@quidproquo-core/System/TraceStory',\n\n // This isn't needed as its just a hybrid runtime method for SystemBatch\n // RunParallel = '@quidproquo-core/System/RunParallel',\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { SystemActionType } from './SystemActionType';
2
+ /**
3
+ * Milliseconds left before the platform kills the current execution. Long loops
4
+ * (agentic AI turns, batch sweeps) check this between steps and hand off before the
5
+ * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.
6
+ */
7
+ export declare const askGetRuntimeRemainingTime: import("../../types").ActionRequesterFunction<SystemActionType.GetRuntimeRemainingTime, [], undefined, number, never>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.askGetRuntimeRemainingTime = void 0;
4
+ const types_1 = require("../../types");
5
+ const SystemActionType_1 = require("./SystemActionType");
6
+ /**
7
+ * Milliseconds left before the platform kills the current execution. Long loops
8
+ * (agentic AI turns, batch sweeps) check this between steps and hand off before the
9
+ * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.
10
+ */
11
+ exports.askGetRuntimeRemainingTime = (0, types_1.createActionRequester)()({
12
+ actionType: SystemActionType_1.SystemActionType.GetRuntimeRemainingTime,
13
+ });
14
+ //# sourceMappingURL=askGetRuntimeRemainingTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askGetRuntimeRemainingTime.js","sourceRoot":"","sources":["../../../../src/actions/system/askGetRuntimeRemainingTime.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,yDAAsD;AAEtD;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,IAAA,6BAAqB,GAAU,CAAC;IACxE,UAAU,EAAE,mCAAgB,CAAC,uBAAuB;CACrD,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { SystemActionType } from './SystemActionType';\n\n/**\n * Milliseconds left before the platform kills the current execution. Long loops\n * (agentic AI turns, batch sweeps) check this between steps and hand off before the\n * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.\n */\nexport const askGetRuntimeRemainingTime = createActionRequester<number>()({\n actionType: SystemActionType.GetRuntimeRemainingTime,\n});\n"]}
@@ -1,6 +1,7 @@
1
1
  export * from './askBatch';
2
2
  export * from './askExecuteStory';
3
3
  export * from './askGetRuntimeCorrelation';
4
+ export * from './askGetRuntimeRemainingTime';
4
5
  export * from './askParallelDEPRECATED';
5
6
  export * from './askTraceStory';
6
7
  export * from './SystemActionType';
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./askBatch"), exports);
18
18
  __exportStar(require("./askExecuteStory"), exports);
19
19
  __exportStar(require("./askGetRuntimeCorrelation"), exports);
20
+ __exportStar(require("./askGetRuntimeRemainingTime"), exports);
20
21
  __exportStar(require("./askParallelDEPRECATED"), exports);
21
22
  __exportStar(require("./askTraceStory"), exports);
22
23
  __exportStar(require("./SystemActionType"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/system/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,oDAAkC;AAClC,6DAA2C;AAC3C,0DAAwC;AACxC,kDAAgC;AAChC,qDAAmC","sourcesContent":["export * from './askBatch';\nexport * from './askExecuteStory';\nexport * from './askGetRuntimeCorrelation';\nexport * from './askParallelDEPRECATED';\nexport * from './askTraceStory';\nexport * from './SystemActionType';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/system/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,oDAAkC;AAClC,6DAA2C;AAC3C,+DAA6C;AAC7C,0DAAwC;AACxC,kDAAgC;AAChC,qDAAmC","sourcesContent":["export * from './askBatch';\nexport * from './askExecuteStory';\nexport * from './askGetRuntimeCorrelation';\nexport * from './askGetRuntimeRemainingTime';\nexport * from './askParallelDEPRECATED';\nexport * from './askTraceStory';\nexport * from './SystemActionType';\n"]}
@@ -78,6 +78,7 @@ export interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvanced
78
78
  onEvent?: StorageDriveEvents;
79
79
  lifecycleRules?: StorageDriveLifecycleRule[];
80
80
  encryption?: boolean;
81
+ lockedDown?: boolean;
81
82
  owner?: CrossModuleOwner<'storageDriveName'>;
82
83
  }
83
84
  export interface StorageDriveQPQConfigSetting extends QPQConfigSetting {
@@ -87,5 +88,6 @@ export interface StorageDriveQPQConfigSetting extends QPQConfigSetting {
87
88
  onEvent?: StorageDriveEvents;
88
89
  lifecycleRules?: StorageDriveLifecycleRule[];
89
90
  encryption: boolean;
91
+ lockedDown: boolean;
90
92
  }
91
93
  export declare const defineStorageDrive: (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings) => StorageDriveQPQConfigSetting;
@@ -56,7 +56,7 @@ var StorageDriveTier;
56
56
  StorageDriveTier["SMART_TIERING"] = "SMART_TIERING";
57
57
  })(StorageDriveTier || (exports.StorageDriveTier = StorageDriveTier = {}));
58
58
  const defineStorageDrive = (storageDrive, options) => {
59
- var _a, _b;
59
+ var _a, _b, _c;
60
60
  return ({
61
61
  configSettingType: QPQConfig_1.QPQCoreConfigSettingType.storageDrive,
62
62
  uniqueKey: storageDrive,
@@ -66,6 +66,7 @@ const defineStorageDrive = (storageDrive, options) => {
66
66
  onEvent: options === null || options === void 0 ? void 0 : options.onEvent,
67
67
  lifecycleRules: options === null || options === void 0 ? void 0 : options.lifecycleRules,
68
68
  encryption: (_b = options === null || options === void 0 ? void 0 : options.encryption) !== null && _b !== void 0 ? _b : false,
69
+ lockedDown: (_c = options === null || options === void 0 ? void 0 : options.lockedDown) !== null && _c !== void 0 ? _c : false,
69
70
  owner: (0, crossModuleUtils_1.convertCrossModuleOwnerToGenericResourceNameOverride)(options === null || options === void 0 ? void 0 : options.owner),
70
71
  });
71
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"storageDrive.js","sourceRoot":"","sources":["../../../../src/config/settings/storageDrive.ts"],"names":[],"mappings":";;;AACA,4CAAqG;AACrG,gEAAiG;AAEjG;;GAEG;AACH,IAAY,gBAqDX;AArDD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,uCAAmB,CAAA;IAEnB;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;OAIG;IACH,mFAA+D,CAAA;IAE/D;;;;;OAKG;IACH,iDAA6B,CAAA;IAE7B;;;;;OAKG;IACH,+EAA2D,CAAA;IAE3D;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,mDAA+B,CAAA;AACjC,CAAC,EArDW,gBAAgB,gCAAhB,gBAAgB,QAqD3B;AAuDM,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,OAA+C,EAAgC,EAAE;;IAAC,OAAA,CAAC;QAC1I,iBAAiB,EAAE,oCAAwB,CAAC,YAAY;QACxD,SAAS,EAAE,YAAY;QAEvB,YAAY;QAEZ,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAE3B,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,KAAK;QAEhC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;QAEzB,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;QAEvC,UAAU,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,KAAK;QAExC,KAAK,EAAE,IAAA,uEAAoD,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;KAC5E,CAAC,CAAA;CAAA,CAAC;AAjBU,QAAA,kBAAkB,sBAiB5B","sourcesContent":["import { CrossModuleOwner, QpqFunctionRuntime } from '../../types';\nimport { QPQConfigAdvancedSettings, QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\nimport { convertCrossModuleOwnerToGenericResourceNameOverride } from '../utils/crossModuleUtils';\n\n/**\n * Represents different storage tiers for a \"storageDrive\".\n */\nexport enum StorageDriveTier {\n /**\n * Standard storage tier suitable for frequently accessed data.\n * (Reference: AWS S3 Standard)\n */\n REGULAR = 'REGULAR',\n\n /**\n * Storage tier optimized for data that is accessed less frequently,\n * but requires rapid access when needed. Lower availability compared\n * to the REGULAR tier.\n * (Reference: AWS S3 Infrequent Access)\n */\n OCCASIONAL_ACCESS = 'OCCASIONAL_ACCESS',\n\n /**\n * Optimized for infrequently accessed data stored in a single zone.\n * Lower availability compared to OCCASIONAL_ACCESS tier.\n * (Reference: AWS S3 One Zone-Infrequent Access)\n */\n SINGLE_ZONE_OCCASIONAL_ACCESS = 'SINGLE_ZONE_OCCASIONAL_ACCESS',\n\n /**\n * Cold storage tier suitable for long-term archival. Data retrieval\n * can take between minutes to hours. A cost-effective solution for\n * archival purposes where prompt data retrieval isn't crucial.\n * (Reference: AWS S3 Glacier)\n */\n COLD_STORAGE = 'COLD_STORAGE',\n\n /**\n * Cold storage tier optimized for long-term archival, but with the advantage\n * of immediate data access (in milliseconds). Ideal for data that might be\n * accessed once or twice per quarter.\n * (Reference: AWS S3 Glacier Instant Retrieval)\n */\n COLD_STORAGE_INSTANT_ACCESS = 'COLD_STORAGE_INSTANT_ACCESS',\n\n /**\n * Extremely cold storage suitable for data that's rarely accessed.\n * Data retrieval might take up to 12 hours. This offers the lowest\n * storage cost at the expense of retrieval time.\n * (Reference: AWS S3 Glacier Deep Archive)\n */\n DEEP_COLD_STORAGE = 'DEEP_COLD_STORAGE',\n\n /**\n * Dynamic storage tier designed to auto-optimize costs by moving data\n * between frequently and infrequently accessed tiers based on access patterns.\n * Ideal for long-lived data with unpredictable access patterns.\n * (Reference: AWS S3 Intelligent Tiering)\n */\n SMART_TIERING = 'SMART_TIERING',\n}\n\nexport type StorageDriveTransition = { storageDriveTier: StorageDriveTier } & (\n | {\n transitionAfterDays: number;\n transitionDate?: never;\n }\n | {\n transitionAfterDays?: never;\n transitionDate: string;\n }\n);\n\nexport type StorageDriveLifecycleRule = {\n prefix?: string;\n transitions?: StorageDriveTransition[];\n deleteAfterDays?: number;\n fileSizeLessThan?: number;\n fileSizeGreaterThan?: number;\n enabled?: boolean;\n\n // TODO: If we ever add versions\n // add noncurrentVersionExpiration / noncurrentVersionTransitions support\n};\n\nexport interface StorageDriveEvents {\n create?: QpqFunctionRuntime;\n delete?: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvancedSettings {\n copyPath?: string;\n global?: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption?: boolean;\n\n owner?: CrossModuleOwner<'storageDriveName'>;\n}\n\nexport interface StorageDriveQPQConfigSetting extends QPQConfigSetting {\n storageDrive: string;\n copyPath?: string;\n global: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption: boolean;\n}\n\nexport const defineStorageDrive = (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings): StorageDriveQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.storageDrive,\n uniqueKey: storageDrive,\n\n storageDrive,\n\n copyPath: options?.copyPath,\n\n global: options?.global ?? false,\n\n onEvent: options?.onEvent,\n\n lifecycleRules: options?.lifecycleRules,\n\n encryption: options?.encryption ?? false,\n\n owner: convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n});\n"]}
1
+ {"version":3,"file":"storageDrive.js","sourceRoot":"","sources":["../../../../src/config/settings/storageDrive.ts"],"names":[],"mappings":";;;AACA,4CAAqG;AACrG,gEAAiG;AAEjG;;GAEG;AACH,IAAY,gBAqDX;AArDD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,uCAAmB,CAAA;IAEnB;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;OAIG;IACH,mFAA+D,CAAA;IAE/D;;;;;OAKG;IACH,iDAA6B,CAAA;IAE7B;;;;;OAKG;IACH,+EAA2D,CAAA;IAE3D;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,mDAA+B,CAAA;AACjC,CAAC,EArDW,gBAAgB,gCAAhB,gBAAgB,QAqD3B;AA4DM,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,OAA+C,EAAgC,EAAE;;IAAC,OAAA,CAAC;QAC1I,iBAAiB,EAAE,oCAAwB,CAAC,YAAY;QACxD,SAAS,EAAE,YAAY;QAEvB,YAAY;QAEZ,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QAE3B,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,KAAK;QAEhC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;QAEzB,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;QAEvC,UAAU,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,KAAK;QACxC,UAAU,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,KAAK;QAExC,KAAK,EAAE,IAAA,uEAAoD,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;KAC5E,CAAC,CAAA;CAAA,CAAC;AAlBU,QAAA,kBAAkB,sBAkB5B","sourcesContent":["import { CrossModuleOwner, QpqFunctionRuntime } from '../../types';\nimport { QPQConfigAdvancedSettings, QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\nimport { convertCrossModuleOwnerToGenericResourceNameOverride } from '../utils/crossModuleUtils';\n\n/**\n * Represents different storage tiers for a \"storageDrive\".\n */\nexport enum StorageDriveTier {\n /**\n * Standard storage tier suitable for frequently accessed data.\n * (Reference: AWS S3 Standard)\n */\n REGULAR = 'REGULAR',\n\n /**\n * Storage tier optimized for data that is accessed less frequently,\n * but requires rapid access when needed. Lower availability compared\n * to the REGULAR tier.\n * (Reference: AWS S3 Infrequent Access)\n */\n OCCASIONAL_ACCESS = 'OCCASIONAL_ACCESS',\n\n /**\n * Optimized for infrequently accessed data stored in a single zone.\n * Lower availability compared to OCCASIONAL_ACCESS tier.\n * (Reference: AWS S3 One Zone-Infrequent Access)\n */\n SINGLE_ZONE_OCCASIONAL_ACCESS = 'SINGLE_ZONE_OCCASIONAL_ACCESS',\n\n /**\n * Cold storage tier suitable for long-term archival. Data retrieval\n * can take between minutes to hours. A cost-effective solution for\n * archival purposes where prompt data retrieval isn't crucial.\n * (Reference: AWS S3 Glacier)\n */\n COLD_STORAGE = 'COLD_STORAGE',\n\n /**\n * Cold storage tier optimized for long-term archival, but with the advantage\n * of immediate data access (in milliseconds). Ideal for data that might be\n * accessed once or twice per quarter.\n * (Reference: AWS S3 Glacier Instant Retrieval)\n */\n COLD_STORAGE_INSTANT_ACCESS = 'COLD_STORAGE_INSTANT_ACCESS',\n\n /**\n * Extremely cold storage suitable for data that's rarely accessed.\n * Data retrieval might take up to 12 hours. This offers the lowest\n * storage cost at the expense of retrieval time.\n * (Reference: AWS S3 Glacier Deep Archive)\n */\n DEEP_COLD_STORAGE = 'DEEP_COLD_STORAGE',\n\n /**\n * Dynamic storage tier designed to auto-optimize costs by moving data\n * between frequently and infrequently accessed tiers based on access patterns.\n * Ideal for long-lived data with unpredictable access patterns.\n * (Reference: AWS S3 Intelligent Tiering)\n */\n SMART_TIERING = 'SMART_TIERING',\n}\n\nexport type StorageDriveTransition = { storageDriveTier: StorageDriveTier } & (\n | {\n transitionAfterDays: number;\n transitionDate?: never;\n }\n | {\n transitionAfterDays?: never;\n transitionDate: string;\n }\n);\n\nexport type StorageDriveLifecycleRule = {\n prefix?: string;\n transitions?: StorageDriveTransition[];\n deleteAfterDays?: number;\n fileSizeLessThan?: number;\n fileSizeGreaterThan?: number;\n enabled?: boolean;\n\n // TODO: If we ever add versions\n // add noncurrentVersionExpiration / noncurrentVersionTransitions support\n};\n\nexport interface StorageDriveEvents {\n create?: QpqFunctionRuntime;\n delete?: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvancedSettings {\n copyPath?: string;\n global?: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption?: boolean;\n\n // Only the owning service's runtime role may read objects. Every other principal in the\n // account, humans included, is denied at the bucket; writes and listing are unaffected.\n lockedDown?: boolean;\n\n owner?: CrossModuleOwner<'storageDriveName'>;\n}\n\nexport interface StorageDriveQPQConfigSetting extends QPQConfigSetting {\n storageDrive: string;\n copyPath?: string;\n global: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption: boolean;\n lockedDown: boolean;\n}\n\nexport const defineStorageDrive = (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings): StorageDriveQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.storageDrive,\n uniqueKey: storageDrive,\n\n storageDrive,\n\n copyPath: options?.copyPath,\n\n global: options?.global ?? false,\n\n onEvent: options?.onEvent,\n\n lifecycleRules: options?.lifecycleRules,\n\n encryption: options?.encryption ?? false,\n lockedDown: options?.lockedDown ?? false,\n\n owner: convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n});\n"]}
@@ -8,6 +8,15 @@ export type AskAiPromptOptions = {
8
8
  messages?: AiMessage[];
9
9
  reasoning?: AiReasoningConfig;
10
10
  caching?: boolean;
11
+ /** Stop the tool loop between steps once this much wall-clock time has passed. The
12
+ * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */
13
+ maxDurationMs?: number;
14
+ /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops
15
+ * (or `maxDurationMs` trips); client-side tools still halt it immediately. */
16
+ maxSteps?: number;
17
+ /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a
18
+ * large tool input plus reasoning can exceed; the step then finishes with `length`. */
19
+ maxOutputTokens?: number;
11
20
  };
12
21
  export interface AiPromptActionResult {
13
22
  text: string;
@@ -20,4 +29,7 @@ export declare const askAiPrompt: import("../../types").ActionRequesterFunction<
20
29
  aiName: string | undefined;
21
30
  reasoning: AiReasoningConfig | undefined;
22
31
  caching: boolean | undefined;
32
+ maxDurationMs: number | undefined;
33
+ maxSteps: number | undefined;
34
+ maxOutputTokens: number | undefined;
23
35
  }, AiPromptActionResult, never>;
@@ -10,6 +10,9 @@ export const askAiPrompt = createActionRequester()({
10
10
  aiName: options?.aiName,
11
11
  reasoning: options?.reasoning,
12
12
  caching: options?.caching,
13
+ maxDurationMs: options?.maxDurationMs,
14
+ maxSteps: options?.maxSteps,
15
+ maxOutputTokens: options?.maxOutputTokens,
13
16
  }),
14
17
  });
15
18
  //# sourceMappingURL=askAiPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"askAiPrompt.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiB9C,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,EAAwB,CAAC;IACvE,UAAU,EAAE,YAAY,CAAC,MAAM;IAC/B,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\n\nexport type AskAiPromptOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n};\n\nexport interface AiPromptActionResult {\n text: string;\n}\n\nexport const askAiPrompt = createActionRequester<AiPromptActionResult>()({\n actionType: AiActionType.Prompt,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n }),\n});\n"]}
1
+ {"version":3,"file":"askAiPrompt.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA0B9C,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,EAAwB,CAAC;IACvE,UAAU,EAAE,YAAY,CAAC,MAAM;IAC/B,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE,CAAC,CAAC;QAC7E,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,eAAe,EAAE,OAAO,EAAE,eAAe;KAC1C,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\n\nexport type AskAiPromptOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n /** Stop the tool loop between steps once this much wall-clock time has passed. The\n * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */\n maxDurationMs?: number;\n /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops\n * (or `maxDurationMs` trips); client-side tools still halt it immediately. */\n maxSteps?: number;\n /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a\n * large tool input plus reasoning can exceed; the step then finishes with `length`. */\n maxOutputTokens?: number;\n};\n\nexport interface AiPromptActionResult {\n text: string;\n}\n\nexport const askAiPrompt = createActionRequester<AiPromptActionResult>()({\n actionType: AiActionType.Prompt,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n maxDurationMs: options?.maxDurationMs,\n maxSteps: options?.maxSteps,\n maxOutputTokens: options?.maxOutputTokens,\n }),\n});\n"]}
@@ -10,6 +10,15 @@ export type AskAiPromptStreamOptions = {
10
10
  messages?: AiMessage[];
11
11
  reasoning?: AiReasoningConfig;
12
12
  caching?: boolean;
13
+ /** Stop the tool loop between steps once this much wall-clock time has passed. The
14
+ * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */
15
+ maxDurationMs?: number;
16
+ /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops
17
+ * (or `maxDurationMs` trips); client-side tools still halt it immediately. */
18
+ maxSteps?: number;
19
+ /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a
20
+ * large tool input plus reasoning can exceed; the step then finishes with `length`. */
21
+ maxOutputTokens?: number;
13
22
  };
14
23
  export declare const askAiPromptStream: import("../../types").ActionRequesterFunction<AiActionType.PromptStream, [model: AiModel, prompt: string, options?: AskAiPromptStreamOptions | undefined], {
15
24
  model: AiModel;
@@ -19,4 +28,7 @@ export declare const askAiPromptStream: import("../../types").ActionRequesterFun
19
28
  aiName: string | undefined;
20
29
  reasoning: AiReasoningConfig | undefined;
21
30
  caching: boolean | undefined;
31
+ maxDurationMs: number | undefined;
32
+ maxSteps: number | undefined;
33
+ maxOutputTokens: number | undefined;
22
34
  }, StreamHandle<"json", AiStreamPart>, never>;
@@ -10,6 +10,9 @@ export const askAiPromptStream = createActionRequester()({
10
10
  aiName: options?.aiName,
11
11
  reasoning: options?.reasoning,
12
12
  caching: options?.caching,
13
+ maxDurationMs: options?.maxDurationMs,
14
+ maxSteps: options?.maxSteps,
15
+ maxOutputTokens: options?.maxOutputTokens,
13
16
  }),
14
17
  });
15
18
  //# sourceMappingURL=askAiPromptStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"askAiPromptStream.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPromptStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAc9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,EAAsC,CAAC;IAC3F,UAAU,EAAE,YAAY,CAAC,YAAY;IACrC,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAAkC,EAAE,EAAE,CAAC,CAAC;QACnF,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { StreamHandle } from '../../types/StreamRegistry';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\nimport { AiStreamPart } from './types';\n\nexport type AskAiPromptStreamOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n};\n\nexport const askAiPromptStream = createActionRequester<StreamHandle<'json', AiStreamPart>>()({\n actionType: AiActionType.PromptStream,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptStreamOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n }),\n});\n"]}
1
+ {"version":3,"file":"askAiPromptStream.js","sourceRoot":"","sources":["../../../../src/actions/ai/askAiPromptStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAuB9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,EAAsC,CAAC;IAC3F,UAAU,EAAE,YAAY,CAAC,YAAY;IACrC,UAAU,EAAE,CAAC,KAAc,EAAE,MAAc,EAAE,OAAkC,EAAE,EAAE,CAAC,CAAC;QACnF,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,eAAe,EAAE,OAAO,EAAE,eAAe;KAC1C,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { StreamHandle } from '../../types/StreamRegistry';\nimport { AiActionType } from './AiActionType';\nimport { AiMessage } from './AiMessage';\nimport { AiModel } from './AiModel';\nimport { AiReasoningConfig } from './AiReasoningConfig';\nimport { AiStreamPart } from './types';\n\nexport type AskAiPromptStreamOptions = {\n system?: string;\n aiName?: string;\n messages?: AiMessage[];\n reasoning?: AiReasoningConfig;\n caching?: boolean;\n /** Stop the tool loop between steps once this much wall-clock time has passed. The\n * turn then finishes with `toolCalls` if the model still wanted to act, so it can be resumed. */\n maxDurationMs?: number;\n /** Cap on model/tool steps in one call. Unset means the loop runs until the model stops\n * (or `maxDurationMs` trips); client-side tools still halt it immediately. */\n maxSteps?: number;\n /** Output token cap per model call. Unset uses the provider default (8192 on Bedrock), which a\n * large tool input plus reasoning can exceed; the step then finishes with `length`. */\n maxOutputTokens?: number;\n};\n\nexport const askAiPromptStream = createActionRequester<StreamHandle<'json', AiStreamPart>>()({\n actionType: AiActionType.PromptStream,\n getPayload: (model: AiModel, prompt: string, options?: AskAiPromptStreamOptions) => ({\n model,\n prompt,\n messages: options?.messages,\n system: options?.system,\n aiName: options?.aiName,\n reasoning: options?.reasoning,\n caching: options?.caching,\n maxDurationMs: options?.maxDurationMs,\n maxSteps: options?.maxSteps,\n maxOutputTokens: options?.maxOutputTokens,\n }),\n});\n"]}
@@ -2,5 +2,6 @@ export declare enum SystemActionType {
2
2
  Batch = "@quidproquo-core/System/Batch",
3
3
  ExecuteStory = "@quidproquo-core/System/ExecuteStory",
4
4
  GetRuntimeCorrelation = "@quidproquo-core/System/GetRuntimeCorrelation",
5
+ GetRuntimeRemainingTime = "@quidproquo-core/System/GetRuntimeRemainingTime",
5
6
  TraceStory = "@quidproquo-core/System/TraceStory"
6
7
  }
@@ -8,6 +8,7 @@ export var SystemActionType;
8
8
  SystemActionType["Batch"] = "@quidproquo-core/System/Batch";
9
9
  SystemActionType["ExecuteStory"] = "@quidproquo-core/System/ExecuteStory";
10
10
  SystemActionType["GetRuntimeCorrelation"] = "@quidproquo-core/System/GetRuntimeCorrelation";
11
+ SystemActionType["GetRuntimeRemainingTime"] = "@quidproquo-core/System/GetRuntimeRemainingTime";
11
12
  // Only node runtimes implement a processor (V8-inspector based log replay tracing)
12
13
  SystemActionType["TraceStory"] = "@quidproquo-core/System/TraceStory";
13
14
  // This isn't needed as its just a hybrid runtime method for SystemBatch
@@ -1 +1 @@
1
- {"version":3,"file":"SystemActionType.js","sourceRoot":"","sources":["../../../../src/actions/system/SystemActionType.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,2EAA2E;AAC3E,EAAE;AACF,2BAA2B;AAC3B,EAAE;AAEF,MAAM,CAAN,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,yEAAqD,CAAA;IACrD,2FAAuE,CAAA;IAEvE,mFAAmF;IACnF,qEAAiD,CAAA;IAEjD,wEAAwE;IACxE,uDAAuD;AACzD,CAAC,EAVW,gBAAgB,KAAhB,gBAAgB,QAU3B","sourcesContent":["// NOTE: The following actions have no platform specific processors and/or requestors\n// and therefore do not need to implement a SystemActionProcessor.ts\n//\n// * SystemActionType.Batch\n//\n\nexport enum SystemActionType {\n Batch = '@quidproquo-core/System/Batch',\n ExecuteStory = '@quidproquo-core/System/ExecuteStory',\n GetRuntimeCorrelation = '@quidproquo-core/System/GetRuntimeCorrelation',\n\n // Only node runtimes implement a processor (V8-inspector based log replay tracing)\n TraceStory = '@quidproquo-core/System/TraceStory',\n\n // This isn't needed as its just a hybrid runtime method for SystemBatch\n // RunParallel = '@quidproquo-core/System/RunParallel',\n}\n"]}
1
+ {"version":3,"file":"SystemActionType.js","sourceRoot":"","sources":["../../../../src/actions/system/SystemActionType.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,2EAA2E;AAC3E,EAAE;AACF,2BAA2B;AAC3B,EAAE;AAEF,MAAM,CAAN,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,yEAAqD,CAAA;IACrD,2FAAuE,CAAA;IACvE,+FAA2E,CAAA;IAE3E,mFAAmF;IACnF,qEAAiD,CAAA;IAEjD,wEAAwE;IACxE,uDAAuD;AACzD,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B","sourcesContent":["// NOTE: The following actions have no platform specific processors and/or requestors\n// and therefore do not need to implement a SystemActionProcessor.ts\n//\n// * SystemActionType.Batch\n//\n\nexport enum SystemActionType {\n Batch = '@quidproquo-core/System/Batch',\n ExecuteStory = '@quidproquo-core/System/ExecuteStory',\n GetRuntimeCorrelation = '@quidproquo-core/System/GetRuntimeCorrelation',\n GetRuntimeRemainingTime = '@quidproquo-core/System/GetRuntimeRemainingTime',\n\n // Only node runtimes implement a processor (V8-inspector based log replay tracing)\n TraceStory = '@quidproquo-core/System/TraceStory',\n\n // This isn't needed as its just a hybrid runtime method for SystemBatch\n // RunParallel = '@quidproquo-core/System/RunParallel',\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { SystemActionType } from './SystemActionType';
2
+ /**
3
+ * Milliseconds left before the platform kills the current execution. Long loops
4
+ * (agentic AI turns, batch sweeps) check this between steps and hand off before the
5
+ * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.
6
+ */
7
+ export declare const askGetRuntimeRemainingTime: import("../../types").ActionRequesterFunction<SystemActionType.GetRuntimeRemainingTime, [], undefined, number, never>;
@@ -0,0 +1,11 @@
1
+ import { createActionRequester } from '../../types';
2
+ import { SystemActionType } from './SystemActionType';
3
+ /**
4
+ * Milliseconds left before the platform kills the current execution. Long loops
5
+ * (agentic AI turns, batch sweeps) check this between steps and hand off before the
6
+ * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.
7
+ */
8
+ export const askGetRuntimeRemainingTime = createActionRequester()({
9
+ actionType: SystemActionType.GetRuntimeRemainingTime,
10
+ });
11
+ //# sourceMappingURL=askGetRuntimeRemainingTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askGetRuntimeRemainingTime.js","sourceRoot":"","sources":["../../../../src/actions/system/askGetRuntimeRemainingTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,EAAU,CAAC;IACxE,UAAU,EAAE,gBAAgB,CAAC,uBAAuB;CACrD,CAAC,CAAC","sourcesContent":["import { createActionRequester } from '../../types';\nimport { SystemActionType } from './SystemActionType';\n\n/**\n * Milliseconds left before the platform kills the current execution. Long loops\n * (agentic AI turns, batch sweeps) check this between steps and hand off before the\n * hard cutoff. Runtimes with no execution limit return Number.MAX_SAFE_INTEGER.\n */\nexport const askGetRuntimeRemainingTime = createActionRequester<number>()({\n actionType: SystemActionType.GetRuntimeRemainingTime,\n});\n"]}
@@ -1,6 +1,7 @@
1
1
  export * from './askBatch';
2
2
  export * from './askExecuteStory';
3
3
  export * from './askGetRuntimeCorrelation';
4
+ export * from './askGetRuntimeRemainingTime';
4
5
  export * from './askParallelDEPRECATED';
5
6
  export * from './askTraceStory';
6
7
  export * from './SystemActionType';
@@ -1,6 +1,7 @@
1
1
  export * from './askBatch';
2
2
  export * from './askExecuteStory';
3
3
  export * from './askGetRuntimeCorrelation';
4
+ export * from './askGetRuntimeRemainingTime';
4
5
  export * from './askParallelDEPRECATED';
5
6
  export * from './askTraceStory';
6
7
  export * from './SystemActionType';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './askBatch';\nexport * from './askExecuteStory';\nexport * from './askGetRuntimeCorrelation';\nexport * from './askParallelDEPRECATED';\nexport * from './askTraceStory';\nexport * from './SystemActionType';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './askBatch';\nexport * from './askExecuteStory';\nexport * from './askGetRuntimeCorrelation';\nexport * from './askGetRuntimeRemainingTime';\nexport * from './askParallelDEPRECATED';\nexport * from './askTraceStory';\nexport * from './SystemActionType';\n"]}
@@ -78,6 +78,7 @@ export interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvanced
78
78
  onEvent?: StorageDriveEvents;
79
79
  lifecycleRules?: StorageDriveLifecycleRule[];
80
80
  encryption?: boolean;
81
+ lockedDown?: boolean;
81
82
  owner?: CrossModuleOwner<'storageDriveName'>;
82
83
  }
83
84
  export interface StorageDriveQPQConfigSetting extends QPQConfigSetting {
@@ -87,5 +88,6 @@ export interface StorageDriveQPQConfigSetting extends QPQConfigSetting {
87
88
  onEvent?: StorageDriveEvents;
88
89
  lifecycleRules?: StorageDriveLifecycleRule[];
89
90
  encryption: boolean;
91
+ lockedDown: boolean;
90
92
  }
91
93
  export declare const defineStorageDrive: (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings) => StorageDriveQPQConfigSetting;
@@ -61,6 +61,7 @@ export const defineStorageDrive = (storageDrive, options) => ({
61
61
  onEvent: options?.onEvent,
62
62
  lifecycleRules: options?.lifecycleRules,
63
63
  encryption: options?.encryption ?? false,
64
+ lockedDown: options?.lockedDown ?? false,
64
65
  owner: convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),
65
66
  });
66
67
  //# sourceMappingURL=storageDrive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storageDrive.js","sourceRoot":"","sources":["../../../../src/config/settings/storageDrive.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,oDAAoD,EAAE,MAAM,2BAA2B,CAAC;AAEjG;;GAEG;AACH,MAAM,CAAN,IAAY,gBAqDX;AArDD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,uCAAmB,CAAA;IAEnB;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;OAIG;IACH,mFAA+D,CAAA;IAE/D;;;;;OAKG;IACH,iDAA6B,CAAA;IAE7B;;;;;OAKG;IACH,+EAA2D,CAAA;IAE3D;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,mDAA+B,CAAA;AACjC,CAAC,EArDW,gBAAgB,KAAhB,gBAAgB,QAqD3B;AAuDD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,OAA+C,EAAgC,EAAE,CAAC,CAAC;IAC1I,iBAAiB,EAAE,wBAAwB,CAAC,YAAY;IACxD,SAAS,EAAE,YAAY;IAEvB,YAAY;IAEZ,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAE3B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;IAEhC,OAAO,EAAE,OAAO,EAAE,OAAO;IAEzB,cAAc,EAAE,OAAO,EAAE,cAAc;IAEvC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;IAExC,KAAK,EAAE,oDAAoD,CAAC,OAAO,EAAE,KAAK,CAAC;CAC5E,CAAC,CAAC","sourcesContent":["import { CrossModuleOwner, QpqFunctionRuntime } from '../../types';\nimport { QPQConfigAdvancedSettings, QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\nimport { convertCrossModuleOwnerToGenericResourceNameOverride } from '../utils/crossModuleUtils';\n\n/**\n * Represents different storage tiers for a \"storageDrive\".\n */\nexport enum StorageDriveTier {\n /**\n * Standard storage tier suitable for frequently accessed data.\n * (Reference: AWS S3 Standard)\n */\n REGULAR = 'REGULAR',\n\n /**\n * Storage tier optimized for data that is accessed less frequently,\n * but requires rapid access when needed. Lower availability compared\n * to the REGULAR tier.\n * (Reference: AWS S3 Infrequent Access)\n */\n OCCASIONAL_ACCESS = 'OCCASIONAL_ACCESS',\n\n /**\n * Optimized for infrequently accessed data stored in a single zone.\n * Lower availability compared to OCCASIONAL_ACCESS tier.\n * (Reference: AWS S3 One Zone-Infrequent Access)\n */\n SINGLE_ZONE_OCCASIONAL_ACCESS = 'SINGLE_ZONE_OCCASIONAL_ACCESS',\n\n /**\n * Cold storage tier suitable for long-term archival. Data retrieval\n * can take between minutes to hours. A cost-effective solution for\n * archival purposes where prompt data retrieval isn't crucial.\n * (Reference: AWS S3 Glacier)\n */\n COLD_STORAGE = 'COLD_STORAGE',\n\n /**\n * Cold storage tier optimized for long-term archival, but with the advantage\n * of immediate data access (in milliseconds). Ideal for data that might be\n * accessed once or twice per quarter.\n * (Reference: AWS S3 Glacier Instant Retrieval)\n */\n COLD_STORAGE_INSTANT_ACCESS = 'COLD_STORAGE_INSTANT_ACCESS',\n\n /**\n * Extremely cold storage suitable for data that's rarely accessed.\n * Data retrieval might take up to 12 hours. This offers the lowest\n * storage cost at the expense of retrieval time.\n * (Reference: AWS S3 Glacier Deep Archive)\n */\n DEEP_COLD_STORAGE = 'DEEP_COLD_STORAGE',\n\n /**\n * Dynamic storage tier designed to auto-optimize costs by moving data\n * between frequently and infrequently accessed tiers based on access patterns.\n * Ideal for long-lived data with unpredictable access patterns.\n * (Reference: AWS S3 Intelligent Tiering)\n */\n SMART_TIERING = 'SMART_TIERING',\n}\n\nexport type StorageDriveTransition = { storageDriveTier: StorageDriveTier } & (\n | {\n transitionAfterDays: number;\n transitionDate?: never;\n }\n | {\n transitionAfterDays?: never;\n transitionDate: string;\n }\n);\n\nexport type StorageDriveLifecycleRule = {\n prefix?: string;\n transitions?: StorageDriveTransition[];\n deleteAfterDays?: number;\n fileSizeLessThan?: number;\n fileSizeGreaterThan?: number;\n enabled?: boolean;\n\n // TODO: If we ever add versions\n // add noncurrentVersionExpiration / noncurrentVersionTransitions support\n};\n\nexport interface StorageDriveEvents {\n create?: QpqFunctionRuntime;\n delete?: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvancedSettings {\n copyPath?: string;\n global?: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption?: boolean;\n\n owner?: CrossModuleOwner<'storageDriveName'>;\n}\n\nexport interface StorageDriveQPQConfigSetting extends QPQConfigSetting {\n storageDrive: string;\n copyPath?: string;\n global: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption: boolean;\n}\n\nexport const defineStorageDrive = (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings): StorageDriveQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.storageDrive,\n uniqueKey: storageDrive,\n\n storageDrive,\n\n copyPath: options?.copyPath,\n\n global: options?.global ?? false,\n\n onEvent: options?.onEvent,\n\n lifecycleRules: options?.lifecycleRules,\n\n encryption: options?.encryption ?? false,\n\n owner: convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n});\n"]}
1
+ {"version":3,"file":"storageDrive.js","sourceRoot":"","sources":["../../../../src/config/settings/storageDrive.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,oDAAoD,EAAE,MAAM,2BAA2B,CAAC;AAEjG;;GAEG;AACH,MAAM,CAAN,IAAY,gBAqDX;AArDD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,uCAAmB,CAAA;IAEnB;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;OAIG;IACH,mFAA+D,CAAA;IAE/D;;;;;OAKG;IACH,iDAA6B,CAAA;IAE7B;;;;;OAKG;IACH,+EAA2D,CAAA;IAE3D;;;;;OAKG;IACH,2DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,mDAA+B,CAAA;AACjC,CAAC,EArDW,gBAAgB,KAAhB,gBAAgB,QAqD3B;AA4DD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,OAA+C,EAAgC,EAAE,CAAC,CAAC;IAC1I,iBAAiB,EAAE,wBAAwB,CAAC,YAAY;IACxD,SAAS,EAAE,YAAY;IAEvB,YAAY;IAEZ,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAE3B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;IAEhC,OAAO,EAAE,OAAO,EAAE,OAAO;IAEzB,cAAc,EAAE,OAAO,EAAE,cAAc;IAEvC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;IACxC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;IAExC,KAAK,EAAE,oDAAoD,CAAC,OAAO,EAAE,KAAK,CAAC;CAC5E,CAAC,CAAC","sourcesContent":["import { CrossModuleOwner, QpqFunctionRuntime } from '../../types';\nimport { QPQConfigAdvancedSettings, QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\nimport { convertCrossModuleOwnerToGenericResourceNameOverride } from '../utils/crossModuleUtils';\n\n/**\n * Represents different storage tiers for a \"storageDrive\".\n */\nexport enum StorageDriveTier {\n /**\n * Standard storage tier suitable for frequently accessed data.\n * (Reference: AWS S3 Standard)\n */\n REGULAR = 'REGULAR',\n\n /**\n * Storage tier optimized for data that is accessed less frequently,\n * but requires rapid access when needed. Lower availability compared\n * to the REGULAR tier.\n * (Reference: AWS S3 Infrequent Access)\n */\n OCCASIONAL_ACCESS = 'OCCASIONAL_ACCESS',\n\n /**\n * Optimized for infrequently accessed data stored in a single zone.\n * Lower availability compared to OCCASIONAL_ACCESS tier.\n * (Reference: AWS S3 One Zone-Infrequent Access)\n */\n SINGLE_ZONE_OCCASIONAL_ACCESS = 'SINGLE_ZONE_OCCASIONAL_ACCESS',\n\n /**\n * Cold storage tier suitable for long-term archival. Data retrieval\n * can take between minutes to hours. A cost-effective solution for\n * archival purposes where prompt data retrieval isn't crucial.\n * (Reference: AWS S3 Glacier)\n */\n COLD_STORAGE = 'COLD_STORAGE',\n\n /**\n * Cold storage tier optimized for long-term archival, but with the advantage\n * of immediate data access (in milliseconds). Ideal for data that might be\n * accessed once or twice per quarter.\n * (Reference: AWS S3 Glacier Instant Retrieval)\n */\n COLD_STORAGE_INSTANT_ACCESS = 'COLD_STORAGE_INSTANT_ACCESS',\n\n /**\n * Extremely cold storage suitable for data that's rarely accessed.\n * Data retrieval might take up to 12 hours. This offers the lowest\n * storage cost at the expense of retrieval time.\n * (Reference: AWS S3 Glacier Deep Archive)\n */\n DEEP_COLD_STORAGE = 'DEEP_COLD_STORAGE',\n\n /**\n * Dynamic storage tier designed to auto-optimize costs by moving data\n * between frequently and infrequently accessed tiers based on access patterns.\n * Ideal for long-lived data with unpredictable access patterns.\n * (Reference: AWS S3 Intelligent Tiering)\n */\n SMART_TIERING = 'SMART_TIERING',\n}\n\nexport type StorageDriveTransition = { storageDriveTier: StorageDriveTier } & (\n | {\n transitionAfterDays: number;\n transitionDate?: never;\n }\n | {\n transitionAfterDays?: never;\n transitionDate: string;\n }\n);\n\nexport type StorageDriveLifecycleRule = {\n prefix?: string;\n transitions?: StorageDriveTransition[];\n deleteAfterDays?: number;\n fileSizeLessThan?: number;\n fileSizeGreaterThan?: number;\n enabled?: boolean;\n\n // TODO: If we ever add versions\n // add noncurrentVersionExpiration / noncurrentVersionTransitions support\n};\n\nexport interface StorageDriveEvents {\n create?: QpqFunctionRuntime;\n delete?: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStorageDriveSettings extends QPQConfigAdvancedSettings {\n copyPath?: string;\n global?: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption?: boolean;\n\n // Only the owning service's runtime role may read objects. Every other principal in the\n // account, humans included, is denied at the bucket; writes and listing are unaffected.\n lockedDown?: boolean;\n\n owner?: CrossModuleOwner<'storageDriveName'>;\n}\n\nexport interface StorageDriveQPQConfigSetting extends QPQConfigSetting {\n storageDrive: string;\n copyPath?: string;\n global: boolean;\n\n onEvent?: StorageDriveEvents;\n\n lifecycleRules?: StorageDriveLifecycleRule[];\n\n encryption: boolean;\n lockedDown: boolean;\n}\n\nexport const defineStorageDrive = (storageDrive: string, options?: QPQConfigAdvancedStorageDriveSettings): StorageDriveQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.storageDrive,\n uniqueKey: storageDrive,\n\n storageDrive,\n\n copyPath: options?.copyPath,\n\n global: options?.global ?? false,\n\n onEvent: options?.onEvent,\n\n lifecycleRules: options?.lifecycleRules,\n\n encryption: options?.encryption ?? false,\n lockedDown: options?.lockedDown ?? false,\n\n owner: convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quidproquo-core",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "description": "",
5
5
  "main": "./lib/commonjs/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -36,7 +36,7 @@
36
36
  "homepage": "https://github.com/qpqjs/quidproquo#readme",
37
37
  "devDependencies": {
38
38
  "@types/node": "^24.2.1",
39
- "quidproquo-tsconfig": "0.1.24",
39
+ "quidproquo-tsconfig": "0.1.25",
40
40
  "typescript": "^5.8.2"
41
41
  },
42
42
  "dependencies": {