openryoko 2026.8.28 → 2026.8.29
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/package.json +3 -2
- package/dist/src/cron/validation.d.ts +14 -0
- package/dist/src/cron/validation.d.ts.map +1 -0
- package/dist/src/cron/validation.js +30 -0
- package/dist/src/cron/validation.js.map +1 -0
- package/dist/src/gateway/api.d.ts +3 -0
- package/dist/src/gateway/api.d.ts.map +1 -1
- package/dist/src/gateway/api.js +12 -0
- package/dist/src/gateway/api.js.map +1 -1
- package/dist/src/gateway/compress.d.ts +12 -0
- package/dist/src/gateway/compress.d.ts.map +1 -0
- package/dist/src/gateway/compress.js +39 -0
- package/dist/src/gateway/compress.js.map +1 -0
- package/dist/src/gateway/http-helpers.d.ts +35 -0
- package/dist/src/gateway/http-helpers.d.ts.map +1 -0
- package/dist/src/gateway/http-helpers.js +125 -0
- package/dist/src/gateway/http-helpers.js.map +1 -0
- package/dist/src/gateway/media-type.d.ts +8 -0
- package/dist/src/gateway/media-type.d.ts.map +1 -0
- package/dist/src/gateway/media-type.js +93 -0
- package/dist/src/gateway/media-type.js.map +1 -0
- package/dist/src/gateway/route-helpers.d.ts +45 -0
- package/dist/src/gateway/route-helpers.d.ts.map +1 -0
- package/dist/src/gateway/route-helpers.js +68 -0
- package/dist/src/gateway/route-helpers.js.map +1 -0
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +92 -1
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/workflow-api.d.ts +9 -0
- package/dist/src/gateway/workflow-api.d.ts.map +1 -0
- package/dist/src/gateway/workflow-api.js +393 -0
- package/dist/src/gateway/workflow-api.js.map +1 -0
- package/dist/src/mcp/identity.d.ts +4 -0
- package/dist/src/mcp/identity.d.ts.map +1 -0
- package/dist/src/mcp/identity.js +4 -0
- package/dist/src/mcp/identity.js.map +1 -0
- package/dist/src/sessions/attempt-continuation.d.ts +30 -0
- package/dist/src/sessions/attempt-continuation.d.ts.map +1 -0
- package/dist/src/sessions/attempt-continuation.js +46 -0
- package/dist/src/sessions/attempt-continuation.js.map +1 -0
- package/dist/src/sessions/manager.d.ts +30 -1
- package/dist/src/sessions/manager.d.ts.map +1 -1
- package/dist/src/sessions/manager.js +205 -1
- package/dist/src/sessions/manager.js.map +1 -1
- package/dist/src/sessions/queue.d.ts +1 -1
- package/dist/src/sessions/queue.d.ts.map +1 -1
- package/dist/src/sessions/queue.js +19 -6
- package/dist/src/sessions/queue.js.map +1 -1
- package/dist/src/sessions/registry.d.ts +49 -3
- package/dist/src/sessions/registry.d.ts.map +1 -1
- package/dist/src/sessions/registry.js +248 -10
- package/dist/src/sessions/registry.js.map +1 -1
- package/dist/src/sessions/stop-nudge.d.ts +37 -0
- package/dist/src/sessions/stop-nudge.d.ts.map +1 -0
- package/dist/src/sessions/stop-nudge.js +59 -0
- package/dist/src/sessions/stop-nudge.js.map +1 -0
- package/dist/src/sessions/workflow-interruptions.d.ts +6 -0
- package/dist/src/sessions/workflow-interruptions.d.ts.map +1 -0
- package/dist/src/sessions/workflow-interruptions.js +16 -0
- package/dist/src/sessions/workflow-interruptions.js.map +1 -0
- package/dist/src/shared/db.d.ts +13 -0
- package/dist/src/shared/db.d.ts.map +1 -0
- package/dist/src/shared/db.js +15 -0
- package/dist/src/shared/db.js.map +1 -0
- package/dist/src/shared/engine-failure.d.ts +29 -0
- package/dist/src/shared/engine-failure.d.ts.map +1 -0
- package/dist/src/shared/engine-failure.js +101 -0
- package/dist/src/shared/engine-failure.js.map +1 -0
- package/dist/src/shared/engine-fallback.d.ts +52 -0
- package/dist/src/shared/engine-fallback.d.ts.map +1 -0
- package/dist/src/shared/engine-fallback.js +164 -0
- package/dist/src/shared/engine-fallback.js.map +1 -0
- package/dist/src/shared/engine-health.d.ts +82 -0
- package/dist/src/shared/engine-health.d.ts.map +1 -0
- package/dist/src/shared/engine-health.js +183 -0
- package/dist/src/shared/engine-health.js.map +1 -0
- package/dist/src/shared/fallback-map-wire.d.ts +60 -0
- package/dist/src/shared/fallback-map-wire.d.ts.map +1 -0
- package/dist/src/shared/fallback-map-wire.js +76 -0
- package/dist/src/shared/fallback-map-wire.js.map +1 -0
- package/dist/src/shared/model-id.d.ts +16 -0
- package/dist/src/shared/model-id.d.ts.map +1 -0
- package/dist/src/shared/model-id.js +20 -0
- package/dist/src/shared/model-id.js.map +1 -0
- package/dist/src/shared/models.d.ts +11 -0
- package/dist/src/shared/models.d.ts.map +1 -1
- package/dist/src/shared/models.js +4 -1
- package/dist/src/shared/models.js.map +1 -1
- package/dist/src/shared/paths.d.ts +4 -0
- package/dist/src/shared/paths.d.ts.map +1 -1
- package/dist/src/shared/paths.js +14 -0
- package/dist/src/shared/paths.js.map +1 -1
- package/dist/src/shared/rateLimit.d.ts +6 -0
- package/dist/src/shared/rateLimit.d.ts.map +1 -1
- package/dist/src/shared/rateLimit.js +9 -0
- package/dist/src/shared/rateLimit.js.map +1 -1
- package/dist/src/shared/test-support/posix-mode.d.ts +17 -0
- package/dist/src/shared/test-support/posix-mode.d.ts.map +1 -0
- package/dist/src/shared/test-support/posix-mode.js +23 -0
- package/dist/src/shared/test-support/posix-mode.js.map +1 -0
- package/dist/src/shared/types.d.ts +111 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/work-items/claims.d.ts +17 -0
- package/dist/src/work-items/claims.d.ts.map +1 -0
- package/dist/src/work-items/claims.js +9 -0
- package/dist/src/work-items/claims.js.map +1 -0
- package/dist/src/work-items/id.d.ts +8 -0
- package/dist/src/work-items/id.d.ts.map +1 -0
- package/dist/src/work-items/id.js +8 -0
- package/dist/src/work-items/id.js.map +1 -0
- package/dist/src/work-items/labels.d.ts +3 -0
- package/dist/src/work-items/labels.d.ts.map +1 -0
- package/dist/src/work-items/labels.js +11 -0
- package/dist/src/work-items/labels.js.map +1 -0
- package/dist/src/work-items/respawn-guards.d.ts +16 -0
- package/dist/src/work-items/respawn-guards.d.ts.map +1 -0
- package/dist/src/work-items/respawn-guards.js +9 -0
- package/dist/src/work-items/respawn-guards.js.map +1 -0
- package/dist/src/work-items/runs.d.ts +15 -0
- package/dist/src/work-items/runs.d.ts.map +1 -0
- package/dist/src/work-items/runs.js +33 -0
- package/dist/src/work-items/runs.js.map +1 -0
- package/dist/src/work-items/store.d.ts +4 -0
- package/dist/src/work-items/store.d.ts.map +1 -0
- package/dist/src/work-items/store.js +2 -0
- package/dist/src/work-items/store.js.map +1 -0
- package/dist/src/work-items/workflow-event-feed.d.ts +58 -0
- package/dist/src/work-items/workflow-event-feed.d.ts.map +1 -0
- package/dist/src/work-items/workflow-event-feed.js +10 -0
- package/dist/src/work-items/workflow-event-feed.js.map +1 -0
- package/dist/src/work-items/workflow-event-winners.d.ts +3 -0
- package/dist/src/work-items/workflow-event-winners.d.ts.map +1 -0
- package/dist/src/work-items/workflow-event-winners.js +5 -0
- package/dist/src/work-items/workflow-event-winners.js.map +1 -0
- package/dist/src/work-items/workflow-ownership.d.ts +3 -0
- package/dist/src/work-items/workflow-ownership.d.ts.map +1 -0
- package/dist/src/work-items/workflow-ownership.js +5 -0
- package/dist/src/work-items/workflow-ownership.js.map +1 -0
- package/dist/src/workflows/approval-description.d.ts +9 -0
- package/dist/src/workflows/approval-description.d.ts.map +1 -0
- package/dist/src/workflows/approval-description.js +19 -0
- package/dist/src/workflows/approval-description.js.map +1 -0
- package/dist/src/workflows/attachment-ref.d.ts +38 -0
- package/dist/src/workflows/attachment-ref.d.ts.map +1 -0
- package/dist/src/workflows/attachment-ref.js +45 -0
- package/dist/src/workflows/attachment-ref.js.map +1 -0
- package/dist/src/workflows/bindings.d.ts +36 -0
- package/dist/src/workflows/bindings.d.ts.map +1 -0
- package/dist/src/workflows/bindings.js +268 -0
- package/dist/src/workflows/bindings.js.map +1 -0
- package/dist/src/workflows/capacity.d.ts +53 -0
- package/dist/src/workflows/capacity.d.ts.map +1 -0
- package/dist/src/workflows/capacity.js +81 -0
- package/dist/src/workflows/capacity.js.map +1 -0
- package/dist/src/workflows/contract.d.ts +6 -0
- package/dist/src/workflows/contract.d.ts.map +1 -0
- package/dist/src/workflows/contract.js +25 -0
- package/dist/src/workflows/contract.js.map +1 -0
- package/dist/src/workflows/employee-continuation.d.ts +29 -0
- package/dist/src/workflows/employee-continuation.d.ts.map +1 -0
- package/dist/src/workflows/employee-continuation.js +51 -0
- package/dist/src/workflows/employee-continuation.js.map +1 -0
- package/dist/src/workflows/engine-chain.d.ts +67 -0
- package/dist/src/workflows/engine-chain.d.ts.map +1 -0
- package/dist/src/workflows/engine-chain.js +123 -0
- package/dist/src/workflows/engine-chain.js.map +1 -0
- package/dist/src/workflows/failure.d.ts +75 -0
- package/dist/src/workflows/failure.d.ts.map +1 -0
- package/dist/src/workflows/failure.js +111 -0
- package/dist/src/workflows/failure.js.map +1 -0
- package/dist/src/workflows/git-landing-evidence.d.ts +16 -0
- package/dist/src/workflows/git-landing-evidence.d.ts.map +1 -0
- package/dist/src/workflows/git-landing-evidence.js +44 -0
- package/dist/src/workflows/git-landing-evidence.js.map +1 -0
- package/dist/src/workflows/import-v1.d.ts +17 -0
- package/dist/src/workflows/import-v1.d.ts.map +1 -0
- package/dist/src/workflows/import-v1.js +256 -0
- package/dist/src/workflows/import-v1.js.map +1 -0
- package/dist/src/workflows/index.d.ts +3 -0
- package/dist/src/workflows/index.d.ts.map +1 -0
- package/dist/src/workflows/index.js +2 -0
- package/dist/src/workflows/index.js.map +1 -0
- package/dist/src/workflows/issues.d.ts +20 -0
- package/dist/src/workflows/issues.d.ts.map +1 -0
- package/dist/src/workflows/issues.js +41 -0
- package/dist/src/workflows/issues.js.map +1 -0
- package/dist/src/workflows/json-schema.d.ts +20 -0
- package/dist/src/workflows/json-schema.d.ts.map +1 -0
- package/dist/src/workflows/json-schema.js +104 -0
- package/dist/src/workflows/json-schema.js.map +1 -0
- package/dist/src/workflows/model.d.ts +1978 -0
- package/dist/src/workflows/model.d.ts.map +1 -0
- package/dist/src/workflows/model.js +277 -0
- package/dist/src/workflows/model.js.map +1 -0
- package/dist/src/workflows/node-dispatch.d.ts +30 -0
- package/dist/src/workflows/node-dispatch.d.ts.map +1 -0
- package/dist/src/workflows/node-dispatch.js +148 -0
- package/dist/src/workflows/node-dispatch.js.map +1 -0
- package/dist/src/workflows/node-mutex.d.ts +27 -0
- package/dist/src/workflows/node-mutex.d.ts.map +1 -0
- package/dist/src/workflows/node-mutex.js +63 -0
- package/dist/src/workflows/node-mutex.js.map +1 -0
- package/dist/src/workflows/output.d.ts +14 -0
- package/dist/src/workflows/output.d.ts.map +1 -0
- package/dist/src/workflows/output.js +229 -0
- package/dist/src/workflows/output.js.map +1 -0
- package/dist/src/workflows/predicates.d.ts +6 -0
- package/dist/src/workflows/predicates.d.ts.map +1 -0
- package/dist/src/workflows/predicates.js +60 -0
- package/dist/src/workflows/predicates.js.map +1 -0
- package/dist/src/workflows/rearm-target.d.ts +14 -0
- package/dist/src/workflows/rearm-target.d.ts.map +1 -0
- package/dist/src/workflows/rearm-target.js +26 -0
- package/dist/src/workflows/rearm-target.js.map +1 -0
- package/dist/src/workflows/reminder-ladder.d.ts +16 -0
- package/dist/src/workflows/reminder-ladder.d.ts.map +1 -0
- package/dist/src/workflows/reminder-ladder.js +64 -0
- package/dist/src/workflows/reminder-ladder.js.map +1 -0
- package/dist/src/workflows/repository-continuation.d.ts +22 -0
- package/dist/src/workflows/repository-continuation.d.ts.map +1 -0
- package/dist/src/workflows/repository-continuation.js +15 -0
- package/dist/src/workflows/repository-continuation.js.map +1 -0
- package/dist/src/workflows/repository-integrity.d.ts +4 -0
- package/dist/src/workflows/repository-integrity.d.ts.map +1 -0
- package/dist/src/workflows/repository-integrity.js +53 -0
- package/dist/src/workflows/repository-integrity.js.map +1 -0
- package/dist/src/workflows/repository-migrations.d.ts +7 -0
- package/dist/src/workflows/repository-migrations.d.ts.map +1 -0
- package/dist/src/workflows/repository-migrations.js +285 -0
- package/dist/src/workflows/repository-migrations.js.map +1 -0
- package/dist/src/workflows/repository-mutex.d.ts +35 -0
- package/dist/src/workflows/repository-mutex.d.ts.map +1 -0
- package/dist/src/workflows/repository-mutex.js +34 -0
- package/dist/src/workflows/repository-mutex.js.map +1 -0
- package/dist/src/workflows/repository-run-transaction.d.ts +22 -0
- package/dist/src/workflows/repository-run-transaction.d.ts.map +1 -0
- package/dist/src/workflows/repository-run-transaction.js +268 -0
- package/dist/src/workflows/repository-run-transaction.js.map +1 -0
- package/dist/src/workflows/repository-runs.d.ts +177 -0
- package/dist/src/workflows/repository-runs.d.ts.map +1 -0
- package/dist/src/workflows/repository-runs.js +405 -0
- package/dist/src/workflows/repository-runs.js.map +1 -0
- package/dist/src/workflows/repository-support.d.ts +39 -0
- package/dist/src/workflows/repository-support.d.ts.map +1 -0
- package/dist/src/workflows/repository-support.js +185 -0
- package/dist/src/workflows/repository-support.js.map +1 -0
- package/dist/src/workflows/repository.d.ts +141 -0
- package/dist/src/workflows/repository.d.ts.map +1 -0
- package/dist/src/workflows/repository.js +378 -0
- package/dist/src/workflows/repository.js.map +1 -0
- package/dist/src/workflows/restart-redispatch.d.ts +37 -0
- package/dist/src/workflows/restart-redispatch.d.ts.map +1 -0
- package/dist/src/workflows/restart-redispatch.js +53 -0
- package/dist/src/workflows/restart-redispatch.js.map +1 -0
- package/dist/src/workflows/run-closure.d.ts +45 -0
- package/dist/src/workflows/run-closure.d.ts.map +1 -0
- package/dist/src/workflows/run-closure.js +99 -0
- package/dist/src/workflows/run-closure.js.map +1 -0
- package/dist/src/workflows/run-graph.d.ts +30 -0
- package/dist/src/workflows/run-graph.d.ts.map +1 -0
- package/dist/src/workflows/run-graph.js +78 -0
- package/dist/src/workflows/run-graph.js.map +1 -0
- package/dist/src/workflows/runner.d.ts +165 -0
- package/dist/src/workflows/runner.d.ts.map +1 -0
- package/dist/src/workflows/runner.js +1013 -0
- package/dist/src/workflows/runner.js.map +1 -0
- package/dist/src/workflows/runtime.d.ts +141 -0
- package/dist/src/workflows/runtime.d.ts.map +1 -0
- package/dist/src/workflows/runtime.js +8 -0
- package/dist/src/workflows/runtime.js.map +1 -0
- package/dist/src/workflows/service-input.d.ts +11 -0
- package/dist/src/workflows/service-input.d.ts.map +1 -0
- package/dist/src/workflows/service-input.js +28 -0
- package/dist/src/workflows/service-input.js.map +1 -0
- package/dist/src/workflows/service.d.ts +187 -0
- package/dist/src/workflows/service.d.ts.map +1 -0
- package/dist/src/workflows/service.js +429 -0
- package/dist/src/workflows/service.js.map +1 -0
- package/dist/src/workflows/session-caller.d.ts +18 -0
- package/dist/src/workflows/session-caller.d.ts.map +1 -0
- package/dist/src/workflows/session-caller.js +79 -0
- package/dist/src/workflows/session-caller.js.map +1 -0
- package/dist/src/workflows/session-executor.d.ts +33 -0
- package/dist/src/workflows/session-executor.d.ts.map +1 -0
- package/dist/src/workflows/session-executor.js +53 -0
- package/dist/src/workflows/session-executor.js.map +1 -0
- package/dist/src/workflows/todo-approval-ref.d.ts +17 -0
- package/dist/src/workflows/todo-approval-ref.d.ts.map +1 -0
- package/dist/src/workflows/todo-approval-ref.js +17 -0
- package/dist/src/workflows/todo-approval-ref.js.map +1 -0
- package/dist/src/workflows/todo-event-outcome.d.ts +61 -0
- package/dist/src/workflows/todo-event-outcome.d.ts.map +1 -0
- package/dist/src/workflows/todo-event-outcome.js +79 -0
- package/dist/src/workflows/todo-event-outcome.js.map +1 -0
- package/dist/src/workflows/todo-ports.d.ts +140 -0
- package/dist/src/workflows/todo-ports.d.ts.map +1 -0
- package/dist/src/workflows/todo-ports.js +2 -0
- package/dist/src/workflows/todo-ports.js.map +1 -0
- package/dist/src/workflows/todo-run-ledger.d.ts +52 -0
- package/dist/src/workflows/todo-run-ledger.d.ts.map +1 -0
- package/dist/src/workflows/todo-run-ledger.js +60 -0
- package/dist/src/workflows/todo-run-ledger.js.map +1 -0
- package/dist/src/workflows/trigger-config-schema.d.ts +31 -0
- package/dist/src/workflows/trigger-config-schema.d.ts.map +1 -0
- package/dist/src/workflows/trigger-config-schema.js +46 -0
- package/dist/src/workflows/trigger-config-schema.js.map +1 -0
- package/dist/src/workflows/trigger-service.d.ts +47 -0
- package/dist/src/workflows/trigger-service.d.ts.map +1 -0
- package/dist/src/workflows/trigger-service.js +306 -0
- package/dist/src/workflows/trigger-service.js.map +1 -0
- package/dist/src/workflows/validation-end-requires.d.ts +4 -0
- package/dist/src/workflows/validation-end-requires.d.ts.map +1 -0
- package/dist/src/workflows/validation-end-requires.js +30 -0
- package/dist/src/workflows/validation-end-requires.js.map +1 -0
- package/dist/src/workflows/validation-workflow-call.d.ts +21 -0
- package/dist/src/workflows/validation-workflow-call.d.ts.map +1 -0
- package/dist/src/workflows/validation-workflow-call.js +51 -0
- package/dist/src/workflows/validation-workflow-call.js.map +1 -0
- package/dist/src/workflows/validation.d.ts +28 -0
- package/dist/src/workflows/validation.d.ts.map +1 -0
- package/dist/src/workflows/validation.js +485 -0
- package/dist/src/workflows/validation.js.map +1 -0
- package/dist/src/workflows/wait-comment-output.d.ts +15 -0
- package/dist/src/workflows/wait-comment-output.d.ts.map +1 -0
- package/dist/src/workflows/wait-comment-output.js +32 -0
- package/dist/src/workflows/wait-comment-output.js.map +1 -0
- package/dist/src/workflows/wire.d.ts +78 -0
- package/dist/src/workflows/wire.d.ts.map +1 -0
- package/dist/src/workflows/wire.js +2 -0
- package/dist/src/workflows/wire.js.map +1 -0
- package/dist/src/workflows/workflow-call.d.ts +53 -0
- package/dist/src/workflows/workflow-call.d.ts.map +1 -0
- package/dist/src/workflows/workflow-call.js +128 -0
- package/dist/src/workflows/workflow-call.js.map +1 -0
- package/package.json +3 -2
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openryoko",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.29",
|
|
4
4
|
"description": "OpenRyoko — Slackで空気を読んで働くAIアシスタント・ゲートウェイ(Jinnベース、Claude Code/Codex/Gemini CLI対応)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
"qrcode": "^1.5.4",
|
|
41
41
|
"qrcode-terminal": "^0.12.0",
|
|
42
42
|
"uuid": "^11.1.1",
|
|
43
|
-
"ws": "^8.21.3"
|
|
43
|
+
"ws": "^8.21.3",
|
|
44
|
+
"zod": "^4.4.3"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@types/better-sqlite3": "^7.6.0",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type CronScheduleField = 'schedule' | 'timezone' | 'until';
|
|
2
|
+
export interface CronScheduleValidationError {
|
|
3
|
+
field: CronScheduleField;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CronScheduleInput {
|
|
7
|
+
schedule: unknown;
|
|
8
|
+
timezone?: unknown;
|
|
9
|
+
until?: unknown;
|
|
10
|
+
}
|
|
11
|
+
/** Validate with the same cron parser used by the scheduler plus the platform's
|
|
12
|
+
* IANA timezone implementation. This is safe to call before any persistence. */
|
|
13
|
+
export declare function validateCronSchedule(input: CronScheduleInput): CronScheduleValidationError[];
|
|
14
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/cron/validation.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;gFACgF;AAChF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,2BAA2B,EAAE,CAuB5F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import cron from 'node-cron';
|
|
2
|
+
/** Validate with the same cron parser used by the scheduler plus the platform's
|
|
3
|
+
* IANA timezone implementation. This is safe to call before any persistence. */
|
|
4
|
+
export function validateCronSchedule(input) {
|
|
5
|
+
const errors = [];
|
|
6
|
+
if (typeof input.schedule !== 'string' || !input.schedule.trim() || !cron.validate(input.schedule.trim())) {
|
|
7
|
+
errors.push({ field: 'schedule', message: 'schedule must be a valid cron expression' });
|
|
8
|
+
}
|
|
9
|
+
if (input.timezone !== undefined) {
|
|
10
|
+
if (typeof input.timezone !== 'string' || !input.timezone.trim()) {
|
|
11
|
+
errors.push({ field: 'timezone', message: 'timezone must be a non-empty IANA timezone' });
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
try {
|
|
15
|
+
new Intl.DateTimeFormat('en-US', { timeZone: input.timezone.trim() }).format(0);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
errors.push({ field: 'timezone', message: `timezone "${input.timezone}" is not a valid IANA timezone` });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (input.until !== undefined) {
|
|
23
|
+
const timestamp = typeof input.until === 'string' && input.until.trim() ? Date.parse(input.until) : Number.NaN;
|
|
24
|
+
if (!Number.isFinite(timestamp)) {
|
|
25
|
+
errors.push({ field: 'until', message: 'until must be a finite ISO-8601 timestamp' });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return errors;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/cron/validation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B;gFACgF;AAChF,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1G,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,gCAAgC,EAAE,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAC/G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage as HttpRequest, ServerResponse } from "node:http";
|
|
2
2
|
import type { JinnConfig } from "../shared/types.js";
|
|
3
3
|
import type { SessionManager } from "../sessions/manager.js";
|
|
4
|
+
import type { WorkflowService } from "../workflows/service.js";
|
|
4
5
|
export interface ApiContext {
|
|
5
6
|
config: JinnConfig;
|
|
6
7
|
sessionManager: SessionManager;
|
|
@@ -47,6 +48,8 @@ export interface ApiContext {
|
|
|
47
48
|
hookSecret?: string;
|
|
48
49
|
authToken?: string;
|
|
49
50
|
authHome?: string;
|
|
51
|
+
/** Present only when config.workflows.enabled — carries the Workflow engine. */
|
|
52
|
+
workflowService?: WorkflowService;
|
|
50
53
|
}
|
|
51
54
|
export declare function resumePendingWebQueueItems(context: ApiContext): void;
|
|
52
55
|
export declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOhF,OAAO,KAAK,EAAoC,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAExG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOhF,OAAO,KAAK,EAAoC,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAExG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA0E7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAgB/D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrG;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAChG;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC;;;;OAIG;IACH,gCAAgC,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CA4CpE;AA+MD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCnH;AA4CD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAw1Df"}
|
package/dist/src/gateway/api.js
CHANGED
|
@@ -31,6 +31,8 @@ import { recordTurnAccounting } from "../sessions/accounting.js";
|
|
|
31
31
|
import { messageText } from "./message-body.js";
|
|
32
32
|
import { decodeSessionCursor, encodeSessionCursor } from "./pagination.js";
|
|
33
33
|
import { authCookieHeaders, clearAuthCookieHeaders, consumePairingCode, createAuthSession, currentDeviceId, issuePairingCode, listAuthSessions, requestIsSecure, revokeAuthSession, shouldRequireGatewayAuth, verifyGatewayAuth, } from "./auth.js";
|
|
34
|
+
import { handleWorkflowApi } from "./workflow-api.js";
|
|
35
|
+
import { shouldRequireGatewayAuth as workflowAuthRequired, verifyGatewayAuth as workflowVerifyAuth } from "./auth.js";
|
|
34
36
|
import { getDiskSpaceStatus } from "../shared/storage-health.js";
|
|
35
37
|
import { ptySnapshotStore } from "../engines/pty-snapshot.js";
|
|
36
38
|
import { collectClaudeUsage } from "../shared/claude-usage.js";
|
|
@@ -357,6 +359,15 @@ export async function handleApiRequest(req, res, context) {
|
|
|
357
359
|
const pathname = url.pathname;
|
|
358
360
|
const method = req.method || "GET";
|
|
359
361
|
try {
|
|
362
|
+
// /api/workflows/** — the Workflow engine (upstream port). Routed before the
|
|
363
|
+
// flat routes below; handleWorkflowApi returns false for everything else.
|
|
364
|
+
if (context.workflowService && pathname.startsWith("/api/workflows")) {
|
|
365
|
+
const authenticated = !workflowAuthRequired(context.getConfig())
|
|
366
|
+
|| Boolean(context.authToken && context.authHome
|
|
367
|
+
&& workflowVerifyAuth(req.headers, context.authToken, context.authHome));
|
|
368
|
+
if (await handleWorkflowApi(req, res, { method, pathname, url }, { service: context.workflowService, authenticated }))
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
360
371
|
// POST /api/internal/hook — receive Claude Code turn hooks from hook-relay.mjs
|
|
361
372
|
// (interactive PTY engine). Loopback-only + shared-secret authenticated.
|
|
362
373
|
if (method === "POST" && pathname === "/api/internal/hook") {
|
|
@@ -1534,6 +1545,7 @@ Handle this as a priority request from a colleague.`;
|
|
|
1534
1545
|
"mcp",
|
|
1535
1546
|
"sessions",
|
|
1536
1547
|
"cron",
|
|
1548
|
+
"workflows",
|
|
1537
1549
|
"notifications",
|
|
1538
1550
|
"portal",
|
|
1539
1551
|
"context",
|